summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksey Sanin <aleksey@src.gnome.org>2003-03-02 23:08:13 +0000
committerAleksey Sanin <aleksey@src.gnome.org>2003-03-02 23:08:13 +0000
commitad39b7957300ed4672ff0a031747b94fc3a3f31f (patch)
treeff20b25b3407278220b23942864770dc5f8b4c3b
parent0594da682f29edc8ee693716dd15f2b7aebf2f76 (diff)
downloadxmlsec1-ad39b7957300ed4672ff0a031747b94fc3a3f31f.tar.gz
xmlsec1-ad39b7957300ed4672ff0a031747b94fc3a3f31f.tar.bz2
xmlsec1-ad39b7957300ed4672ff0a031747b94fc3a3f31f.zip
checking in separate docs for 0.0.x branch
-rw-r--r--docs/api-0.0.x/Makefile318
-rw-r--r--docs/api-0.0.x/Makefile.am51
-rw-r--r--docs/api-0.0.x/Makefile.in318
-rw-r--r--docs/api-0.0.x/index.html331
-rw-r--r--docs/api-0.0.x/index.sgml393
-rw-r--r--docs/api-0.0.x/sgml.stamp1
-rw-r--r--docs/api-0.0.x/sgml/base64.sgml216
-rw-r--r--docs/api-0.0.x/sgml/bn.sgml151
-rw-r--r--docs/api-0.0.x/sgml/buffered.sgml269
-rw-r--r--docs/api-0.0.x/sgml/ciphers.sgml382
-rw-r--r--docs/api-0.0.x/sgml/debug.sgml83
-rw-r--r--docs/api-0.0.x/sgml/digests.sgml492
-rw-r--r--docs/api-0.0.x/sgml/errors.sgml561
-rw-r--r--docs/api-0.0.x/sgml/io.sgml149
-rw-r--r--docs/api-0.0.x/sgml/keyinfo.sgml285
-rw-r--r--docs/api-0.0.x/sgml/keys.sgml760
-rw-r--r--docs/api-0.0.x/sgml/keysInternal.sgml411
-rw-r--r--docs/api-0.0.x/sgml/keysmngr.sgml420
-rw-r--r--docs/api-0.0.x/sgml/membuf.sgml75
-rw-r--r--docs/api-0.0.x/sgml/nodeset.sgml461
-rw-r--r--docs/api-0.0.x/sgml/transforms.sgml824
-rw-r--r--docs/api-0.0.x/sgml/transformsInternal.sgml1511
-rw-r--r--docs/api-0.0.x/sgml/version.sgml91
-rw-r--r--docs/api-0.0.x/sgml/x509.sgml499
-rw-r--r--docs/api-0.0.x/sgml/xmldsig.sgml859
-rw-r--r--docs/api-0.0.x/sgml/xmlenc.sgml702
-rw-r--r--docs/api-0.0.x/sgml/xmlsec.sgml58
-rw-r--r--docs/api-0.0.x/sgml/xmltree.sgml500
-rw-r--r--docs/api-0.0.x/tmpl.stamp1
-rw-r--r--docs/api-0.0.x/tmpl/base64.sgml80
-rw-r--r--docs/api-0.0.x/tmpl/bn.sgml58
-rw-r--r--docs/api-0.0.x/tmpl/buffered.sgml96
-rw-r--r--docs/api-0.0.x/tmpl/ciphers.sgml133
-rw-r--r--docs/api-0.0.x/tmpl/debug.sgml45
-rw-r--r--docs/api-0.0.x/tmpl/digests.sgml168
-rw-r--r--docs/api-0.0.x/tmpl/digests.sgml.bak167
-rw-r--r--docs/api-0.0.x/tmpl/errors.sgml334
-rw-r--r--docs/api-0.0.x/tmpl/io.sgml72
-rw-r--r--docs/api-0.0.x/tmpl/keyinfo.sgml106
-rw-r--r--docs/api-0.0.x/tmpl/keyinfo.sgml.bak105
-rw-r--r--docs/api-0.0.x/tmpl/keys.sgml282
-rw-r--r--docs/api-0.0.x/tmpl/keys.sgml.bak280
-rw-r--r--docs/api-0.0.x/tmpl/keysInternal.sgml170
-rw-r--r--docs/api-0.0.x/tmpl/keysmngr.sgml153
-rw-r--r--docs/api-0.0.x/tmpl/membuf.sgml32
-rw-r--r--docs/api-0.0.x/tmpl/nodeset.sgml149
-rw-r--r--docs/api-0.0.x/tmpl/transforms.sgml389
-rw-r--r--docs/api-0.0.x/tmpl/transformsInternal.sgml556
-rw-r--r--docs/api-0.0.x/tmpl/version.sgml51
-rw-r--r--docs/api-0.0.x/tmpl/x509.sgml204
-rw-r--r--docs/api-0.0.x/tmpl/xmldsig.sgml282
-rw-r--r--docs/api-0.0.x/tmpl/xmldsig.sgml.bak281
-rw-r--r--docs/api-0.0.x/tmpl/xmlenc.sgml238
-rw-r--r--docs/api-0.0.x/tmpl/xmlenc.sgml.bak237
-rw-r--r--docs/api-0.0.x/tmpl/xmlsec-unused.sgml242
-rw-r--r--docs/api-0.0.x/tmpl/xmlsec.sgml30
-rw-r--r--docs/api-0.0.x/tmpl/xmltree.sgml193
-rw-r--r--docs/api-0.0.x/xmlsec-base64.html1080
-rw-r--r--docs/api-0.0.x/xmlsec-bn.html791
-rw-r--r--docs/api-0.0.x/xmlsec-buffered.html1227
-rw-r--r--docs/api-0.0.x/xmlsec-ciphers.html1703
-rw-r--r--docs/api-0.0.x/xmlsec-debug.html452
-rw-r--r--docs/api-0.0.x/xmlsec-decl-list.txt482
-rw-r--r--docs/api-0.0.x/xmlsec-decl-list.txt.bak471
-rw-r--r--docs/api-0.0.x/xmlsec-decl.txt2328
-rw-r--r--docs/api-0.0.x/xmlsec-decl.txt.bak2256
-rw-r--r--docs/api-0.0.x/xmlsec-digests.html2208
-rw-r--r--docs/api-0.0.x/xmlsec-docs.sgml55
-rw-r--r--docs/api-0.0.x/xmlsec-errors.html2085
-rw-r--r--docs/api-0.0.x/xmlsec-io.html733
-rw-r--r--docs/api-0.0.x/xmlsec-keyinfo.html1508
-rw-r--r--docs/api-0.0.x/xmlsec-keys.html3236
-rw-r--r--docs/api-0.0.x/xmlsec-keysinternal.html2067
-rw-r--r--docs/api-0.0.x/xmlsec-keysmngr.html2056
-rw-r--r--docs/api-0.0.x/xmlsec-membuf.html433
-rw-r--r--docs/api-0.0.x/xmlsec-nodeset.html2167
-rw-r--r--docs/api-0.0.x/xmlsec-notes.html236
-rw-r--r--docs/api-0.0.x/xmlsec-ref-int.html278
-rw-r--r--docs/api-0.0.x/xmlsec-ref.html288
-rw-r--r--docs/api-0.0.x/xmlsec-sections.txt479
-rw-r--r--docs/api-0.0.x/xmlsec-transforms.html3407
-rw-r--r--docs/api-0.0.x/xmlsec-transformsinternal.html6514
-rw-r--r--docs/api-0.0.x/xmlsec-undocumented.txt5
-rw-r--r--docs/api-0.0.x/xmlsec-unused.txt23
-rw-r--r--docs/api-0.0.x/xmlsec-version.html438
-rw-r--r--docs/api-0.0.x/xmlsec-x509.html2656
-rw-r--r--docs/api-0.0.x/xmlsec-xmldsig.html4001
-rw-r--r--docs/api-0.0.x/xmlsec-xmlenc.html3340
-rw-r--r--docs/api-0.0.x/xmlsec-xmlsec.html341
-rw-r--r--docs/api-0.0.x/xmlsec-xmltree.html2607
-rw-r--r--docs/api-0.0.x/xmlsec.sgml119
-rw-r--r--docs/download.html8
-rw-r--r--docs/index.html7
-rw-r--r--docs/news.html7
94 files changed, 68393 insertions, 4 deletions
diff --git a/docs/api-0.0.x/Makefile b/docs/api-0.0.x/Makefile
new file mode 100644
index 00000000..8708be7e
--- /dev/null
+++ b/docs/api-0.0.x/Makefile
@@ -0,0 +1,318 @@
+# Makefile.in generated by automake 1.6.3 from Makefile.am.
+# docs/api/Makefile. Generated from Makefile.in by configure.
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in 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.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = /bin/sh
+
+srcdir = .
+top_srcdir = ../..
+
+prefix = /home/aleksey/local
+exec_prefix = ${prefix}
+
+bindir = ${exec_prefix}/bin
+sbindir = ${exec_prefix}/sbin
+libexecdir = ${exec_prefix}/libexec
+datadir = ${prefix}/share
+sysconfdir = ${prefix}/etc
+sharedstatedir = ${prefix}/com
+localstatedir = ${prefix}/var
+libdir = ${exec_prefix}/lib
+infodir = ${prefix}/info
+mandir = ${prefix}/man
+includedir = ${prefix}/include
+oldincludedir = /usr/include
+pkgdatadir = $(datadir)/xmlsec
+pkglibdir = $(libdir)/xmlsec
+pkgincludedir = $(includedir)/xmlsec
+top_builddir = ../..
+
+ACLOCAL = aclocal-1.6
+AUTOCONF = autoconf
+AUTOMAKE = automake-1.6
+AUTOHEADER = autoheader
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = /usr/bin/install -c
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_DATA = ${INSTALL} -m 644
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = s,x,x,
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias =
+host_triplet = i686-pc-linux-gnu
+
+EXEEXT =
+OBJEXT = o
+PATH_SEPARATOR = :
+AMTAR = tar
+AS = @AS@
+AWK = gawk
+CC = gcc
+CFLAGS = -g -O2 -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 -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls
+CPP = gcc -E
+CPPFLAGS =
+DEPDIR = .deps
+DLLTOOL = @DLLTOOL@
+ECHO = echo
+INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
+LDFLAGS =
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIBXML_CFLAGS = -I/home/aleksey/include/libxml2
+LIBXML_CONFIG = xml2-config
+LIBXML_LIBS = -L/home/aleksey/lib -lxml2 -lz -lm
+LIBXML_MIN_VERSION = 2.4.24
+LIBXML_PREFIX =
+LIBXML_WITHOUT = no
+LIBXSLT_CFLAGS = -I/home/aleksey/include -I/home/aleksey/include/libxml2
+LIBXSLT_CONFIG = xslt-config
+LIBXSLT_LIBS = -L/home/aleksey/lib -lxslt -lxml2 -lz -lm
+LIBXSLT_MIN_VERSION = 1.0.20
+LIBXSLT_PREFIX =
+LIBXSLT_WITHOUT = no
+LN_S = ln -s
+MAINT = #
+MV = /bin/mv
+OBJDUMP = @OBJDUMP@
+OPENSSL_CFLAGS = -I/home/aleksey/include
+OPENSSL_CONFIG =
+OPENSSL_LDADDS = /home/aleksey/lib/libcrypto.a
+OPENSSL_LIBS = -L/home/aleksey/lib -lcrypto
+OPENSSL_MIN_VERSION = 0.9.6
+OPENSSL_PREFIX = /home/aleksey
+OPENSSL_VERSION = 0.9.7
+OPENSSL_WITHOUT = no
+PACKAGE = xmlsec
+RANLIB = ranlib
+RM = /bin/rm
+STRIP = strip
+TAR = /bin/tar
+U =
+VERSION = 0.0.13
+XMLSEC_DEFINES =
+XMLSEC_INCLUDEDIR = -I${prefix}/include -I/home/aleksey/include/libxml2
+XMLSEC_LIBDIR = -L${libdir}
+XMLSEC_LIBS = -lxmlsec -L/home/aleksey/lib -lxml2 -lz -lm
+XMLSEC_NO_AES = 0
+XMLSEC_NO_DES = 0
+XMLSEC_NO_DSA = 0
+XMLSEC_NO_HMAC = 0
+XMLSEC_NO_RIPEMD160 = 0
+XMLSEC_NO_RSA = 0
+XMLSEC_NO_SHA1 = 0
+XMLSEC_NO_X509 = 0
+XMLSEC_NO_XMLDSIG = 0
+XMLSEC_NO_XMLENC = 0
+XMLSEC_VERSION = 0.0.13
+XMLSEC_VERSION_INFO = 0:13:0
+XMLSEC_VERSION_MAJOR = 0
+XMLSEC_VERSION_MINOR = 0
+XMLSEC_VERSION_SUBMINOR = 13
+am__include = include
+am__quote =
+install_sh = /home/aleksey/dev/xmlsec-0.0.x/install-sh
+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
+
+#
+# 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' -print ) \
+ $(shell find $(INCLUDE_DIR) -name '*.h' -print )
+
+subdir = docs/api
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+DIST_COMMON = Makefile.am Makefile.in
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: # Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu docs/api/Makefile
+Makefile: # $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ../..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+ @list='$(DISTFILES)'; for file in $$list; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkinstalldirs) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile
+
+installdirs:
+
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+
+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
+
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic \
+ maintainer-clean-local
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ clean-local distclean distclean-generic distclean-libtool \
+ distdir dvi dvi-am info info-am install install-am install-data \
+ install-data-am install-exec install-exec-am install-info \
+ install-info-am install-man install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic maintainer-clean-local mostlyclean \
+ mostlyclean-generic mostlyclean-libtool uninstall uninstall-am \
+ uninstall-info-am
+
+
+all: sgml html
+
+html: sgml xmlsec.sgml
+ gtkdoc-mkhtml $(MODULE) xmlsec.sgml
+
+sgml: templates
+ @gtkdoc-mkdb --module=$(MODULE) --source-dir=$(DOC_SOURCE_DIR)
+
+templates: scan
+ @gtkdoc-mktmpl --module=$(MODULE)
+
+scan: doc_sources
+ @gtkdoc-scan --module=$(MODULE) --source-dir=$(DOC_SOURCE_DIR)
+
+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/XMLSEC_EXPORT_VAR/extern/' | \
+ sed 's/XMLSEC_EXPORT//' | \
+ sed 's/XMLSEC_ERRORS_PRINTF_ATTRIBUTE//' > \
+ $(DOC_SOURCE_DIR)/$$folder_name/$$file_name; \
+ done)
+
+clean:
+ @rm -rf $(DOC_SOURCE_DIR)
+ @rm -f sgml/*~ sgml/*.bak
+ @rm -f tmpl/*~ tmpl/*.bak
+ @rm -f *~ *.bak *.hierarchy *.signals *-unused.txt *.stamp
+
+clean-local:
+ rm -f *~ *.bak *.hierarchy *.signals *-unused.txt
+
+maintainer-clean-local: clean
+ rm -rf sgml/*.sgml *.html xmlsec-decl-list.txt xmlsec-decl.txt xmlsec-sections.txt
+# 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.
+.NOEXPORT:
diff --git a/docs/api-0.0.x/Makefile.am b/docs/api-0.0.x/Makefile.am
new file mode 100644
index 00000000..9cbcf968
--- /dev/null
+++ b/docs/api-0.0.x/Makefile.am
@@ -0,0 +1,51 @@
+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
+
+#
+# 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' -print ) \
+ $(shell find $(INCLUDE_DIR) -name '*.h' -print )
+
+all: sgml html
+
+html: sgml xmlsec.sgml
+ gtkdoc-mkhtml $(MODULE) xmlsec.sgml
+
+sgml: templates
+ @gtkdoc-mkdb --module=$(MODULE) --source-dir=$(DOC_SOURCE_DIR)
+
+templates: scan
+ @gtkdoc-mktmpl --module=$(MODULE)
+
+scan: doc_sources
+ @gtkdoc-scan --module=$(MODULE) --source-dir=$(DOC_SOURCE_DIR)
+
+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/XMLSEC_EXPORT_VAR/extern/' | \
+ sed 's/XMLSEC_EXPORT//' | \
+ sed 's/XMLSEC_ERRORS_PRINTF_ATTRIBUTE//' > \
+ $(DOC_SOURCE_DIR)/$$folder_name/$$file_name; \
+ done)
+
+clean:
+ @rm -rf $(DOC_SOURCE_DIR)
+ @rm -f sgml/*~ sgml/*.bak
+ @rm -f tmpl/*~ tmpl/*.bak
+ @rm -f *~ *.bak *.hierarchy *.signals *-unused.txt *.stamp
+
+clean-local:
+ rm -f *~ *.bak *.hierarchy *.signals *-unused.txt
+
+maintainer-clean-local: clean
+ rm -rf sgml/*.sgml *.html xmlsec-decl-list.txt xmlsec-decl.txt xmlsec-sections.txt
diff --git a/docs/api-0.0.x/Makefile.in b/docs/api-0.0.x/Makefile.in
new file mode 100644
index 00000000..21d0ceaf
--- /dev/null
+++ b/docs/api-0.0.x/Makefile.in
@@ -0,0 +1,318 @@
+# Makefile.in generated by automake 1.6.3 from Makefile.am.
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This Makefile.in 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.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = @program_transform_name@
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+
+EXEEXT = @EXEEXT@
+OBJEXT = @OBJEXT@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+AMTAR = @AMTAR@
+AS = @AS@
+AWK = @AWK@
+CC = @CC@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+ECHO = @ECHO@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBTOOL = @LIBTOOL@
+LIBXML_CFLAGS = @LIBXML_CFLAGS@
+LIBXML_CONFIG = @LIBXML_CONFIG@
+LIBXML_LIBS = @LIBXML_LIBS@
+LIBXML_MIN_VERSION = @LIBXML_MIN_VERSION@
+LIBXML_PREFIX = @LIBXML_PREFIX@
+LIBXML_WITHOUT = @LIBXML_WITHOUT@
+LIBXSLT_CFLAGS = @LIBXSLT_CFLAGS@
+LIBXSLT_CONFIG = @LIBXSLT_CONFIG@
+LIBXSLT_LIBS = @LIBXSLT_LIBS@
+LIBXSLT_MIN_VERSION = @LIBXSLT_MIN_VERSION@
+LIBXSLT_PREFIX = @LIBXSLT_PREFIX@
+LIBXSLT_WITHOUT = @LIBXSLT_WITHOUT@
+LN_S = @LN_S@
+MAINT = @MAINT@
+MV = @MV@
+OBJDUMP = @OBJDUMP@
+OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
+OPENSSL_CONFIG = @OPENSSL_CONFIG@
+OPENSSL_LDADDS = @OPENSSL_LDADDS@
+OPENSSL_LIBS = @OPENSSL_LIBS@
+OPENSSL_MIN_VERSION = @OPENSSL_MIN_VERSION@
+OPENSSL_PREFIX = @OPENSSL_PREFIX@
+OPENSSL_VERSION = @OPENSSL_VERSION@
+OPENSSL_WITHOUT = @OPENSSL_WITHOUT@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+RM = @RM@
+STRIP = @STRIP@
+TAR = @TAR@
+U = @U@
+VERSION = @VERSION@
+XMLSEC_DEFINES = @XMLSEC_DEFINES@
+XMLSEC_INCLUDEDIR = @XMLSEC_INCLUDEDIR@
+XMLSEC_LIBDIR = @XMLSEC_LIBDIR@
+XMLSEC_LIBS = @XMLSEC_LIBS@
+XMLSEC_NO_AES = @XMLSEC_NO_AES@
+XMLSEC_NO_DES = @XMLSEC_NO_DES@
+XMLSEC_NO_DSA = @XMLSEC_NO_DSA@
+XMLSEC_NO_HMAC = @XMLSEC_NO_HMAC@
+XMLSEC_NO_RIPEMD160 = @XMLSEC_NO_RIPEMD160@
+XMLSEC_NO_RSA = @XMLSEC_NO_RSA@
+XMLSEC_NO_SHA1 = @XMLSEC_NO_SHA1@
+XMLSEC_NO_X509 = @XMLSEC_NO_X509@
+XMLSEC_NO_XMLDSIG = @XMLSEC_NO_XMLDSIG@
+XMLSEC_NO_XMLENC = @XMLSEC_NO_XMLENC@
+XMLSEC_VERSION = @XMLSEC_VERSION@
+XMLSEC_VERSION_INFO = @XMLSEC_VERSION_INFO@
+XMLSEC_VERSION_MAJOR = @XMLSEC_VERSION_MAJOR@
+XMLSEC_VERSION_MINOR = @XMLSEC_VERSION_MINOR@
+XMLSEC_VERSION_SUBMINOR = @XMLSEC_VERSION_SUBMINOR@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
+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
+
+#
+# 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' -print ) \
+ $(shell find $(INCLUDE_DIR) -name '*.h' -print )
+
+subdir = docs/api
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+DIST_COMMON = Makefile.am Makefile.in
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu docs/api/Makefile
+Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ../..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+ @list='$(DISTFILES)'; for file in $$list; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkinstalldirs) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile
+
+installdirs:
+
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES)
+
+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
+
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic \
+ maintainer-clean-local
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ clean-local distclean distclean-generic distclean-libtool \
+ distdir dvi dvi-am info info-am install install-am install-data \
+ install-data-am install-exec install-exec-am install-info \
+ install-info-am install-man install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic maintainer-clean-local mostlyclean \
+ mostlyclean-generic mostlyclean-libtool uninstall uninstall-am \
+ uninstall-info-am
+
+
+all: sgml html
+
+html: sgml xmlsec.sgml
+ gtkdoc-mkhtml $(MODULE) xmlsec.sgml
+
+sgml: templates
+ @gtkdoc-mkdb --module=$(MODULE) --source-dir=$(DOC_SOURCE_DIR)
+
+templates: scan
+ @gtkdoc-mktmpl --module=$(MODULE)
+
+scan: doc_sources
+ @gtkdoc-scan --module=$(MODULE) --source-dir=$(DOC_SOURCE_DIR)
+
+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/XMLSEC_EXPORT_VAR/extern/' | \
+ sed 's/XMLSEC_EXPORT//' | \
+ sed 's/XMLSEC_ERRORS_PRINTF_ATTRIBUTE//' > \
+ $(DOC_SOURCE_DIR)/$$folder_name/$$file_name; \
+ done)
+
+clean:
+ @rm -rf $(DOC_SOURCE_DIR)
+ @rm -f sgml/*~ sgml/*.bak
+ @rm -f tmpl/*~ tmpl/*.bak
+ @rm -f *~ *.bak *.hierarchy *.signals *-unused.txt *.stamp
+
+clean-local:
+ rm -f *~ *.bak *.hierarchy *.signals *-unused.txt
+
+maintainer-clean-local: clean
+ rm -rf sgml/*.sgml *.html xmlsec-decl-list.txt xmlsec-decl.txt xmlsec-sections.txt
+# 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.
+.NOEXPORT:
diff --git a/docs/api-0.0.x/index.html b/docs/api-0.0.x/index.html
new file mode 100644
index 00000000..e42ff35d
--- /dev/null
+++ b/docs/api-0.0.x/index.html
@@ -0,0 +1,331 @@
+<HTML
+><HEAD
+><TITLE
+>XML Security Library Reference Manual</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="NEXT"
+TITLE="XML Security Library Programming Notes"
+HREF="xmlsec-notes.html"></HEAD
+><BODY
+CLASS="BOOK"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="BOOK"
+><DIV
+CLASS="TITLEPAGE"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+ALIGN="center"
+VALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="7"
+><P
+CLASS="TITLE"
+><A
+NAME="AEN2"
+>XML Security Library Reference Manual</A
+></P
+></FONT
+></TH
+></TR
+></TABLE
+><H3
+CLASS="AUTHOR"
+><A
+NAME="AEN5"
+></A
+>Aleksey Sanin</H3
+><DIV
+CLASS="AFFILIATION"
+><DIV
+CLASS="ADDRESS"
+><P
+CLASS="ADDRESS"
+> &nbsp;&nbsp;&nbsp;&nbsp;aleksey@aleksey.com<br>
+ &nbsp;&nbsp;</P
+></DIV
+></DIV
+><P
+CLASS="COPYRIGHT"
+>Copyright &copy; 2002 by Aleksey Sanin</P
+><DIV
+><DIV
+CLASS="ABSTRACT"
+><A
+NAME="AEN18"
+></A
+><P
+></P
+><P
+>This manual documents the interfaces of the xmlsec
+ library and has some short notes to help get you up to speed
+ with using the library.</P
+><P
+></P
+></DIV
+></DIV
+><DIV
+CLASS="LEGALNOTICE"
+><A
+NAME="AEN14"
+></A
+><P
+></P
+><P
+>Permission is granted to make and distribute verbatim
+ copies of this manual provided the copyright notice and this
+ permission notice are preserved on all copies.</P
+><P
+>Permission is granted to copy and distribute modified
+ versions of this manual under the conditions for verbatim
+ copying, provided also that the entire resulting derived work is
+ distributed under the terms of a permission notice identical to
+ this one.</P
+><P
+>Permission is granted to copy and distribute translations
+ of this manual into another language, under the above conditions
+ for modified versions.</P
+><P
+></P
+></DIV
+></DIV
+><DIV
+CLASS="TOC"
+><DL
+><DT
+><B
+>Table of Contents</B
+></DT
+><DT
+><A
+HREF="xmlsec-notes.html"
+>XML Security Library Programming Notes</A
+></DT
+><DT
+><A
+HREF="xmlsec-ref.html"
+>XML Security Library Reference</A
+></DT
+><DD
+><DL
+><DT
+><A
+HREF="xmlsec-xmlsec.html"
+>xmlsec.h</A
+>&nbsp;--&nbsp;The library initialization/cleanup functions.</DT
+><DT
+><A
+HREF="xmlsec-xmldsig.html"
+>xmldsig.h</A
+>&nbsp;--&nbsp;The <A
+HREF="http://www.w3.org/Signature/"
+TARGET="_top"
+>XML Digital Signature</A
+>
+standard implementation.</DT
+><DT
+><A
+HREF="xmlsec-xmlenc.html"
+>xmlenc.h</A
+>&nbsp;--&nbsp;The <A
+HREF="http://www.w3.org/Encryption/"
+TARGET="_top"
+>XML Encrypiton</A
+>
+standard implementation.</DT
+><DT
+><A
+HREF="xmlsec-errors.html"
+>errors.h</A
+>&nbsp;--&nbsp;The errors reporting functions.</DT
+><DT
+><A
+HREF="xmlsec-debug.html"
+>debug.h</A
+>&nbsp;--&nbsp;The usefull debugging functions.</DT
+><DT
+><A
+HREF="xmlsec-keyinfo.html"
+>keyinfo.h</A
+>&nbsp;--&nbsp;The &lt;dsig:KeyInfo&gt; element manipulation functions.</DT
+><DT
+><A
+HREF="xmlsec-keys.html"
+>keys.h</A
+>&nbsp;--&nbsp;The keys helper functions.</DT
+><DT
+><A
+HREF="xmlsec-keysmngr.html"
+>keysmngr.h</A
+>&nbsp;--&nbsp;The simple keys manager implementation.</DT
+><DT
+><A
+HREF="xmlsec-transforms.html"
+>transforms.h</A
+>&nbsp;--&nbsp;The transforms functions.</DT
+><DT
+><A
+HREF="xmlsec-version.html"
+>version.h</A
+>&nbsp;--&nbsp;The library version infromation.</DT
+><DT
+><A
+HREF="xmlsec-x509.html"
+>x509.h</A
+>&nbsp;--&nbsp;The X509 certificates functions.</DT
+></DL
+></DD
+><DT
+><A
+HREF="xmlsec-ref-int.html"
+>XML Security Library Internal Functions Reference</A
+></DT
+><DD
+><DL
+><DT
+><A
+HREF="xmlsec-base64.html"
+>base64.h</A
+>&nbsp;--&nbsp;The BASE64 encode/decode functions.</DT
+><DT
+><A
+HREF="xmlsec-bn.html"
+>bn.h</A
+>&nbsp;--&nbsp;The big numbers helper functions.</DT
+><DT
+><A
+HREF="xmlsec-buffered.html"
+>buffered.h</A
+>&nbsp;--&nbsp;The buffered transform.</DT
+><DT
+><A
+HREF="xmlsec-ciphers.html"
+>ciphers.h</A
+>&nbsp;--&nbsp;The ciphers transform.</DT
+><DT
+><A
+HREF="xmlsec-digests.html"
+>digests.h</A
+>&nbsp;--&nbsp;The digests transform.</DT
+><DT
+><A
+HREF="xmlsec-io.html"
+>io.h</A
+>&nbsp;--&nbsp;The IO transforms.</DT
+><DT
+><A
+HREF="xmlsec-keysinternal.html"
+>keysInternal.h</A
+>&nbsp;--&nbsp;The internal keys functions.</DT
+><DT
+><A
+HREF="xmlsec-membuf.html"
+>membuf.h</A
+>&nbsp;--&nbsp;The memory buffer transform.</DT
+><DT
+><A
+HREF="xmlsec-nodeset.html"
+>nodeset.h</A
+>&nbsp;--&nbsp;The enchanced nodes set imlmentation.</DT
+><DT
+><A
+HREF="xmlsec-transformsinternal.html"
+>transformsInternal.h</A
+>&nbsp;--&nbsp;The internal transform's functions.</DT
+><DT
+><A
+HREF="xmlsec-xmltree.html"
+>xmltree.h</A
+>&nbsp;--&nbsp;The XML tree helper functions.</DT
+></DL
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+>&nbsp;</TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&nbsp;</B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&nbsp;</B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-notes.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+>&nbsp;</TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>XML Security Library Programming Notes</B
+></FONT
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/docs/api-0.0.x/index.sgml b/docs/api-0.0.x/index.sgml
new file mode 100644
index 00000000..fbfe34ac
--- /dev/null
+++ b/docs/api-0.0.x/index.sgml
@@ -0,0 +1,393 @@
+<ANCHOR id ="XMLSEC-XMLSEC" href="xmlsec/xmlsec-xmlsec.html">
+<ANCHOR id ="XMLSECINIT" href="xmlsec/xmlsec-xmlsec.html#XMLSECINIT">
+<ANCHOR id ="XMLSECSHUTDOWN" href="xmlsec/xmlsec-xmlsec.html#XMLSECSHUTDOWN">
+<ANCHOR id ="XMLSEC-XMLDSIG" href="xmlsec/xmlsec-xmldsig.html">
+<ANCHOR id ="XMLSECDSIGCTX" href="xmlsec/xmlsec-xmldsig.html#XMLSECDSIGCTX">
+<ANCHOR id ="XMLSECDSIGCTXCREATE" href="xmlsec/xmlsec-xmldsig.html#XMLSECDSIGCTXCREATE">
+<ANCHOR id ="XMLSECDSIGCTXDESTROY" href="xmlsec/xmlsec-xmldsig.html#XMLSECDSIGCTXDESTROY">
+<ANCHOR id ="XMLSECDSIGVALIDATE" href="xmlsec/xmlsec-xmldsig.html#XMLSECDSIGVALIDATE">
+<ANCHOR id ="XMLSECDSIGGENERATE" href="xmlsec/xmlsec-xmldsig.html#XMLSECDSIGGENERATE">
+<ANCHOR id ="XMLSECDSIGRESULT" href="xmlsec/xmlsec-xmldsig.html#XMLSECDSIGRESULT">
+<ANCHOR id ="XMLSECREFERENCERESULT" href="xmlsec/xmlsec-xmldsig.html#XMLSECREFERENCERESULT">
+<ANCHOR id ="XMLSECREFERENCETYPE" href="xmlsec/xmlsec-xmldsig.html#XMLSECREFERENCETYPE">
+<ANCHOR id ="XMLSECDSIGRESULTCREATE" href="xmlsec/xmlsec-xmldsig.html#XMLSECDSIGRESULTCREATE">
+<ANCHOR id ="XMLSECDSIGRESULTDESTROY" href="xmlsec/xmlsec-xmldsig.html#XMLSECDSIGRESULTDESTROY">
+<ANCHOR id ="XMLSECDSIGRESULTDEBUGDUMP" href="xmlsec/xmlsec-xmldsig.html#XMLSECDSIGRESULTDEBUGDUMP">
+<ANCHOR id ="XMLSECSIGNATURECREATE" href="xmlsec/xmlsec-xmldsig.html#XMLSECSIGNATURECREATE">
+<ANCHOR id ="XMLSECSIGNATUREDESTROY" href="xmlsec/xmlsec-xmldsig.html#XMLSECSIGNATUREDESTROY">
+<ANCHOR id ="XMLSECSIGNATUREADDSIGNEDINFO" href="xmlsec/xmlsec-xmldsig.html#XMLSECSIGNATUREADDSIGNEDINFO">
+<ANCHOR id ="XMLSECSIGNATUREADDKEYINFO" href="xmlsec/xmlsec-xmldsig.html#XMLSECSIGNATUREADDKEYINFO">
+<ANCHOR id ="XMLSECSIGNATUREADDOBJECT" href="xmlsec/xmlsec-xmldsig.html#XMLSECSIGNATUREADDOBJECT">
+<ANCHOR id ="XMLSECSIGNEDINFOADDC14NMETHOD" href="xmlsec/xmlsec-xmldsig.html#XMLSECSIGNEDINFOADDC14NMETHOD">
+<ANCHOR id ="XMLSECSIGNEDINFOADDSIGNMETHOD" href="xmlsec/xmlsec-xmldsig.html#XMLSECSIGNEDINFOADDSIGNMETHOD">
+<ANCHOR id ="XMLSECSIGNEDINFOADDREFERENCE" href="xmlsec/xmlsec-xmldsig.html#XMLSECSIGNEDINFOADDREFERENCE">
+<ANCHOR id ="XMLSECREFERENCEADDDIGESTMETHOD" href="xmlsec/xmlsec-xmldsig.html#XMLSECREFERENCEADDDIGESTMETHOD">
+<ANCHOR id ="XMLSECREFERENCEADDTRANSFORM" href="xmlsec/xmlsec-xmldsig.html#XMLSECREFERENCEADDTRANSFORM">
+<ANCHOR id ="XMLSECOBJECTADDSIGNPROPERTIES" href="xmlsec/xmlsec-xmldsig.html#XMLSECOBJECTADDSIGNPROPERTIES">
+<ANCHOR id ="XMLSECOBJECTADDMANIFEST" href="xmlsec/xmlsec-xmldsig.html#XMLSECOBJECTADDMANIFEST">
+<ANCHOR id ="XMLSECMANIFESTADDREFERENCE" href="xmlsec/xmlsec-xmldsig.html#XMLSECMANIFESTADDREFERENCE">
+<ANCHOR id ="XMLSEC-XMLENC" href="xmlsec/xmlsec-xmlenc.html">
+<ANCHOR id ="XMLSECENCCTX" href="xmlsec/xmlsec-xmlenc.html#XMLSECENCCTX">
+<ANCHOR id ="XMLSECENCCTXCREATE" href="xmlsec/xmlsec-xmlenc.html#XMLSECENCCTXCREATE">
+<ANCHOR id ="XMLSECENCCTXDESTROY" href="xmlsec/xmlsec-xmlenc.html#XMLSECENCCTXDESTROY">
+<ANCHOR id ="XMLSECENCRYPTMEMORY" href="xmlsec/xmlsec-xmlenc.html#XMLSECENCRYPTMEMORY">
+<ANCHOR id ="XMLSECENCRYPTURI" href="xmlsec/xmlsec-xmlenc.html#XMLSECENCRYPTURI">
+<ANCHOR id ="XMLSECENCRYPTXMLNODE" href="xmlsec/xmlsec-xmlenc.html#XMLSECENCRYPTXMLNODE">
+<ANCHOR id ="XMLSECDECRYPT" href="xmlsec/xmlsec-xmlenc.html#XMLSECDECRYPT">
+<ANCHOR id ="XMLSECENCRESULT" href="xmlsec/xmlsec-xmlenc.html#XMLSECENCRESULT">
+<ANCHOR id ="XMLSECENCRESULTCREATE" href="xmlsec/xmlsec-xmlenc.html#XMLSECENCRESULTCREATE">
+<ANCHOR id ="XMLSECENCRESULTDESTROY" href="xmlsec/xmlsec-xmlenc.html#XMLSECENCRESULTDESTROY">
+<ANCHOR id ="XMLSECENCRESULTDEBUGDUMP" href="xmlsec/xmlsec-xmlenc.html#XMLSECENCRESULTDEBUGDUMP">
+<ANCHOR id ="XMLSECENCDATACREATE" href="xmlsec/xmlsec-xmlenc.html#XMLSECENCDATACREATE">
+<ANCHOR id ="XMLSECENCDATADESTROY" href="xmlsec/xmlsec-xmlenc.html#XMLSECENCDATADESTROY">
+<ANCHOR id ="XMLSECENCDATAADDENCMETHOD" href="xmlsec/xmlsec-xmlenc.html#XMLSECENCDATAADDENCMETHOD">
+<ANCHOR id ="XMLSECENCDATAADDKEYINFO" href="xmlsec/xmlsec-xmlenc.html#XMLSECENCDATAADDKEYINFO">
+<ANCHOR id ="XMLSECENCDATAADDENCPROPERTIES" href="xmlsec/xmlsec-xmlenc.html#XMLSECENCDATAADDENCPROPERTIES">
+<ANCHOR id ="XMLSECENCDATAADDENCPROPERTY" href="xmlsec/xmlsec-xmlenc.html#XMLSECENCDATAADDENCPROPERTY">
+<ANCHOR id ="XMLSECENCDATAADDCIPHERVALUE" href="xmlsec/xmlsec-xmlenc.html#XMLSECENCDATAADDCIPHERVALUE">
+<ANCHOR id ="XMLSECENCDATAADDCIPHERREFERENCE" href="xmlsec/xmlsec-xmlenc.html#XMLSECENCDATAADDCIPHERREFERENCE">
+<ANCHOR id ="XMLSECCIPHERREFERENCEADDTRANSFORM" href="xmlsec/xmlsec-xmlenc.html#XMLSECCIPHERREFERENCEADDTRANSFORM">
+<ANCHOR id ="XMLSEC-ERRORS" href="xmlsec/xmlsec-errors.html">
+<ANCHOR id ="XMLSEC-ERRORS-LIB-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-LIB-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-FUNCTION-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-FUNCTION-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-MALLOC-FAILED-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-MALLOC-FAILED-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-XMLSEC-FAILED-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-XMLSEC-FAILED-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-CRYPTO-FAILED-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-CRYPTO-FAILED-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-XML-FAILED-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-XML-FAILED-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-XSLT-FAILED-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-XSLT-FAILED-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-IO-FAILED-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-IO-FAILED-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-INVALID-TRANSFORM-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-TRANSFORM-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-INVALID-TRANSFORM-DATA-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-TRANSFORM-DATA-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-INVALID-TRANSFORM-OR-KEY-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-TRANSFORM-OR-KEY-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-INVALID-KEY-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-KEY-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-INVALID-KEY-DATA-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-KEY-DATA-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-INVALID-KEY-SIZE-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-KEY-SIZE-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-INVALID-KEY-ORIGIN-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-KEY-ORIGIN-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-KEY-NOT-FOUND-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-KEY-NOT-FOUND-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-INVALID-SIZE-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-SIZE-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-INVALID-DATA-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-DATA-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-INVALID-TYPE-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-TYPE-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-INVALID-USAGE-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-USAGE-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-INVALID-NODE-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-NODE-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-INVALID-NODESET-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-NODESET-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-INVALID-NODE-CONTENT-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-NODE-CONTENT-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-INVALID-NODE-ATTRIBUTE-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-NODE-ATTRIBUTE-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-NODE-ALREADY-PRESENT-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-NODE-ALREADY-PRESENT-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-SAME-DOCUMENT-REQUIRED-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-SAME-DOCUMENT-REQUIRED-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-NODE-NOT-FOUND-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-NODE-NOT-FOUND-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-MAX-RETRIEVALS-LEVEL-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-MAX-RETRIEVALS-LEVEL-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-CERT-VERIFY-FAILED-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-CERT-VERIFY-FAILED-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-CERT-NOT-FOUND-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-CERT-NOT-FOUND-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-CERT-REVOKED-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-CERT-REVOKED-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-DSIG-INVALID-REFERENCE-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-DSIG-INVALID-REFERENCE-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-ASSERTION-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-ASSERTION-CAPS">
+<ANCHOR id ="XMLSEC-ERRORS-R-DISABLED-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-R-DISABLED-CAPS">
+<ANCHOR id ="XMLSECERRORSCALLBACK" href="xmlsec/xmlsec-errors.html#XMLSECERRORSCALLBACK">
+<ANCHOR id ="XMLSECERRORSINIT" href="xmlsec/xmlsec-errors.html#XMLSECERRORSINIT">
+<ANCHOR id ="XMLSECERRORSSHUTDOWN" href="xmlsec/xmlsec-errors.html#XMLSECERRORSSHUTDOWN">
+<ANCHOR id ="XMLSECERRORSSETCALLBACK" href="xmlsec/xmlsec-errors.html#XMLSECERRORSSETCALLBACK">
+<ANCHOR id ="XMLSECPRINTERRORMESSAGES" href="xmlsec/xmlsec-errors.html#XMLSECPRINTERRORMESSAGES">
+<ANCHOR id ="XMLSEC-ERRORS-HERE-CAPS" href="xmlsec/xmlsec-errors.html#XMLSEC-ERRORS-HERE-CAPS">
+<ANCHOR id ="XMLSECERROR" href="xmlsec/xmlsec-errors.html#XMLSECERROR">
+<ANCHOR id ="XMLSECASSERT" href="xmlsec/xmlsec-errors.html#XMLSECASSERT">
+<ANCHOR id ="XMLSECASSERT2" href="xmlsec/xmlsec-errors.html#XMLSECASSERT2">
+<ANCHOR id ="XMLSEC-DEBUG" href="xmlsec/xmlsec-debug.html">
+<ANCHOR id ="XMLSECTIMERINIT" href="xmlsec/xmlsec-debug.html#XMLSECTIMERINIT">
+<ANCHOR id ="XMLSECTIMERSTART" href="xmlsec/xmlsec-debug.html#XMLSECTIMERSTART">
+<ANCHOR id ="XMLSECTIMEREND" href="xmlsec/xmlsec-debug.html#XMLSECTIMEREND">
+<ANCHOR id ="XMLSECTIMERGET" href="xmlsec/xmlsec-debug.html#XMLSECTIMERGET">
+<ANCHOR id ="XMLSEC-KEYINFO" href="xmlsec/xmlsec-keyinfo.html">
+<ANCHOR id ="XMLSECKEYINFONODEREAD" href="xmlsec/xmlsec-keyinfo.html#XMLSECKEYINFONODEREAD">
+<ANCHOR id ="XMLSECKEYINFONODEWRITE" href="xmlsec/xmlsec-keyinfo.html#XMLSECKEYINFONODEWRITE">
+<ANCHOR id ="XMLSECKEYINFOADDKEYNAME" href="xmlsec/xmlsec-keyinfo.html#XMLSECKEYINFOADDKEYNAME">
+<ANCHOR id ="XMLSECKEYINFOADDKEYVALUE" href="xmlsec/xmlsec-keyinfo.html#XMLSECKEYINFOADDKEYVALUE">
+<ANCHOR id ="XMLSECKEYINFOADDX509DATA" href="xmlsec/xmlsec-keyinfo.html#XMLSECKEYINFOADDX509DATA">
+<ANCHOR id ="XMLSECKEYINFOADDRETRIEVALMETHOD" href="xmlsec/xmlsec-keyinfo.html#XMLSECKEYINFOADDRETRIEVALMETHOD">
+<ANCHOR id ="XMLSECRETRIEVALMETHODADDTRANSFORM" href="xmlsec/xmlsec-keyinfo.html#XMLSECRETRIEVALMETHODADDTRANSFORM">
+<ANCHOR id ="XMLSECKEYINFOADDENCRYPTEDKEY" href="xmlsec/xmlsec-keyinfo.html#XMLSECKEYINFOADDENCRYPTEDKEY">
+<ANCHOR id ="XMLSEC-KEYS" href="xmlsec/xmlsec-keys.html">
+<ANCHOR id ="XMLSECKEYID" href="xmlsec/xmlsec-keys.html#XMLSECKEYID">
+<ANCHOR id ="XMLSECKEYTYPE" href="xmlsec/xmlsec-keys.html#XMLSECKEYTYPE">
+<ANCHOR id ="XMLSECKEYUSAGE" href="xmlsec/xmlsec-keys.html#XMLSECKEYUSAGE">
+<ANCHOR id ="XMLSECKEYORIGIN" href="xmlsec/xmlsec-keys.html#XMLSECKEYORIGIN">
+<ANCHOR id ="XMLSECKEYORIGINDEFAULT" href="xmlsec/xmlsec-keys.html#XMLSECKEYORIGINDEFAULT">
+<ANCHOR id ="XMLSECKEYORIGINKEYMANAGER" href="xmlsec/xmlsec-keys.html#XMLSECKEYORIGINKEYMANAGER">
+<ANCHOR id ="XMLSECKEYORIGINKEYNAME" href="xmlsec/xmlsec-keys.html#XMLSECKEYORIGINKEYNAME">
+<ANCHOR id ="XMLSECKEYORIGINKEYVALUE" href="xmlsec/xmlsec-keys.html#XMLSECKEYORIGINKEYVALUE">
+<ANCHOR id ="XMLSECKEYORIGINRETRIEVALDOCUMENT" href="xmlsec/xmlsec-keys.html#XMLSECKEYORIGINRETRIEVALDOCUMENT">
+<ANCHOR id ="XMLSECKEYORIGINRETRIEVALREMOTE" href="xmlsec/xmlsec-keys.html#XMLSECKEYORIGINRETRIEVALREMOTE">
+<ANCHOR id ="XMLSECKEYORIGINX509" href="xmlsec/xmlsec-keys.html#XMLSECKEYORIGINX509">
+<ANCHOR id ="XMLSECKEYORIGINPGP" href="xmlsec/xmlsec-keys.html#XMLSECKEYORIGINPGP">
+<ANCHOR id ="XMLSECKEYORIGINENCRYPTEDKEY" href="xmlsec/xmlsec-keys.html#XMLSECKEYORIGINENCRYPTEDKEY">
+<ANCHOR id ="XMLSECKEYORIGINALL" href="xmlsec/xmlsec-keys.html#XMLSECKEYORIGINALL">
+<ANCHOR id ="XMLSECKEYIDUNKNOWN" href="xmlsec/xmlsec-keys.html#XMLSECKEYIDUNKNOWN">
+<ANCHOR id ="XMLSECKEY" href="xmlsec/xmlsec-keys.html#XMLSECKEY">
+<ANCHOR id ="XMLSECKEYCREATE" href="xmlsec/xmlsec-keys.html#XMLSECKEYCREATE">
+<ANCHOR id ="XMLSECKEYDESTROY" href="xmlsec/xmlsec-keys.html#XMLSECKEYDESTROY">
+<ANCHOR id ="XMLSECKEYDUPLICATE" href="xmlsec/xmlsec-keys.html#XMLSECKEYDUPLICATE">
+<ANCHOR id ="XMLSECVERIFYKEY" href="xmlsec/xmlsec-keys.html#XMLSECVERIFYKEY">
+<ANCHOR id ="XMLSECKEYDEBUGDUMP" href="xmlsec/xmlsec-keys.html#XMLSECKEYDEBUGDUMP">
+<ANCHOR id ="XMLSECKEYREADPEMCERT" href="xmlsec/xmlsec-keys.html#XMLSECKEYREADPEMCERT">
+<ANCHOR id ="XMLSECKEYSMNGR" href="xmlsec/xmlsec-keys.html#XMLSECKEYSMNGR">
+<ANCHOR id ="XMLSECGETKEYCALLBACK" href="xmlsec/xmlsec-keys.html#XMLSECGETKEYCALLBACK">
+<ANCHOR id ="XMLSECFINDKEYCALLBACK" href="xmlsec/xmlsec-keys.html#XMLSECFINDKEYCALLBACK">
+<ANCHOR id ="XMLSECX509FINDCALLBACK" href="xmlsec/xmlsec-keys.html#XMLSECX509FINDCALLBACK">
+<ANCHOR id ="XMLSECX509VERIFYCALLBACK" href="xmlsec/xmlsec-keys.html#XMLSECX509VERIFYCALLBACK">
+<ANCHOR id ="XMLSECKEYSMNGRGETKEY" href="xmlsec/xmlsec-keys.html#XMLSECKEYSMNGRGETKEY">
+<ANCHOR id ="XMLSEC-KEYSMNGR" href="xmlsec/xmlsec-keysmngr.html">
+<ANCHOR id ="XMLSECSIMPLEKEYSMNGRCREATE" href="xmlsec/xmlsec-keysmngr.html#XMLSECSIMPLEKEYSMNGRCREATE">
+<ANCHOR id ="XMLSECSIMPLEKEYSMNGRDESTROY" href="xmlsec/xmlsec-keysmngr.html#XMLSECSIMPLEKEYSMNGRDESTROY">
+<ANCHOR id ="XMLSECSIMPLEKEYSMNGRFINDKEY" href="xmlsec/xmlsec-keysmngr.html#XMLSECSIMPLEKEYSMNGRFINDKEY">
+<ANCHOR id ="XMLSECSIMPLEKEYSMNGRADDKEY" href="xmlsec/xmlsec-keysmngr.html#XMLSECSIMPLEKEYSMNGRADDKEY">
+<ANCHOR id ="XMLSECSIMPLEKEYSMNGRLOAD" href="xmlsec/xmlsec-keysmngr.html#XMLSECSIMPLEKEYSMNGRLOAD">
+<ANCHOR id ="XMLSECSIMPLEKEYSMNGRSAVE" href="xmlsec/xmlsec-keysmngr.html#XMLSECSIMPLEKEYSMNGRSAVE">
+<ANCHOR id ="XMLSECSIMPLEKEYSMNGRLOADPEMKEY" href="xmlsec/xmlsec-keysmngr.html#XMLSECSIMPLEKEYSMNGRLOADPEMKEY">
+<ANCHOR id ="XMLSECSIMPLEKEYSMNGRX509FIND" href="xmlsec/xmlsec-keysmngr.html#XMLSECSIMPLEKEYSMNGRX509FIND">
+<ANCHOR id ="XMLSECSIMPLEKEYSMNGRX509VERIFY" href="xmlsec/xmlsec-keysmngr.html#XMLSECSIMPLEKEYSMNGRX509VERIFY">
+<ANCHOR id ="XMLSECSIMPLEKEYSMNGRLOADPEMCERT" href="xmlsec/xmlsec-keysmngr.html#XMLSECSIMPLEKEYSMNGRLOADPEMCERT">
+<ANCHOR id ="XMLSECSIMPLEKEYSMNGRADDCERTSDIR" href="xmlsec/xmlsec-keysmngr.html#XMLSECSIMPLEKEYSMNGRADDCERTSDIR">
+<ANCHOR id ="XMLSECSIMPLEKEYSMNGRLOADPKCS12" href="xmlsec/xmlsec-keysmngr.html#XMLSECSIMPLEKEYSMNGRLOADPKCS12">
+<ANCHOR id ="XMLSEC-TRANSFORMS" href="xmlsec/xmlsec-transforms.html">
+<ANCHOR id ="XMLSECTRANSFORMSTATUS" href="xmlsec/xmlsec-transforms.html#XMLSECTRANSFORMSTATUS">
+<ANCHOR id ="XMLSECTRANSFORMID" href="xmlsec/xmlsec-transforms.html#XMLSECTRANSFORMID">
+<ANCHOR id ="XMLSECTRANSFORMUNKNOWN" href="xmlsec/xmlsec-transforms.html#XMLSECTRANSFORMUNKNOWN">
+<ANCHOR id ="XMLSECENCAES128CBC" href="xmlsec/xmlsec-transforms.html#XMLSECENCAES128CBC">
+<ANCHOR id ="XMLSECENCAES192CBC" href="xmlsec/xmlsec-transforms.html#XMLSECENCAES192CBC">
+<ANCHOR id ="XMLSECENCAES256CBC" href="xmlsec/xmlsec-transforms.html#XMLSECENCAES256CBC">
+<ANCHOR id ="XMLSECKWAES128" href="xmlsec/xmlsec-transforms.html#XMLSECKWAES128">
+<ANCHOR id ="XMLSECKWAES192" href="xmlsec/xmlsec-transforms.html#XMLSECKWAES192">
+<ANCHOR id ="XMLSECKWAES256" href="xmlsec/xmlsec-transforms.html#XMLSECKWAES256">
+<ANCHOR id ="XMLSECENCBASE64ENCODE" href="xmlsec/xmlsec-transforms.html#XMLSECENCBASE64ENCODE">
+<ANCHOR id ="XMLSECENCBASE64DECODE" href="xmlsec/xmlsec-transforms.html#XMLSECENCBASE64DECODE">
+<ANCHOR id ="XMLSECC14NINCLUSIVE" href="xmlsec/xmlsec-transforms.html#XMLSECC14NINCLUSIVE">
+<ANCHOR id ="XMLSECC14NINCLUSIVEWITHCOMMENTS" href="xmlsec/xmlsec-transforms.html#XMLSECC14NINCLUSIVEWITHCOMMENTS">
+<ANCHOR id ="XMLSECC14NEXCLUSIVE" href="xmlsec/xmlsec-transforms.html#XMLSECC14NEXCLUSIVE">
+<ANCHOR id ="XMLSECC14NEXCLUSIVEWITHCOMMENTS" href="xmlsec/xmlsec-transforms.html#XMLSECC14NEXCLUSIVEWITHCOMMENTS">
+<ANCHOR id ="XMLSECENCDES3CBC" href="xmlsec/xmlsec-transforms.html#XMLSECENCDES3CBC">
+<ANCHOR id ="XMLSECKWDES3CBC" href="xmlsec/xmlsec-transforms.html#XMLSECKWDES3CBC">
+<ANCHOR id ="XMLSECSIGNDSASHA1" href="xmlsec/xmlsec-transforms.html#XMLSECSIGNDSASHA1">
+<ANCHOR id ="XMLSECTRANSFORMENVELOPED" href="xmlsec/xmlsec-transforms.html#XMLSECTRANSFORMENVELOPED">
+<ANCHOR id ="XMLSECMACHMACSHA1" href="xmlsec/xmlsec-transforms.html#XMLSECMACHMACSHA1">
+<ANCHOR id ="XMLSECMACHMACRIPEMD160" href="xmlsec/xmlsec-transforms.html#XMLSECMACHMACRIPEMD160">
+<ANCHOR id ="XMLSECMACHMACMD5" href="xmlsec/xmlsec-transforms.html#XMLSECMACHMACMD5">
+<ANCHOR id ="XMLSECDIGESTRIPEMD160" href="xmlsec/xmlsec-transforms.html#XMLSECDIGESTRIPEMD160">
+<ANCHOR id ="XMLSECSIGNRSASHA1" href="xmlsec/xmlsec-transforms.html#XMLSECSIGNRSASHA1">
+<ANCHOR id ="XMLSECENCRSAPKCS1" href="xmlsec/xmlsec-transforms.html#XMLSECENCRSAPKCS1">
+<ANCHOR id ="XMLSECENCRSAOAEP" href="xmlsec/xmlsec-transforms.html#XMLSECENCRSAOAEP">
+<ANCHOR id ="XMLSECDIGESTSHA1" href="xmlsec/xmlsec-transforms.html#XMLSECDIGESTSHA1">
+<ANCHOR id ="XMLSECTRANSFORMXPATH" href="xmlsec/xmlsec-transforms.html#XMLSECTRANSFORMXPATH">
+<ANCHOR id ="XMLSECTRANSFORMXPATH2" href="xmlsec/xmlsec-transforms.html#XMLSECTRANSFORMXPATH2">
+<ANCHOR id ="XMLSECTRANSFORMXPOINTER" href="xmlsec/xmlsec-transforms.html#XMLSECTRANSFORMXPOINTER">
+<ANCHOR id ="XMLSECTRANSFORMXSLT" href="xmlsec/xmlsec-transforms.html#XMLSECTRANSFORMXSLT">
+<ANCHOR id ="XMLSECC14NEXCLADDINCLNAMESPACES" href="xmlsec/xmlsec-transforms.html#XMLSECC14NEXCLADDINCLNAMESPACES">
+<ANCHOR id ="XMLSECHMACADDOUTPUTLENGTH" href="xmlsec/xmlsec-transforms.html#XMLSECHMACADDOUTPUTLENGTH">
+<ANCHOR id ="XMLSECENCRSAOAEPADDPARAM" href="xmlsec/xmlsec-transforms.html#XMLSECENCRSAOAEPADDPARAM">
+<ANCHOR id ="XMLSECTRANSFORMXPATHADD" href="xmlsec/xmlsec-transforms.html#XMLSECTRANSFORMXPATHADD">
+<ANCHOR id ="XMLSECXPATH2TRANSFORMTYPE" href="xmlsec/xmlsec-transforms.html#XMLSECXPATH2TRANSFORMTYPE">
+<ANCHOR id ="XMLSECTRANSFORMXPATH2ADD" href="xmlsec/xmlsec-transforms.html#XMLSECTRANSFORMXPATH2ADD">
+<ANCHOR id ="XMLSECTRANSFORMXPOINTERADD" href="xmlsec/xmlsec-transforms.html#XMLSECTRANSFORMXPOINTERADD">
+<ANCHOR id ="XMLSECTRANSFORMXSLTADD" href="xmlsec/xmlsec-transforms.html#XMLSECTRANSFORMXSLTADD">
+<ANCHOR id ="XMLSECAESKEY" href="xmlsec/xmlsec-transforms.html#XMLSECAESKEY">
+<ANCHOR id ="XMLSECDESKEY" href="xmlsec/xmlsec-transforms.html#XMLSECDESKEY">
+<ANCHOR id ="XMLSECDSAKEY" href="xmlsec/xmlsec-transforms.html#XMLSECDSAKEY">
+<ANCHOR id ="XMLSECHMACKEY" href="xmlsec/xmlsec-transforms.html#XMLSECHMACKEY">
+<ANCHOR id ="XMLSECRSAKEY" href="xmlsec/xmlsec-transforms.html#XMLSECRSAKEY">
+<ANCHOR id ="XMLSECAESKEYGENERATE" href="xmlsec/xmlsec-transforms.html#XMLSECAESKEYGENERATE">
+<ANCHOR id ="XMLSECDESKEYGENERATE" href="xmlsec/xmlsec-transforms.html#XMLSECDESKEYGENERATE">
+<ANCHOR id ="XMLSECDSAKEYGENERATE" href="xmlsec/xmlsec-transforms.html#XMLSECDSAKEYGENERATE">
+<ANCHOR id ="XMLSECHMACKEYGENERATE" href="xmlsec/xmlsec-transforms.html#XMLSECHMACKEYGENERATE">
+<ANCHOR id ="XMLSECRSAKEYGENERATE" href="xmlsec/xmlsec-transforms.html#XMLSECRSAKEYGENERATE">
+<ANCHOR id ="XMLSEC-BASE64-LINESIZE-CAPS" href="xmlsec/xmlsec-transforms.html#XMLSEC-BASE64-LINESIZE-CAPS">
+<ANCHOR id ="XMLSECBASE64ENCODESETLINESIZE" href="xmlsec/xmlsec-transforms.html#XMLSECBASE64ENCODESETLINESIZE">
+<ANCHOR id ="XMLSEC-VERSION" href="xmlsec/xmlsec-version.html">
+<ANCHOR id ="XMLSEC-VERSION-CAPS" href="xmlsec/xmlsec-version.html#XMLSEC-VERSION-CAPS">
+<ANCHOR id ="XMLSEC-VERSION-MAJOR-CAPS" href="xmlsec/xmlsec-version.html#XMLSEC-VERSION-MAJOR-CAPS">
+<ANCHOR id ="XMLSEC-VERSION-MINOR-CAPS" href="xmlsec/xmlsec-version.html#XMLSEC-VERSION-MINOR-CAPS">
+<ANCHOR id ="XMLSEC-VERSION-SUBMINOR-CAPS" href="xmlsec/xmlsec-version.html#XMLSEC-VERSION-SUBMINOR-CAPS">
+<ANCHOR id ="XMLSEC-VERSION-INFO-CAPS" href="xmlsec/xmlsec-version.html#XMLSEC-VERSION-INFO-CAPS">
+<ANCHOR id ="XMLSEC-X509" href="xmlsec/xmlsec-x509.html">
+<ANCHOR id ="XMLSECX509DATACREATE" href="xmlsec/xmlsec-x509.html#XMLSECX509DATACREATE">
+<ANCHOR id ="XMLSECX509DATADESTROY" href="xmlsec/xmlsec-x509.html#XMLSECX509DATADESTROY">
+<ANCHOR id ="XMLSECX509DATAGETCERTSNUMBER" href="xmlsec/xmlsec-x509.html#XMLSECX509DATAGETCERTSNUMBER">
+<ANCHOR id ="XMLSECX509DATAGETCRLSNUMBER" href="xmlsec/xmlsec-x509.html#XMLSECX509DATAGETCRLSNUMBER">
+<ANCHOR id ="XMLSECX509DATAREADDERCERT" href="xmlsec/xmlsec-x509.html#XMLSECX509DATAREADDERCERT">
+<ANCHOR id ="XMLSECX509DATAWRITEDERCERT" href="xmlsec/xmlsec-x509.html#XMLSECX509DATAWRITEDERCERT">
+<ANCHOR id ="XMLSECX509DATAREADDERCRL" href="xmlsec/xmlsec-x509.html#XMLSECX509DATAREADDERCRL">
+<ANCHOR id ="XMLSECX509DATAWRITEDERCRL" href="xmlsec/xmlsec-x509.html#XMLSECX509DATAWRITEDERCRL">
+<ANCHOR id ="XMLSECX509DATAREADPEMCERT" href="xmlsec/xmlsec-x509.html#XMLSECX509DATAREADPEMCERT">
+<ANCHOR id ="XMLSECX509DATADUP" href="xmlsec/xmlsec-x509.html#XMLSECX509DATADUP">
+<ANCHOR id ="XMLSECX509DATACREATEKEY" href="xmlsec/xmlsec-x509.html#XMLSECX509DATACREATEKEY">
+<ANCHOR id ="XMLSECX509DATADEBUGDUMP" href="xmlsec/xmlsec-x509.html#XMLSECX509DATADEBUGDUMP">
+<ANCHOR id ="XMLSECX509STORECREATE" href="xmlsec/xmlsec-x509.html#XMLSECX509STORECREATE">
+<ANCHOR id ="XMLSECX509STOREDESTROY" href="xmlsec/xmlsec-x509.html#XMLSECX509STOREDESTROY">
+<ANCHOR id ="XMLSECX509STOREFIND" href="xmlsec/xmlsec-x509.html#XMLSECX509STOREFIND">
+<ANCHOR id ="XMLSECX509STOREVERIFY" href="xmlsec/xmlsec-x509.html#XMLSECX509STOREVERIFY">
+<ANCHOR id ="XMLSECX509STORELOADPEMCERT" href="xmlsec/xmlsec-x509.html#XMLSECX509STORELOADPEMCERT">
+<ANCHOR id ="XMLSECX509STOREADDCERTSDIR" href="xmlsec/xmlsec-x509.html#XMLSECX509STOREADDCERTSDIR">
+<ANCHOR id ="XMLSECPKCS12READKEY" href="xmlsec/xmlsec-x509.html#XMLSECPKCS12READKEY">
+<ANCHOR id ="XMLSEC-BASE64" href="xmlsec/xmlsec-base64.html">
+<ANCHOR id ="XMLSECBASE64CTXCREATE" href="xmlsec/xmlsec-base64.html#XMLSECBASE64CTXCREATE">
+<ANCHOR id ="XMLSECBASE64CTXDESTROY" href="xmlsec/xmlsec-base64.html#XMLSECBASE64CTXDESTROY">
+<ANCHOR id ="XMLSECBASE64CTXUPDATE" href="xmlsec/xmlsec-base64.html#XMLSECBASE64CTXUPDATE">
+<ANCHOR id ="XMLSECBASE64CTXFINAL" href="xmlsec/xmlsec-base64.html#XMLSECBASE64CTXFINAL">
+<ANCHOR id ="XMLSECBASE64ENCODE" href="xmlsec/xmlsec-base64.html#XMLSECBASE64ENCODE">
+<ANCHOR id ="XMLSECBASE64DECODE" href="xmlsec/xmlsec-base64.html#XMLSECBASE64DECODE">
+<ANCHOR id ="XMLSEC-BN" href="xmlsec/xmlsec-bn.html">
+<ANCHOR id ="XMLSECCRYPTOBINARY2BN" href="xmlsec/xmlsec-bn.html#XMLSECCRYPTOBINARY2BN">
+<ANCHOR id ="XMLSECBN2CRYPTOBINARY" href="xmlsec/xmlsec-bn.html#XMLSECBN2CRYPTOBINARY">
+<ANCHOR id ="XMLSECNODEGETBNVALUE" href="xmlsec/xmlsec-bn.html#XMLSECNODEGETBNVALUE">
+<ANCHOR id ="XMLSECNODESETBNVALUE" href="xmlsec/xmlsec-bn.html#XMLSECNODESETBNVALUE">
+<ANCHOR id ="XMLSEC-BUFFERED" href="xmlsec/xmlsec-buffered.html">
+<ANCHOR id ="XMLSECBUFFEREDTRANSFORM" href="xmlsec/xmlsec-buffered.html#XMLSECBUFFEREDTRANSFORM">
+<ANCHOR id ="XMLSECBUFFEREDTRANSFORMID" href="xmlsec/xmlsec-buffered.html#XMLSECBUFFEREDTRANSFORMID">
+<ANCHOR id ="XMLSECBUFFEREDPROCESSMETHOD" href="xmlsec/xmlsec-buffered.html#XMLSECBUFFEREDPROCESSMETHOD">
+<ANCHOR id ="XMLSECBUFFEREDTRANSFORMREAD" href="xmlsec/xmlsec-buffered.html#XMLSECBUFFEREDTRANSFORMREAD">
+<ANCHOR id ="XMLSECBUFFEREDTRANSFORMWRITE" href="xmlsec/xmlsec-buffered.html#XMLSECBUFFEREDTRANSFORMWRITE">
+<ANCHOR id ="XMLSECBUFFEREDTRANSFORMFLUSH" href="xmlsec/xmlsec-buffered.html#XMLSECBUFFEREDTRANSFORMFLUSH">
+<ANCHOR id ="XMLSECBUFFEREDDESTROY" href="xmlsec/xmlsec-buffered.html#XMLSECBUFFEREDDESTROY">
+<ANCHOR id ="XMLSECBUFFEREDPROCESS" href="xmlsec/xmlsec-buffered.html#XMLSECBUFFEREDPROCESS">
+<ANCHOR id ="XMLSEC-CIPHERS" href="xmlsec/xmlsec-ciphers.html">
+<ANCHOR id ="XMLSECCIPHERTRANSFORM" href="xmlsec/xmlsec-ciphers.html#XMLSECCIPHERTRANSFORM">
+<ANCHOR id ="XMLSECCIPHERTRANSFORMID" href="xmlsec/xmlsec-ciphers.html#XMLSECCIPHERTRANSFORMID">
+<ANCHOR id ="XMLSECCIPHERUPDATEMETHOD" href="xmlsec/xmlsec-ciphers.html#XMLSECCIPHERUPDATEMETHOD">
+<ANCHOR id ="XMLSECCIPHERFINALMETHOD" href="xmlsec/xmlsec-ciphers.html#XMLSECCIPHERFINALMETHOD">
+<ANCHOR id ="XMLSECCIPHERTRANSFORMREAD" href="xmlsec/xmlsec-ciphers.html#XMLSECCIPHERTRANSFORMREAD">
+<ANCHOR id ="XMLSECCIPHERTRANSFORMWRITE" href="xmlsec/xmlsec-ciphers.html#XMLSECCIPHERTRANSFORMWRITE">
+<ANCHOR id ="XMLSECCIPHERTRANSFORMFLUSH" href="xmlsec/xmlsec-ciphers.html#XMLSECCIPHERTRANSFORMFLUSH">
+<ANCHOR id ="XMLSECEVPCIPHERUPDATE" href="xmlsec/xmlsec-ciphers.html#XMLSECEVPCIPHERUPDATE">
+<ANCHOR id ="XMLSECEVPCIPHERFINAL" href="xmlsec/xmlsec-ciphers.html#XMLSECEVPCIPHERFINAL">
+<ANCHOR id ="XMLSECCIPHERUPDATE" href="xmlsec/xmlsec-ciphers.html#XMLSECCIPHERUPDATE">
+<ANCHOR id ="XMLSECCIPHERFINAL" href="xmlsec/xmlsec-ciphers.html#XMLSECCIPHERFINAL">
+<ANCHOR id ="XMLSEC-DIGESTS" href="xmlsec/xmlsec-digests.html">
+<ANCHOR id ="XMLSECDIGESTTRANSFORM" href="xmlsec/xmlsec-digests.html#XMLSECDIGESTTRANSFORM">
+<ANCHOR id ="XMLSECDIGESTTRANSFORMID" href="xmlsec/xmlsec-digests.html#XMLSECDIGESTTRANSFORMID">
+<ANCHOR id ="XMLSECDIGESTUPDATEMETHOD" href="xmlsec/xmlsec-digests.html#XMLSECDIGESTUPDATEMETHOD">
+<ANCHOR id ="XMLSECDIGESTSIGNMETHOD" href="xmlsec/xmlsec-digests.html#XMLSECDIGESTSIGNMETHOD">
+<ANCHOR id ="XMLSECDIGESTVERIFYMETHOD" href="xmlsec/xmlsec-digests.html#XMLSECDIGESTVERIFYMETHOD">
+<ANCHOR id ="XMLSECDIGESTSIGNNODE" href="xmlsec/xmlsec-digests.html#XMLSECDIGESTSIGNNODE">
+<ANCHOR id ="XMLSECDIGESTVERIFYNODE" href="xmlsec/xmlsec-digests.html#XMLSECDIGESTVERIFYNODE">
+<ANCHOR id ="XMLSECDIGESTSETPUSHMODE" href="xmlsec/xmlsec-digests.html#XMLSECDIGESTSETPUSHMODE">
+<ANCHOR id ="XMLSECDIGESTUPDATE" href="xmlsec/xmlsec-digests.html#XMLSECDIGESTUPDATE">
+<ANCHOR id ="XMLSECDIGESTSIGN" href="xmlsec/xmlsec-digests.html#XMLSECDIGESTSIGN">
+<ANCHOR id ="XMLSECDIGESTVERIFY" href="xmlsec/xmlsec-digests.html#XMLSECDIGESTVERIFY">
+<ANCHOR id ="XMLSECDIGESTTRANSFORMREAD" href="xmlsec/xmlsec-digests.html#XMLSECDIGESTTRANSFORMREAD">
+<ANCHOR id ="XMLSECDIGESTTRANSFORMWRITE" href="xmlsec/xmlsec-digests.html#XMLSECDIGESTTRANSFORMWRITE">
+<ANCHOR id ="XMLSECDIGESTTRANSFORMFLUSH" href="xmlsec/xmlsec-digests.html#XMLSECDIGESTTRANSFORMFLUSH">
+<ANCHOR id ="XMLSEC-IO" href="xmlsec/xmlsec-io.html">
+<ANCHOR id ="XMLSECIOINIT" href="xmlsec/xmlsec-io.html#XMLSECIOINIT">
+<ANCHOR id ="XMLSECIOSHUTDOWN" href="xmlsec/xmlsec-io.html#XMLSECIOSHUTDOWN">
+<ANCHOR id ="XMLSECINPUTURI" href="xmlsec/xmlsec-io.html#XMLSECINPUTURI">
+<ANCHOR id ="XMLSECINPUTURITRANSFORMOPEN" href="xmlsec/xmlsec-io.html#XMLSECINPUTURITRANSFORMOPEN">
+<ANCHOR id ="XMLSECCLEANUPINPUTCALLBACKS" href="xmlsec/xmlsec-io.html#XMLSECCLEANUPINPUTCALLBACKS">
+<ANCHOR id ="XMLSECREGISTERDEFAULTINPUTCALLBACKS" href="xmlsec/xmlsec-io.html#XMLSECREGISTERDEFAULTINPUTCALLBACKS">
+<ANCHOR id ="XMLSECREGISTERINPUTCALLBACKS" href="xmlsec/xmlsec-io.html#XMLSECREGISTERINPUTCALLBACKS">
+<ANCHOR id ="XMLSEC-KEYSINTERNAL" href="xmlsec/xmlsec-keysinternal.html">
+<ANCHOR id ="XMLSECKEYINIFITERETRIVALS" href="xmlsec/xmlsec-keysinternal.html#XMLSECKEYINIFITERETRIVALS">
+<ANCHOR id ="XMLSECKEYCREATEMETHOD" href="xmlsec/xmlsec-keysinternal.html#XMLSECKEYCREATEMETHOD">
+<ANCHOR id ="XMLSECKEYDUPLICATEMETHOD" href="xmlsec/xmlsec-keysinternal.html#XMLSECKEYDUPLICATEMETHOD">
+<ANCHOR id ="XMLSECKEYDESTROYMETHOD" href="xmlsec/xmlsec-keysinternal.html#XMLSECKEYDESTROYMETHOD">
+<ANCHOR id ="XMLSECKEYREADXMLMETHOD" href="xmlsec/xmlsec-keysinternal.html#XMLSECKEYREADXMLMETHOD">
+<ANCHOR id ="XMLSECKEYWRITEXMLMETHOD" href="xmlsec/xmlsec-keysinternal.html#XMLSECKEYWRITEXMLMETHOD">
+<ANCHOR id ="XMLSECKEYREADBINARYMETHOD" href="xmlsec/xmlsec-keysinternal.html#XMLSECKEYREADBINARYMETHOD">
+<ANCHOR id ="XMLSECKEYWRITEBINARYMETHOD" href="xmlsec/xmlsec-keysinternal.html#XMLSECKEYWRITEBINARYMETHOD">
+<ANCHOR id ="XMLSECKEYSINIT" href="xmlsec/xmlsec-keysinternal.html#XMLSECKEYSINIT">
+<ANCHOR id ="XMLSECKEYISVALID" href="xmlsec/xmlsec-keysinternal.html#XMLSECKEYISVALID">
+<ANCHOR id ="XMLSECKEYCHECKID" href="xmlsec/xmlsec-keysinternal.html#XMLSECKEYCHECKID">
+<ANCHOR id ="XMLSECKEYCHECKTRANSFORM" href="xmlsec/xmlsec-keysinternal.html#XMLSECKEYCHECKTRANSFORM">
+<ANCHOR id ="XMLSECKEYREADXML" href="xmlsec/xmlsec-keysinternal.html#XMLSECKEYREADXML">
+<ANCHOR id ="XMLSECKEYWRITEXML" href="xmlsec/xmlsec-keysinternal.html#XMLSECKEYWRITEXML">
+<ANCHOR id ="XMLSECKEYREADBIN" href="xmlsec/xmlsec-keysinternal.html#XMLSECKEYREADBIN">
+<ANCHOR id ="XMLSECKEYWRITEBIN" href="xmlsec/xmlsec-keysinternal.html#XMLSECKEYWRITEBIN">
+<ANCHOR id ="XMLSEC-MEMBUF" href="xmlsec/xmlsec-membuf.html">
+<ANCHOR id ="XMLSECMEMBUF" href="xmlsec/xmlsec-membuf.html#XMLSECMEMBUF">
+<ANCHOR id ="XMLSECMEMBUFTRANSFORMGETBUFFER" href="xmlsec/xmlsec-membuf.html#XMLSECMEMBUFTRANSFORMGETBUFFER">
+<ANCHOR id ="XMLSEC-NODESET" href="xmlsec/xmlsec-nodeset.html">
+<ANCHOR id ="XMLSECNODESETTYPE" href="xmlsec/xmlsec-nodeset.html#XMLSECNODESETTYPE">
+<ANCHOR id ="XMLSECNODESETOP" href="xmlsec/xmlsec-nodeset.html#XMLSECNODESETOP">
+<ANCHOR id ="XMLSECNODESET" href="xmlsec/xmlsec-nodeset.html#XMLSECNODESET">
+<ANCHOR id ="XMLSECNODESETWALKCALLBACK" href="xmlsec/xmlsec-nodeset.html#XMLSECNODESETWALKCALLBACK">
+<ANCHOR id ="XMLSECNODESETCREATE" href="xmlsec/xmlsec-nodeset.html#XMLSECNODESETCREATE">
+<ANCHOR id ="XMLSECNODESETDESTROY" href="xmlsec/xmlsec-nodeset.html#XMLSECNODESETDESTROY">
+<ANCHOR id ="XMLSECNODESETCONTAINS" href="xmlsec/xmlsec-nodeset.html#XMLSECNODESETCONTAINS">
+<ANCHOR id ="XMLSECNODESETADD" href="xmlsec/xmlsec-nodeset.html#XMLSECNODESETADD">
+<ANCHOR id ="XMLSECNODESETADDLIST" href="xmlsec/xmlsec-nodeset.html#XMLSECNODESETADDLIST">
+<ANCHOR id ="XMLSECNODESETGETCHILDREN" href="xmlsec/xmlsec-nodeset.html#XMLSECNODESETGETCHILDREN">
+<ANCHOR id ="XMLSECNODESETWALK" href="xmlsec/xmlsec-nodeset.html#XMLSECNODESETWALK">
+<ANCHOR id ="XMLSECNODESETDEBUGDUMP" href="xmlsec/xmlsec-nodeset.html#XMLSECNODESETDEBUGDUMP">
+<ANCHOR id ="XMLSEC-TRANSFORMSINTERNAL" href="xmlsec/xmlsec-transformsinternal.html">
+<ANCHOR id ="XMLSECTRANSFORMTYPE" href="xmlsec/xmlsec-transformsinternal.html#XMLSECTRANSFORMTYPE">
+<ANCHOR id ="XMLSECTRANSFORMUSAGE" href="xmlsec/xmlsec-transformsinternal.html#XMLSECTRANSFORMUSAGE">
+<ANCHOR id ="XMLSECUSAGEANY" href="xmlsec/xmlsec-transformsinternal.html#XMLSECUSAGEANY">
+<ANCHOR id ="XMLSECUSAGEDSIGC14N" href="xmlsec/xmlsec-transformsinternal.html#XMLSECUSAGEDSIGC14N">
+<ANCHOR id ="XMLSECUSAGEDSIGTRANSFORM" href="xmlsec/xmlsec-transformsinternal.html#XMLSECUSAGEDSIGTRANSFORM">
+<ANCHOR id ="XMLSECUSAGEDSIGDIGEST" href="xmlsec/xmlsec-transformsinternal.html#XMLSECUSAGEDSIGDIGEST">
+<ANCHOR id ="XMLSECUSAGEDSIGSIGNATURE" href="xmlsec/xmlsec-transformsinternal.html#XMLSECUSAGEDSIGSIGNATURE">
+<ANCHOR id ="XMLSECUSAGEENCRYPTIONMETHOD" href="xmlsec/xmlsec-transformsinternal.html#XMLSECUSAGEENCRYPTIONMETHOD">
+<ANCHOR id ="XMLSECTRANSFORMRESULT" href="xmlsec/xmlsec-transformsinternal.html#XMLSECTRANSFORMRESULT">
+<ANCHOR id ="XMLSECTRANSFORM" href="xmlsec/xmlsec-transformsinternal.html#XMLSECTRANSFORM">
+<ANCHOR id ="XMLSECTRANSFORMSINIT" href="xmlsec/xmlsec-transformsinternal.html#XMLSECTRANSFORMSINIT">
+<ANCHOR id ="XMLSECTRANSFORMSNODEREAD" href="xmlsec/xmlsec-transformsinternal.html#XMLSECTRANSFORMSNODEREAD">
+<ANCHOR id ="XMLSECTRANSFORMFIND" href="xmlsec/xmlsec-transformsinternal.html#XMLSECTRANSFORMFIND">
+<ANCHOR id ="XMLSECTRANSFORMNODEREAD" href="xmlsec/xmlsec-transformsinternal.html#XMLSECTRANSFORMNODEREAD">
+<ANCHOR id ="XMLSECTRANSFORMNODEWRITE" href="xmlsec/xmlsec-transformsinternal.html#XMLSECTRANSFORMNODEWRITE">
+<ANCHOR id ="XMLSECTRANSFORMISVALID" href="xmlsec/xmlsec-transformsinternal.html#XMLSECTRANSFORMISVALID">
+<ANCHOR id ="XMLSECTRANSFORMCHECKTYPE" href="xmlsec/xmlsec-transformsinternal.html#XMLSECTRANSFORMCHECKTYPE">
+<ANCHOR id ="XMLSECTRANSFORMCHECKID" href="xmlsec/xmlsec-transformsinternal.html#XMLSECTRANSFORMCHECKID">
+<ANCHOR id ="XMLSECTRANSFORMCREATE" href="xmlsec/xmlsec-transformsinternal.html#XMLSECTRANSFORMCREATE">
+<ANCHOR id ="XMLSECTRANSFORMDESTROY" href="xmlsec/xmlsec-transformsinternal.html#XMLSECTRANSFORMDESTROY">
+<ANCHOR id ="XMLSECTRANSFORMREAD" href="xmlsec/xmlsec-transformsinternal.html#XMLSECTRANSFORMREAD">
+<ANCHOR id ="XMLSECTRANSFORMCREATEMETHOD" href="xmlsec/xmlsec-transformsinternal.html#XMLSECTRANSFORMCREATEMETHOD">
+<ANCHOR id ="XMLSECTRANSFORMDESTROYMETHOD" href="xmlsec/xmlsec-transformsinternal.html#XMLSECTRANSFORMDESTROYMETHOD">
+<ANCHOR id ="XMLSECTRANSFORMREADNODEMETHOD" href="xmlsec/xmlsec-transformsinternal.html#XMLSECTRANSFORMREADNODEMETHOD">
+<ANCHOR id ="XMLSECBINTRANSFORMID" href="xmlsec/xmlsec-transformsinternal.html#XMLSECBINTRANSFORMID">
+<ANCHOR id ="XMLSECBINTRANSFORM" href="xmlsec/xmlsec-transformsinternal.html#XMLSECBINTRANSFORM">
+<ANCHOR id ="XMLSECBINTRANSFORMSUBTYPE" href="xmlsec/xmlsec-transformsinternal.html#XMLSECBINTRANSFORMSUBTYPE">
+<ANCHOR id ="XMLSECBINTRANSFORMIDCHECKKEYID" href="xmlsec/xmlsec-transformsinternal.html#XMLSECBINTRANSFORMIDCHECKKEYID">
+<ANCHOR id ="XMLSECBINTRANSFORMIDGETKEYID" href="xmlsec/xmlsec-transformsinternal.html#XMLSECBINTRANSFORMIDGETKEYID">
+<ANCHOR id ="XMLSECBINTRANSFORMCHECKSUBTYPE" href="xmlsec/xmlsec-transformsinternal.html#XMLSECBINTRANSFORMCHECKSUBTYPE">
+<ANCHOR id ="XMLSECBINTRANSFORMIDGETENCKEYTYPE" href="xmlsec/xmlsec-transformsinternal.html#XMLSECBINTRANSFORMIDGETENCKEYTYPE">
+<ANCHOR id ="XMLSECBINTRANSFORMIDGETDECKEYTYPE" href="xmlsec/xmlsec-transformsinternal.html#XMLSECBINTRANSFORMIDGETDECKEYTYPE">
+<ANCHOR id ="XMLSECBINTRANSFORMADDKEY" href="xmlsec/xmlsec-transformsinternal.html#XMLSECBINTRANSFORMADDKEY">
+<ANCHOR id ="XMLSECBINTRANSFORMREAD" href="xmlsec/xmlsec-transformsinternal.html#XMLSECBINTRANSFORMREAD">
+<ANCHOR id ="XMLSECBINTRANSFORMWRITE" href="xmlsec/xmlsec-transformsinternal.html#XMLSECBINTRANSFORMWRITE">
+<ANCHOR id ="XMLSECBINTRANSFORMFLUSH" href="xmlsec/xmlsec-transformsinternal.html#XMLSECBINTRANSFORMFLUSH">
+<ANCHOR id ="XMLSECBINTRANSFORMADDAFTER" href="xmlsec/xmlsec-transformsinternal.html#XMLSECBINTRANSFORMADDAFTER">
+<ANCHOR id ="XMLSECBINTRANSFORMADDBEFORE" href="xmlsec/xmlsec-transformsinternal.html#XMLSECBINTRANSFORMADDBEFORE">
+<ANCHOR id ="XMLSECBINTRANSFORMREMOVE" href="xmlsec/xmlsec-transformsinternal.html#XMLSECBINTRANSFORMREMOVE">
+<ANCHOR id ="XMLSECBINTRANSFORMDESTROYALL" href="xmlsec/xmlsec-transformsinternal.html#XMLSECBINTRANSFORMDESTROYALL">
+<ANCHOR id ="XMLSECBINTRANSFORMSETENCRYPT" href="xmlsec/xmlsec-transformsinternal.html#XMLSECBINTRANSFORMSETENCRYPT">
+<ANCHOR id ="XMLSECBINTRANSFORMADDKEYMETHOD" href="xmlsec/xmlsec-transformsinternal.html#XMLSECBINTRANSFORMADDKEYMETHOD">
+<ANCHOR id ="XMLSECBINTRANSFORMREADMETHOD" href="xmlsec/xmlsec-transformsinternal.html#XMLSECBINTRANSFORMREADMETHOD">
+<ANCHOR id ="XMLSECBINTRANSFORMWRITEMETHOD" href="xmlsec/xmlsec-transformsinternal.html#XMLSECBINTRANSFORMWRITEMETHOD">
+<ANCHOR id ="XMLSECBINTRANSFORMFLUSHMETHOD" href="xmlsec/xmlsec-transformsinternal.html#XMLSECBINTRANSFORMFLUSHMETHOD">
+<ANCHOR id ="XMLSECXMLTRANSFORMID" href="xmlsec/xmlsec-transformsinternal.html#XMLSECXMLTRANSFORMID">
+<ANCHOR id ="XMLSECXMLTRANSFORM" href="xmlsec/xmlsec-transformsinternal.html#XMLSECXMLTRANSFORM">
+<ANCHOR id ="XMLSECXMLTRANSFORMEXECUTEMETHOD" href="xmlsec/xmlsec-transformsinternal.html#XMLSECXMLTRANSFORMEXECUTEMETHOD">
+<ANCHOR id ="XMLSECXMLTRANSFORMEXECUTE" href="xmlsec/xmlsec-transformsinternal.html#XMLSECXMLTRANSFORMEXECUTE">
+<ANCHOR id ="XMLSECC14NTRANSFORMID" href="xmlsec/xmlsec-transformsinternal.html#XMLSECC14NTRANSFORMID">
+<ANCHOR id ="XMLSECC14NTRANSFORM" href="xmlsec/xmlsec-transformsinternal.html#XMLSECC14NTRANSFORM">
+<ANCHOR id ="XMLSECC14NTRANSFORMEXECUTEMETHOD" href="xmlsec/xmlsec-transformsinternal.html#XMLSECC14NTRANSFORMEXECUTEMETHOD">
+<ANCHOR id ="XMLSECC14NTRANSFORMEXECUTE" href="xmlsec/xmlsec-transformsinternal.html#XMLSECC14NTRANSFORMEXECUTE">
+<ANCHOR id ="XMLSECTRANSFORMSTATE" href="xmlsec/xmlsec-transformsinternal.html#XMLSECTRANSFORMSTATE">
+<ANCHOR id ="XMLSECTRANSFORMSTATECREATE" href="xmlsec/xmlsec-transformsinternal.html#XMLSECTRANSFORMSTATECREATE">
+<ANCHOR id ="XMLSECTRANSFORMSTATEDESTROY" href="xmlsec/xmlsec-transformsinternal.html#XMLSECTRANSFORMSTATEDESTROY">
+<ANCHOR id ="XMLSECTRANSFORMSTATEUPDATE" href="xmlsec/xmlsec-transformsinternal.html#XMLSECTRANSFORMSTATEUPDATE">
+<ANCHOR id ="XMLSECTRANSFORMSTATEFINAL" href="xmlsec/xmlsec-transformsinternal.html#XMLSECTRANSFORMSTATEFINAL">
+<ANCHOR id ="XMLSEC-XMLTREE" href="xmlsec/xmlsec-xmltree.html">
+<ANCHOR id ="XMLSECPARSEFILE" href="xmlsec/xmlsec-xmltree.html#XMLSECPARSEFILE">
+<ANCHOR id ="XMLSECPARSEMEMORY" href="xmlsec/xmlsec-xmltree.html#XMLSECPARSEMEMORY">
+<ANCHOR id ="XMLSECPARSEMEMORYEXT" href="xmlsec/xmlsec-xmltree.html#XMLSECPARSEMEMORYEXT">
+<ANCHOR id ="XMLSECCHECKNODENAME" href="xmlsec/xmlsec-xmltree.html#XMLSECCHECKNODENAME">
+<ANCHOR id ="XMLSECGETNEXTELEMENTNODE" href="xmlsec/xmlsec-xmltree.html#XMLSECGETNEXTELEMENTNODE">
+<ANCHOR id ="XMLSECFINDCHILD" href="xmlsec/xmlsec-xmltree.html#XMLSECFINDCHILD">
+<ANCHOR id ="XMLSECFINDPARENT" href="xmlsec/xmlsec-xmltree.html#XMLSECFINDPARENT">
+<ANCHOR id ="XMLSECFINDNODE" href="xmlsec/xmlsec-xmltree.html#XMLSECFINDNODE">
+<ANCHOR id ="XMLSECADDCHILD" href="xmlsec/xmlsec-xmltree.html#XMLSECADDCHILD">
+<ANCHOR id ="XMLSECADDNEXTSIBLING" href="xmlsec/xmlsec-xmltree.html#XMLSECADDNEXTSIBLING">
+<ANCHOR id ="XMLSECADDPREVSIBLING" href="xmlsec/xmlsec-xmltree.html#XMLSECADDPREVSIBLING">
+<ANCHOR id ="XMLSECREPLACENODE" href="xmlsec/xmlsec-xmltree.html#XMLSECREPLACENODE">
+<ANCHOR id ="XMLSECREPLACECONTENT" href="xmlsec/xmlsec-xmltree.html#XMLSECREPLACECONTENT">
+<ANCHOR id ="XMLSECREPLACENODEBUFFER" href="xmlsec/xmlsec-xmltree.html#XMLSECREPLACENODEBUFFER">
+<ANCHOR id ="XMLSECADDIDS" href="xmlsec/xmlsec-xmltree.html#XMLSECADDIDS">
+<ANCHOR id ="XMLSECGETHEX" href="xmlsec/xmlsec-xmltree.html#XMLSECGETHEX">
+<ANCHOR id ="XMLSECISHEX" href="xmlsec/xmlsec-xmltree.html#XMLSECISHEX">
diff --git a/docs/api-0.0.x/sgml.stamp b/docs/api-0.0.x/sgml.stamp
new file mode 100644
index 00000000..e0cb1394
--- /dev/null
+++ b/docs/api-0.0.x/sgml.stamp
@@ -0,0 +1 @@
+timestamp \ No newline at end of file
diff --git a/docs/api-0.0.x/sgml/base64.sgml b/docs/api-0.0.x/sgml/base64.sgml
new file mode 100644
index 00000000..af3a5c39
--- /dev/null
+++ b/docs/api-0.0.x/sgml/base64.sgml
@@ -0,0 +1,216 @@
+<refentry id="xmlsec-base64">
+<refmeta>
+<refentrytitle>base64.h</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>XMLSEC Library</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>base64.h</refname><refpurpose>The BASE64 encode/decode functions.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><title>Synopsis</title>
+<synopsis>
+
+
+
+<link linkend="xmlSecBase64CtxPtr">xmlSecBase64CtxPtr</link> <link linkend="xmlSecBase64CtxCreate">xmlSecBase64CtxCreate</link> (int encode,
+ int columns);
+void <link linkend="xmlSecBase64CtxDestroy">xmlSecBase64CtxDestroy</link> (<link linkend="xmlSecBase64CtxPtr">xmlSecBase64CtxPtr</link> ctx);
+int <link linkend="xmlSecBase64CtxUpdate">xmlSecBase64CtxUpdate</link> (<link linkend="xmlSecBase64CtxPtr">xmlSecBase64CtxPtr</link> ctx,
+ unsigned char *in,
+ <link linkend="size-t">size_t</link> inLen,
+ unsigned char *out,
+ <link linkend="size-t">size_t</link> outLen);
+int <link linkend="xmlSecBase64CtxFinal">xmlSecBase64CtxFinal</link> (<link linkend="xmlSecBase64CtxPtr">xmlSecBase64CtxPtr</link> ctx,
+ unsigned char *out,
+ <link linkend="size-t">size_t</link> outLen);
+<link linkend="xmlChar">xmlChar</link>* <link linkend="xmlSecBase64Encode">xmlSecBase64Encode</link> (unsigned char *buf,
+ <link linkend="size-t">size_t</link> len,
+ int columns);
+int <link linkend="xmlSecBase64Decode">xmlSecBase64Decode</link> (const <link linkend="xmlChar">xmlChar</link> *str,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> len);
+</synopsis>
+</refsynopsisdiv>
+
+
+
+
+
+<refsect1>
+<title>Description</title>
+<para>
+
+</para>
+</refsect1>
+
+<refsect1>
+<title>Details</title>
+<refsect2>
+<title><anchor id="xmlSecBase64CtxCreate">xmlSecBase64CtxCreate ()</title>
+<programlisting><link linkend="xmlSecBase64CtxPtr">xmlSecBase64CtxPtr</link> xmlSecBase64CtxCreate (int encode,
+ int columns);</programlisting>
+<para>
+Creates new base64 context.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>encode</parameter>&nbsp;:</entry>
+<entry> the encode/decode flag (1 - encode, 0 - decode)
+</entry></row>
+<row><entry align="right"><parameter>columns</parameter>&nbsp;:</entry>
+<entry> the max line length.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>a pointer to newly created <link linkend="xmlSecBase64Ctx">xmlSecBase64Ctx</link> structure
+or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBase64CtxDestroy">xmlSecBase64CtxDestroy ()</title>
+<programlisting>void xmlSecBase64CtxDestroy (<link linkend="xmlSecBase64CtxPtr">xmlSecBase64CtxPtr</link> ctx);</programlisting>
+<para>
+Destroys base64 context.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>ctx</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecBase64Ctx">xmlSecBase64Ctx</link> structure.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBase64CtxUpdate">xmlSecBase64CtxUpdate ()</title>
+<programlisting>int xmlSecBase64CtxUpdate (<link linkend="xmlSecBase64CtxPtr">xmlSecBase64CtxPtr</link> ctx,
+ unsigned char *in,
+ <link linkend="size-t">size_t</link> inLen,
+ unsigned char *out,
+ <link linkend="size-t">size_t</link> outLen);</programlisting>
+<para>
+Encodes/decodes the next piece of data from input buffer.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>ctx</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecBase64Ctx">xmlSecBase64Ctx</link> structure
+</entry></row>
+<row><entry align="right"><parameter>in</parameter>&nbsp;:</entry>
+<entry> the input buffer
+</entry></row>
+<row><entry align="right"><parameter>inLen</parameter>&nbsp;:</entry>
+<entry> the input buffer size
+</entry></row>
+<row><entry align="right"><parameter>out</parameter>&nbsp;:</entry>
+<entry> the output buffer
+</entry></row>
+<row><entry align="right"><parameter>outLen</parameter>&nbsp;:</entry>
+<entry> the output buffer size
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the number of bytes written to output buffer or
+-1 if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBase64CtxFinal">xmlSecBase64CtxFinal ()</title>
+<programlisting>int xmlSecBase64CtxFinal (<link linkend="xmlSecBase64CtxPtr">xmlSecBase64CtxPtr</link> ctx,
+ unsigned char *out,
+ <link linkend="size-t">size_t</link> outLen);</programlisting>
+<para>
+Encodes/decodes the last piece of data stored in the context
+and finalizes the result.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>ctx</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecBase64Ctx">xmlSecBase64Ctx</link> structure
+</entry></row>
+<row><entry align="right"><parameter>out</parameter>&nbsp;:</entry>
+<entry> the output buffer
+</entry></row>
+<row><entry align="right"><parameter>outLen</parameter>&nbsp;:</entry>
+<entry> the output buffer size
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the number of bytes written to output buffer or
+-1 if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBase64Encode">xmlSecBase64Encode ()</title>
+<programlisting><link linkend="xmlChar">xmlChar</link>* xmlSecBase64Encode (unsigned char *buf,
+ <link linkend="size-t">size_t</link> len,
+ int columns);</programlisting>
+<para>
+Encodes the data from input buffer and allocates the string for the result.
+The caller is responsible for freeing returned buffer using
+<link linkend="xmlFree">xmlFree</link>() function.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>buf</parameter>&nbsp;:</entry>
+<entry> the input buffer.
+</entry></row>
+<row><entry align="right"><parameter>len</parameter>&nbsp;:</entry>
+<entry> the input buffer size.
+</entry></row>
+<row><entry align="right"><parameter>columns</parameter>&nbsp;:</entry>
+<entry> the output max line length (if 0 then no line breaks
+ would be inserted)
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>newly allocated string with base64 encoded data
+or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBase64Decode">xmlSecBase64Decode ()</title>
+<programlisting>int xmlSecBase64Decode (const <link linkend="xmlChar">xmlChar</link> *str,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> len);</programlisting>
+<para>
+Decodes input base64 encoded string and puts result into
+the output buffer.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>str</parameter>&nbsp;:</entry>
+<entry> the input buffer with base64 encoded string
+</entry></row>
+<row><entry align="right"><parameter>buf</parameter>&nbsp;:</entry>
+<entry> the output buffer
+</entry></row>
+<row><entry align="right"><parameter>len</parameter>&nbsp;:</entry>
+<entry> the output buffer size
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the number of bytes written to the output buffer or
+a negative value if an error occurs
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+
+</refsect1>
+
+
+
+
+</refentry>
diff --git a/docs/api-0.0.x/sgml/bn.sgml b/docs/api-0.0.x/sgml/bn.sgml
new file mode 100644
index 00000000..21a18e47
--- /dev/null
+++ b/docs/api-0.0.x/sgml/bn.sgml
@@ -0,0 +1,151 @@
+<refentry id="xmlsec-bn">
+<refmeta>
+<refentrytitle>bn.h</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>XMLSEC Library</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>bn.h</refname><refpurpose>The big numbers helper functions.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><title>Synopsis</title>
+<synopsis>
+
+
+
+<link linkend="BIGNUM-CAPS">BIGNUM</link>* <link linkend="xmlSecCryptoBinary2BN">xmlSecCryptoBinary2BN</link> (const <link linkend="xmlChar">xmlChar</link> *str,
+ <link linkend="BIGNUM-CAPS">BIGNUM</link> **a);
+<link linkend="xmlChar">xmlChar</link>* <link linkend="xmlSecBN2CryptoBinary">xmlSecBN2CryptoBinary</link> (const <link linkend="BIGNUM-CAPS">BIGNUM</link> *a);
+<link linkend="BIGNUM-CAPS">BIGNUM</link>* <link linkend="xmlSecNodeGetBNValue">xmlSecNodeGetBNValue</link> (const <link linkend="xmlNodePtr">xmlNodePtr</link> cur,
+ <link linkend="BIGNUM-CAPS">BIGNUM</link> **a);
+int <link linkend="xmlSecNodeSetBNValue">xmlSecNodeSetBNValue</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> cur,
+ const <link linkend="BIGNUM-CAPS">BIGNUM</link> *a,
+ int addLineBreaks);
+</synopsis>
+</refsynopsisdiv>
+
+
+
+
+
+<refsect1>
+<title>Description</title>
+<para>
+
+</para>
+</refsect1>
+
+<refsect1>
+<title>Details</title>
+<refsect2>
+<title><anchor id="xmlSecCryptoBinary2BN">xmlSecCryptoBinary2BN ()</title>
+<programlisting><link linkend="BIGNUM-CAPS">BIGNUM</link>* xmlSecCryptoBinary2BN (const <link linkend="xmlChar">xmlChar</link> *str,
+ <link linkend="BIGNUM-CAPS">BIGNUM</link> **a);</programlisting>
+<para>
+Converts string from CryptoBinary format
+(http://www.w3.org/TR/xmldsig-core/<link linkend="sec-CryptoBinary">sec-CryptoBinary</link>)
+to a BIGNUM. If no BIGNUM buffer provided then a new
+BIGNUM is created (caller is responsible for freeing it).</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>str</parameter>&nbsp;:</entry>
+<entry> the CryptoBinary string.
+</entry></row>
+<row><entry align="right"><parameter>a</parameter>&nbsp;:</entry>
+<entry> the buffer to store the result.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>a pointer to BIGNUM produced from CryptoBinary string
+or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBN2CryptoBinary">xmlSecBN2CryptoBinary ()</title>
+<programlisting><link linkend="xmlChar">xmlChar</link>* xmlSecBN2CryptoBinary (const <link linkend="BIGNUM-CAPS">BIGNUM</link> *a);</programlisting>
+<para>
+Converts BIGNUM to CryptoBinary string
+(http://www.w3.org/TR/xmldsig-core/<link linkend="sec-CryptoBinary">sec-CryptoBinary</link>).</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>a</parameter>&nbsp;:</entry>
+<entry> the pointer to BIGNUM.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>newly allocated string (caller is responsible for
+freeing it using <link linkend="xmlFree">xmlFree</link>() function) or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecNodeGetBNValue">xmlSecNodeGetBNValue ()</title>
+<programlisting><link linkend="BIGNUM-CAPS">BIGNUM</link>* xmlSecNodeGetBNValue (const <link linkend="xmlNodePtr">xmlNodePtr</link> cur,
+ <link linkend="BIGNUM-CAPS">BIGNUM</link> **a);</programlisting>
+<para>
+Converts the node content from CryptoBinary format
+(http://www.w3.org/TR/xmldsig-core/<link linkend="sec-CryptoBinary">sec-CryptoBinary</link>)
+to a BIGNUM. If no BIGNUM buffer provided then a new
+BIGNUM is created (caller is responsible for freeing it).</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>cur</parameter>&nbsp;:</entry>
+<entry> the poitner to an XML node.
+</entry></row>
+<row><entry align="right"><parameter>a</parameter>&nbsp;:</entry>
+<entry> the BIGNUM buffer.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>a pointer to BIGNUM produced from CryptoBinary string
+or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecNodeSetBNValue">xmlSecNodeSetBNValue ()</title>
+<programlisting>int xmlSecNodeSetBNValue (<link linkend="xmlNodePtr">xmlNodePtr</link> cur,
+ const <link linkend="BIGNUM-CAPS">BIGNUM</link> *a,
+ int addLineBreaks);</programlisting>
+<para>
+Converts BIGNUM to CryptoBinary string
+(http://www.w3.org/TR/xmldsig-core/<link linkend="sec-CryptoBinary">sec-CryptoBinary</link>)
+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.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>cur</parameter>&nbsp;:</entry>
+<entry> the pointer to an XML node.
+</entry></row>
+<row><entry align="right"><parameter>a</parameter>&nbsp;:</entry>
+<entry> the BIGNUM.
+</entry></row>
+<row><entry align="right"><parameter>addLineBreaks</parameter>&nbsp;:</entry>
+<entry> if the flag is equal to 1 then
+ linebreaks will be added before and after
+ new buffer content.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or -1 otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+
+</refsect1>
+
+
+
+
+</refentry>
diff --git a/docs/api-0.0.x/sgml/buffered.sgml b/docs/api-0.0.x/sgml/buffered.sgml
new file mode 100644
index 00000000..96e11e0c
--- /dev/null
+++ b/docs/api-0.0.x/sgml/buffered.sgml
@@ -0,0 +1,269 @@
+<refentry id="xmlsec-buffered">
+<refmeta>
+<refentrytitle>buffered.h</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>XMLSEC Library</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>buffered.h</refname><refpurpose>The buffered transform.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><title>Synopsis</title>
+<synopsis>
+
+
+
+struct <link linkend="xmlSecBufferedTransform">xmlSecBufferedTransform</link>;
+typedef <link linkend="xmlSecBufferedTransformId">xmlSecBufferedTransformId</link>;
+int (<link linkend="xmlSecBufferedProcessMethod">*xmlSecBufferedProcessMethod</link>) (<link linkend="xmlSecBufferedTransformPtr">xmlSecBufferedTransformPtr</link> transform,
+ <link linkend="xmlBufferPtr">xmlBufferPtr</link> buffer);
+int <link linkend="xmlSecBufferedTransformRead">xmlSecBufferedTransformRead</link> (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);
+int <link linkend="xmlSecBufferedTransformWrite">xmlSecBufferedTransformWrite</link> (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);
+int <link linkend="xmlSecBufferedTransformFlush">xmlSecBufferedTransformFlush</link> (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform);
+void <link linkend="xmlSecBufferedDestroy">xmlSecBufferedDestroy</link> (<link linkend="xmlSecBufferedTransformPtr">xmlSecBufferedTransformPtr</link> buffered);
+int <link linkend="xmlSecBufferedProcess">xmlSecBufferedProcess</link> (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform,
+ <link linkend="xmlBufferPtr">xmlBufferPtr</link> buffer);
+</synopsis>
+</refsynopsisdiv>
+
+
+
+
+
+<refsect1>
+<title>Description</title>
+<para>
+
+</para>
+</refsect1>
+
+<refsect1>
+<title>Details</title>
+<refsect2>
+<title><anchor id="xmlSecBufferedTransform">struct xmlSecBufferedTransform</title>
+<programlisting>struct xmlSecBufferedTransform {
+ /* same as for xmlSecTransform but id type changed */
+ xmlSecBufferedTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+
+ /* xmlSecBinTransform specific */
+ int encode;
+ xmlSecBinTransformPtr next;
+ xmlSecBinTransformPtr prev;
+ void *binData;
+
+ /* xmlSecBufferedTransform specific */
+ xmlBufferPtr buffer;
+};
+</programlisting>
+<para>
+The buffered transform.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="struct">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row>
+<entry><link linkend="xmlSecBufferedTransformId">xmlSecBufferedTransformId</link> <structfield>id</structfield></entry>
+<entry> the transform id (pointer to <link linkend="xmlSecBinTransformId">xmlSecBinTransformId</link>).
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecTransformStatus">xmlSecTransformStatus</link> <structfield>status</structfield></entry>
+<entry> the transform status (ok/fail/unknown).
+</entry>
+</row>
+<row>
+<entry>int <structfield>dontDestroy</structfield></entry>
+<entry> the don't automatically destroy flag.
+</entry>
+</row>
+<row>
+<entry>void *<structfield>data</structfield></entry>
+<entry> the pointer to transform specific data.
+</entry>
+</row>
+<row>
+<entry>int <structfield>encode</structfield></entry>
+<entry> encode/decode (encrypt/decrypt) flag.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> <structfield>next</structfield></entry>
+<entry> next binary transform in the chain.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> <structfield>prev</structfield></entry>
+<entry> previous binary transform in the chain.
+</entry>
+</row>
+<row>
+<entry>void *<structfield>binData</structfield></entry>
+<entry> the pointer to binary transform speific data.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlBufferPtr">xmlBufferPtr</link> <structfield>buffer</structfield></entry>
+<entry> the internal buffer.
+</entry>
+</row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBufferedTransformId">xmlSecBufferedTransformId</title>
+<programlisting>typedef const struct _xmlSecBufferedTransformIdStruct *xmlSecBufferedTransformId;
+</programlisting>
+<para>
+The buffered transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBufferedProcessMethod">xmlSecBufferedProcessMethod ()</title>
+<programlisting>int (*xmlSecBufferedProcessMethod) (<link linkend="xmlSecBufferedTransformPtr">xmlSecBufferedTransformPtr</link> transform,
+ <link linkend="xmlBufferPtr">xmlBufferPtr</link> buffer);</programlisting>
+<para>
+Processes the data in the buffer.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to buffered transform.
+</entry></row>
+<row><entry align="right"><parameter>buffer</parameter>&nbsp;:</entry>
+<entry> the pointer to input/output buffer.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 in success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBufferedTransformRead">xmlSecBufferedTransformRead ()</title>
+<programlisting>int xmlSecBufferedTransformRead (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);</programlisting>
+<para>
+Reads the all data from previous transform and returns
+to the caller.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to a buffered transform.
+</entry></row>
+<row><entry align="right"><parameter>buf</parameter>&nbsp;:</entry>
+<entry> the output buffer.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the output buffer size.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the number of bytes in the buffer or negative value
+if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBufferedTransformWrite">xmlSecBufferedTransformWrite ()</title>
+<programlisting>int xmlSecBufferedTransformWrite (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);</programlisting>
+<para>
+Adds the data to the internal buffer.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the poiter to a buffered transform.
+</entry></row>
+<row><entry align="right"><parameter>buf</parameter>&nbsp;:</entry>
+<entry> the input data buffer.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the input data size.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 if success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBufferedTransformFlush">xmlSecBufferedTransformFlush ()</title>
+<programlisting>int xmlSecBufferedTransformFlush (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform);</programlisting>
+<para>
+Writes internal data to previous transform.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to a buffered transform.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 if success or negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBufferedDestroy">xmlSecBufferedDestroy ()</title>
+<programlisting>void xmlSecBufferedDestroy (<link linkend="xmlSecBufferedTransformPtr">xmlSecBufferedTransformPtr</link> buffered);</programlisting>
+<para>
+Destroys the buffered transform.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>buffered</parameter>&nbsp;:</entry>
+<entry> the pointer to a buffered transform.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBufferedProcess">xmlSecBufferedProcess ()</title>
+<programlisting>int xmlSecBufferedProcess (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform,
+ <link linkend="xmlBufferPtr">xmlBufferPtr</link> buffer);</programlisting>
+<para>
+Executes buffered transform.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to a buffered transform.
+</entry></row>
+<row><entry align="right"><parameter>buffer</parameter>&nbsp;:</entry>
+<entry> the buffered transform result,
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>number of bytes processed or a negative value
+if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+
+</refsect1>
+
+
+
+
+</refentry>
diff --git a/docs/api-0.0.x/sgml/ciphers.sgml b/docs/api-0.0.x/sgml/ciphers.sgml
new file mode 100644
index 00000000..1a9c1139
--- /dev/null
+++ b/docs/api-0.0.x/sgml/ciphers.sgml
@@ -0,0 +1,382 @@
+<refentry id="xmlsec-ciphers">
+<refmeta>
+<refentrytitle>ciphers.h</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>XMLSEC Library</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>ciphers.h</refname><refpurpose>The ciphers transform.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><title>Synopsis</title>
+<synopsis>
+
+
+
+struct <link linkend="xmlSecCipherTransform">xmlSecCipherTransform</link>;
+typedef <link linkend="xmlSecCipherTransformId">xmlSecCipherTransformId</link>;
+int (<link linkend="xmlSecCipherUpdateMethod">*xmlSecCipherUpdateMethod</link>) (<link linkend="xmlSecCipherTransformPtr">xmlSecCipherTransformPtr</link> transform,
+ unsigned char *buffer,
+ <link linkend="size-t">size_t</link> size);
+int (<link linkend="xmlSecCipherFinalMethod">*xmlSecCipherFinalMethod</link>) (<link linkend="xmlSecCipherTransformPtr">xmlSecCipherTransformPtr</link> transform);
+int <link linkend="xmlSecCipherTransformRead">xmlSecCipherTransformRead</link> (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);
+int <link linkend="xmlSecCipherTransformWrite">xmlSecCipherTransformWrite</link> (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);
+int <link linkend="xmlSecCipherTransformFlush">xmlSecCipherTransformFlush</link> (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform);
+int <link linkend="xmlSecEvpCipherUpdate">xmlSecEvpCipherUpdate</link> (<link linkend="xmlSecCipherTransformPtr">xmlSecCipherTransformPtr</link> cipher,
+ unsigned char *buffer,
+ <link linkend="size-t">size_t</link> size);
+int <link linkend="xmlSecEvpCipherFinal">xmlSecEvpCipherFinal</link> (<link linkend="xmlSecCipherTransformPtr">xmlSecCipherTransformPtr</link> cipher);
+int <link linkend="xmlSecCipherUpdate">xmlSecCipherUpdate</link> (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ unsigned char *buffer,
+ <link linkend="size-t">size_t</link> size);
+int <link linkend="xmlSecCipherFinal">xmlSecCipherFinal</link> (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform);
+</synopsis>
+</refsynopsisdiv>
+
+
+
+
+
+<refsect1>
+<title>Description</title>
+<para>
+
+</para>
+</refsect1>
+
+<refsect1>
+<title>Details</title>
+<refsect2>
+<title><anchor id="xmlSecCipherTransform">struct xmlSecCipherTransform</title>
+<programlisting>struct xmlSecCipherTransform {
+ /* same as for xmlSecTransform but id type changed */
+ xmlSecCipherTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+
+ /* xmlSecBinTransform specific */
+ int encode;
+ xmlSecCipherTransformPtr next;
+ xmlSecCipherTransformPtr prev;
+ void *binData;
+
+ /* xmlSecCipherTransform specific */
+ unsigned char *bufIn;
+ unsigned char *bufOut;
+ EVP_CIPHER_CTX cipherCtx;
+ unsigned char *iv;
+ size_t ivPos;
+ void *cipherData;
+};
+</programlisting>
+<para>
+The cipher (encrypt/decrypt) transform.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="struct">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row>
+<entry><link linkend="xmlSecCipherTransformId">xmlSecCipherTransformId</link> <structfield>id</structfield></entry>
+<entry> the transform id (pointer to <link linkend="xmlSecBinTransformId">xmlSecBinTransformId</link>).
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecTransformStatus">xmlSecTransformStatus</link> <structfield>status</structfield></entry>
+<entry> the transform status (ok/fail/unknown).
+</entry>
+</row>
+<row>
+<entry>int <structfield>dontDestroy</structfield></entry>
+<entry> the don't automatically destroy flag.
+</entry>
+</row>
+<row>
+<entry>void *<structfield>data</structfield></entry>
+<entry> the pointer to transform specific data.
+</entry>
+</row>
+<row>
+<entry>int <structfield>encode</structfield></entry>
+<entry> encode/decode (encrypt/decrypt) flag.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecCipherTransformPtr">xmlSecCipherTransformPtr</link> <structfield>next</structfield></entry>
+<entry> next binary transform in the chain.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecCipherTransformPtr">xmlSecCipherTransformPtr</link> <structfield>prev</structfield></entry>
+<entry> previous binary transform in the chain.
+</entry>
+</row>
+<row>
+<entry>void *<structfield>binData</structfield></entry>
+<entry> the pointer to binary transform speific data.
+</entry>
+</row>
+<row>
+<entry>unsigned char *<structfield>bufIn</structfield></entry>
+<entry> the pointer to input buffer.
+</entry>
+</row>
+<row>
+<entry>unsigned char *<structfield>bufOut</structfield></entry>
+<entry> the pointer to output buffer.
+</entry>
+</row>
+<row>
+<entry><link linkend="EVP-CIPHER-CTX-CAPS">EVP_CIPHER_CTX</link> <structfield>cipherCtx</structfield></entry>
+<entry> the EVP chiper context.
+</entry>
+</row>
+<row>
+<entry>unsigned char *<structfield>iv</structfield></entry>
+<entry> the pointer to IV.
+</entry>
+</row>
+<row>
+<entry><link linkend="size-t">size_t</link> <structfield>ivPos</structfield></entry>
+<entry>the position in IV (what was written out).
+</entry>
+</row>
+<row>
+<entry>void *<structfield>cipherData</structfield></entry>
+<entry> the chipher specific data.
+</entry>
+</row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecCipherTransformId">xmlSecCipherTransformId</title>
+<programlisting>typedef const struct _xmlSecCipherTransformIdStruct *xmlSecCipherTransformId;
+</programlisting>
+<para>
+The cipher (encrypt/decrypt) transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecCipherUpdateMethod">xmlSecCipherUpdateMethod ()</title>
+<programlisting>int (*xmlSecCipherUpdateMethod) (<link linkend="xmlSecCipherTransformPtr">xmlSecCipherTransformPtr</link> transform,
+ unsigned char *buffer,
+ <link linkend="size-t">size_t</link> size);</programlisting>
+<para>
+Encrypts/decrypts new chunk of data.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to cipher transform.
+</entry></row>
+<row><entry align="right"><parameter>buffer</parameter>&nbsp;:</entry>
+<entry> the pointer to data.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the data size.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecCipherFinalMethod">xmlSecCipherFinalMethod ()</title>
+<programlisting>int (*xmlSecCipherFinalMethod) (<link linkend="xmlSecCipherTransformPtr">xmlSecCipherTransformPtr</link> transform);</programlisting>
+<para>
+Finalizes encryption/decryption.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to cipher transform.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecCipherTransformRead">xmlSecCipherTransformRead ()</title>
+<programlisting>int xmlSecCipherTransformRead (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);</programlisting>
+<para>
+Reads data from previous transform, encrypts or decrypts them
+and returns in the output buffer.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to a cipher transform.
+</entry></row>
+<row><entry align="right"><parameter>buf</parameter>&nbsp;:</entry>
+<entry> the output buffer.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> tje output buffer size.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the number of bytes in the buffer or negative value
+if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecCipherTransformWrite">xmlSecCipherTransformWrite ()</title>
+<programlisting>int xmlSecCipherTransformWrite (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);</programlisting>
+<para>
+Encrypts or decrypts the input data and writes them
+to the next transform.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the poiter to a cipher transform.
+</entry></row>
+<row><entry align="right"><parameter>buf</parameter>&nbsp;:</entry>
+<entry> the input data buffer.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the input data size.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 if success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecCipherTransformFlush">xmlSecCipherTransformFlush ()</title>
+<programlisting>int xmlSecCipherTransformFlush (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform);</programlisting>
+<para>
+Writes the rest of data to previous transform.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to a cipher transform.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 if success or negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEvpCipherUpdate">xmlSecEvpCipherUpdate ()</title>
+<programlisting>int xmlSecEvpCipherUpdate (<link linkend="xmlSecCipherTransformPtr">xmlSecCipherTransformPtr</link> cipher,
+ unsigned char *buffer,
+ <link linkend="size-t">size_t</link> size);</programlisting>
+<para>
+Encrypts/decrypts new piece of data.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>cipher</parameter>&nbsp;:</entry>
+<entry> the pointer to EVP_* cipher transform.
+</entry></row>
+<row><entry align="right"><parameter>buffer</parameter>&nbsp;:</entry>
+<entry> the input buffer.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the input buffer size.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the number of bytes processed or a negative value
+if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEvpCipherFinal">xmlSecEvpCipherFinal ()</title>
+<programlisting>int xmlSecEvpCipherFinal (<link linkend="xmlSecCipherTransformPtr">xmlSecCipherTransformPtr</link> cipher);</programlisting>
+<para>
+Finalize encryption/decryption.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>cipher</parameter>&nbsp;:</entry>
+<entry> the pointer to EVP_* cipher transform.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the number of bytes processed or a negative value
+if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecCipherUpdate">xmlSecCipherUpdate ()</title>
+<programlisting>int xmlSecCipherUpdate (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ unsigned char *buffer,
+ <link linkend="size-t">size_t</link> size);</programlisting>
+<para>
+Encrypts/decrypts new piece of data.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to cipher transform.
+</entry></row>
+<row><entry align="right"><parameter>buffer</parameter>&nbsp;:</entry>
+<entry> the input buffer.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the input buffer size.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the number of bytes processed or a negative value
+if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecCipherFinal">xmlSecCipherFinal ()</title>
+<programlisting>int xmlSecCipherFinal (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform);</programlisting>
+<para>
+Finalize encryption/decryption.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to cipher transform.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the number of bytes processed or a negative value
+if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+
+</refsect1>
+
+
+
+
+</refentry>
diff --git a/docs/api-0.0.x/sgml/debug.sgml b/docs/api-0.0.x/sgml/debug.sgml
new file mode 100644
index 00000000..af7c0671
--- /dev/null
+++ b/docs/api-0.0.x/sgml/debug.sgml
@@ -0,0 +1,83 @@
+<refentry id="xmlsec-debug">
+<refmeta>
+<refentrytitle>debug.h</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>XMLSEC Library</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>debug.h</refname><refpurpose>The usefull debugging functions.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><title>Synopsis</title>
+<synopsis>
+
+
+
+void <link linkend="xmlSecTimerInit">xmlSecTimerInit</link> (void);
+void <link linkend="xmlSecTimerStart">xmlSecTimerStart</link> (void);
+void <link linkend="xmlSecTimerEnd">xmlSecTimerEnd</link> (void);
+<link linkend="double">double</link> <link linkend="xmlSecTimerGet">xmlSecTimerGet</link> (void);
+</synopsis>
+</refsynopsisdiv>
+
+
+
+
+
+<refsect1>
+<title>Description</title>
+<para>
+
+</para>
+</refsect1>
+
+<refsect1>
+<title>Details</title>
+<refsect2>
+<title><anchor id="xmlSecTimerInit">xmlSecTimerInit ()</title>
+<programlisting>void xmlSecTimerInit (void);</programlisting>
+<para>
+Resets the total time counter.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTimerStart">xmlSecTimerStart ()</title>
+<programlisting>void xmlSecTimerStart (void);</programlisting>
+<para>
+Starts timer.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTimerEnd">xmlSecTimerEnd ()</title>
+<programlisting>void xmlSecTimerEnd (void);</programlisting>
+<para>
+Adds the time from the last <link linkend="xmlSecTimerStart">xmlSecTimerStart</link>() function call
+to the total time counter.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTimerGet">xmlSecTimerGet ()</title>
+<programlisting><link linkend="double">double</link> xmlSecTimerGet (void);</programlisting>
+<para>
+Gets the current total time counter value in msec.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the current total time in msec.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+
+</refsect1>
+
+
+
+
+</refentry>
diff --git a/docs/api-0.0.x/sgml/digests.sgml b/docs/api-0.0.x/sgml/digests.sgml
new file mode 100644
index 00000000..86e59187
--- /dev/null
+++ b/docs/api-0.0.x/sgml/digests.sgml
@@ -0,0 +1,492 @@
+<refentry id="xmlsec-digests">
+<refmeta>
+<refentrytitle>digests.h</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>XMLSEC Library</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>digests.h</refname><refpurpose>The digests transform.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><title>Synopsis</title>
+<synopsis>
+
+
+
+struct <link linkend="xmlSecDigestTransform">xmlSecDigestTransform</link>;
+typedef <link linkend="xmlSecDigestTransformId">xmlSecDigestTransformId</link>;
+int (<link linkend="xmlSecDigestUpdateMethod">*xmlSecDigestUpdateMethod</link>) (<link linkend="xmlSecDigestTransformPtr">xmlSecDigestTransformPtr</link> transform,
+ unsigned char *buffer,
+ <link linkend="size-t">size_t</link> size);
+int (<link linkend="xmlSecDigestSignMethod">*xmlSecDigestSignMethod</link>) (<link linkend="xmlSecDigestTransformPtr">xmlSecDigestTransformPtr</link> transform,
+ unsigned char **buffer,
+ <link linkend="size-t">size_t</link> *size);
+int (<link linkend="xmlSecDigestVerifyMethod">*xmlSecDigestVerifyMethod</link>) (<link linkend="xmlSecDigestTransformPtr">xmlSecDigestTransformPtr</link> transform,
+ unsigned char *buffer,
+ <link linkend="size-t">size_t</link> size);
+int <link linkend="xmlSecDigestSignNode">xmlSecDigestSignNode</link> (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> valueNode,
+ int removeOldContent);
+int <link linkend="xmlSecDigestVerifyNode">xmlSecDigestVerifyNode</link> (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ const <link linkend="xmlNodePtr">xmlNodePtr</link> valueNode);
+void <link linkend="xmlSecDigestSetPushMode">xmlSecDigestSetPushMode</link> (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ int enabled);
+int <link linkend="xmlSecDigestUpdate">xmlSecDigestUpdate</link> (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ unsigned char *buffer,
+ <link linkend="size-t">size_t</link> size);
+int <link linkend="xmlSecDigestSign">xmlSecDigestSign</link> (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ unsigned char **buffer,
+ <link linkend="size-t">size_t</link> *size);
+int <link linkend="xmlSecDigestVerify">xmlSecDigestVerify</link> (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ unsigned char *buffer,
+ <link linkend="size-t">size_t</link> size);
+int <link linkend="xmlSecDigestTransformRead">xmlSecDigestTransformRead</link> (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);
+int <link linkend="xmlSecDigestTransformWrite">xmlSecDigestTransformWrite</link> (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);
+int <link linkend="xmlSecDigestTransformFlush">xmlSecDigestTransformFlush</link> (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform);
+</synopsis>
+</refsynopsisdiv>
+
+
+
+
+
+<refsect1>
+<title>Description</title>
+<para>
+
+</para>
+</refsect1>
+
+<refsect1>
+<title>Details</title>
+<refsect2>
+<title><anchor id="xmlSecDigestTransform">struct xmlSecDigestTransform</title>
+<programlisting>struct xmlSecDigestTransform {
+ /* same as for xmlSecTransform but id type changed */
+ xmlSecDigestTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+
+ /* xmlSecBinTransform specific */
+ int encode;
+ xmlSecDigestTransformPtr next;
+ xmlSecDigestTransformPtr prev;
+ void *binData;
+
+ /* xmlSecDigestTransform specific */
+ int pushModeEnabled;
+ unsigned char *digest;
+ size_t digestSize;
+ unsigned char digestLastByteMask;
+ void *digestData;
+};
+</programlisting>
+<para>
+The digests transform.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="struct">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row>
+<entry><link linkend="xmlSecDigestTransformId">xmlSecDigestTransformId</link> <structfield>id</structfield></entry>
+<entry> the transform id (pointer to <link linkend="xmlSecBinTransformId">xmlSecBinTransformId</link>).
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecTransformStatus">xmlSecTransformStatus</link> <structfield>status</structfield></entry>
+<entry> the transform status (ok/fail/unknown).
+</entry>
+</row>
+<row>
+<entry>int <structfield>dontDestroy</structfield></entry>
+<entry> the don't automatically destroy flag.
+</entry>
+</row>
+<row>
+<entry>void *<structfield>data</structfield></entry>
+<entry> the pointer to transform specific data.
+</entry>
+</row>
+<row>
+<entry>int <structfield>encode</structfield></entry>
+<entry> encode/decode (encrypt/decrypt) flag.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecDigestTransformPtr">xmlSecDigestTransformPtr</link> <structfield>next</structfield></entry>
+<entry> next binary transform in the chain.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecDigestTransformPtr">xmlSecDigestTransformPtr</link> <structfield>prev</structfield></entry>
+<entry> previous binary transform in the chain.
+</entry>
+</row>
+<row>
+<entry>void *<structfield>binData</structfield></entry>
+<entry> the pointer to binary transform speific data.
+</entry>
+</row>
+<row>
+<entry>int <structfield>pushModeEnabled</structfield></entry>
+<entry> if 1 then the data are sent to next transform, otherwise
+ we are keeping data for sign or verify call.
+</entry>
+</row>
+<row>
+<entry>unsigned char *<structfield>digest</structfield></entry>
+<entry> the internal digest buffer.
+</entry>
+</row>
+<row>
+<entry><link linkend="size-t">size_t</link> <structfield>digestSize</structfield></entry>
+<entry> the internal digest buffer size.
+</entry>
+</row>
+<row>
+<entry>unsigned char <structfield>digestLastByteMask</structfield></entry>
+<entry>
+</entry>
+</row>
+<row>
+<entry>void *<structfield>digestData</structfield></entry>
+<entry> the pointer to digest transform specific data.
+</entry>
+</row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDigestTransformId">xmlSecDigestTransformId</title>
+<programlisting>typedef const struct _xmlSecDigestTransformIdStruct *xmlSecDigestTransformId;
+</programlisting>
+<para>
+The digest transform id (<literal>xmlSecTransformTypeBinary</literal> type).</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDigestUpdateMethod">xmlSecDigestUpdateMethod ()</title>
+<programlisting>int (*xmlSecDigestUpdateMethod) (<link linkend="xmlSecDigestTransformPtr">xmlSecDigestTransformPtr</link> transform,
+ unsigned char *buffer,
+ <link linkend="size-t">size_t</link> size);</programlisting>
+<para>
+Updates digest with new chunk of data.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to digests transform <link linkend="xmlSecDigestTransform">xmlSecDigestTransform</link>.
+</entry></row>
+<row><entry align="right"><parameter>buffer</parameter>&nbsp;:</entry>
+<entry> the input data.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the input data size.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDigestSignMethod">xmlSecDigestSignMethod ()</title>
+<programlisting>int (*xmlSecDigestSignMethod) (<link linkend="xmlSecDigestTransformPtr">xmlSecDigestTransformPtr</link> transform,
+ unsigned char **buffer,
+ <link linkend="size-t">size_t</link> *size);</programlisting>
+<para>
+Finalizes digest and returns result in allocated buffer (<parameter>buffer</parameter>, <parameter>size</parameter>).
+The caller is responsible for freeing returned buffer with <link linkend="xmlFree">xmlFree</link>() function.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to digests transform <link linkend="xmlSecDigestTransform">xmlSecDigestTransform</link>.
+</entry></row>
+<row><entry align="right"><parameter>buffer</parameter>&nbsp;:</entry>
+<entry> the pointer to pointer to the output data.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the pointer to outut data size.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDigestVerifyMethod">xmlSecDigestVerifyMethod ()</title>
+<programlisting>int (*xmlSecDigestVerifyMethod) (<link linkend="xmlSecDigestTransformPtr">xmlSecDigestTransformPtr</link> transform,
+ unsigned char *buffer,
+ <link linkend="size-t">size_t</link> size);</programlisting>
+<para>
+Verifies digest with new chunk of data. The actual verification
+status is set in <link linkend="status">status</link> member of <link linkend="xmlSecDigestTransform">xmlSecDigestTransform</link> structure.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to digests transform <link linkend="xmlSecDigestTransform">xmlSecDigestTransform</link>.
+</entry></row>
+<row><entry align="right"><parameter>buffer</parameter>&nbsp;:</entry>
+<entry> the input data.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the input data size.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>1 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDigestSignNode">xmlSecDigestSignNode ()</title>
+<programlisting>int xmlSecDigestSignNode (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> valueNode,
+ int removeOldContent);</programlisting>
+<para>
+Finalizes the digest result, signs it (if necessary), base64 encodes and
+puts in the given node.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to a digest transform.
+</entry></row>
+<row><entry align="right"><parameter>valueNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:DigestValue&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>removeOldContent</parameter>&nbsp;:</entry>
+<entry> the flag that indicates whether the previous
+ node content will be removed or not.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDigestVerifyNode">xmlSecDigestVerifyNode ()</title>
+<programlisting>int xmlSecDigestVerifyNode (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ const <link linkend="xmlNodePtr">xmlNodePtr</link> valueNode);</programlisting>
+<para>
+Reads the node content, base64 decodes it, finalizes the digest result and
+verifies that it does match with the content of the node.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to a digest transform.
+</entry></row>
+<row><entry align="right"><parameter>valueNode</parameter>&nbsp;:</entry>
+<entry> the pointer to a &lt;dsig:DigestValue&gt; node.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDigestSetPushMode">xmlSecDigestSetPushMode ()</title>
+<programlisting>void xmlSecDigestSetPushMode (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ int enabled);</programlisting>
+<para>
+Sets the push more flag. If push mode is enabled then the digest is
+finalized and send to next transform when
+1) read from previous transform returned 0
+2) flush called</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to a digests transform.
+</entry></row>
+<row><entry align="right"><parameter>enabled</parameter>&nbsp;:</entry>
+<entry> the new "push mode" flag.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDigestUpdate">xmlSecDigestUpdate ()</title>
+<programlisting>int xmlSecDigestUpdate (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ unsigned char *buffer,
+ <link linkend="size-t">size_t</link> size);</programlisting>
+<para>
+Updates data with the new chunk of data (wrapper for
+xmlSecDigestTransformId::digestUpdate method).</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to a digests transform.
+</entry></row>
+<row><entry align="right"><parameter>buffer</parameter>&nbsp;:</entry>
+<entry> the input data.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the input data size.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDigestSign">xmlSecDigestSign ()</title>
+<programlisting>int xmlSecDigestSign (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ unsigned char **buffer,
+ <link linkend="size-t">size_t</link> *size);</programlisting>
+<para>
+Finalizes digest and writes the result into the allocated
+buffer (wrapper for xmlSecDigestTransformId::digestSign function).
+Caller is responsble for freeing allocated buffer with <link linkend="xmlFree">xmlFree</link>() function.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to a digests transform.
+</entry></row>
+<row><entry align="right"><parameter>buffer</parameter>&nbsp;:</entry>
+<entry> the pointer to the pointer to the output buffer.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the pointer to the output buffer size.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDigestVerify">xmlSecDigestVerify ()</title>
+<programlisting>int xmlSecDigestVerify (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ unsigned char *buffer,
+ <link linkend="size-t">size_t</link> size);</programlisting>
+<para>
+Checks the computed digest and the data in the input buffer
+(wrapper for xmlSecDigestTransformId::digestVerify function).</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to a digests transform.
+</entry></row>
+<row><entry align="right"><parameter>buffer</parameter>&nbsp;:</entry>
+<entry> the input buffer.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the input buffer size.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDigestTransformRead">xmlSecDigestTransformRead ()</title>
+<programlisting>int xmlSecDigestTransformRead (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);</programlisting>
+<para>
+Reads all data from previos transform and digests it. If the
+push mode enabled then the result is finalized and returned to the caller,
+otherwise we return 0</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to a digest transform.
+</entry></row>
+<row><entry align="right"><parameter>buf</parameter>&nbsp;:</entry>
+<entry> the output buffer.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the output buffer size.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the number of bytes in the buffer or negative value
+if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDigestTransformWrite">xmlSecDigestTransformWrite ()</title>
+<programlisting>int xmlSecDigestTransformWrite (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);</programlisting>
+<para>
+Adds new chunk of data to the digest.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the poiter to a digests transform.
+</entry></row>
+<row><entry align="right"><parameter>buf</parameter>&nbsp;:</entry>
+<entry> the input data buffer.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the input data size.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 if success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDigestTransformFlush">xmlSecDigestTransformFlush ()</title>
+<programlisting>int xmlSecDigestTransformFlush (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform);</programlisting>
+<para>
+If the push mode enabled then the function finalizes the result,
+writes it to the next transform and calls flush for it. Otherwise,
+it just calls flush for next transform</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to a digests transform.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 if success or negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+
+</refsect1>
+
+
+
+
+</refentry>
diff --git a/docs/api-0.0.x/sgml/errors.sgml b/docs/api-0.0.x/sgml/errors.sgml
new file mode 100644
index 00000000..14f46839
--- /dev/null
+++ b/docs/api-0.0.x/sgml/errors.sgml
@@ -0,0 +1,561 @@
+<refentry id="xmlsec-errors">
+<refmeta>
+<refentrytitle>errors.h</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>XMLSEC Library</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>errors.h</refname><refpurpose>The errors reporting functions.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><title>Synopsis</title>
+<synopsis>
+
+
+
+#define <link linkend="XMLSEC-ERRORS-LIB-CAPS">XMLSEC_ERRORS_LIB</link>
+#define <link linkend="XMLSEC-ERRORS-FUNCTION-CAPS">XMLSEC_ERRORS_FUNCTION</link>
+#define <link linkend="XMLSEC-ERRORS-R-MALLOC-FAILED-CAPS">XMLSEC_ERRORS_R_MALLOC_FAILED</link>
+#define <link linkend="XMLSEC-ERRORS-R-XMLSEC-FAILED-CAPS">XMLSEC_ERRORS_R_XMLSEC_FAILED</link>
+#define <link linkend="XMLSEC-ERRORS-R-CRYPTO-FAILED-CAPS">XMLSEC_ERRORS_R_CRYPTO_FAILED</link>
+#define <link linkend="XMLSEC-ERRORS-R-XML-FAILED-CAPS">XMLSEC_ERRORS_R_XML_FAILED</link>
+#define <link linkend="XMLSEC-ERRORS-R-XSLT-FAILED-CAPS">XMLSEC_ERRORS_R_XSLT_FAILED</link>
+#define <link linkend="XMLSEC-ERRORS-R-IO-FAILED-CAPS">XMLSEC_ERRORS_R_IO_FAILED</link>
+#define <link linkend="XMLSEC-ERRORS-R-INVALID-TRANSFORM-CAPS">XMLSEC_ERRORS_R_INVALID_TRANSFORM</link>
+#define <link linkend="XMLSEC-ERRORS-R-INVALID-TRANSFORM-DATA-CAPS">XMLSEC_ERRORS_R_INVALID_TRANSFORM_DATA</link>
+#define <link linkend="XMLSEC-ERRORS-R-INVALID-TRANSFORM-OR-KEY-CAPS">XMLSEC_ERRORS_R_INVALID_TRANSFORM_OR_KEY</link>
+#define <link linkend="XMLSEC-ERRORS-R-INVALID-KEY-CAPS">XMLSEC_ERRORS_R_INVALID_KEY</link>
+#define <link linkend="XMLSEC-ERRORS-R-INVALID-KEY-DATA-CAPS">XMLSEC_ERRORS_R_INVALID_KEY_DATA</link>
+#define <link linkend="XMLSEC-ERRORS-R-INVALID-KEY-SIZE-CAPS">XMLSEC_ERRORS_R_INVALID_KEY_SIZE</link>
+#define <link linkend="XMLSEC-ERRORS-R-INVALID-KEY-ORIGIN-CAPS">XMLSEC_ERRORS_R_INVALID_KEY_ORIGIN</link>
+#define <link linkend="XMLSEC-ERRORS-R-KEY-NOT-FOUND-CAPS">XMLSEC_ERRORS_R_KEY_NOT_FOUND</link>
+#define <link linkend="XMLSEC-ERRORS-R-INVALID-SIZE-CAPS">XMLSEC_ERRORS_R_INVALID_SIZE</link>
+#define <link linkend="XMLSEC-ERRORS-R-INVALID-DATA-CAPS">XMLSEC_ERRORS_R_INVALID_DATA</link>
+#define <link linkend="XMLSEC-ERRORS-R-INVALID-TYPE-CAPS">XMLSEC_ERRORS_R_INVALID_TYPE</link>
+#define <link linkend="XMLSEC-ERRORS-R-INVALID-USAGE-CAPS">XMLSEC_ERRORS_R_INVALID_USAGE</link>
+#define <link linkend="XMLSEC-ERRORS-R-INVALID-NODE-CAPS">XMLSEC_ERRORS_R_INVALID_NODE</link>
+#define <link linkend="XMLSEC-ERRORS-R-INVALID-NODESET-CAPS">XMLSEC_ERRORS_R_INVALID_NODESET</link>
+#define <link linkend="XMLSEC-ERRORS-R-INVALID-NODE-CONTENT-CAPS">XMLSEC_ERRORS_R_INVALID_NODE_CONTENT</link>
+#define <link linkend="XMLSEC-ERRORS-R-INVALID-NODE-ATTRIBUTE-CAPS">XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE</link>
+#define <link linkend="XMLSEC-ERRORS-R-NODE-ALREADY-PRESENT-CAPS">XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT</link>
+#define <link linkend="XMLSEC-ERRORS-R-SAME-DOCUMENT-REQUIRED-CAPS">XMLSEC_ERRORS_R_SAME_DOCUMENT_REQUIRED</link>
+#define <link linkend="XMLSEC-ERRORS-R-NODE-NOT-FOUND-CAPS">XMLSEC_ERRORS_R_NODE_NOT_FOUND</link>
+#define <link linkend="XMLSEC-ERRORS-R-MAX-RETRIEVALS-LEVEL-CAPS">XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL</link>
+#define <link linkend="XMLSEC-ERRORS-R-CERT-VERIFY-FAILED-CAPS">XMLSEC_ERRORS_R_CERT_VERIFY_FAILED</link>
+#define <link linkend="XMLSEC-ERRORS-R-CERT-NOT-FOUND-CAPS">XMLSEC_ERRORS_R_CERT_NOT_FOUND</link>
+#define <link linkend="XMLSEC-ERRORS-R-CERT-REVOKED-CAPS">XMLSEC_ERRORS_R_CERT_REVOKED</link>
+#define <link linkend="XMLSEC-ERRORS-R-DSIG-INVALID-REFERENCE-CAPS">XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE</link>
+#define <link linkend="XMLSEC-ERRORS-R-ASSERTION-CAPS">XMLSEC_ERRORS_R_ASSERTION</link>
+#define <link linkend="XMLSEC-ERRORS-R-DISABLED-CAPS">XMLSEC_ERRORS_R_DISABLED</link>
+void (<link linkend="xmlSecErrorsCallback">*xmlSecErrorsCallback</link>) (const char *file,
+ int line,
+ const char *func,
+ int reason,
+ const char *msg);
+void <link linkend="xmlSecErrorsInit">xmlSecErrorsInit</link> (void);
+void <link linkend="xmlSecErrorsShutdown">xmlSecErrorsShutdown</link> (void);
+void <link linkend="xmlSecErrorsSetCallback">xmlSecErrorsSetCallback</link> (<link linkend="xmlSecErrorsCallback">xmlSecErrorsCallback</link> callback);
+extern int <link linkend="xmlSecPrintErrorMessages">xmlSecPrintErrorMessages</link>;
+#define <link linkend="XMLSEC-ERRORS-HERE-CAPS">XMLSEC_ERRORS_HERE</link>
+void <link linkend="xmlSecError">xmlSecError</link> (const char *file,
+ int line,
+ const char *func,
+ int reason,
+ const char *msg,
+ ...);
+#define <link linkend="xmlSecAssert">xmlSecAssert</link> ( p )
+#define <link linkend="xmlSecAssert2">xmlSecAssert2</link> ( p, ret )
+</synopsis>
+</refsynopsisdiv>
+
+
+
+
+
+<refsect1>
+<title>Description</title>
+<para>
+All errors are reported to application provided callback function.
+The default callback function reports an error to OpenSSL using
+<link linkend="ERR-put-error">ERR_put_error</link>() function and to LibXML using <link linkend="xmlGenericError">xmlGenericError</link>()
+function.
+</para>
+</refsect1>
+
+<refsect1>
+<title>Details</title>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-LIB-CAPS">XMLSEC_ERRORS_LIB</title>
+<programlisting>#define XMLSEC_ERRORS_LIB (ERR_LIB_USER + 57)
+</programlisting>
+<para>
+Macro. The XMLSec library id for OpenSSL errors reporting functions.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-FUNCTION-CAPS">XMLSEC_ERRORS_FUNCTION</title>
+<programlisting>#define XMLSEC_ERRORS_FUNCTION 0
+</programlisting>
+<para>
+Macro. The XMLSec library functions OpenSSL errors reporting functions.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-MALLOC-FAILED-CAPS">XMLSEC_ERRORS_R_MALLOC_FAILED</title>
+<programlisting>#define XMLSEC_ERRORS_R_MALLOC_FAILED 1
+</programlisting>
+<para>
+Failed to allocate memory error.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-XMLSEC-FAILED-CAPS">XMLSEC_ERRORS_R_XMLSEC_FAILED</title>
+<programlisting>#define XMLSEC_ERRORS_R_XMLSEC_FAILED 2
+</programlisting>
+<para>
+An XMLSec function failed.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-CRYPTO-FAILED-CAPS">XMLSEC_ERRORS_R_CRYPTO_FAILED</title>
+<programlisting>#define XMLSEC_ERRORS_R_CRYPTO_FAILED 3
+</programlisting>
+<para>
+Crypto (OpenSSL) function failed.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-XML-FAILED-CAPS">XMLSEC_ERRORS_R_XML_FAILED</title>
+<programlisting>#define XMLSEC_ERRORS_R_XML_FAILED 4
+</programlisting>
+<para>
+LibXML function failed.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-XSLT-FAILED-CAPS">XMLSEC_ERRORS_R_XSLT_FAILED</title>
+<programlisting>#define XMLSEC_ERRORS_R_XSLT_FAILED 5
+</programlisting>
+<para>
+LibXSLT function failed.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-IO-FAILED-CAPS">XMLSEC_ERRORS_R_IO_FAILED</title>
+<programlisting>#define XMLSEC_ERRORS_R_IO_FAILED 6
+</programlisting>
+<para>
+IO operation failed.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-INVALID-TRANSFORM-CAPS">XMLSEC_ERRORS_R_INVALID_TRANSFORM</title>
+<programlisting>#define XMLSEC_ERRORS_R_INVALID_TRANSFORM 10
+</programlisting>
+<para>
+Invlaid transform.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-INVALID-TRANSFORM-DATA-CAPS">XMLSEC_ERRORS_R_INVALID_TRANSFORM_DATA</title>
+<programlisting>#define XMLSEC_ERRORS_R_INVALID_TRANSFORM_DATA 11
+</programlisting>
+<para>
+Invlaid transform data.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-INVALID-TRANSFORM-OR-KEY-CAPS">XMLSEC_ERRORS_R_INVALID_TRANSFORM_OR_KEY</title>
+<programlisting>#define XMLSEC_ERRORS_R_INVALID_TRANSFORM_OR_KEY 12
+</programlisting>
+<para>
+Invalid transform or key.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-INVALID-KEY-CAPS">XMLSEC_ERRORS_R_INVALID_KEY</title>
+<programlisting>#define XMLSEC_ERRORS_R_INVALID_KEY 13
+</programlisting>
+<para>
+Key is invalid.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-INVALID-KEY-DATA-CAPS">XMLSEC_ERRORS_R_INVALID_KEY_DATA</title>
+<programlisting>#define XMLSEC_ERRORS_R_INVALID_KEY_DATA 14
+</programlisting>
+<para>
+Key data is invalid.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-INVALID-KEY-SIZE-CAPS">XMLSEC_ERRORS_R_INVALID_KEY_SIZE</title>
+<programlisting>#define XMLSEC_ERRORS_R_INVALID_KEY_SIZE 15
+</programlisting>
+<para>
+Invalid key size.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-INVALID-KEY-ORIGIN-CAPS">XMLSEC_ERRORS_R_INVALID_KEY_ORIGIN</title>
+<programlisting>#define XMLSEC_ERRORS_R_INVALID_KEY_ORIGIN 16
+</programlisting>
+<para>
+Invalid key origin.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-KEY-NOT-FOUND-CAPS">XMLSEC_ERRORS_R_KEY_NOT_FOUND</title>
+<programlisting>#define XMLSEC_ERRORS_R_KEY_NOT_FOUND 17
+</programlisting>
+<para>
+Key not found.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-INVALID-SIZE-CAPS">XMLSEC_ERRORS_R_INVALID_SIZE</title>
+<programlisting>#define XMLSEC_ERRORS_R_INVALID_SIZE 18
+</programlisting>
+<para>
+Invalid size.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-INVALID-DATA-CAPS">XMLSEC_ERRORS_R_INVALID_DATA</title>
+<programlisting>#define XMLSEC_ERRORS_R_INVALID_DATA 19
+</programlisting>
+<para>
+Invalid data.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-INVALID-TYPE-CAPS">XMLSEC_ERRORS_R_INVALID_TYPE</title>
+<programlisting>#define XMLSEC_ERRORS_R_INVALID_TYPE 21
+</programlisting>
+<para>
+Invalid type.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-INVALID-USAGE-CAPS">XMLSEC_ERRORS_R_INVALID_USAGE</title>
+<programlisting>#define XMLSEC_ERRORS_R_INVALID_USAGE 22
+</programlisting>
+<para>
+Invalid usage.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-INVALID-NODE-CAPS">XMLSEC_ERRORS_R_INVALID_NODE</title>
+<programlisting>#define XMLSEC_ERRORS_R_INVALID_NODE 23
+</programlisting>
+<para>
+Invalid node,</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-INVALID-NODESET-CAPS">XMLSEC_ERRORS_R_INVALID_NODESET</title>
+<programlisting>#define XMLSEC_ERRORS_R_INVALID_NODESET 24
+</programlisting>
+<para>
+Invalid nodes set,</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-INVALID-NODE-CONTENT-CAPS">XMLSEC_ERRORS_R_INVALID_NODE_CONTENT</title>
+<programlisting>#define XMLSEC_ERRORS_R_INVALID_NODE_CONTENT 25
+</programlisting>
+<para>
+Invalid node content.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-INVALID-NODE-ATTRIBUTE-CAPS">XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE</title>
+<programlisting>#define XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE 26
+</programlisting>
+<para>
+Invalid node attribute.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-NODE-ALREADY-PRESENT-CAPS">XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT</title>
+<programlisting>#define XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT 27
+</programlisting>
+<para>
+Node already present,</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-SAME-DOCUMENT-REQUIRED-CAPS">XMLSEC_ERRORS_R_SAME_DOCUMENT_REQUIRED</title>
+<programlisting>#define XMLSEC_ERRORS_R_SAME_DOCUMENT_REQUIRED 28
+</programlisting>
+<para>
+The transform requires the same document.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-NODE-NOT-FOUND-CAPS">XMLSEC_ERRORS_R_NODE_NOT_FOUND</title>
+<programlisting>#define XMLSEC_ERRORS_R_NODE_NOT_FOUND 29
+</programlisting>
+<para>
+Node not found.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-MAX-RETRIEVALS-LEVEL-CAPS">XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL</title>
+<programlisting>#define XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL 30
+</programlisting>
+<para>
+Max allowed retrievals level reached.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-CERT-VERIFY-FAILED-CAPS">XMLSEC_ERRORS_R_CERT_VERIFY_FAILED</title>
+<programlisting>#define XMLSEC_ERRORS_R_CERT_VERIFY_FAILED 41
+</programlisting>
+<para>
+Certificate verification failed.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-CERT-NOT-FOUND-CAPS">XMLSEC_ERRORS_R_CERT_NOT_FOUND</title>
+<programlisting>#define XMLSEC_ERRORS_R_CERT_NOT_FOUND 42
+</programlisting>
+<para>
+Requested certificate is not found.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-CERT-REVOKED-CAPS">XMLSEC_ERRORS_R_CERT_REVOKED</title>
+<programlisting>#define XMLSEC_ERRORS_R_CERT_REVOKED 43
+</programlisting>
+<para>
+The certificate is revoked.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-DSIG-INVALID-REFERENCE-CAPS">XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE</title>
+<programlisting>#define XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE 51
+</programlisting>
+<para>
+The &lt;dsig:Reference&gt; validation failed.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-ASSERTION-CAPS">XMLSEC_ERRORS_R_ASSERTION</title>
+<programlisting>#define XMLSEC_ERRORS_R_ASSERTION 100
+</programlisting>
+<para>
+Invalid assertion.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-R-DISABLED-CAPS">XMLSEC_ERRORS_R_DISABLED</title>
+<programlisting>#define XMLSEC_ERRORS_R_DISABLED 101
+</programlisting>
+<para>
+The feature is disabled during compilation.
+Check './configure --help' for details on how to
+enable it.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecErrorsCallback">xmlSecErrorsCallback ()</title>
+<programlisting>void (*xmlSecErrorsCallback) (const char *file,
+ int line,
+ const char *func,
+ int reason,
+ const char *msg);</programlisting>
+<para>
+The errors reporting callback function typedef.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>file</parameter>&nbsp;:</entry>
+<entry> the error origin filename (__FILE__).
+</entry></row>
+<row><entry align="right"><parameter>line</parameter>&nbsp;:</entry>
+<entry> the error origin line number (__LINE__).
+</entry></row>
+<row><entry align="right"><parameter>func</parameter>&nbsp;:</entry>
+<entry> the error origin function (__FUNCTIION__).
+</entry></row>
+<row><entry align="right"><parameter>reason</parameter>&nbsp;:</entry>
+<entry> the error code.
+</entry></row>
+<row><entry align="right"><parameter>msg</parameter>&nbsp;:</entry>
+<entry> the error message.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecErrorsInit">xmlSecErrorsInit ()</title>
+<programlisting>void xmlSecErrorsInit (void);</programlisting>
+<para>
+Initializes the errors reporting. It is called from <link linkend="xmlSecInit">xmlSecInit</link>() function.
+and applications must not call this function directly.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecErrorsShutdown">xmlSecErrorsShutdown ()</title>
+<programlisting>void xmlSecErrorsShutdown (void);</programlisting>
+<para>
+Cleanups the errors reporting. It is called from <link linkend="xmlSecShutdown">xmlSecShutdown</link>() function.
+and applications must not call this function directly.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecErrorsSetCallback">xmlSecErrorsSetCallback ()</title>
+<programlisting>void xmlSecErrorsSetCallback (<link linkend="xmlSecErrorsCallback">xmlSecErrorsCallback</link> callback);</programlisting>
+<para>
+Sets the errors callback function <parameter>callback</parameter> that will be called
+every time an error occurs.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>callback</parameter>&nbsp;:</entry>
+<entry> the errors callback function.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecPrintErrorMessages">xmlSecPrintErrorMessages</title>
+<programlisting>extern int xmlSecPrintErrorMessages;
+</programlisting>
+<para>
+The flag that determines whether the error message will be printed
+out immidiatelly. For default errors reporting callback, this flag
+determines whether the error is reported to LibXML library or not.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-ERRORS-HERE-CAPS">XMLSEC_ERRORS_HERE</title>
+<programlisting>#define XMLSEC_ERRORS_HERE __FILE__,__LINE__,__FUNCTION__
+</programlisting>
+<para>
+The macro that specifies the location (file, line and function)
+for the <link linkend="xmlSecError">xmlSecError</link>() function.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecError">xmlSecError ()</title>
+<programlisting>void xmlSecError (const char *file,
+ int line,
+ const char *func,
+ int reason,
+ const char *msg,
+ ...);</programlisting>
+<para>
+Reports an error.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>file</parameter>&nbsp;:</entry>
+<entry> the error origin filename (__FILE__).
+</entry></row>
+<row><entry align="right"><parameter>line</parameter>&nbsp;:</entry>
+<entry> the error origin line number (__LINE__).
+</entry></row>
+<row><entry align="right"><parameter>func</parameter>&nbsp;:</entry>
+<entry> the error origin function (__FUNCTIION__).
+</entry></row>
+<row><entry align="right"><parameter>reason</parameter>&nbsp;:</entry>
+<entry> the error code.
+</entry></row>
+<row><entry align="right"><parameter>msg</parameter>&nbsp;:</entry>
+<entry> the error message in printf format.
+</entry></row>
+<row><entry align="right"><parameter>...</parameter>&nbsp;:</entry>
+<entry> the parameters for the <parameter>msg</parameter>.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecAssert">xmlSecAssert()</title>
+<programlisting>#define xmlSecAssert( p )</programlisting>
+<para>
+Macro. Verifies that <parameter>p</parameter> is true and calls <link linkend="return">return</link>() otherwise.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>p</parameter>&nbsp;:</entry>
+<entry> the expression.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecAssert2">xmlSecAssert2()</title>
+<programlisting>#define xmlSecAssert2( p, ret )</programlisting>
+<para>
+Macro. Verifies that <parameter>p</parameter> is true and calls return(<parameter>ret</parameter>) otherwise.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>p</parameter>&nbsp;:</entry>
+<entry> the expression.
+</entry></row>
+<row><entry align="right"><parameter>ret</parameter>&nbsp;:</entry>
+<entry> the return value.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+
+</refsect1>
+
+
+
+
+</refentry>
diff --git a/docs/api-0.0.x/sgml/io.sgml b/docs/api-0.0.x/sgml/io.sgml
new file mode 100644
index 00000000..42f3b93f
--- /dev/null
+++ b/docs/api-0.0.x/sgml/io.sgml
@@ -0,0 +1,149 @@
+<refentry id="xmlsec-io">
+<refmeta>
+<refentrytitle>io.h</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>XMLSEC Library</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>io.h</refname><refpurpose>The IO transforms.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><title>Synopsis</title>
+<synopsis>
+
+
+
+void <link linkend="xmlSecIOInit">xmlSecIOInit</link> (void);
+void <link linkend="xmlSecIOShutdown">xmlSecIOShutdown</link> (void);
+extern xmlSecTransformId <link linkend="xmlSecInputUri">xmlSecInputUri</link>;
+int <link linkend="xmlSecInputUriTransformOpen">xmlSecInputUriTransformOpen</link> (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ const char *uri);
+void <link linkend="xmlSecCleanupInputCallbacks">xmlSecCleanupInputCallbacks</link> (void);
+void <link linkend="xmlSecRegisterDefaultInputCallbacks">xmlSecRegisterDefaultInputCallbacks</link>
+ (void);
+int <link linkend="xmlSecRegisterInputCallbacks">xmlSecRegisterInputCallbacks</link> (<link linkend="xmlInputMatchCallback">xmlInputMatchCallback</link> matchFunc,
+ <link linkend="xmlInputOpenCallback">xmlInputOpenCallback</link> openFunc,
+ <link linkend="xmlInputReadCallback">xmlInputReadCallback</link> readFunc,
+ <link linkend="xmlInputCloseCallback">xmlInputCloseCallback</link> closeFunc);
+</synopsis>
+</refsynopsisdiv>
+
+
+
+
+
+<refsect1>
+<title>Description</title>
+<para>
+
+</para>
+</refsect1>
+
+<refsect1>
+<title>Details</title>
+<refsect2>
+<title><anchor id="xmlSecIOInit">xmlSecIOInit ()</title>
+<programlisting>void xmlSecIOInit (void);</programlisting>
+<para>
+The IO initialization (called from <link linkend="xmlSecInit">xmlSecInit</link>() function).
+Applications should not call this function directly.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecIOShutdown">xmlSecIOShutdown ()</title>
+<programlisting>void xmlSecIOShutdown (void);</programlisting>
+<para>
+The IO clenaup (called from <link linkend="xmlSecShutdown">xmlSecShutdown</link>() function).
+Applications should not call this function directly.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecInputUri">xmlSecInputUri</title>
+<programlisting>extern xmlSecTransformId xmlSecInputUri;
+</programlisting>
+<para>
+The input URI transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecInputUriTransformOpen">xmlSecInputUriTransformOpen ()</title>
+<programlisting>int xmlSecInputUriTransformOpen (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ const char *uri);</programlisting>
+<para>
+Opens the given <parameter>uri</parameter> for reading.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to IO transform.
+</entry></row>
+<row><entry align="right"><parameter>uri</parameter>&nbsp;:</entry>
+<entry> the URL to open.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecCleanupInputCallbacks">xmlSecCleanupInputCallbacks ()</title>
+<programlisting>void xmlSecCleanupInputCallbacks (void);</programlisting>
+<para>
+Clears the entire input callback table. this includes the
+compiled-in I/O.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecRegisterDefaultInputCallbacks">xmlSecRegisterDefaultInputCallbacks ()</title>
+<programlisting>void xmlSecRegisterDefaultInputCallbacks
+ (void);</programlisting>
+<para>
+Registers the default compiled-in I/O handlers.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecRegisterInputCallbacks">xmlSecRegisterInputCallbacks ()</title>
+<programlisting>int xmlSecRegisterInputCallbacks (<link linkend="xmlInputMatchCallback">xmlInputMatchCallback</link> matchFunc,
+ <link linkend="xmlInputOpenCallback">xmlInputOpenCallback</link> openFunc,
+ <link linkend="xmlInputReadCallback">xmlInputReadCallback</link> readFunc,
+ <link linkend="xmlInputCloseCallback">xmlInputCloseCallback</link> closeFunc);</programlisting>
+<para>
+Register a new set of I/O callback for handling parser input.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>matchFunc</parameter>&nbsp;:</entry>
+<entry> the xmlInputMatchCallback.
+</entry></row>
+<row><entry align="right"><parameter>openFunc</parameter>&nbsp;:</entry>
+<entry> the xmlInputOpenCallback.
+</entry></row>
+<row><entry align="right"><parameter>readFunc</parameter>&nbsp;:</entry>
+<entry> the xmlInputReadCallback.
+</entry></row>
+<row><entry align="right"><parameter>closeFunc</parameter>&nbsp;:</entry>
+<entry> the xmlInputCloseCallback.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the registered handler number or a negative value if
+an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+
+</refsect1>
+
+
+
+
+</refentry>
diff --git a/docs/api-0.0.x/sgml/keyinfo.sgml b/docs/api-0.0.x/sgml/keyinfo.sgml
new file mode 100644
index 00000000..1321c7b1
--- /dev/null
+++ b/docs/api-0.0.x/sgml/keyinfo.sgml
@@ -0,0 +1,285 @@
+<refentry id="xmlsec-keyinfo">
+<refmeta>
+<refentrytitle>keyinfo.h</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>XMLSEC Library</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>keyinfo.h</refname><refpurpose>The &lt;dsig:KeyInfo&gt; element manipulation functions.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><title>Synopsis</title>
+<synopsis>
+
+
+
+<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> <link linkend="xmlSecKeyInfoNodeRead">xmlSecKeyInfoNodeRead</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> keyInfoNode,
+ <link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> keysMngr,
+ void *context,
+ <link linkend="xmlSecKeyId">xmlSecKeyId</link> keyId,
+ <link linkend="xmlSecKeyType">xmlSecKeyType</link> keyType,
+ <link linkend="xmlSecKeyUsage">xmlSecKeyUsage</link> keyUsage,
+ <link linkend="time-t">time_t</link> certsVerificationTime);
+int <link linkend="xmlSecKeyInfoNodeWrite">xmlSecKeyInfoNodeWrite</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> keyInfoNode,
+ <link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> keysMngr,
+ void *context,
+ <link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="xmlSecKeyType">xmlSecKeyType</link> type);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecKeyInfoAddKeyName">xmlSecKeyInfoAddKeyName</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> keyInfoNode);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecKeyInfoAddKeyValue">xmlSecKeyInfoAddKeyValue</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> keyInfoNode);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecKeyInfoAddX509Data">xmlSecKeyInfoAddX509Data</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> keyInfoNode);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecKeyInfoAddRetrievalMethod">xmlSecKeyInfoAddRetrievalMethod</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> keyInfoNode,
+ const <link linkend="xmlChar">xmlChar</link> *uri,
+ const <link linkend="xmlChar">xmlChar</link> *type);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecRetrievalMethodAddTransform">xmlSecRetrievalMethodAddTransform</link>
+ (<link linkend="xmlNodePtr">xmlNodePtr</link> retrMethod,
+ <link linkend="xmlSecTransformId">xmlSecTransformId</link> transform);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecKeyInfoAddEncryptedKey">xmlSecKeyInfoAddEncryptedKey</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> keyInfoNode,
+ const <link linkend="xmlChar">xmlChar</link> *id,
+ const <link linkend="xmlChar">xmlChar</link> *type,
+ const <link linkend="xmlChar">xmlChar</link> *recipient);
+</synopsis>
+</refsynopsisdiv>
+
+
+
+
+
+<refsect1>
+<title>Description</title>
+<para>
+
+</para>
+</refsect1>
+
+<refsect1>
+<title>Details</title>
+<refsect2>
+<title><anchor id="xmlSecKeyInfoNodeRead">xmlSecKeyInfoNodeRead ()</title>
+<programlisting><link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> xmlSecKeyInfoNodeRead (<link linkend="xmlNodePtr">xmlNodePtr</link> keyInfoNode,
+ <link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> keysMngr,
+ void *context,
+ <link linkend="xmlSecKeyId">xmlSecKeyId</link> keyId,
+ <link linkend="xmlSecKeyType">xmlSecKeyType</link> keyType,
+ <link linkend="xmlSecKeyUsage">xmlSecKeyUsage</link> keyUsage,
+ <link linkend="time-t">time_t</link> certsVerificationTime);</programlisting>
+<para>
+Parses the &lt;dsig:KeyInfo&gt; element and extracts the key (with required
+id, type and usage).</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>keyInfoNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:KeyInfo&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>keysMngr</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecKeysMngr">xmlSecKeysMngr</link> struvture.
+</entry></row>
+<row><entry align="right"><parameter>context</parameter>&nbsp;:</entry>
+<entry> the pointer to application specific data that will be
+ passed to all callback functions.
+</entry></row>
+<row><entry align="right"><parameter>keyId</parameter>&nbsp;:</entry>
+<entry> the required key id or NULL.
+</entry></row>
+<row><entry align="right"><parameter>keyType</parameter>&nbsp;:</entry>
+<entry> the required key type (may be "any").
+</entry></row>
+<row><entry align="right"><parameter>keyUsage</parameter>&nbsp;:</entry>
+<entry> the desired key usage.
+</entry></row>
+<row><entry align="right"><parameter>certsVerificationTime</parameter>&nbsp;:</entry>
+<entry>
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to extracted key or NULL if an error occurs or
+required key is not found.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyInfoNodeWrite">xmlSecKeyInfoNodeWrite ()</title>
+<programlisting>int xmlSecKeyInfoNodeWrite (<link linkend="xmlNodePtr">xmlNodePtr</link> keyInfoNode,
+ <link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> keysMngr,
+ void *context,
+ <link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="xmlSecKeyType">xmlSecKeyType</link> type);</programlisting>
+<para>
+Writes the key into the &lt;dsig:KeyInfo&gt; template <parameter>keyInfoNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>keyInfoNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:KeyInfo&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>keysMngr</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecKeysMngr">xmlSecKeysMngr</link> struvture.
+</entry></row>
+<row><entry align="right"><parameter>context</parameter>&nbsp;:</entry>
+<entry> the pointer to application specific data that will be
+ passed to all callback functions.
+</entry></row>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the pointer to the <link linkend="xmlSecKey">xmlSecKey</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>type</parameter>&nbsp;:</entry>
+<entry> the key type (public/private).
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or -1 if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyInfoAddKeyName">xmlSecKeyInfoAddKeyName ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecKeyInfoAddKeyName (<link linkend="xmlNodePtr">xmlNodePtr</link> keyInfoNode);</programlisting>
+<para>
+Adds &lt;dsig:KeyName&gt; node to the &lt;dsig:KeyInfo&gt; node <parameter>keyInfoNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>keyInfoNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:KeyInfo&gt; node.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to the newly created &lt;dsig:KeyName&gt; node or
+NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyInfoAddKeyValue">xmlSecKeyInfoAddKeyValue ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecKeyInfoAddKeyValue (<link linkend="xmlNodePtr">xmlNodePtr</link> keyInfoNode);</programlisting>
+<para>
+Adds &lt;dsig:KeyValue&gt; node to the &lt;dsig:KeyInfo&gt; node <parameter>keyInfoNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>keyInfoNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:KeyInfo&gt; node.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to the newly created &lt;dsig:KeyValue&gt; node or
+NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyInfoAddX509Data">xmlSecKeyInfoAddX509Data ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecKeyInfoAddX509Data (<link linkend="xmlNodePtr">xmlNodePtr</link> keyInfoNode);</programlisting>
+<para>
+Adds &lt;dsig:X509Data&gt; node to the &lt;dsig:KeyInfo&gt; node <parameter>keyInfoNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>keyInfoNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:KeyInfo&gt; node.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to the newly created &lt;dsig:X509Data&gt; node or
+NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyInfoAddRetrievalMethod">xmlSecKeyInfoAddRetrievalMethod ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecKeyInfoAddRetrievalMethod (<link linkend="xmlNodePtr">xmlNodePtr</link> keyInfoNode,
+ const <link linkend="xmlChar">xmlChar</link> *uri,
+ const <link linkend="xmlChar">xmlChar</link> *type);</programlisting>
+<para>
+Adds &lt;dsig:RetrievalMethod&gt; node to the &lt;dsig:KeyInfo&gt; node <parameter>keyInfoNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>keyInfoNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:KeyInfo&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>uri</parameter>&nbsp;:</entry>
+<entry> the URI attribute (optional).
+</entry></row>
+<row><entry align="right"><parameter>type</parameter>&nbsp;:</entry>
+<entry> the Type attribute(optional).
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to the newly created &lt;dsig:RetrievalMethod&gt; node or
+NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecRetrievalMethodAddTransform">xmlSecRetrievalMethodAddTransform ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecRetrievalMethodAddTransform
+ (<link linkend="xmlNodePtr">xmlNodePtr</link> retrMethod,
+ <link linkend="xmlSecTransformId">xmlSecTransformId</link> transform);</programlisting>
+<para>
+Adds &lt;dsig:Transform&gt; node (and the parent &lt;dsig:Transforms&gt; node
+if required) to the &lt;dsig:RetrievalMethod&gt; node <parameter>retrMethod</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>retrMethod</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:RetrievalMethod&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the transform id.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to the newly created &lt;dsig:dsig:Transforms&gt; node or
+NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyInfoAddEncryptedKey">xmlSecKeyInfoAddEncryptedKey ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecKeyInfoAddEncryptedKey (<link linkend="xmlNodePtr">xmlNodePtr</link> keyInfoNode,
+ const <link linkend="xmlChar">xmlChar</link> *id,
+ const <link linkend="xmlChar">xmlChar</link> *type,
+ const <link linkend="xmlChar">xmlChar</link> *recipient);</programlisting>
+<para>
+Adds &lt;enc:EncryptedKey&gt; node with given attributes to
+the &lt;dsig:KeyInfo&gt; node <parameter>keyInfoNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>keyInfoNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:KeyInfo&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>id</parameter>&nbsp;:</entry>
+<entry> the Id attribute (optional).
+</entry></row>
+<row><entry align="right"><parameter>type</parameter>&nbsp;:</entry>
+<entry> the Type attribute (optional).
+</entry></row>
+<row><entry align="right"><parameter>recipient</parameter>&nbsp;:</entry>
+<entry> the Recipient attribute (optional).
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to the newly created &lt;enc:EncryptedKey&gt; node or
+NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+
+</refsect1>
+
+
+
+
+</refentry>
diff --git a/docs/api-0.0.x/sgml/keys.sgml b/docs/api-0.0.x/sgml/keys.sgml
new file mode 100644
index 00000000..e0353a3d
--- /dev/null
+++ b/docs/api-0.0.x/sgml/keys.sgml
@@ -0,0 +1,760 @@
+<refentry id="xmlsec-keys">
+<refmeta>
+<refentrytitle>keys.h</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>XMLSEC Library</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>keys.h</refname><refpurpose>The keys helper functions.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><title>Synopsis</title>
+<synopsis>
+
+
+
+typedef <link linkend="xmlSecKeyId">xmlSecKeyId</link>;
+enum <link linkend="xmlSecKeyType">xmlSecKeyType</link>;
+enum <link linkend="xmlSecKeyUsage">xmlSecKeyUsage</link>;
+typedef <link linkend="xmlSecKeyOrigin">xmlSecKeyOrigin</link>;
+#define <link linkend="xmlSecKeyOriginDefault">xmlSecKeyOriginDefault</link>
+#define <link linkend="xmlSecKeyOriginKeyManager">xmlSecKeyOriginKeyManager</link>
+#define <link linkend="xmlSecKeyOriginKeyName">xmlSecKeyOriginKeyName</link>
+#define <link linkend="xmlSecKeyOriginKeyValue">xmlSecKeyOriginKeyValue</link>
+#define <link linkend="xmlSecKeyOriginRetrievalDocument">xmlSecKeyOriginRetrievalDocument</link>
+#define <link linkend="xmlSecKeyOriginRetrievalRemote">xmlSecKeyOriginRetrievalRemote</link>
+#define <link linkend="xmlSecKeyOriginX509">xmlSecKeyOriginX509</link>
+#define <link linkend="xmlSecKeyOriginPGP">xmlSecKeyOriginPGP</link>
+#define <link linkend="xmlSecKeyOriginEncryptedKey">xmlSecKeyOriginEncryptedKey</link>
+#define <link linkend="xmlSecKeyOriginAll">xmlSecKeyOriginAll</link>
+#define <link linkend="xmlSecKeyIdUnknown">xmlSecKeyIdUnknown</link>
+struct <link linkend="xmlSecKey">xmlSecKey</link>;
+<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> <link linkend="xmlSecKeyCreate">xmlSecKeyCreate</link> (<link linkend="xmlSecKeyId">xmlSecKeyId</link> id,
+ <link linkend="xmlSecKeyOrigin">xmlSecKeyOrigin</link> origin);
+void <link linkend="xmlSecKeyDestroy">xmlSecKeyDestroy</link> (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key);
+<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> <link linkend="xmlSecKeyDuplicate">xmlSecKeyDuplicate</link> (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="xmlSecKeyOrigin">xmlSecKeyOrigin</link> origin);
+int <link linkend="xmlSecVerifyKey">xmlSecVerifyKey</link> (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ const <link linkend="xmlChar">xmlChar</link> *name,
+ <link linkend="xmlSecKeyId">xmlSecKeyId</link> id,
+ <link linkend="xmlSecKeyType">xmlSecKeyType</link> type);
+void <link linkend="xmlSecKeyDebugDump">xmlSecKeyDebugDump</link> (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="FILE-CAPS">FILE</link> *output);
+int <link linkend="xmlSecKeyReadPemCert">xmlSecKeyReadPemCert</link> (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ const char *filename);
+struct <link linkend="xmlSecKeysMngr">xmlSecKeysMngr</link>;
+<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> (<link linkend="xmlSecGetKeyCallback">*xmlSecGetKeyCallback</link>) (<link linkend="xmlNodePtr">xmlNodePtr</link> keyInfoNode,
+ <link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ void *context,
+ <link linkend="xmlSecKeyId">xmlSecKeyId</link> keyId,
+ <link linkend="xmlSecKeyType">xmlSecKeyType</link> type,
+ <link linkend="xmlSecKeyUsage">xmlSecKeyUsage</link> usage,
+ <link linkend="time-t">time_t</link> certsVerificationTime);
+<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> (<link linkend="xmlSecFindKeyCallback">*xmlSecFindKeyCallback</link>) (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ void *context,
+ const <link linkend="xmlChar">xmlChar</link> *name,
+ <link linkend="xmlSecKeyId">xmlSecKeyId</link> id,
+ <link linkend="xmlSecKeyType">xmlSecKeyType</link> type,
+ <link linkend="xmlSecKeyUsage">xmlSecKeyUsage</link> usage);
+<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> (<link linkend="xmlSecX509FindCallback">*xmlSecX509FindCallback</link>) (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ void *context,
+ <link linkend="xmlChar">xmlChar</link> *subjectName,
+ <link linkend="xmlChar">xmlChar</link> *issuerName,
+ <link linkend="xmlChar">xmlChar</link> *issuerSerial,
+ <link linkend="xmlChar">xmlChar</link> *ski,
+ <link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> cert);
+int (<link linkend="xmlSecX509VerifyCallback">*xmlSecX509VerifyCallback</link>) (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ void *context,
+ <link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> cert);
+<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> <link linkend="xmlSecKeysMngrGetKey">xmlSecKeysMngrGetKey</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> keyInfoNode,
+ <link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ void *context,
+ <link linkend="xmlSecKeyId">xmlSecKeyId</link> keyId,
+ <link linkend="xmlSecKeyType">xmlSecKeyType</link> keyType,
+ <link linkend="xmlSecKeyUsage">xmlSecKeyUsage</link> keyUsage,
+ <link linkend="time-t">time_t</link> certsVerificationTime);
+</synopsis>
+</refsynopsisdiv>
+
+
+
+
+
+<refsect1>
+<title>Description</title>
+<para>
+
+</para>
+</refsect1>
+
+<refsect1>
+<title>Details</title>
+<refsect2>
+<title><anchor id="xmlSecKeyId">xmlSecKeyId</title>
+<programlisting>typedef const struct _xmlSecKeyIdStruct *xmlSecKeyId;
+</programlisting>
+<para>
+The key id (key type information).</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyType">enum xmlSecKeyType</title>
+<programlisting>typedef enum {
+ xmlSecKeyTypePublic = 0,
+ xmlSecKeyTypePrivate,
+ xmlSecKeyTypeAny
+} xmlSecKeyType;
+</programlisting>
+<para>
+The key type (public/private).</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="enum">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row>
+<entry><literal>xmlSecKeyTypePublic</literal></entry>
+<entry> the public key.
+</entry>
+</row>
+<row>
+<entry><literal>xmlSecKeyTypePrivate</literal></entry>
+<entry> the private key.
+</entry>
+</row>
+<row>
+<entry><literal>xmlSecKeyTypeAny</literal></entry>
+<entry> any key.
+</entry>
+</row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyUsage">enum xmlSecKeyUsage</title>
+<programlisting>typedef enum {
+ xmlSecKeyUsageAny = 0,
+ xmlSecKeyUsageSign,
+ xmlSecKeyUsageVerify,
+ xmlSecKeyUsageEncrypt,
+ xmlSecKeyUsageDecrypt
+} xmlSecKeyUsage;
+</programlisting>
+<para>
+The key usage.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="enum">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row>
+<entry><literal>xmlSecKeyUsageAny</literal></entry>
+<entry> the key can be used in any way.
+</entry>
+</row>
+<row>
+<entry><literal>xmlSecKeyUsageSign</literal></entry>
+<entry> the key for signing.
+</entry>
+</row>
+<row>
+<entry><literal>xmlSecKeyUsageVerify</literal></entry>
+<entry> the key for signature verification.
+</entry>
+</row>
+<row>
+<entry><literal>xmlSecKeyUsageEncrypt</literal></entry>
+<entry> the encryption key.
+</entry>
+</row>
+<row>
+<entry><literal>xmlSecKeyUsageDecrypt</literal></entry>
+<entry> the decryption key.
+</entry>
+</row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyOrigin">xmlSecKeyOrigin</title>
+<programlisting>typedef long xmlSecKeyOrigin;
+</programlisting>
+<para>
+The key origin (keys manager, remote document, cert, etc.).</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyOriginDefault">xmlSecKeyOriginDefault</title>
+<programlisting>#define xmlSecKeyOriginDefault 0
+</programlisting>
+<para>
+Default origin (unknown).</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyOriginKeyManager">xmlSecKeyOriginKeyManager</title>
+<programlisting>#define xmlSecKeyOriginKeyManager 1
+</programlisting>
+<para>
+The key was found in the keys manager.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyOriginKeyName">xmlSecKeyOriginKeyName</title>
+<programlisting>#define xmlSecKeyOriginKeyName 2
+</programlisting>
+<para>
+The key was found in the keys manager via key name
+specified in the &lt;dsig:KeyName&gt; node. (useless w/o
+<link linkend="xmlSecKeyOriginKeyManager">xmlSecKeyOriginKeyManager</link>).</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyOriginKeyValue">xmlSecKeyOriginKeyValue</title>
+<programlisting>#define xmlSecKeyOriginKeyValue 4
+</programlisting>
+<para>
+The key was extracted from &lt;dsig:KeyValue&gt; node.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyOriginRetrievalDocument">xmlSecKeyOriginRetrievalDocument</title>
+<programlisting>#define xmlSecKeyOriginRetrievalDocument 8
+</programlisting>
+<para>
+The key was extracted thru &lt;dsig:RetrievalMethod&gt;
+pointing in the same document.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyOriginRetrievalRemote">xmlSecKeyOriginRetrievalRemote</title>
+<programlisting>#define xmlSecKeyOriginRetrievalRemote 16
+</programlisting>
+<para>
+The key was extracted thru &lt;dsig:RetrievalMethod&gt;
+pointing to another document.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyOriginX509">xmlSecKeyOriginX509</title>
+<programlisting>#define xmlSecKeyOriginX509 32
+</programlisting>
+<para>
+The key was extracted from X509 certificate
+in the &lt;dsig:X509Data&gt; node.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyOriginPGP">xmlSecKeyOriginPGP</title>
+<programlisting>#define xmlSecKeyOriginPGP 64
+</programlisting>
+<para>
+The PGP key from &lt;dsig:PGPData&gt; node. Not used.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyOriginEncryptedKey">xmlSecKeyOriginEncryptedKey</title>
+<programlisting>#define xmlSecKeyOriginEncryptedKey 128
+</programlisting>
+<para>
+The key was extracted from &lt;enc:EncryptedKey&gt; node.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyOriginAll">xmlSecKeyOriginAll</title>
+<programlisting>#define xmlSecKeyOriginAll</programlisting>
+<para>
+All of the above.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyIdUnknown">xmlSecKeyIdUnknown</title>
+<programlisting>#define xmlSecKeyIdUnknown NULL
+</programlisting>
+<para>
+The "unknown" id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKey">struct xmlSecKey</title>
+<programlisting>struct xmlSecKey {
+ xmlSecKeyId id;
+ xmlSecKeyType type;
+ xmlChar *name;
+ xmlSecKeyOrigin origin;
+ xmlSecX509DataPtr x509Data;
+ void *keyData;
+};
+</programlisting>
+<para>
+The key.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="struct">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row>
+<entry><link linkend="xmlSecKeyId">xmlSecKeyId</link> <structfield>id</structfield></entry>
+<entry> the key id (<link linkend="xmlSecKeyId">xmlSecKeyId</link>).
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecKeyType">xmlSecKeyType</link> <structfield>type</structfield></entry>
+<entry> the key type (private/public).
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlChar">xmlChar</link> *<structfield>name</structfield></entry>
+<entry> the key name (may be NULL).
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecKeyOrigin">xmlSecKeyOrigin</link> <structfield>origin</structfield></entry>
+<entry> the key origin.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> <structfield>x509Data</structfield></entry>
+<entry> the pointer to X509 cert data (if key was extracted from a cert).
+</entry>
+</row>
+<row>
+<entry>void *<structfield>keyData</structfield></entry>
+<entry> key specific data.
+</entry>
+</row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyCreate">xmlSecKeyCreate ()</title>
+<programlisting><link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> xmlSecKeyCreate (<link linkend="xmlSecKeyId">xmlSecKeyId</link> id,
+ <link linkend="xmlSecKeyOrigin">xmlSecKeyOrigin</link> origin);</programlisting>
+<para>
+Creates new key of the specified type <parameter>id</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>id</parameter>&nbsp;:</entry>
+<entry> the key id.
+</entry></row>
+<row><entry align="right"><parameter>origin</parameter>&nbsp;:</entry>
+<entry> the key origins.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly allocated <link linkend="xmlSecKey">xmlSecKey</link> structure
+or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyDestroy">xmlSecKeyDestroy ()</title>
+<programlisting>void xmlSecKeyDestroy (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key);</programlisting>
+<para>
+Destroys the key and frees all allocated memory.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the pointer to the <link linkend="xmlSecKey">xmlSecKey</link> structure.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyDuplicate">xmlSecKeyDuplicate ()</title>
+<programlisting><link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> xmlSecKeyDuplicate (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="xmlSecKeyOrigin">xmlSecKeyOrigin</link> origin);</programlisting>
+<para>
+Creates a duplicate of the given <parameter>key</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the pointer to the <link linkend="xmlSecKey">xmlSecKey</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>origin</parameter>&nbsp;:</entry>
+<entry> the key origins.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly allocated <link linkend="xmlSecKey">xmlSecKey</link> structure
+or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecVerifyKey">xmlSecVerifyKey ()</title>
+<programlisting>int xmlSecVerifyKey (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ const <link linkend="xmlChar">xmlChar</link> *name,
+ <link linkend="xmlSecKeyId">xmlSecKeyId</link> id,
+ <link linkend="xmlSecKeyType">xmlSecKeyType</link> type);</programlisting>
+<para>
+Checks whether the <parameter>key</parameter> matches the given criteria
+(key name is equal to <parameter>name</parameter>, key id is equal to <parameter>id</parameter>,
+key type is <parameter>type</parameter>).</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the pointer to the <link linkend="xmlSecKey">xmlSecKey</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>name</parameter>&nbsp;:</entry>
+<entry> the pointer to key name (may be NULL).
+</entry></row>
+<row><entry align="right"><parameter>id</parameter>&nbsp;:</entry>
+<entry> the key id (may be "any").
+</entry></row>
+<row><entry align="right"><parameter>type</parameter>&nbsp;:</entry>
+<entry> the key type to write (public/private).
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>1 if the key satisfies the given criteria or 0 otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyDebugDump">xmlSecKeyDebugDump ()</title>
+<programlisting>void xmlSecKeyDebugDump (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="FILE-CAPS">FILE</link> *output);</programlisting>
+<para>
+Prints the information about the <parameter>key</parameter> to the <parameter>output</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the pointer to the <link linkend="xmlSecKey">xmlSecKey</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>output</parameter>&nbsp;:</entry>
+<entry> the destination <link linkend="FILE-CAPS">FILE</link> pointer.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyReadPemCert">xmlSecKeyReadPemCert ()</title>
+<programlisting>int xmlSecKeyReadPemCert (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ const char *filename);</programlisting>
+<para>
+Reads the cert from a PEM file and assigns the cert
+to the key.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the pointer to the <link linkend="xmlSecKey">xmlSecKey</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>filename</parameter>&nbsp;:</entry>
+<entry> the PEM cert file name.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeysMngr">struct xmlSecKeysMngr</title>
+<programlisting>struct xmlSecKeysMngr {
+ xmlSecGetKeyCallback getKey;
+ xmlSecKeyOrigin allowedOrigins;
+ int maxRetrievalsLevel;
+ int maxEncKeysLevel;
+
+ /* low level keys */
+ xmlSecFindKeyCallback findKey;
+ void *keysData;
+
+ /* x509 certs */
+ int failIfCertNotFound;
+ xmlSecX509FindCallback findX509;
+ xmlSecX509VerifyCallback verifyX509;
+ void *x509Data;
+};
+</programlisting>
+<para>
+The keys manager structure.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="struct">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row>
+<entry><link linkend="xmlSecGetKeyCallback">xmlSecGetKeyCallback</link> <structfield>getKey</structfield></entry>
+<entry> the callback used to read &lt;dsig:KeyInfo&gt; node.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecKeyOrigin">xmlSecKeyOrigin</link> <structfield>allowedOrigins</structfield></entry>
+<entry> the allowed origins bits mask.
+</entry>
+</row>
+<row>
+<entry>int <structfield>maxRetrievalsLevel</structfield></entry>
+<entry> the max allowed &lt;dsig:RetrievalMethod&gt; level to prevent DOS attack.
+</entry>
+</row>
+<row>
+<entry>int <structfield>maxEncKeysLevel</structfield></entry>
+<entry> the max allowed &lt;enc:EncryptedKey&gt; level to prevent DOS attack.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecFindKeyCallback">xmlSecFindKeyCallback</link> <structfield>findKey</structfield></entry>
+<entry> the callback used to serach for key in the keys manager.
+</entry>
+</row>
+<row>
+<entry>void *<structfield>keysData</structfield></entry>
+<entry> the keys manager data.
+</entry>
+</row>
+<row>
+<entry>int <structfield>failIfCertNotFound</structfield></entry>
+<entry> the flag.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecX509FindCallback">xmlSecX509FindCallback</link> <structfield>findX509</structfield></entry>
+<entry> the callback used to search for a cert.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecX509VerifyCallback">xmlSecX509VerifyCallback</link> <structfield>verifyX509</structfield></entry>
+<entry> the callback used to verify a cert.
+</entry>
+</row>
+<row>
+<entry>void *<structfield>x509Data</structfield></entry>
+<entry> the X509 certificates manager specific data.
+</entry>
+</row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecGetKeyCallback">xmlSecGetKeyCallback ()</title>
+<programlisting><link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> (*xmlSecGetKeyCallback) (<link linkend="xmlNodePtr">xmlNodePtr</link> keyInfoNode,
+ <link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ void *context,
+ <link linkend="xmlSecKeyId">xmlSecKeyId</link> keyId,
+ <link linkend="xmlSecKeyType">xmlSecKeyType</link> type,
+ <link linkend="xmlSecKeyUsage">xmlSecKeyUsage</link> usage,
+ <link linkend="time-t">time_t</link> certsVerificationTime);</programlisting>
+<para>
+Reads the &lt;dsig:KeyInfo&gt; node <parameter>keyInfoNode</parameter> and extracts the key.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>keyInfoNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:KeyInfo&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>mngr</parameter>&nbsp;:</entry>
+<entry> the keys manager.
+</entry></row>
+<row><entry align="right"><parameter>context</parameter>&nbsp;:</entry>
+<entry> the pointer to application specific data.
+</entry></row>
+<row><entry align="right"><parameter>keyId</parameter>&nbsp;:</entry>
+<entry> the required key Id (or NULL for "any").
+</entry></row>
+<row><entry align="right"><parameter>type</parameter>&nbsp;:</entry>
+<entry> the required key (may be "any").
+</entry></row>
+<row><entry align="right"><parameter>usage</parameter>&nbsp;:</entry>
+<entry> the required key usage.
+</entry></row>
+<row><entry align="right"><parameter>certsVerificationTime</parameter>&nbsp;:</entry>
+<entry>
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to key or NULL if the key is not found or
+an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecFindKeyCallback">xmlSecFindKeyCallback ()</title>
+<programlisting><link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> (*xmlSecFindKeyCallback) (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ void *context,
+ const <link linkend="xmlChar">xmlChar</link> *name,
+ <link linkend="xmlSecKeyId">xmlSecKeyId</link> id,
+ <link linkend="xmlSecKeyType">xmlSecKeyType</link> type,
+ <link linkend="xmlSecKeyUsage">xmlSecKeyUsage</link> usage);</programlisting>
+<para>
+Searches the keys manager for specified key.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>mngr</parameter>&nbsp;:</entry>
+<entry> the keys manager.
+</entry></row>
+<row><entry align="right"><parameter>context</parameter>&nbsp;:</entry>
+<entry> the pointer to application specific data.
+</entry></row>
+<row><entry align="right"><parameter>name</parameter>&nbsp;:</entry>
+<entry> the required key name (or NULL for "any").
+</entry></row>
+<row><entry align="right"><parameter>id</parameter>&nbsp;:</entry>
+<entry> the required key Id (or NULL for "any").
+</entry></row>
+<row><entry align="right"><parameter>type</parameter>&nbsp;:</entry>
+<entry> the required key (may be "any").
+</entry></row>
+<row><entry align="right"><parameter>usage</parameter>&nbsp;:</entry>
+<entry> the required key usage.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to key or NULL if the key is not found or
+an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecX509FindCallback">xmlSecX509FindCallback ()</title>
+<programlisting><link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> (*xmlSecX509FindCallback) (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ void *context,
+ <link linkend="xmlChar">xmlChar</link> *subjectName,
+ <link linkend="xmlChar">xmlChar</link> *issuerName,
+ <link linkend="xmlChar">xmlChar</link> *issuerSerial,
+ <link linkend="xmlChar">xmlChar</link> *ski,
+ <link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> cert);</programlisting>
+<para>
+Searches for matching certificate in the keys manager.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>mngr</parameter>&nbsp;:</entry>
+<entry> the keys manager.
+</entry></row>
+<row><entry align="right"><parameter>context</parameter>&nbsp;:</entry>
+<entry> the pointer application specific data.
+</entry></row>
+<row><entry align="right"><parameter>subjectName</parameter>&nbsp;:</entry>
+<entry> the subject name string.
+</entry></row>
+<row><entry align="right"><parameter>issuerName</parameter>&nbsp;:</entry>
+<entry> the issuer name string.
+</entry></row>
+<row><entry align="right"><parameter>issuerSerial</parameter>&nbsp;:</entry>
+<entry> the issuer serial.
+</entry></row>
+<row><entry align="right"><parameter>ski</parameter>&nbsp;:</entry>
+<entry> the SKI string.
+</entry></row>
+<row><entry align="right"><parameter>cert</parameter>&nbsp;:</entry>
+<entry> the current X509 certs data (may be NULL).
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to certificate that matches given criteria or NULL
+if an error occurs or certificate not found.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecX509VerifyCallback">xmlSecX509VerifyCallback ()</title>
+<programlisting>int (*xmlSecX509VerifyCallback) (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ void *context,
+ <link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> cert);</programlisting>
+<para>
+Validates certificate.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>mngr</parameter>&nbsp;:</entry>
+<entry> the keys manager.
+</entry></row>
+<row><entry align="right"><parameter>context</parameter>&nbsp;:</entry>
+<entry> the pointer to application specific data.
+</entry></row>
+<row><entry align="right"><parameter>cert</parameter>&nbsp;:</entry>
+<entry> the cert to verify.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>1 if the cert is trusted, 0 if it is not trusted
+and -1 if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeysMngrGetKey">xmlSecKeysMngrGetKey ()</title>
+<programlisting><link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> xmlSecKeysMngrGetKey (<link linkend="xmlNodePtr">xmlNodePtr</link> keyInfoNode,
+ <link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ void *context,
+ <link linkend="xmlSecKeyId">xmlSecKeyId</link> keyId,
+ <link linkend="xmlSecKeyType">xmlSecKeyType</link> keyType,
+ <link linkend="xmlSecKeyUsage">xmlSecKeyUsage</link> keyUsage,
+ <link linkend="time-t">time_t</link> certsVerificationTime);</programlisting>
+<para>
+Reads the &lt;dsig:KeyInfo&gt; node <parameter>keyInfoNode</parameter> and extracts the key.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>keyInfoNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:KeyInfo&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>mngr</parameter>&nbsp;:</entry>
+<entry> the keys manager.
+</entry></row>
+<row><entry align="right"><parameter>context</parameter>&nbsp;:</entry>
+<entry> the pointer to application specific data.
+</entry></row>
+<row><entry align="right"><parameter>keyId</parameter>&nbsp;:</entry>
+<entry> the required key Id (or NULL for "any").
+</entry></row>
+<row><entry align="right"><parameter>keyType</parameter>&nbsp;:</entry>
+<entry> the required key (may be "any").
+</entry></row>
+<row><entry align="right"><parameter>keyUsage</parameter>&nbsp;:</entry>
+<entry> the required key usage.
+</entry></row>
+<row><entry align="right"><parameter>certsVerificationTime</parameter>&nbsp;:</entry>
+<entry>
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to key or NULL if the key is not found or
+an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+
+</refsect1>
+
+
+
+
+</refentry>
diff --git a/docs/api-0.0.x/sgml/keysInternal.sgml b/docs/api-0.0.x/sgml/keysInternal.sgml
new file mode 100644
index 00000000..e6fdaeb1
--- /dev/null
+++ b/docs/api-0.0.x/sgml/keysInternal.sgml
@@ -0,0 +1,411 @@
+<refentry id="xmlsec-keysInternal">
+<refmeta>
+<refentrytitle>keysInternal.h</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>XMLSEC Library</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>keysInternal.h</refname><refpurpose>The internal keys functions.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><title>Synopsis</title>
+<synopsis>
+
+
+
+#define <link linkend="xmlSecKeyInifiteRetrivals">xmlSecKeyInifiteRetrivals</link>
+<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> (<link linkend="xmlSecKeyCreateMethod">*xmlSecKeyCreateMethod</link>) (<link linkend="xmlSecKeyId">xmlSecKeyId</link> id);
+<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> (<link linkend="xmlSecKeyDuplicateMethod">*xmlSecKeyDuplicateMethod</link>) (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key);
+void (<link linkend="xmlSecKeyDestroyMethod">*xmlSecKeyDestroyMethod</link>) (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key);
+int (<link linkend="xmlSecKeyReadXmlMethod">*xmlSecKeyReadXmlMethod</link>) (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> node);
+int (<link linkend="xmlSecKeyWriteXmlMethod">*xmlSecKeyWriteXmlMethod</link>) (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="xmlSecKeyType">xmlSecKeyType</link> type,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> parent);
+int (<link linkend="xmlSecKeyReadBinaryMethod">*xmlSecKeyReadBinaryMethod</link>) (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);
+int (<link linkend="xmlSecKeyWriteBinaryMethod">*xmlSecKeyWriteBinaryMethod</link>) (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="xmlSecKeyType">xmlSecKeyType</link> type,
+ unsigned char **buf,
+ <link linkend="size-t">size_t</link> *size);
+void <link linkend="xmlSecKeysInit">xmlSecKeysInit</link> (void);
+#define <link linkend="xmlSecKeyIsValid">xmlSecKeyIsValid</link> (key)
+#define <link linkend="xmlSecKeyCheckId">xmlSecKeyCheckId</link> (key, keyId)
+#define <link linkend="xmlSecKeyCheckTransform">xmlSecKeyCheckTransform</link> (key, tr)
+<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> <link linkend="xmlSecKeyReadXml">xmlSecKeyReadXml</link> (<link linkend="xmlSecKeyId">xmlSecKeyId</link> id,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> node);
+int <link linkend="xmlSecKeyWriteXml">xmlSecKeyWriteXml</link> (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="xmlSecKeyType">xmlSecKeyType</link> type,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> node);
+<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> <link linkend="xmlSecKeyReadBin">xmlSecKeyReadBin</link> (<link linkend="xmlSecKeyId">xmlSecKeyId</link> id,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);
+int <link linkend="xmlSecKeyWriteBin">xmlSecKeyWriteBin</link> (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="xmlSecKeyType">xmlSecKeyType</link> type,
+ unsigned char **buf,
+ <link linkend="size-t">size_t</link> *size);
+</synopsis>
+</refsynopsisdiv>
+
+
+
+
+
+<refsect1>
+<title>Description</title>
+<para>
+
+</para>
+</refsect1>
+
+<refsect1>
+<title>Details</title>
+<refsect2>
+<title><anchor id="xmlSecKeyInifiteRetrivals">xmlSecKeyInifiteRetrivals</title>
+<programlisting>#define xmlSecKeyInifiteRetrivals 99999
+</programlisting>
+<para>
+Macro. Inifinite number of retrievals (really big number :) )</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyCreateMethod">xmlSecKeyCreateMethod ()</title>
+<programlisting><link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> (*xmlSecKeyCreateMethod) (<link linkend="xmlSecKeyId">xmlSecKeyId</link> id);</programlisting>
+<para>
+Key specific creation method.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>id</parameter>&nbsp;:</entry>
+<entry> the key id.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly created <link linkend="xmlSecKey">xmlSecKey</link> structure
+or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyDuplicateMethod">xmlSecKeyDuplicateMethod ()</title>
+<programlisting><link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> (*xmlSecKeyDuplicateMethod) (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key);</programlisting>
+<para>
+Key specific duplication method.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the key.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly created <link linkend="xmlSecKey">xmlSecKey</link> structure
+or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyDestroyMethod">xmlSecKeyDestroyMethod ()</title>
+<programlisting>void (*xmlSecKeyDestroyMethod) (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key);</programlisting>
+<para>
+Key specific destroy method.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the key.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyReadXmlMethod">xmlSecKeyReadXmlMethod ()</title>
+<programlisting>int (*xmlSecKeyReadXmlMethod) (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> node);</programlisting>
+<para>
+Key specific reading from XML node method.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the key.
+</entry></row>
+<row><entry align="right"><parameter>node</parameter>&nbsp;:</entry>
+<entry> the pointer to key's value XML node.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyWriteXmlMethod">xmlSecKeyWriteXmlMethod ()</title>
+<programlisting>int (*xmlSecKeyWriteXmlMethod) (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="xmlSecKeyType">xmlSecKeyType</link> type,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> parent);</programlisting>
+<para>
+Key specific writing to XML node method.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the key.
+</entry></row>
+<row><entry align="right"><parameter>type</parameter>&nbsp;:</entry>
+<entry> the key type to write (public/private).
+</entry></row>
+<row><entry align="right"><parameter>parent</parameter>&nbsp;:</entry>
+<entry> the pointer to key's value XML node parent node.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyReadBinaryMethod">xmlSecKeyReadBinaryMethod ()</title>
+<programlisting>int (*xmlSecKeyReadBinaryMethod) (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);</programlisting>
+<para>
+Key specific reading binary data method.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the key.
+</entry></row>
+<row><entry align="right"><parameter>buf</parameter>&nbsp;:</entry>
+<entry> the input data buffer.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the input data buffer size.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyWriteBinaryMethod">xmlSecKeyWriteBinaryMethod ()</title>
+<programlisting>int (*xmlSecKeyWriteBinaryMethod) (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="xmlSecKeyType">xmlSecKeyType</link> type,
+ unsigned char **buf,
+ <link linkend="size-t">size_t</link> *size);</programlisting>
+<para>
+Key specific writing binary data method. The data are returned
+in an allocated <parameter>buf</parameter> and caller is responsible for freeing
+it using <link linkend="xmlFree">xmlFree</link>() function.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the key.
+</entry></row>
+<row><entry align="right"><parameter>type</parameter>&nbsp;:</entry>
+<entry> the key type to write (public/private).
+</entry></row>
+<row><entry align="right"><parameter>buf</parameter>&nbsp;:</entry>
+<entry> the pointer to pointer to the output buffer.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the pointer to output buffer size.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeysInit">xmlSecKeysInit ()</title>
+<programlisting>void xmlSecKeysInit (void);</programlisting>
+<para>
+Initializes the key ids list (called from <link linkend="xmlSecInit">xmlSecInit</link>() function).
+This function should not be called directly by applications.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyIsValid">xmlSecKeyIsValid()</title>
+<programlisting>#define xmlSecKeyIsValid(key)</programlisting>
+<para>
+Macro. Returns 1 if <parameter>key</parameter> is not NULL and <parameter>key</parameter>-&gt;id is not NULL
+or 0 otherwise.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the pointer to key.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyCheckId">xmlSecKeyCheckId()</title>
+<programlisting>#define xmlSecKeyCheckId(key, keyId)</programlisting>
+<para>
+Macro. Returns 1 if <parameter>key</parameter> is valid and <parameter>key</parameter>'s id is equal to <parameter>keyId</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the pointer to key.
+</entry></row>
+<row><entry align="right"><parameter>keyId</parameter>&nbsp;:</entry>
+<entry> the key Id.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyCheckTransform">xmlSecKeyCheckTransform()</title>
+<programlisting>#define xmlSecKeyCheckTransform(key, tr)</programlisting>
+<para>
+Macro. Returns 1 if <parameter>key</parameter> is valid and could be used for transform <parameter>tr</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the pointer to key.
+</entry></row>
+<row><entry align="right"><parameter>tr</parameter>&nbsp;:</entry>
+<entry> the pointer to transform.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyReadXml">xmlSecKeyReadXml ()</title>
+<programlisting><link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> xmlSecKeyReadXml (<link linkend="xmlSecKeyId">xmlSecKeyId</link> id,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> node);</programlisting>
+<para>
+Reads the key from XML node.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>id</parameter>&nbsp;:</entry>
+<entry> the key id.
+</entry></row>
+<row><entry align="right"><parameter>node</parameter>&nbsp;:</entry>
+<entry> the pointer to key value node.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly allocated <link linkend="xmlSecKey">xmlSecKey</link> structure
+or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyWriteXml">xmlSecKeyWriteXml ()</title>
+<programlisting>int xmlSecKeyWriteXml (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="xmlSecKeyType">xmlSecKeyType</link> type,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> node);</programlisting>
+<para>
+Writes the key in the XML node.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the pointer to the <link linkend="xmlSecKey">xmlSecKey</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>type</parameter>&nbsp;:</entry>
+<entry> the key type to write (public/private).
+</entry></row>
+<row><entry align="right"><parameter>node</parameter>&nbsp;:</entry>
+<entry> the parent XML node.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyReadBin">xmlSecKeyReadBin ()</title>
+<programlisting><link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> xmlSecKeyReadBin (<link linkend="xmlSecKeyId">xmlSecKeyId</link> id,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);</programlisting>
+<para>
+Reads the key from binary data.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>id</parameter>&nbsp;:</entry>
+<entry> the key id.
+</entry></row>
+<row><entry align="right"><parameter>buf</parameter>&nbsp;:</entry>
+<entry> the pointer to key binary data buffer.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the size of the binary key data <parameter>buf</parameter>.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly allocated <link linkend="xmlSecKey">xmlSecKey</link> structure
+or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKeyWriteBin">xmlSecKeyWriteBin ()</title>
+<programlisting>int xmlSecKeyWriteBin (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="xmlSecKeyType">xmlSecKeyType</link> type,
+ unsigned char **buf,
+ <link linkend="size-t">size_t</link> *size);</programlisting>
+<para>
+Writes the key in the binary buffer. The caller is responsible
+for freeing the returned buffer using <link linkend="xmlFree">xmlFree</link>() function.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the pointer to the <link linkend="xmlSecKey">xmlSecKey</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>type</parameter>&nbsp;:</entry>
+<entry> the key type to write (public/private).
+</entry></row>
+<row><entry align="right"><parameter>buf</parameter>&nbsp;:</entry>
+<entry> the pointer to pointer to the binary data buffer.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the pointer to the returned buffer size.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+
+</refsect1>
+
+
+
+
+</refentry>
diff --git a/docs/api-0.0.x/sgml/keysmngr.sgml b/docs/api-0.0.x/sgml/keysmngr.sgml
new file mode 100644
index 00000000..ac961f44
--- /dev/null
+++ b/docs/api-0.0.x/sgml/keysmngr.sgml
@@ -0,0 +1,420 @@
+<refentry id="xmlsec-keysmngr">
+<refmeta>
+<refentrytitle>keysmngr.h</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>XMLSEC Library</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>keysmngr.h</refname><refpurpose>The simple keys manager implementation.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><title>Synopsis</title>
+<synopsis>
+
+
+
+<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> <link linkend="xmlSecSimpleKeysMngrCreate">xmlSecSimpleKeysMngrCreate</link>
+ (void);
+void <link linkend="xmlSecSimpleKeysMngrDestroy">xmlSecSimpleKeysMngrDestroy</link> (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr);
+<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> <link linkend="xmlSecSimpleKeysMngrFindKey">xmlSecSimpleKeysMngrFindKey</link> (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ void *context,
+ const <link linkend="xmlChar">xmlChar</link> *name,
+ <link linkend="xmlSecKeyId">xmlSecKeyId</link> id,
+ <link linkend="xmlSecKeyType">xmlSecKeyType</link> type,
+ <link linkend="xmlSecKeyUsage">xmlSecKeyUsage</link> usage);
+int <link linkend="xmlSecSimpleKeysMngrAddKey">xmlSecSimpleKeysMngrAddKey</link> (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ <link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key);
+int <link linkend="xmlSecSimpleKeysMngrLoad">xmlSecSimpleKeysMngrLoad</link> (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ const char *uri,
+ int strict);
+int <link linkend="xmlSecSimpleKeysMngrSave">xmlSecSimpleKeysMngrSave</link> (const <link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ const char *filename,
+ <link linkend="xmlSecKeyType">xmlSecKeyType</link> type);
+<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> <link linkend="xmlSecSimpleKeysMngrLoadPemKey">xmlSecSimpleKeysMngrLoadPemKey</link> (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ const char *keyfile,
+ const char *keyPwd,
+ <link linkend="pem-password-cb">pem_password_cb</link> *keyPwdCallback,
+ int privateKey);
+<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> <link linkend="xmlSecSimpleKeysMngrX509Find">xmlSecSimpleKeysMngrX509Find</link>
+ (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ void *context,
+ <link linkend="xmlChar">xmlChar</link> *subjectName,
+ <link linkend="xmlChar">xmlChar</link> *issuerName,
+ <link linkend="xmlChar">xmlChar</link> *issuerSerial,
+ <link linkend="xmlChar">xmlChar</link> *ski,
+ <link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> cert);
+int <link linkend="xmlSecSimpleKeysMngrX509Verify">xmlSecSimpleKeysMngrX509Verify</link> (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ void *context,
+ <link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> cert);
+int <link linkend="xmlSecSimpleKeysMngrLoadPemCert">xmlSecSimpleKeysMngrLoadPemCert</link> (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ const char *filename,
+ int trusted);
+int <link linkend="xmlSecSimpleKeysMngrAddCertsDir">xmlSecSimpleKeysMngrAddCertsDir</link> (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ const char *path);
+int <link linkend="xmlSecSimpleKeysMngrLoadPkcs12">xmlSecSimpleKeysMngrLoadPkcs12</link> (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ const char *name,
+ const char *filename,
+ const char *pwd);
+</synopsis>
+</refsynopsisdiv>
+
+
+
+
+
+<refsect1>
+<title>Description</title>
+<para>
+
+</para>
+</refsect1>
+
+<refsect1>
+<title>Details</title>
+<refsect2>
+<title><anchor id="xmlSecSimpleKeysMngrCreate">xmlSecSimpleKeysMngrCreate ()</title>
+<programlisting><link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> xmlSecSimpleKeysMngrCreate
+ (void);</programlisting>
+<para>
+Creates new simple keys manager.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>a pointer to newly allocated <link linkend="xmlSecKeysMngr">xmlSecKeysMngr</link> structure or
+NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecSimpleKeysMngrDestroy">xmlSecSimpleKeysMngrDestroy ()</title>
+<programlisting>void xmlSecSimpleKeysMngrDestroy (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr);</programlisting>
+<para>
+Destroys the simple keys manager.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>mngr</parameter>&nbsp;:</entry>
+<entry> the pointer to a simple keys manager.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecSimpleKeysMngrFindKey">xmlSecSimpleKeysMngrFindKey ()</title>
+<programlisting><link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> xmlSecSimpleKeysMngrFindKey (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ void *context,
+ const <link linkend="xmlChar">xmlChar</link> *name,
+ <link linkend="xmlSecKeyId">xmlSecKeyId</link> id,
+ <link linkend="xmlSecKeyType">xmlSecKeyType</link> type,
+ <link linkend="xmlSecKeyUsage">xmlSecKeyUsage</link> usage);</programlisting>
+<para>
+Searches the simple keys manager for specified key. This is an
+implementation of the <link linkend="xmlSecFindKeyCallback">xmlSecFindKeyCallback</link> for the simple keys
+manager.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>mngr</parameter>&nbsp;:</entry>
+<entry> the keys manager.
+</entry></row>
+<row><entry align="right"><parameter>context</parameter>&nbsp;:</entry>
+<entry> the pointer to application specific data.
+</entry></row>
+<row><entry align="right"><parameter>name</parameter>&nbsp;:</entry>
+<entry> the required key name (or NULL for "any").
+</entry></row>
+<row><entry align="right"><parameter>id</parameter>&nbsp;:</entry>
+<entry> the required key Id (or NULL for "any").
+</entry></row>
+<row><entry align="right"><parameter>type</parameter>&nbsp;:</entry>
+<entry> the required key (may be "any").
+</entry></row>
+<row><entry align="right"><parameter>usage</parameter>&nbsp;:</entry>
+<entry> the required key usage.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to key or NULL if the key is not found or
+an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecSimpleKeysMngrAddKey">xmlSecSimpleKeysMngrAddKey ()</title>
+<programlisting>int xmlSecSimpleKeysMngrAddKey (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ <link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key);</programlisting>
+<para>
+Adds new key to the key manager</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>mngr</parameter>&nbsp;:</entry>
+<entry> the pointer to the simple keys manager.
+</entry></row>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the pointer to the <link linkend="xmlSecKey">xmlSecKey</link> structure.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecSimpleKeysMngrLoad">xmlSecSimpleKeysMngrLoad ()</title>
+<programlisting>int xmlSecSimpleKeysMngrLoad (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ const char *uri,
+ int strict);</programlisting>
+<para>
+Reads the XML keys files into simple keys manager.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>mngr</parameter>&nbsp;:</entry>
+<entry> the pointer to the simple keys manager.
+</entry></row>
+<row><entry align="right"><parameter>uri</parameter>&nbsp;:</entry>
+<entry> the keys file uri.
+</entry></row>
+<row><entry align="right"><parameter>strict</parameter>&nbsp;:</entry>
+<entry> the flag which determines whether we stop after first error or not.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecSimpleKeysMngrSave">xmlSecSimpleKeysMngrSave ()</title>
+<programlisting>int xmlSecSimpleKeysMngrSave (const <link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ const char *filename,
+ <link linkend="xmlSecKeyType">xmlSecKeyType</link> type);</programlisting>
+<para>
+Writes all the keys from the simple keys manager to
+an XML file <parameter>filename</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>mngr</parameter>&nbsp;:</entry>
+<entry> the pointer to the simple keys manager.
+</entry></row>
+<row><entry align="right"><parameter>filename</parameter>&nbsp;:</entry>
+<entry> the destination filename.
+</entry></row>
+<row><entry align="right"><parameter>type</parameter>&nbsp;:</entry>
+<entry> the keys type (private/public).
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecSimpleKeysMngrLoadPemKey">xmlSecSimpleKeysMngrLoadPemKey ()</title>
+<programlisting><link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> xmlSecSimpleKeysMngrLoadPemKey (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ const char *keyfile,
+ const char *keyPwd,
+ <link linkend="pem-password-cb">pem_password_cb</link> *keyPwdCallback,
+ int privateKey);</programlisting>
+<para>
+Reads the key from a PEM file <parameter>keyfile</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>mngr</parameter>&nbsp;:</entry>
+<entry> the pointer to the simple keys manager.
+</entry></row>
+<row><entry align="right"><parameter>keyfile</parameter>&nbsp;:</entry>
+<entry> the PEM key file name.
+</entry></row>
+<row><entry align="right"><parameter>keyPwd</parameter>&nbsp;:</entry>
+<entry> the key file password.
+</entry></row>
+<row><entry align="right"><parameter>keyPwdCallback</parameter>&nbsp;:</entry>
+<entry> the "ask password" callback.
+</entry></row>
+<row><entry align="right"><parameter>privateKey</parameter>&nbsp;:</entry>
+<entry> the private/public flag.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to a newly allocated <link linkend="xmlSecKey">xmlSecKey</link> structure or NULL
+if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecSimpleKeysMngrX509Find">xmlSecSimpleKeysMngrX509Find ()</title>
+<programlisting><link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> xmlSecSimpleKeysMngrX509Find
+ (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ void *context,
+ <link linkend="xmlChar">xmlChar</link> *subjectName,
+ <link linkend="xmlChar">xmlChar</link> *issuerName,
+ <link linkend="xmlChar">xmlChar</link> *issuerSerial,
+ <link linkend="xmlChar">xmlChar</link> *ski,
+ <link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> cert);</programlisting>
+<para>
+Searches for matching certificate in the keys manager. This is
+the implementation of the <link linkend="xmlSecX509FindCallback">xmlSecX509FindCallback</link> for the
+simple keys manager.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>mngr</parameter>&nbsp;:</entry>
+<entry> the keys manager.
+</entry></row>
+<row><entry align="right"><parameter>context</parameter>&nbsp;:</entry>
+<entry> the pointer application specific data.
+</entry></row>
+<row><entry align="right"><parameter>subjectName</parameter>&nbsp;:</entry>
+<entry> the subject name string.
+</entry></row>
+<row><entry align="right"><parameter>issuerName</parameter>&nbsp;:</entry>
+<entry> the issuer name string.
+</entry></row>
+<row><entry align="right"><parameter>issuerSerial</parameter>&nbsp;:</entry>
+<entry> the issuer serial.
+</entry></row>
+<row><entry align="right"><parameter>ski</parameter>&nbsp;:</entry>
+<entry> the SKI string.
+</entry></row>
+<row><entry align="right"><parameter>cert</parameter>&nbsp;:</entry>
+<entry> the current X509 certs data (may be NULL).
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to certificate that matches given criteria or NULL
+if an error occurs or certificate not found.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecSimpleKeysMngrX509Verify">xmlSecSimpleKeysMngrX509Verify ()</title>
+<programlisting>int xmlSecSimpleKeysMngrX509Verify (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ void *context,
+ <link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> cert);</programlisting>
+<para>
+Validates certificate. This is the implementation of the
+<link linkend="xmlSecX509VerifyCallback">xmlSecX509VerifyCallback</link> callback for the simple keys manager.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>mngr</parameter>&nbsp;:</entry>
+<entry> the keys manager.
+</entry></row>
+<row><entry align="right"><parameter>context</parameter>&nbsp;:</entry>
+<entry> the pointer to application specific data.
+</entry></row>
+<row><entry align="right"><parameter>cert</parameter>&nbsp;:</entry>
+<entry> the cert to verify.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>1 if the cert is trusted, 0 if it is not trusted
+and -1 if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecSimpleKeysMngrLoadPemCert">xmlSecSimpleKeysMngrLoadPemCert ()</title>
+<programlisting>int xmlSecSimpleKeysMngrLoadPemCert (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ const char *filename,
+ int trusted);</programlisting>
+<para>
+Reads PEM certificate from the file <parameter>filename</parameter> and adds to the keys manager
+<parameter>mngr</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>mngr</parameter>&nbsp;:</entry>
+<entry> the simple keys manager.
+</entry></row>
+<row><entry align="right"><parameter>filename</parameter>&nbsp;:</entry>
+<entry> the PEM cert file name.
+</entry></row>
+<row><entry align="right"><parameter>trusted</parameter>&nbsp;:</entry>
+<entry> the trusted/not-trusted cert flag.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecSimpleKeysMngrAddCertsDir">xmlSecSimpleKeysMngrAddCertsDir ()</title>
+<programlisting>int xmlSecSimpleKeysMngrAddCertsDir (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ const char *path);</programlisting>
+<para>
+Adds the certificates from the folder <parameter>path</parameter> to the list of
+trusted certificates.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>mngr</parameter>&nbsp;:</entry>
+<entry> the simple keys manager.
+</entry></row>
+<row><entry align="right"><parameter>path</parameter>&nbsp;:</entry>
+<entry> the certs dir path.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecSimpleKeysMngrLoadPkcs12">xmlSecSimpleKeysMngrLoadPkcs12 ()</title>
+<programlisting>int xmlSecSimpleKeysMngrLoadPkcs12 (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> mngr,
+ const char *name,
+ const char *filename,
+ const char *pwd);</programlisting>
+<para>
+Reads the key from pkcs12 file <parameter>filename</parameter> (along with all certs)
+and adds to the simple keys manager <parameter>mngr</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>mngr</parameter>&nbsp;:</entry>
+<entry> the simple keys manager.
+</entry></row>
+<row><entry align="right"><parameter>name</parameter>&nbsp;:</entry>
+<entry> the key name (may by NULL).
+</entry></row>
+<row><entry align="right"><parameter>filename</parameter>&nbsp;:</entry>
+<entry> the pkcs12 file name.
+</entry></row>
+<row><entry align="right"><parameter>pwd</parameter>&nbsp;:</entry>
+<entry> the pkcs12 password.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+
+</refsect1>
+
+
+
+
+</refentry>
diff --git a/docs/api-0.0.x/sgml/membuf.sgml b/docs/api-0.0.x/sgml/membuf.sgml
new file mode 100644
index 00000000..af494b82
--- /dev/null
+++ b/docs/api-0.0.x/sgml/membuf.sgml
@@ -0,0 +1,75 @@
+<refentry id="xmlsec-membuf">
+<refmeta>
+<refentrytitle>membuf.h</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>XMLSEC Library</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>membuf.h</refname><refpurpose>The memory buffer transform.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><title>Synopsis</title>
+<synopsis>
+
+
+
+extern xmlSecTransformId <link linkend="xmlSecMemBuf">xmlSecMemBuf</link>;
+<link linkend="xmlBufferPtr">xmlBufferPtr</link> <link linkend="xmlSecMemBufTransformGetBuffer">xmlSecMemBufTransformGetBuffer</link> (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ int removeBuffer);
+</synopsis>
+</refsynopsisdiv>
+
+
+
+
+
+<refsect1>
+<title>Description</title>
+<para>
+
+</para>
+</refsect1>
+
+<refsect1>
+<title>Details</title>
+<refsect2>
+<title><anchor id="xmlSecMemBuf">xmlSecMemBuf</title>
+<programlisting>extern xmlSecTransformId xmlSecMemBuf;
+</programlisting>
+<para>
+The memory buffer transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecMemBufTransformGetBuffer">xmlSecMemBufTransformGetBuffer ()</title>
+<programlisting><link linkend="xmlBufferPtr">xmlBufferPtr</link> xmlSecMemBufTransformGetBuffer (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ int removeBuffer);</programlisting>
+<para>
+Gets the memory transform buffer.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to memory buffer transform.
+</entry></row>
+<row><entry align="right"><parameter>removeBuffer</parameter>&nbsp;:</entry>
+<entry> the flag that indicates whether the buffer
+ will be removed from the transform.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the xmlBufferPtr. If <parameter>removeBuffer</parameter> is set to 1 then the buffer
+is removed from transform and the caller is responsible for freeing it
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+
+</refsect1>
+
+
+
+
+</refentry>
diff --git a/docs/api-0.0.x/sgml/nodeset.sgml b/docs/api-0.0.x/sgml/nodeset.sgml
new file mode 100644
index 00000000..e352948a
--- /dev/null
+++ b/docs/api-0.0.x/sgml/nodeset.sgml
@@ -0,0 +1,461 @@
+<refentry id="xmlsec-nodeset">
+<refmeta>
+<refentrytitle>nodeset.h</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>XMLSEC Library</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>nodeset.h</refname><refpurpose>The enchanced nodes set imlmentation.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><title>Synopsis</title>
+<synopsis>
+
+
+
+enum <link linkend="xmlSecNodeSetType">xmlSecNodeSetType</link>;
+enum <link linkend="xmlSecNodeSetOp">xmlSecNodeSetOp</link>;
+struct <link linkend="xmlSecNodeSet">xmlSecNodeSet</link>;
+int (<link linkend="xmlSecNodeSetWalkCallback">*xmlSecNodeSetWalkCallback</link>) (<link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> nset,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> cur,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> parent,
+ void *data);
+<link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> <link linkend="xmlSecNodeSetCreate">xmlSecNodeSetCreate</link> (<link linkend="xmlDocPtr">xmlDocPtr</link> doc,
+ <link linkend="xmlNodeSetPtr">xmlNodeSetPtr</link> nodes,
+ <link linkend="xmlSecNodeSetType">xmlSecNodeSetType</link> type);
+void <link linkend="xmlSecNodeSetDestroy">xmlSecNodeSetDestroy</link> (<link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> nset);
+int <link linkend="xmlSecNodeSetContains">xmlSecNodeSetContains</link> (<link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> nset,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> node,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> parent);
+<link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> <link linkend="xmlSecNodeSetAdd">xmlSecNodeSetAdd</link> (<link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> nset,
+ <link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> newNSet,
+ <link linkend="xmlSecNodeSetOp">xmlSecNodeSetOp</link> op);
+<link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> <link linkend="xmlSecNodeSetAddList">xmlSecNodeSetAddList</link> (<link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> nset,
+ <link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> newNSet,
+ <link linkend="xmlSecNodeSetOp">xmlSecNodeSetOp</link> op);
+<link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> <link linkend="xmlSecNodeSetGetChildren">xmlSecNodeSetGetChildren</link> (<link linkend="xmlDocPtr">xmlDocPtr</link> doc,
+ const <link linkend="xmlNodePtr">xmlNodePtr</link> parent,
+ int withComments,
+ int invert);
+int <link linkend="xmlSecNodeSetWalk">xmlSecNodeSetWalk</link> (<link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> nset,
+ <link linkend="xmlSecNodeSetWalkCallback">xmlSecNodeSetWalkCallback</link> walkFunc,
+ void *data);
+void <link linkend="xmlSecNodeSetDebugDump">xmlSecNodeSetDebugDump</link> (<link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> nset,
+ <link linkend="FILE-CAPS">FILE</link> *output);
+</synopsis>
+</refsynopsisdiv>
+
+
+
+
+
+<refsect1>
+<title>Description</title>
+<para>
+
+</para>
+</refsect1>
+
+<refsect1>
+<title>Details</title>
+<refsect2>
+<title><anchor id="xmlSecNodeSetType">enum xmlSecNodeSetType</title>
+<programlisting>typedef enum {
+ xmlSecNodeSetNormal = 0,
+ xmlSecNodeSetInvert,
+ xmlSecNodeSetTree,
+ xmlSecNodeSetTreeWithoutComments,
+ xmlSecNodeSetTreeInvert,
+ xmlSecNodeSetTreeWithoutCommentsInvert,
+ xmlSecNodeSetList
+} xmlSecNodeSetType;
+</programlisting>
+<para>
+The simple nodes sets types.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="enum">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row>
+<entry><literal>xmlSecNodeSetNormal</literal></entry>
+<entry> nodes set = nodes in the list.
+</entry>
+</row>
+<row>
+<entry><literal>xmlSecNodeSetInvert</literal></entry>
+<entry> nodes set = all document nodes minus nodes in the list.
+</entry>
+</row>
+<row>
+<entry><literal>xmlSecNodeSetTree</literal></entry>
+<entry> nodes set = nodes in the list and all their subtress.
+</entry>
+</row>
+<row>
+<entry><literal>xmlSecNodeSetTreeWithoutComments</literal></entry>
+<entry> nodes set = nodes in the list and
+all their subtress but no comment nodes.
+</entry>
+</row>
+<row>
+<entry><literal>xmlSecNodeSetTreeInvert</literal></entry>
+<entry> nodes set = all document nodes minus nodes in the
+ list and all their subtress.
+</entry>
+</row>
+<row>
+<entry><literal>xmlSecNodeSetTreeWithoutCommentsInvert</literal></entry>
+<entry> nodes set = all document nodes
+ minus (nodes in the list and all their subtress plus all comment nodes).
+</entry>
+</row>
+<row>
+<entry><literal>xmlSecNodeSetList</literal></entry>
+<entry> nodes set = all nodes in the chidren list of nodes sets.
+</entry>
+</row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecNodeSetOp">enum xmlSecNodeSetOp</title>
+<programlisting>typedef enum {
+ xmlSecNodeSetIntersection = 0,
+ xmlSecNodeSetSubtraction,
+ xmlSecNodeSetUnion
+} xmlSecNodeSetOp;
+</programlisting>
+<para>
+The simple nodes sets operations.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="enum">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row>
+<entry><literal>xmlSecNodeSetIntersection</literal></entry>
+<entry> intersection.
+</entry>
+</row>
+<row>
+<entry><literal>xmlSecNodeSetSubtraction</literal></entry>
+<entry> subtraction.
+</entry>
+</row>
+<row>
+<entry><literal>xmlSecNodeSetUnion</literal></entry>
+<entry> union.
+</entry>
+</row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecNodeSet">struct xmlSecNodeSet</title>
+<programlisting>struct xmlSecNodeSet {
+ xmlNodeSetPtr nodes;
+ xmlDocPtr doc;
+ xmlSecNodeSetType type;
+ xmlSecNodeSetOp op;
+ xmlSecNodeSetPtr next;
+ xmlSecNodeSetPtr prev;
+ xmlSecNodeSetPtr children;
+};
+</programlisting>
+<para>
+The enchanced nodes set.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="struct">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row>
+<entry><link linkend="xmlNodeSetPtr">xmlNodeSetPtr</link> <structfield>nodes</structfield></entry>
+<entry> the nodes list.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlDocPtr">xmlDocPtr</link> <structfield>doc</structfield></entry>
+<entry> the parent XML document.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecNodeSetType">xmlSecNodeSetType</link> <structfield>type</structfield></entry>
+<entry> the nodes set type.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecNodeSetOp">xmlSecNodeSetOp</link> <structfield>op</structfield></entry>
+<entry> the operation type.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> <structfield>next</structfield></entry>
+<entry> the next nodes set.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> <structfield>prev</structfield></entry>
+<entry> the previous nodes set.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> <structfield>children</structfield></entry>
+<entry> the children list (valid only if type equal to <link linkend="xmlSecNodeSetList">xmlSecNodeSetList</link>).
+</entry>
+</row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecNodeSetWalkCallback">xmlSecNodeSetWalkCallback ()</title>
+<programlisting>int (*xmlSecNodeSetWalkCallback) (<link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> nset,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> cur,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> parent,
+ void *data);</programlisting>
+<para>
+The callback function called once per each node in the nodes set.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>nset</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecNodeSet">xmlSecNodeSet</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>cur</parameter>&nbsp;:</entry>
+<entry> the pointer current XML node.
+</entry></row>
+<row><entry align="right"><parameter>parent</parameter>&nbsp;:</entry>
+<entry> the pointer to the <parameter>cur</parameter> parent node.
+</entry></row>
+<row><entry align="right"><parameter>data</parameter>&nbsp;:</entry>
+<entry> the pointer to application specific data.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value if an error occurs
+an walk procedure should be interrupted.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecNodeSetCreate">xmlSecNodeSetCreate ()</title>
+<programlisting><link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> xmlSecNodeSetCreate (<link linkend="xmlDocPtr">xmlDocPtr</link> doc,
+ <link linkend="xmlNodeSetPtr">xmlNodeSetPtr</link> nodes,
+ <link linkend="xmlSecNodeSetType">xmlSecNodeSetType</link> type);</programlisting>
+<para>
+Creates new nodes set.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>doc</parameter>&nbsp;:</entry>
+<entry> the pointer to parent XML document.
+</entry></row>
+<row><entry align="right"><parameter>nodes</parameter>&nbsp;:</entry>
+<entry> the list of nodes.
+</entry></row>
+<row><entry align="right"><parameter>type</parameter>&nbsp;:</entry>
+<entry> the nodes set type.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>pointer to newly allocated <link linkend="xmlSecNodeSet">xmlSecNodeSet</link> structure
+or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecNodeSetDestroy">xmlSecNodeSetDestroy ()</title>
+<programlisting>void xmlSecNodeSetDestroy (<link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> nset);</programlisting>
+<para>
+Destroys the nodes set.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>nset</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecNodeSet">xmlSecNodeSet</link> structure.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecNodeSetContains">xmlSecNodeSetContains ()</title>
+<programlisting>int xmlSecNodeSetContains (<link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> nset,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> node,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> parent);</programlisting>
+<para>
+Checks whether the <parameter>node</parameter> is in the nodes set or not.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>nset</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecNodeSet">xmlSecNodeSet</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>node</parameter>&nbsp;:</entry>
+<entry> the pointer to XML node to check.
+</entry></row>
+<row><entry align="right"><parameter>parent</parameter>&nbsp;:</entry>
+<entry> the pointer to <parameter>node</parameter> parent node.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>1 if the <parameter>node</parameter> is in the nodes set <parameter>nset</parameter>, 0 if it is not
+and a negative value if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecNodeSetAdd">xmlSecNodeSetAdd ()</title>
+<programlisting><link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> xmlSecNodeSetAdd (<link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> nset,
+ <link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> newNSet,
+ <link linkend="xmlSecNodeSetOp">xmlSecNodeSetOp</link> op);</programlisting>
+<para>
+Adds <parameter>newNSet</parameter> to the <parameter>nset</parameter> using operation <parameter>op</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>nset</parameter>&nbsp;:</entry>
+<entry> the pointer to currrent nodes set (or NULL).
+</entry></row>
+<row><entry align="right"><parameter>newNSet</parameter>&nbsp;:</entry>
+<entry> the pointer to new nodes set.
+</entry></row>
+<row><entry align="right"><parameter>op</parameter>&nbsp;:</entry>
+<entry> the operation type.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to combined nodes set or NULL if an error
+occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecNodeSetAddList">xmlSecNodeSetAddList ()</title>
+<programlisting><link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> xmlSecNodeSetAddList (<link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> nset,
+ <link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> newNSet,
+ <link linkend="xmlSecNodeSetOp">xmlSecNodeSetOp</link> op);</programlisting>
+<para>
+Adds <parameter>newNSet</parameter> to the <parameter>nset</parameter> as child using operation <parameter>op</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>nset</parameter>&nbsp;:</entry>
+<entry> the pointer to currrent nodes set (or NULL).
+</entry></row>
+<row><entry align="right"><parameter>newNSet</parameter>&nbsp;:</entry>
+<entry> the pointer to new nodes set.
+</entry></row>
+<row><entry align="right"><parameter>op</parameter>&nbsp;:</entry>
+<entry> the operation type.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to combined nodes set or NULL if an error
+occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecNodeSetGetChildren">xmlSecNodeSetGetChildren ()</title>
+<programlisting><link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> xmlSecNodeSetGetChildren (<link linkend="xmlDocPtr">xmlDocPtr</link> doc,
+ const <link linkend="xmlNodePtr">xmlNodePtr</link> parent,
+ int withComments,
+ int invert);</programlisting>
+<para>
+Creates a new nodes set that contains:
+ - if <parameter>withComments</parameter> is not 0 and <parameter>invert</parameter> is 0:
+ all nodes in the <parameter>parent</parameter> subtree;
+ - if <parameter>withComments</parameter> is 0 and <parameter>invert</parameter> is 0:
+ all nodes in the <parameter>parent</parameter> subtree except comment nodes;
+ - if <parameter>withComments</parameter> is not 0 and <parameter>invert</parameter> not is 0:
+ all nodes in the <parameter>doc</parameter> except nodes in the <parameter>parent</parameter> subtree;
+ - if <parameter>withComments</parameter> is 0 and <parameter>invert</parameter> is 0:
+ all nodes in the <parameter>doc</parameter> except nodes in the <parameter>parent</parameter> subtree
+ and comment nodes.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>doc</parameter>&nbsp;:</entry>
+<entry> the pointer to an XML document.
+</entry></row>
+<row><entry align="right"><parameter>parent</parameter>&nbsp;:</entry>
+<entry> the pointer to parent XML node.
+</entry></row>
+<row><entry align="right"><parameter>withComments</parameter>&nbsp;:</entry>
+<entry> the flag include comments or not.
+</entry></row>
+<row><entry align="right"><parameter>invert</parameter>&nbsp;:</entry>
+<entry> the "invert" flag.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>pointer to the newly created <link linkend="xmlSecNodeSet">xmlSecNodeSet</link> structure
+or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecNodeSetWalk">xmlSecNodeSetWalk ()</title>
+<programlisting>int xmlSecNodeSetWalk (<link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> nset,
+ <link linkend="xmlSecNodeSetWalkCallback">xmlSecNodeSetWalkCallback</link> walkFunc,
+ void *data);</programlisting>
+<para>
+Calls the function <parameter>walkFunc</parameter> once per each node in the nodes set <parameter>nset</parameter>.
+If the <parameter>walkFunc</parameter> returns a negative value, then the walk procedure
+is interrupted.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>nset</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecNodeSet">xmlSecNodeSet</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>walkFunc</parameter>&nbsp;:</entry>
+<entry> the callback functions.
+</entry></row>
+<row><entry align="right"><parameter>data</parameter>&nbsp;:</entry>
+<entry> the application specific data passed to the <parameter>walkFunc</parameter>.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecNodeSetDebugDump">xmlSecNodeSetDebugDump ()</title>
+<programlisting>void xmlSecNodeSetDebugDump (<link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> nset,
+ <link linkend="FILE-CAPS">FILE</link> *output);</programlisting>
+<para>
+Prints information about <parameter>nset</parameter> to the <parameter>output</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>nset</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecNodeSet">xmlSecNodeSet</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>output</parameter>&nbsp;:</entry>
+<entry> the pointer to FILE.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+
+</refsect1>
+
+
+
+
+</refentry>
diff --git a/docs/api-0.0.x/sgml/transforms.sgml b/docs/api-0.0.x/sgml/transforms.sgml
new file mode 100644
index 00000000..4601e9d2
--- /dev/null
+++ b/docs/api-0.0.x/sgml/transforms.sgml
@@ -0,0 +1,824 @@
+<refentry id="xmlsec-transforms">
+<refmeta>
+<refentrytitle>transforms.h</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>XMLSEC Library</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>transforms.h</refname><refpurpose>The transforms functions.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><title>Synopsis</title>
+<synopsis>
+
+
+
+enum <link linkend="xmlSecTransformStatus">xmlSecTransformStatus</link>;
+typedef <link linkend="xmlSecTransformId">xmlSecTransformId</link>;
+#define <link linkend="xmlSecTransformUnknown">xmlSecTransformUnknown</link>
+extern xmlSecTransformId <link linkend="xmlSecEncAes128Cbc">xmlSecEncAes128Cbc</link>;
+extern xmlSecTransformId <link linkend="xmlSecEncAes192Cbc">xmlSecEncAes192Cbc</link>;
+extern xmlSecTransformId <link linkend="xmlSecEncAes256Cbc">xmlSecEncAes256Cbc</link>;
+extern xmlSecTransformId <link linkend="xmlSecKWAes128">xmlSecKWAes128</link>;
+extern xmlSecTransformId <link linkend="xmlSecKWAes192">xmlSecKWAes192</link>;
+extern xmlSecTransformId <link linkend="xmlSecKWAes256">xmlSecKWAes256</link>;
+extern xmlSecTransformId <link linkend="xmlSecEncBase64Encode">xmlSecEncBase64Encode</link>;
+extern xmlSecTransformId <link linkend="xmlSecEncBase64Decode">xmlSecEncBase64Decode</link>;
+extern xmlSecTransformId <link linkend="xmlSecC14NInclusive">xmlSecC14NInclusive</link>;
+extern xmlSecTransformId <link linkend="xmlSecC14NInclusiveWithComments">xmlSecC14NInclusiveWithComments</link>;
+extern xmlSecTransformId <link linkend="xmlSecC14NExclusive">xmlSecC14NExclusive</link>;
+extern xmlSecTransformId <link linkend="xmlSecC14NExclusiveWithComments">xmlSecC14NExclusiveWithComments</link>;
+extern xmlSecTransformId <link linkend="xmlSecEncDes3Cbc">xmlSecEncDes3Cbc</link>;
+extern xmlSecTransformId <link linkend="xmlSecKWDes3Cbc">xmlSecKWDes3Cbc</link>;
+extern xmlSecTransformId <link linkend="xmlSecSignDsaSha1">xmlSecSignDsaSha1</link>;
+extern xmlSecTransformId <link linkend="xmlSecTransformEnveloped">xmlSecTransformEnveloped</link>;
+extern xmlSecTransformId <link linkend="xmlSecMacHmacSha1">xmlSecMacHmacSha1</link>;
+extern xmlSecTransformId <link linkend="xmlSecMacHmacRipeMd160">xmlSecMacHmacRipeMd160</link>;
+extern xmlSecTransformId <link linkend="xmlSecMacHmacMd5">xmlSecMacHmacMd5</link>;
+extern xmlSecTransformId <link linkend="xmlSecDigestRipemd160">xmlSecDigestRipemd160</link>;
+extern xmlSecTransformId <link linkend="xmlSecSignRsaSha1">xmlSecSignRsaSha1</link>;
+extern xmlSecTransformId <link linkend="xmlSecEncRsaPkcs1">xmlSecEncRsaPkcs1</link>;
+extern xmlSecTransformId <link linkend="xmlSecEncRsaOaep">xmlSecEncRsaOaep</link>;
+extern xmlSecTransformId <link linkend="xmlSecDigestSha1">xmlSecDigestSha1</link>;
+extern xmlSecTransformId <link linkend="xmlSecTransformXPath">xmlSecTransformXPath</link>;
+extern xmlSecTransformId <link linkend="xmlSecTransformXPath2">xmlSecTransformXPath2</link>;
+extern xmlSecTransformId <link linkend="xmlSecTransformXPointer">xmlSecTransformXPointer</link>;
+extern xmlSecTransformId <link linkend="xmlSecTransformXslt">xmlSecTransformXslt</link>;
+int <link linkend="xmlSecC14NExclAddInclNamespaces">xmlSecC14NExclAddInclNamespaces</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> transformNode,
+ const <link linkend="xmlChar">xmlChar</link> *prefixList);
+int <link linkend="xmlSecHmacAddOutputLength">xmlSecHmacAddOutputLength</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> transformNode,
+ <link linkend="size-t">size_t</link> bitsLen);
+int <link linkend="xmlSecEncRsaOaepAddParam">xmlSecEncRsaOaepAddParam</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> transformNode,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);
+int <link linkend="xmlSecTransformXPathAdd">xmlSecTransformXPathAdd</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> transformNode,
+ const <link linkend="xmlChar">xmlChar</link> *expression,
+ const <link linkend="xmlChar">xmlChar</link> **namespaces);
+enum <link linkend="xmlSecXPath2TransformType">xmlSecXPath2TransformType</link>;
+int <link linkend="xmlSecTransformXPath2Add">xmlSecTransformXPath2Add</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> transformNode,
+ <link linkend="xmlSecXPath2TransformType">xmlSecXPath2TransformType</link> type,
+ const <link linkend="xmlChar">xmlChar</link> *expression,
+ const <link linkend="xmlChar">xmlChar</link> **namespaces);
+int <link linkend="xmlSecTransformXPointerAdd">xmlSecTransformXPointerAdd</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> transformNode,
+ const <link linkend="xmlChar">xmlChar</link> *expression,
+ const <link linkend="xmlChar">xmlChar</link> **namespaces);
+int <link linkend="xmlSecTransformXsltAdd">xmlSecTransformXsltAdd</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> transformNode,
+ const <link linkend="xmlChar">xmlChar</link> *xslt);
+extern xmlSecKeyId <link linkend="xmlSecAesKey">xmlSecAesKey</link>;
+extern xmlSecKeyId <link linkend="xmlSecDesKey">xmlSecDesKey</link>;
+extern xmlSecKeyId <link linkend="xmlSecDsaKey">xmlSecDsaKey</link>;
+extern xmlSecKeyId <link linkend="xmlSecHmacKey">xmlSecHmacKey</link>;
+extern xmlSecKeyId <link linkend="xmlSecRsaKey">xmlSecRsaKey</link>;
+int <link linkend="xmlSecAesKeyGenerate">xmlSecAesKeyGenerate</link> (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);
+int <link linkend="xmlSecDesKeyGenerate">xmlSecDesKeyGenerate</link> (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);
+int <link linkend="xmlSecDsaKeyGenerate">xmlSecDsaKeyGenerate</link> (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="DSA-CAPS">DSA</link> *dsa);
+int <link linkend="xmlSecHmacKeyGenerate">xmlSecHmacKeyGenerate</link> (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);
+int <link linkend="xmlSecRsaKeyGenerate">xmlSecRsaKeyGenerate</link> (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="RSA-CAPS">RSA</link> *rsa);
+#define <link linkend="XMLSEC-BASE64-LINESIZE-CAPS">XMLSEC_BASE64_LINESIZE</link>
+void <link linkend="xmlSecBase64EncodeSetLineSize">xmlSecBase64EncodeSetLineSize</link> (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ <link linkend="size-t">size_t</link> lineSize);
+</synopsis>
+</refsynopsisdiv>
+
+
+
+
+
+<refsect1>
+<title>Description</title>
+<para>
+
+</para>
+</refsect1>
+
+<refsect1>
+<title>Details</title>
+<refsect2>
+<title><anchor id="xmlSecTransformStatus">enum xmlSecTransformStatus</title>
+<programlisting>typedef enum {
+ xmlSecTransformStatusNone = 0,
+ xmlSecTransformStatusOk,
+ xmlSecTransformStatusFail
+} xmlSecTransformStatus;
+</programlisting>
+<para>
+The transform execution result.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="enum">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row>
+<entry><literal>xmlSecTransformStatusNone</literal></entry>
+<entry> the status unknown.
+</entry>
+</row>
+<row>
+<entry><literal>xmlSecTransformStatusOk</literal></entry>
+<entry> success.
+</entry>
+</row>
+<row>
+<entry><literal>xmlSecTransformStatusFail</literal></entry>
+<entry> an error occur.
+</entry>
+</row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformId">xmlSecTransformId</title>
+<programlisting>typedef const struct _xmlSecTransformIdStruct xmlSecTransformIdStruct, *xmlSecTransformId;
+</programlisting>
+<para>
+The transform id structure.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformUnknown">xmlSecTransformUnknown</title>
+<programlisting>#define xmlSecTransformUnknown NULL
+</programlisting>
+<para>
+The "unknown" transform id (NULL).</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEncAes128Cbc">xmlSecEncAes128Cbc</title>
+<programlisting>extern xmlSecTransformId xmlSecEncAes128Cbc;
+</programlisting>
+<para>
+The AES-CBC with 128 bits key encryption transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEncAes192Cbc">xmlSecEncAes192Cbc</title>
+<programlisting>extern xmlSecTransformId xmlSecEncAes192Cbc;
+</programlisting>
+<para>
+The AES-CBC with 192 bits key encryption transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEncAes256Cbc">xmlSecEncAes256Cbc</title>
+<programlisting>extern xmlSecTransformId xmlSecEncAes256Cbc;
+</programlisting>
+<para>
+The AES-CBC with 256 bits key encryption transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKWAes128">xmlSecKWAes128</title>
+<programlisting>extern xmlSecTransformId xmlSecKWAes128;
+</programlisting>
+<para>
+The AES with 128 bits key wrap transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKWAes192">xmlSecKWAes192</title>
+<programlisting>extern xmlSecTransformId xmlSecKWAes192;
+</programlisting>
+<para>
+The AES with 192 bits key wrap transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKWAes256">xmlSecKWAes256</title>
+<programlisting>extern xmlSecTransformId xmlSecKWAes256;
+</programlisting>
+<para>
+The AES with 256 bits key wrap transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEncBase64Encode">xmlSecEncBase64Encode</title>
+<programlisting>extern xmlSecTransformId xmlSecEncBase64Encode;
+</programlisting>
+<para>
+The base64 encode transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEncBase64Decode">xmlSecEncBase64Decode</title>
+<programlisting>extern xmlSecTransformId xmlSecEncBase64Decode;
+</programlisting>
+<para>
+The base64 decode transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecC14NInclusive">xmlSecC14NInclusive</title>
+<programlisting>extern xmlSecTransformId xmlSecC14NInclusive;
+</programlisting>
+<para>
+The regular (inclusive) C14N without comments transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecC14NInclusiveWithComments">xmlSecC14NInclusiveWithComments</title>
+<programlisting>extern xmlSecTransformId xmlSecC14NInclusiveWithComments;
+</programlisting>
+<para>
+The regular (inclusive) C14N with comments transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecC14NExclusive">xmlSecC14NExclusive</title>
+<programlisting>extern xmlSecTransformId xmlSecC14NExclusive;
+</programlisting>
+<para>
+The exclusive C14N without comments transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecC14NExclusiveWithComments">xmlSecC14NExclusiveWithComments</title>
+<programlisting>extern xmlSecTransformId xmlSecC14NExclusiveWithComments;
+</programlisting>
+<para>
+The exclusive C14N with comments transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEncDes3Cbc">xmlSecEncDes3Cbc</title>
+<programlisting>extern xmlSecTransformId xmlSecEncDes3Cbc;
+</programlisting>
+<para>
+The DES3-CBC encryption transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecKWDes3Cbc">xmlSecKWDes3Cbc</title>
+<programlisting>extern xmlSecTransformId xmlSecKWDes3Cbc;
+</programlisting>
+<para>
+The DES3-CBC key wrap transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecSignDsaSha1">xmlSecSignDsaSha1</title>
+<programlisting>extern xmlSecTransformId xmlSecSignDsaSha1;
+</programlisting>
+<para>
+The DSA with SHA1 signature transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformEnveloped">xmlSecTransformEnveloped</title>
+<programlisting>extern xmlSecTransformId xmlSecTransformEnveloped;
+</programlisting>
+<para>
+The "enveloped" transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecMacHmacSha1">xmlSecMacHmacSha1</title>
+<programlisting>extern xmlSecTransformId xmlSecMacHmacSha1;
+</programlisting>
+<para>
+The HMAC with SHA1 signature transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecMacHmacRipeMd160">xmlSecMacHmacRipeMd160</title>
+<programlisting>extern xmlSecTransformId xmlSecMacHmacRipeMd160;
+</programlisting>
+<para>
+The HMAC with RipeMD160 signature transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecMacHmacMd5">xmlSecMacHmacMd5</title>
+<programlisting>extern xmlSecTransformId xmlSecMacHmacMd5;
+</programlisting>
+<para>
+The HMAC with MD5 signature transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDigestRipemd160">xmlSecDigestRipemd160</title>
+<programlisting>extern xmlSecTransformId xmlSecDigestRipemd160;
+</programlisting>
+<para>
+The RIPEMD160 digest transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecSignRsaSha1">xmlSecSignRsaSha1</title>
+<programlisting>extern xmlSecTransformId xmlSecSignRsaSha1;
+</programlisting>
+<para>
+The RSA with SHA1 signature transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEncRsaPkcs1">xmlSecEncRsaPkcs1</title>
+<programlisting>extern xmlSecTransformId xmlSecEncRsaPkcs1;
+</programlisting>
+<para>
+The RSA-PKCS1 key transport transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEncRsaOaep">xmlSecEncRsaOaep</title>
+<programlisting>extern xmlSecTransformId xmlSecEncRsaOaep;
+</programlisting>
+<para>
+The RSA-OAEP key transport transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDigestSha1">xmlSecDigestSha1</title>
+<programlisting>extern xmlSecTransformId xmlSecDigestSha1;
+</programlisting>
+<para>
+The SHA1 digest transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformXPath">xmlSecTransformXPath</title>
+<programlisting>extern xmlSecTransformId xmlSecTransformXPath;
+</programlisting>
+<para>
+The XPath transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformXPath2">xmlSecTransformXPath2</title>
+<programlisting>extern xmlSecTransformId xmlSecTransformXPath2;
+</programlisting>
+<para>
+The XPath2 transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformXPointer">xmlSecTransformXPointer</title>
+<programlisting>extern xmlSecTransformId xmlSecTransformXPointer;
+</programlisting>
+<para>
+The XPointer transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformXslt">xmlSecTransformXslt</title>
+<programlisting>extern xmlSecTransformId xmlSecTransformXslt;
+</programlisting>
+<para>
+The XSLT transform id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecC14NExclAddInclNamespaces">xmlSecC14NExclAddInclNamespaces ()</title>
+<programlisting>int xmlSecC14NExclAddInclNamespaces (<link linkend="xmlNodePtr">xmlNodePtr</link> transformNode,
+ const <link linkend="xmlChar">xmlChar</link> *prefixList);</programlisting>
+<para>
+Adds "inclusive" namespaces to the ExcC14N transform node <parameter>transformNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transformNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:Transform&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>prefixList</parameter>&nbsp;:</entry>
+<entry> the white space delimited list of namespace prefixes,
+ where "<link linkend="default">default</link>" indicates the default namespace
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 if success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecHmacAddOutputLength">xmlSecHmacAddOutputLength ()</title>
+<programlisting>int xmlSecHmacAddOutputLength (<link linkend="xmlNodePtr">xmlNodePtr</link> transformNode,
+ <link linkend="size-t">size_t</link> bitsLen);</programlisting>
+<para>
+Creates &lt;dsig:HMACOutputLength&gt;child for the HMAC transform
+node <parameter>transformNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transformNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:Transform&gt; node
+</entry></row>
+<row><entry align="right"><parameter>bitsLen</parameter>&nbsp;:</entry>
+<entry> the required length in bits
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success and a negatie value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEncRsaOaepAddParam">xmlSecEncRsaOaepAddParam ()</title>
+<programlisting>int xmlSecEncRsaOaepAddParam (<link linkend="xmlNodePtr">xmlNodePtr</link> transformNode,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);</programlisting>
+<para>
+Creates &lt;enc:OAEPParam&gt; child node in the <parameter>transformNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transformNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:Transform&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>buf</parameter>&nbsp;:</entry>
+<entry> the OAEP param buffer.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the OAEP param buffer size.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformXPathAdd">xmlSecTransformXPathAdd ()</title>
+<programlisting>int xmlSecTransformXPathAdd (<link linkend="xmlNodePtr">xmlNodePtr</link> transformNode,
+ const <link linkend="xmlChar">xmlChar</link> *expression,
+ const <link linkend="xmlChar">xmlChar</link> **namespaces);</programlisting>
+<para>
+Writes XPath transform infromation to the &lt;dsig:Transform&gt; node
+<parameter>transformNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transformNode</parameter>&nbsp;:</entry>
+<entry> the pointer to the &lt;dsig:Transform&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>expression</parameter>&nbsp;:</entry>
+<entry> the XPath expression.
+</entry></row>
+<row><entry align="right"><parameter>namespaces</parameter>&nbsp;:</entry>
+<entry> NULL terminated list of namespace prefix/href pairs.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 for success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecXPath2TransformType">enum xmlSecXPath2TransformType</title>
+<programlisting>typedef enum {
+ xmlSecXPathTransformIntersect = 0,
+ xmlSecXPathTransformSubtract,
+ xmlSecXPathTransformUnion
+} xmlSecXPath2TransformType;
+</programlisting>
+<para>
+The XPath2 transform types.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="enum">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row>
+<entry><literal>xmlSecXPathTransformIntersect</literal></entry>
+<entry> intersect.
+</entry>
+</row>
+<row>
+<entry><literal>xmlSecXPathTransformSubtract</literal></entry>
+<entry> subtract.
+</entry>
+</row>
+<row>
+<entry><literal>xmlSecXPathTransformUnion</literal></entry>
+<entry> union.
+</entry>
+</row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformXPath2Add">xmlSecTransformXPath2Add ()</title>
+<programlisting>int xmlSecTransformXPath2Add (<link linkend="xmlNodePtr">xmlNodePtr</link> transformNode,
+ <link linkend="xmlSecXPath2TransformType">xmlSecXPath2TransformType</link> type,
+ const <link linkend="xmlChar">xmlChar</link> *expression,
+ const <link linkend="xmlChar">xmlChar</link> **namespaces);</programlisting>
+<para>
+Writes XPath2 transform infromation to the &lt;dsig:Transform&gt; node
+<parameter>transformNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transformNode</parameter>&nbsp;:</entry>
+<entry> the pointer to the &lt;dsig:Transform&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>type</parameter>&nbsp;:</entry>
+<entry> XPath2 transform type ("union", "intersect" or "subtract").
+</entry></row>
+<row><entry align="right"><parameter>expression</parameter>&nbsp;:</entry>
+<entry> the XPath expression.
+</entry></row>
+<row><entry align="right"><parameter>namespaces</parameter>&nbsp;:</entry>
+<entry> NULL terminated list of namespace prefix/href pairs.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 for success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformXPointerAdd">xmlSecTransformXPointerAdd ()</title>
+<programlisting>int xmlSecTransformXPointerAdd (<link linkend="xmlNodePtr">xmlNodePtr</link> transformNode,
+ const <link linkend="xmlChar">xmlChar</link> *expression,
+ const <link linkend="xmlChar">xmlChar</link> **namespaces);</programlisting>
+<para>
+Writes XPoniter transform infromation to the &lt;dsig:Transform&gt; node
+<parameter>transformNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transformNode</parameter>&nbsp;:</entry>
+<entry> the pointer to the &lt;dsig:Transform&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>expression</parameter>&nbsp;:</entry>
+<entry> the XPath expression.
+</entry></row>
+<row><entry align="right"><parameter>namespaces</parameter>&nbsp;:</entry>
+<entry> NULL terminated list of namespace prefix/href pairs.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 for success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformXsltAdd">xmlSecTransformXsltAdd ()</title>
+<programlisting>int xmlSecTransformXsltAdd (<link linkend="xmlNodePtr">xmlNodePtr</link> transformNode,
+ const <link linkend="xmlChar">xmlChar</link> *xslt);</programlisting>
+<para>
+Writes the XSLT transform expression to the <parameter>transformNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transformNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:Transform&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>xslt</parameter>&nbsp;:</entry>
+<entry> the XSLT transform exspression.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecAesKey">xmlSecAesKey</title>
+<programlisting>extern xmlSecKeyId xmlSecAesKey;
+</programlisting>
+<para>
+The AES key id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDesKey">xmlSecDesKey</title>
+<programlisting>extern xmlSecKeyId xmlSecDesKey;
+</programlisting>
+<para>
+The DES key id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDsaKey">xmlSecDsaKey</title>
+<programlisting>extern xmlSecKeyId xmlSecDsaKey;
+</programlisting>
+<para>
+The DSA signature key id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecHmacKey">xmlSecHmacKey</title>
+<programlisting>extern xmlSecKeyId xmlSecHmacKey;
+</programlisting>
+<para>
+The HMAC key id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecRsaKey">xmlSecRsaKey</title>
+<programlisting>extern xmlSecKeyId xmlSecRsaKey;
+</programlisting>
+<para>
+The RSA key id.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecAesKeyGenerate">xmlSecAesKeyGenerate ()</title>
+<programlisting>int xmlSecAesKeyGenerate (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);</programlisting>
+<para>
+Sets the AES key to the given data or generates a new random key.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the pointer to AES key.
+</entry></row>
+<row><entry align="right"><parameter>buf</parameter>&nbsp;:</entry>
+<entry> the pointer to AES key data or NULL if new key should be generated.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the AES key data size or 0 if new key should be generated.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 for success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDesKeyGenerate">xmlSecDesKeyGenerate ()</title>
+<programlisting>int xmlSecDesKeyGenerate (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);</programlisting>
+<para>
+Reads the DES key from the input buffer or generates a new one.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the pointer to DES key.
+</entry></row>
+<row><entry align="right"><parameter>buf</parameter>&nbsp;:</entry>
+<entry> the input key data (or NULL if new key should be generated).
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the input biffer size.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDsaKeyGenerate">xmlSecDsaKeyGenerate ()</title>
+<programlisting>int xmlSecDsaKeyGenerate (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="DSA-CAPS">DSA</link> *dsa);</programlisting>
+<para>
+Sets the DSA key to geven value or generates a new one if <parameter>dsa</parameter> is NULL.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the pointer to a DSA key.
+</entry></row>
+<row><entry align="right"><parameter>dsa</parameter>&nbsp;:</entry>
+<entry> the pointer to OpenSSL DSA key structure or NULL.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecHmacKeyGenerate">xmlSecHmacKeyGenerate ()</title>
+<programlisting>int xmlSecHmacKeyGenerate (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);</programlisting>
+<para>
+Sets the HMAC key <parameter>key</parameter> to data in <parameter>buf</parameter> or generates a new HMAC key
+if <parameter>buf</parameter> is NULL.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the pointer to HMAC key.
+</entry></row>
+<row><entry align="right"><parameter>buf</parameter>&nbsp;:</entry>
+<entry> the HMAC key binary data or NULL.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the binary data size.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecRsaKeyGenerate">xmlSecRsaKeyGenerate ()</title>
+<programlisting>int xmlSecRsaKeyGenerate (<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="RSA-CAPS">RSA</link> *rsa);</programlisting>
+<para>
+Sets the <parameter>key</parameter> to the value of <parameter>rsa</parameter> or generates a new RSA key
+if <parameter>rsa</parameter> is NULL.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the pointer to RSA key.
+</entry></row>
+<row><entry align="right"><parameter>rsa</parameter>&nbsp;:</entry>
+<entry> the pointer to OpenSSL RSA key or NULL.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-BASE64-LINESIZE-CAPS">XMLSEC_BASE64_LINESIZE</title>
+<programlisting>#define XMLSEC_BASE64_LINESIZE 64
+</programlisting>
+<para>
+The default max line size for base64 encoding</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBase64EncodeSetLineSize">xmlSecBase64EncodeSetLineSize ()</title>
+<programlisting>void xmlSecBase64EncodeSetLineSize (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ <link linkend="size-t">size_t</link> lineSize);</programlisting>
+<para>
+Sets the max line size to <parameter>lineSize</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to BASE64 encode transform.
+</entry></row>
+<row><entry align="right"><parameter>lineSize</parameter>&nbsp;:</entry>
+<entry> the new max line size.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+
+</refsect1>
+
+
+
+
+</refentry>
diff --git a/docs/api-0.0.x/sgml/transformsInternal.sgml b/docs/api-0.0.x/sgml/transformsInternal.sgml
new file mode 100644
index 00000000..5a04a960
--- /dev/null
+++ b/docs/api-0.0.x/sgml/transformsInternal.sgml
@@ -0,0 +1,1511 @@
+<refentry id="xmlsec-transformsInternal">
+<refmeta>
+<refentrytitle>transformsInternal.h</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>XMLSEC Library</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>transformsInternal.h</refname><refpurpose>The internal transform's functions.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><title>Synopsis</title>
+<synopsis>
+
+
+
+enum <link linkend="xmlSecTransformType">xmlSecTransformType</link>;
+typedef <link linkend="xmlSecTransformUsage">xmlSecTransformUsage</link>;
+#define <link linkend="xmlSecUsageAny">xmlSecUsageAny</link>
+#define <link linkend="xmlSecUsageDSigC14N">xmlSecUsageDSigC14N</link>
+#define <link linkend="xmlSecUsageDSigTransform">xmlSecUsageDSigTransform</link>
+#define <link linkend="xmlSecUsageDSigDigest">xmlSecUsageDSigDigest</link>
+#define <link linkend="xmlSecUsageDSigSignature">xmlSecUsageDSigSignature</link>
+#define <link linkend="xmlSecUsageEncryptionMethod">xmlSecUsageEncryptionMethod</link>
+enum <link linkend="xmlSecTransformResult">xmlSecTransformResult</link>;
+struct <link linkend="xmlSecTransform">xmlSecTransform</link>;
+void <link linkend="xmlSecTransformsInit">xmlSecTransformsInit</link> (void);
+int <link linkend="xmlSecTransformsNodeRead">xmlSecTransformsNodeRead</link> (<link linkend="xmlSecTransformStatePtr">xmlSecTransformStatePtr</link> state,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> transformsNode);
+<link linkend="xmlSecTransformId">xmlSecTransformId</link> <link linkend="xmlSecTransformFind">xmlSecTransformFind</link> (const <link linkend="xmlChar">xmlChar</link> *href);
+<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> <link linkend="xmlSecTransformNodeRead">xmlSecTransformNodeRead</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> transformNode,
+ <link linkend="xmlSecTransformUsage">xmlSecTransformUsage</link> usage,
+ int dontDestroy);
+int <link linkend="xmlSecTransformNodeWrite">xmlSecTransformNodeWrite</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> transformNode,
+ <link linkend="xmlSecTransformId">xmlSecTransformId</link> id);
+#define <link linkend="xmlSecTransformIsValid">xmlSecTransformIsValid</link> (transform)
+#define <link linkend="xmlSecTransformCheckType">xmlSecTransformCheckType</link> (transform, t)
+#define <link linkend="xmlSecTransformCheckId">xmlSecTransformCheckId</link> (transform, i)
+<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> <link linkend="xmlSecTransformCreate">xmlSecTransformCreate</link> (<link linkend="xmlSecTransformId">xmlSecTransformId</link> id,
+ <link linkend="xmlSecTransformUsage">xmlSecTransformUsage</link> usage,
+ int dontDestroy);
+void <link linkend="xmlSecTransformDestroy">xmlSecTransformDestroy</link> (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ int forceDestroy);
+int <link linkend="xmlSecTransformRead">xmlSecTransformRead</link> (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> transformNode);
+<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> (<link linkend="xmlSecTransformCreateMethod">*xmlSecTransformCreateMethod</link>)
+ (<link linkend="xmlSecTransformId">xmlSecTransformId</link> id);
+void (<link linkend="xmlSecTransformDestroyMethod">*xmlSecTransformDestroyMethod</link>) (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform);
+int (<link linkend="xmlSecTransformReadNodeMethod">*xmlSecTransformReadNodeMethod</link>)
+ (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> transformNode);
+typedef <link linkend="xmlSecBinTransformId">xmlSecBinTransformId</link>;
+struct <link linkend="xmlSecBinTransform">xmlSecBinTransform</link>;
+enum <link linkend="xmlSecBinTransformSubType">xmlSecBinTransformSubType</link>;
+#define <link linkend="xmlSecBinTransformIdCheckKeyId">xmlSecBinTransformIdCheckKeyId</link> (id, kId)
+#define <link linkend="xmlSecBinTransformIdGetKeyId">xmlSecBinTransformIdGetKeyId</link> (id)
+#define <link linkend="xmlSecBinTransformCheckSubType">xmlSecBinTransformCheckSubType</link> (transform, t)
+#define <link linkend="xmlSecBinTransformIdGetEncKeyType">xmlSecBinTransformIdGetEncKeyType</link>(id)
+#define <link linkend="xmlSecBinTransformIdGetDecKeyType">xmlSecBinTransformIdGetDecKeyType</link>(id)
+int <link linkend="xmlSecBinTransformAddKey">xmlSecBinTransformAddKey</link> (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ <link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key);
+int <link linkend="xmlSecBinTransformRead">xmlSecBinTransformRead</link> (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);
+int <link linkend="xmlSecBinTransformWrite">xmlSecBinTransformWrite</link> (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);
+int <link linkend="xmlSecBinTransformFlush">xmlSecBinTransformFlush</link> (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform);
+<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> <link linkend="xmlSecBinTransformAddAfter">xmlSecBinTransformAddAfter</link>
+ (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> curTransform,
+ <link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> newTransform);
+<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> <link linkend="xmlSecBinTransformAddBefore">xmlSecBinTransformAddBefore</link>
+ (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> curTransform,
+ <link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> newTransform);
+void <link linkend="xmlSecBinTransformRemove">xmlSecBinTransformRemove</link> (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform);
+void <link linkend="xmlSecBinTransformDestroyAll">xmlSecBinTransformDestroyAll</link> (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform);
+void <link linkend="xmlSecBinTransformSetEncrypt">xmlSecBinTransformSetEncrypt</link> (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ int encrypt);
+int (<link linkend="xmlSecBinTransformAddKeyMethod">*xmlSecBinTransformAddKeyMethod</link>)
+ (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform,
+ <link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key);
+int (<link linkend="xmlSecBinTransformReadMethod">*xmlSecBinTransformReadMethod</link>) (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);
+int (<link linkend="xmlSecBinTransformWriteMethod">*xmlSecBinTransformWriteMethod</link>)
+ (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);
+int (<link linkend="xmlSecBinTransformFlushMethod">*xmlSecBinTransformFlushMethod</link>)
+ (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform);
+typedef <link linkend="xmlSecXmlTransformId">xmlSecXmlTransformId</link>;
+struct <link linkend="xmlSecXmlTransform">xmlSecXmlTransform</link>;
+int (<link linkend="xmlSecXmlTransformExecuteMethod">*xmlSecXmlTransformExecuteMethod</link>)
+ (<link linkend="xmlSecXmlTransformPtr">xmlSecXmlTransformPtr</link> transform,
+ <link linkend="xmlDocPtr">xmlDocPtr</link> ctxDoc,
+ <link linkend="xmlDocPtr">xmlDocPtr</link> *doc,
+ <link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> *nodes);
+int <link linkend="xmlSecXmlTransformExecute">xmlSecXmlTransformExecute</link> (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ <link linkend="xmlDocPtr">xmlDocPtr</link> ctxDoc,
+ <link linkend="xmlDocPtr">xmlDocPtr</link> *doc,
+ <link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> *nodes);
+typedef <link linkend="xmlSecC14NTransformId">xmlSecC14NTransformId</link>;
+struct <link linkend="xmlSecC14NTransform">xmlSecC14NTransform</link>;
+int (<link linkend="xmlSecC14NTransformExecuteMethod">*xmlSecC14NTransformExecuteMethod</link>)
+ (<link linkend="xmlSecC14NTransformPtr">xmlSecC14NTransformPtr</link> transform,
+ <link linkend="xmlDocPtr">xmlDocPtr</link> doc,
+ <link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> nodes,
+ <link linkend="xmlOutputBufferPtr">xmlOutputBufferPtr</link> buffer);
+int <link linkend="xmlSecC14NTransformExecute">xmlSecC14NTransformExecute</link> (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ <link linkend="xmlDocPtr">xmlDocPtr</link> doc,
+ <link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> nodes,
+ <link linkend="xmlOutputBufferPtr">xmlOutputBufferPtr</link> buffer);
+struct <link linkend="xmlSecTransformState">xmlSecTransformState</link>;
+<link linkend="xmlSecTransformStatePtr">xmlSecTransformStatePtr</link> <link linkend="xmlSecTransformStateCreate">xmlSecTransformStateCreate</link>
+ (<link linkend="xmlDocPtr">xmlDocPtr</link> doc,
+ <link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> nodeSet,
+ const char *uri);
+void <link linkend="xmlSecTransformStateDestroy">xmlSecTransformStateDestroy</link> (<link linkend="xmlSecTransformStatePtr">xmlSecTransformStatePtr</link> state);
+int <link linkend="xmlSecTransformStateUpdate">xmlSecTransformStateUpdate</link> (<link linkend="xmlSecTransformStatePtr">xmlSecTransformStatePtr</link> state,
+ <link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform);
+int <link linkend="xmlSecTransformStateFinal">xmlSecTransformStateFinal</link> (<link linkend="xmlSecTransformStatePtr">xmlSecTransformStatePtr</link> state,
+ <link linkend="xmlSecTransformResult">xmlSecTransformResult</link> type);
+</synopsis>
+</refsynopsisdiv>
+
+
+
+
+
+<refsect1>
+<title>Description</title>
+<para>
+</para>
+</refsect1>
+
+<refsect1>
+<title>Details</title>
+<refsect2>
+<title><anchor id="xmlSecTransformType">enum xmlSecTransformType</title>
+<programlisting>typedef enum {
+ xmlSecTransformTypeBinary,
+ xmlSecTransformTypeXml,
+ xmlSecTransformTypeC14N
+} xmlSecTransformType;
+</programlisting>
+<para>
+The transform input/output types.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="enum">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row>
+<entry><literal>xmlSecTransformTypeBinary</literal></entry>
+<entry> input - binary; output - binary.
+</entry>
+</row>
+<row>
+<entry><literal>xmlSecTransformTypeXml</literal></entry>
+<entry> input - XML; output - XML.
+</entry>
+</row>
+<row>
+<entry><literal>xmlSecTransformTypeC14N</literal></entry>
+<entry> input - XML; output - binary.
+</entry>
+</row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformUsage">xmlSecTransformUsage</title>
+<programlisting>typedef unsigned long xmlSecTransformUsage;
+</programlisting>
+<para>
+The transform usage bits mask.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecUsageAny">xmlSecUsageAny</title>
+<programlisting>#define xmlSecUsageAny 0
+</programlisting>
+<para>
+Transform could be used for operation.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecUsageDSigC14N">xmlSecUsageDSigC14N</title>
+<programlisting>#define xmlSecUsageDSigC14N 1
+</programlisting>
+<para>
+Transform could be used for C14N.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecUsageDSigTransform">xmlSecUsageDSigTransform</title>
+<programlisting>#define xmlSecUsageDSigTransform 2
+</programlisting>
+<para>
+Transform could be used as a transform in XML DSig.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecUsageDSigDigest">xmlSecUsageDSigDigest</title>
+<programlisting>#define xmlSecUsageDSigDigest 4
+</programlisting>
+<para>
+Transform could be used for digests.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecUsageDSigSignature">xmlSecUsageDSigSignature</title>
+<programlisting>#define xmlSecUsageDSigSignature 8
+</programlisting>
+<para>
+Transform could be used for generating signatures.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecUsageEncryptionMethod">xmlSecUsageEncryptionMethod</title>
+<programlisting>#define xmlSecUsageEncryptionMethod 16
+</programlisting>
+<para>
+Transform could be used for encryption.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformResult">enum xmlSecTransformResult</title>
+<programlisting>typedef enum {
+ xmlSecTransformResultBinary,
+ xmlSecTransformResultXml
+} xmlSecTransformResult;
+</programlisting>
+<para>
+The transform result types.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="enum">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row>
+<entry><literal>xmlSecTransformResultBinary</literal></entry>
+<entry> binary data.
+</entry>
+</row>
+<row>
+<entry><literal>xmlSecTransformResultXml</literal></entry>
+<entry> XML document plus nodes set.
+</entry>
+</row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransform">struct xmlSecTransform</title>
+<programlisting>struct xmlSecTransform {
+ xmlSecTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+};
+</programlisting>
+<para>
+The transform structure.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="struct">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row>
+<entry><link linkend="xmlSecTransformId">xmlSecTransformId</link> <structfield>id</structfield></entry>
+<entry> the transform id (pointer to <link linkend="xmlSecTransformId">xmlSecTransformId</link>).
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecTransformStatus">xmlSecTransformStatus</link> <structfield>status</structfield></entry>
+<entry> the transform status (ok/fail/unknown).
+</entry>
+</row>
+<row>
+<entry>int <structfield>dontDestroy</structfield></entry>
+<entry> the don't automatically destroy flag.
+</entry>
+</row>
+<row>
+<entry>void *<structfield>data</structfield></entry>
+<entry> the pointer to transform specific data.
+</entry>
+</row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformsInit">xmlSecTransformsInit ()</title>
+<programlisting>void xmlSecTransformsInit (void);</programlisting>
+<para>
+Trnasforms engine initialization (called from <link linkend="xmlSecInit">xmlSecInit</link>() function).
+The applications should not call this function directly.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformsNodeRead">xmlSecTransformsNodeRead ()</title>
+<programlisting>int xmlSecTransformsNodeRead (<link linkend="xmlSecTransformStatePtr">xmlSecTransformStatePtr</link> state,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> transformsNode);</programlisting>
+<para>
+Reads the transform node and updates <parameter>state</parameter>,</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>state</parameter>&nbsp;:</entry>
+<entry> the pointer to current transform state.
+</entry></row>
+<row><entry align="right"><parameter>transformsNode</parameter>&nbsp;:</entry>
+<entry> the pointer to the &lt;dsig:Transform&gt; node.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformFind">xmlSecTransformFind ()</title>
+<programlisting><link linkend="xmlSecTransformId">xmlSecTransformId</link> xmlSecTransformFind (const <link linkend="xmlChar">xmlChar</link> *href);</programlisting>
+<para>
+Searches the list of known transforms for transform with given href</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>href</parameter>&nbsp;:</entry>
+<entry> the transform href.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the id of the found transform or NULL if an error occurs
+or transform is not found.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformNodeRead">xmlSecTransformNodeRead ()</title>
+<programlisting><link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> xmlSecTransformNodeRead (<link linkend="xmlNodePtr">xmlNodePtr</link> transformNode,
+ <link linkend="xmlSecTransformUsage">xmlSecTransformUsage</link> usage,
+ int dontDestroy);</programlisting>
+<para>
+Reads transform from the <parameter>transformNode</parameter> as follows:
+ 1) reads "Algorithm" attribute;
+ 2) checks the list of known algorithms;
+ 3) calls transform create method;
+ 4) calls transform read transform node method.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transformNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:Transform&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>usage</parameter>&nbsp;:</entry>
+<entry> the usage of the transfomr (signature, encryption, etc.).
+</entry></row>
+<row><entry align="right"><parameter>dontDestroy</parameter>&nbsp;:</entry>
+<entry> the flag whether we need to destroy the transform.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly allocated <link linkend="xmlSecTransform">xmlSecTransform</link> structure
+or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformNodeWrite">xmlSecTransformNodeWrite ()</title>
+<programlisting>int xmlSecTransformNodeWrite (<link linkend="xmlNodePtr">xmlNodePtr</link> transformNode,
+ <link linkend="xmlSecTransformId">xmlSecTransformId</link> id);</programlisting>
+<para>
+Writes Agorithm attribute in the transform node.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transformNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:Transform&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>id</parameter>&nbsp;:</entry>
+<entry> the transform id.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformIsValid">xmlSecTransformIsValid()</title>
+<programlisting>#define xmlSecTransformIsValid(transform)</programlisting>
+<para>
+Macro. Returns 1 if the <parameter>transform</parameter> is valid or 0 otherwise.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to transform.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformCheckType">xmlSecTransformCheckType()</title>
+<programlisting>#define xmlSecTransformCheckType(transform, t)</programlisting>
+<para>
+Macro. Returns 1 if the <parameter>transform</parameter> is valid and has specified type <parameter>t</parameter>
+or 0 otherwise.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to transform.
+</entry></row>
+<row><entry align="right"><parameter>t</parameter>&nbsp;:</entry>
+<entry> the transform type.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformCheckId">xmlSecTransformCheckId()</title>
+<programlisting>#define xmlSecTransformCheckId(transform, i)</programlisting>
+<para>
+Macro. Returns 1 if the <parameter>transform</parameter> is valid and has specified id <parameter>i</parameter>
+or 0 otherwise.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to transform.
+</entry></row>
+<row><entry align="right"><parameter>i</parameter>&nbsp;:</entry>
+<entry> the transform id.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformCreate">xmlSecTransformCreate ()</title>
+<programlisting><link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> xmlSecTransformCreate (<link linkend="xmlSecTransformId">xmlSecTransformId</link> id,
+ <link linkend="xmlSecTransformUsage">xmlSecTransformUsage</link> usage,
+ int dontDestroy);</programlisting>
+<para>
+Creates new transform from the transform id object.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>id</parameter>&nbsp;:</entry>
+<entry> the transform id to create.
+</entry></row>
+<row><entry align="right"><parameter>usage</parameter>&nbsp;:</entry>
+<entry> the proposed transform usage.
+</entry></row>
+<row><entry align="right"><parameter>dontDestroy</parameter>&nbsp;:</entry>
+<entry> the flag that controls wherther the transforms
+ can destroy the transforms automatically
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly created <link linkend="xmlSecTransform">xmlSecTransform</link> structure
+or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformDestroy">xmlSecTransformDestroy ()</title>
+<programlisting>void xmlSecTransformDestroy (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ int forceDestroy);</programlisting>
+<para>
+Destroys transform by calling appropriate transform specific function.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecTransform">xmlSecTransform</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>forceDestroy</parameter>&nbsp;:</entry>
+<entry> the flag whether the transform destruction will be
+ forced.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformRead">xmlSecTransformRead ()</title>
+<programlisting>int xmlSecTransformRead (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> transformNode);</programlisting>
+<para>
+Reads transform information from the <parameter>transformNode</parameter> using
+transform specific function.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecTransform">xmlSecTransform</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>transformNode</parameter>&nbsp;:</entry>
+<entry> the pointer to the &lt;dsig:Transform&gt; node.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformCreateMethod">xmlSecTransformCreateMethod ()</title>
+<programlisting><link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> (*xmlSecTransformCreateMethod)
+ (<link linkend="xmlSecTransformId">xmlSecTransformId</link> id);</programlisting>
+<para>
+The transform specific creation method.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>id</parameter>&nbsp;:</entry>
+<entry> the transform id to create.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>pointer to the newly created transform or NULL if an
+error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformDestroyMethod">xmlSecTransformDestroyMethod ()</title>
+<programlisting>void (*xmlSecTransformDestroyMethod) (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform);</programlisting>
+<para>
+The transform specific destroy method.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to the <link linkend="xmlSecTransform">xmlSecTransform</link> structure.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformReadNodeMethod">xmlSecTransformReadNodeMethod ()</title>
+<programlisting>int (*xmlSecTransformReadNodeMethod)
+ (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> transformNode);</programlisting>
+<para>
+The transfomr specific method to read the transform data from
+the <parameter>transformNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to the <link linkend="xmlSecTransform">xmlSecTransform</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>transformNode</parameter>&nbsp;:</entry>
+<entry> the pointer to the &lt;dsig:Transform&gt; node.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBinTransformId">xmlSecBinTransformId</title>
+<programlisting>typedef const struct _xmlSecBinTransformIdStruct *xmlSecBinTransformId;
+</programlisting>
+<para>
+The binary transform id (<literal>xmlSecTransformTypeBinary</literal> type).</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBinTransform">struct xmlSecBinTransform</title>
+<programlisting>struct xmlSecBinTransform {
+ /* same as for xmlSecTransform but id type changed */
+ xmlSecBinTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+
+ /* xmlSecBinTransform specific */
+ int encode;
+ xmlSecBinTransformPtr next;
+ xmlSecBinTransformPtr prev;
+ void *binData;
+};
+</programlisting>
+<para>
+Binary transforms are very similar to BIO from OpenSSL.
+However,there is one big difference. In OpenSSL BIO writing
+operation *always* encrypts data and read operation *always*
+decrypts data. We do not want to have this restriction.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="struct">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row>
+<entry><link linkend="xmlSecBinTransformId">xmlSecBinTransformId</link> <structfield>id</structfield></entry>
+<entry> the transform id (pointer to <link linkend="xmlSecBinTransformId">xmlSecBinTransformId</link>).
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecTransformStatus">xmlSecTransformStatus</link> <structfield>status</structfield></entry>
+<entry> the transform status (ok/fail/unknown).
+</entry>
+</row>
+<row>
+<entry>int <structfield>dontDestroy</structfield></entry>
+<entry> the don't automatically destroy flag.
+</entry>
+</row>
+<row>
+<entry>void *<structfield>data</structfield></entry>
+<entry> the pointer to transform specific data.
+</entry>
+</row>
+<row>
+<entry>int <structfield>encode</structfield></entry>
+<entry> encode/decode (encrypt/decrypt) flag.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> <structfield>next</structfield></entry>
+<entry> next binary transform in the chain.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> <structfield>prev</structfield></entry>
+<entry> previous binary transform in the chain.
+</entry>
+</row>
+<row>
+<entry>void *<structfield>binData</structfield></entry>
+<entry> the pointer to binary transform speific data.
+</entry>
+</row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBinTransformSubType">enum xmlSecBinTransformSubType</title>
+<programlisting>typedef enum {
+ xmlSecBinTransformSubTypeNone = 0,
+ xmlSecBinTransformSubTypeDigest,
+ xmlSecBinTransformSubTypeCipher,
+ xmlSecBinTransformSubTypeBuffered
+} xmlSecBinTransformSubType;
+</programlisting>
+<para>
+Binary transform sub-types.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="enum">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row>
+<entry><literal>xmlSecBinTransformSubTypeNone</literal></entry>
+<entry> unknown.
+</entry>
+</row>
+<row>
+<entry><literal>xmlSecBinTransformSubTypeDigest</literal></entry>
+<entry> digest.
+</entry>
+</row>
+<row>
+<entry><literal>xmlSecBinTransformSubTypeCipher</literal></entry>
+<entry> cipher.
+</entry>
+</row>
+<row>
+<entry><literal>xmlSecBinTransformSubTypeBuffered</literal></entry>
+<entry> buffered transform.
+</entry>
+</row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBinTransformIdCheckKeyId">xmlSecBinTransformIdCheckKeyId()</title>
+<programlisting>#define xmlSecBinTransformIdCheckKeyId(id, kId)</programlisting>
+<para>
+Macro. Returns 1 if the transform <parameter>id</parameter> has <link linkend="xmlSecTransformTypeBinary">xmlSecTransformTypeBinary</link> type
+and the transform's keyId matches specified <parameter>kId</parameter> or 0 otherwise.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>id</parameter>&nbsp;:</entry>
+<entry> the transform id.
+</entry></row>
+<row><entry align="right"><parameter>kId</parameter>&nbsp;:</entry>
+<entry> the key id.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBinTransformIdGetKeyId">xmlSecBinTransformIdGetKeyId()</title>
+<programlisting>#define xmlSecBinTransformIdGetKeyId(id)</programlisting>
+<para>
+Macro. Returns the key id required by the transform or NULL if an error
+occurs.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>id</parameter>&nbsp;:</entry>
+<entry> the transform id.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBinTransformCheckSubType">xmlSecBinTransformCheckSubType()</title>
+<programlisting>#define xmlSecBinTransformCheckSubType(transform, t)</programlisting>
+<para>
+Macro. Returns 1 if the <parameter>transform</parameter> is valid, has
+<link linkend="xmlSecTransformTypeBinary">xmlSecTransformTypeBinary</link> type and has specified subtype <parameter>t</parameter>
+or 0 otherwise.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to transform.
+</entry></row>
+<row><entry align="right"><parameter>t</parameter>&nbsp;:</entry>
+<entry> the transform's subtype.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBinTransformIdGetEncKeyType">xmlSecBinTransformIdGetEncKeyType()</title>
+<programlisting>#define xmlSecBinTransformIdGetEncKeyType(id)</programlisting>
+<para>
+Macro. Returns the encryption key type by the transform or NULL if
+an error occurs.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>id</parameter>&nbsp;:</entry>
+<entry> the transform id.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBinTransformIdGetDecKeyType">xmlSecBinTransformIdGetDecKeyType()</title>
+<programlisting>#define xmlSecBinTransformIdGetDecKeyType(id)</programlisting>
+<para>
+Macro. Returns the decryption key type by the transform or NULL if
+an error occurs.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>id</parameter>&nbsp;:</entry>
+<entry> the transform id.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBinTransformAddKey">xmlSecBinTransformAddKey ()</title>
+<programlisting>int xmlSecBinTransformAddKey (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ <link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key);</programlisting>
+<para>
+Sets the key for binary transform (wrapper for transform specific
+<link linkend="addBinKey">addBinKey</link>() method).</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecTransform">xmlSecTransform</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecKey">xmlSecKey</link> structure.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBinTransformRead">xmlSecBinTransformRead ()</title>
+<programlisting>int xmlSecBinTransformRead (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);</programlisting>
+<para>
+Reads chunk of data from the transform (wrapper transform specific
+<link linkend="readBin">readBin</link>() function).</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecTransform">xmlSecTransform</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>buf</parameter>&nbsp;:</entry>
+<entry> the output buffer.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the output buffer size.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the number of bytes in the buffer or negative value
+if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBinTransformWrite">xmlSecBinTransformWrite ()</title>
+<programlisting>int xmlSecBinTransformWrite (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);</programlisting>
+<para>
+Writes data to the transform (wrapper to the transform specific
+<link linkend="writeBin">writeBin</link>() function).</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecTransform">xmlSecTransform</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>buf</parameter>&nbsp;:</entry>
+<entry> the input data buffer.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the input data size.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 if success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBinTransformFlush">xmlSecBinTransformFlush ()</title>
+<programlisting>int xmlSecBinTransformFlush (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform);</programlisting>
+<para>
+Finalizes writing (wrapper for transform specific <link linkend="flushBin">flushBin</link>() method).</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecTransform">xmlSecTransform</link> structure.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 if success or negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBinTransformAddAfter">xmlSecBinTransformAddAfter ()</title>
+<programlisting><link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> xmlSecBinTransformAddAfter
+ (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> curTransform,
+ <link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> newTransform);</programlisting>
+<para>
+Adds <parameter>newTransform</parameter> after the <parameter>curTransform</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>curTransform</parameter>&nbsp;:</entry>
+<entry> the pointer to current transform (may be NULL).
+</entry></row>
+<row><entry align="right"><parameter>newTransform</parameter>&nbsp;:</entry>
+<entry> the pointer to new transform.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>pointer to the new transforms chain or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBinTransformAddBefore">xmlSecBinTransformAddBefore ()</title>
+<programlisting><link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> xmlSecBinTransformAddBefore
+ (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> curTransform,
+ <link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> newTransform);</programlisting>
+<para>
+Adds <parameter>newTransform</parameter> before the <parameter>curTransform</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>curTransform</parameter>&nbsp;:</entry>
+<entry> the pointer to current transform (may be NULL).
+</entry></row>
+<row><entry align="right"><parameter>newTransform</parameter>&nbsp;:</entry>
+<entry> the pointer to new transform.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>pointer to the new transforms chain or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBinTransformRemove">xmlSecBinTransformRemove ()</title>
+<programlisting>void xmlSecBinTransformRemove (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform);</programlisting>
+<para>
+Removes <parameter>transform</parameter> from the chain. This method MUST be called by any
+bin transform id destructor.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecTransform">xmlSecTransform</link> structure.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBinTransformDestroyAll">xmlSecBinTransformDestroyAll ()</title>
+<programlisting>void xmlSecBinTransformDestroyAll (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform);</programlisting>
+<para>
+Destroys all transforms in the chain.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecTransform">xmlSecTransform</link> structure.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBinTransformSetEncrypt">xmlSecBinTransformSetEncrypt ()</title>
+<programlisting>void xmlSecBinTransformSetEncrypt (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ int encrypt);</programlisting>
+<para>
+Sets the <parameter>transform</parameter> direction - encrypt/decrypt (or encode/decode).</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecTransform">xmlSecTransform</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>encrypt</parameter>&nbsp;:</entry>
+<entry> the encrypt/decrypt (or encode/decode) flag.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBinTransformAddKeyMethod">xmlSecBinTransformAddKeyMethod ()</title>
+<programlisting>int (*xmlSecBinTransformAddKeyMethod)
+ (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform,
+ <link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key);</programlisting>
+<para>
+The transform specific method to set key for use.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to binary transform.
+</entry></row>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the pointer to key.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBinTransformReadMethod">xmlSecBinTransformReadMethod ()</title>
+<programlisting>int (*xmlSecBinTransformReadMethod) (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);</programlisting>
+<para>
+The transform specific method to read next chunk of binary data into <parameter>buf</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecTransform">xmlSecTransform</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>buf</parameter>&nbsp;:</entry>
+<entry> the output buffer.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the output buffer size.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the number of bytes in the buffer or negative value
+if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBinTransformWriteMethod">xmlSecBinTransformWriteMethod ()</title>
+<programlisting>int (*xmlSecBinTransformWriteMethod)
+ (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size);</programlisting>
+<para>
+The transform specific method to write next chunk of binary data from <parameter>buf</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecTransform">xmlSecTransform</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>buf</parameter>&nbsp;:</entry>
+<entry> the input data buffer.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the input data size.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 if success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecBinTransformFlushMethod">xmlSecBinTransformFlushMethod ()</title>
+<programlisting>int (*xmlSecBinTransformFlushMethod)
+ (<link linkend="xmlSecBinTransformPtr">xmlSecBinTransformPtr</link> transform);</programlisting>
+<para>
+The transform specific method to finalize writing.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecTransform">xmlSecTransform</link> structure.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 if success or negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecXmlTransformId">xmlSecXmlTransformId</title>
+<programlisting>typedef const struct _xmlSecXmlTransformIdStruct *xmlSecXmlTransformId;
+</programlisting>
+<para>
+The xml transform id (<literal>xmlSecTransformTypeXml</literal> type).</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecXmlTransform">struct xmlSecXmlTransform</title>
+<programlisting>struct xmlSecXmlTransform {
+ /* same as for xmlSecTransform but id type changed */
+ xmlSecXmlTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+
+ /* xmlSecXmlTransform specific */
+ xmlNodePtr here;
+ void *xmlData;
+};
+</programlisting>
+<para>
+The XML transform structure.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="struct">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row>
+<entry><link linkend="xmlSecXmlTransformId">xmlSecXmlTransformId</link> <structfield>id</structfield></entry>
+<entry> the transform id (pointer to <link linkend="xmlSecXmlTransformId">xmlSecXmlTransformId</link>).
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecTransformStatus">xmlSecTransformStatus</link> <structfield>status</structfield></entry>
+<entry> the transform status (ok/fail/unknown).
+</entry>
+</row>
+<row>
+<entry>int <structfield>dontDestroy</structfield></entry>
+<entry> the don't automatically destroy flag.
+</entry>
+</row>
+<row>
+<entry>void *<structfield>data</structfield></entry>
+<entry> the pointer to transform specific data.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlNodePtr">xmlNodePtr</link> <structfield>here</structfield></entry>
+<entry> the pointer to transform's &lt;dsig:Transform&gt; node.
+</entry>
+</row>
+<row>
+<entry>void *<structfield>xmlData</structfield></entry>
+<entry> the pointer to xml transform specific data.
+</entry>
+</row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecXmlTransformExecuteMethod">xmlSecXmlTransformExecuteMethod ()</title>
+<programlisting>int (*xmlSecXmlTransformExecuteMethod)
+ (<link linkend="xmlSecXmlTransformPtr">xmlSecXmlTransformPtr</link> transform,
+ <link linkend="xmlDocPtr">xmlDocPtr</link> ctxDoc,
+ <link linkend="xmlDocPtr">xmlDocPtr</link> *doc,
+ <link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> *nodes);</programlisting>
+<para>
+Transform specific execute method. Returns result nodes set in <parameter>nodes</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to XML transform.
+</entry></row>
+<row><entry align="right"><parameter>ctxDoc</parameter>&nbsp;:</entry>
+<entry> the pointer to the document containing the transform's
+ &lt;dsig:Transform&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>doc</parameter>&nbsp;:</entry>
+<entry> the pointer to the pointer to current document.
+</entry></row>
+<row><entry align="right"><parameter>nodes</parameter>&nbsp;:</entry>
+<entry> the pointer to the pointer to current and result nodes set.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecXmlTransformExecute">xmlSecXmlTransformExecute ()</title>
+<programlisting>int xmlSecXmlTransformExecute (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ <link linkend="xmlDocPtr">xmlDocPtr</link> ctxDoc,
+ <link linkend="xmlDocPtr">xmlDocPtr</link> *doc,
+ <link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> *nodes);</programlisting>
+<para>
+Executes the XML <parameter>transform</parameter> and returns result nodes set in <parameter>nodes</parameter>
+(wrapper for transform specific <link linkend="executeXml">executeXml</link>() method).</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to XML transform.
+</entry></row>
+<row><entry align="right"><parameter>ctxDoc</parameter>&nbsp;:</entry>
+<entry> the pointer to the document containing the transform's
+ &lt;dsig:Transform&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>doc</parameter>&nbsp;:</entry>
+<entry> the pointer to the pointer to current document.
+</entry></row>
+<row><entry align="right"><parameter>nodes</parameter>&nbsp;:</entry>
+<entry> the pointer to the pointer to current and result nodes set.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecC14NTransformId">xmlSecC14NTransformId</title>
+<programlisting>typedef const struct _xmlSecC14NTransformIdStruct *xmlSecC14NTransformId;
+</programlisting>
+<para>
+The C14N transform id structure (<literal>xmlSecTransformTypeC14N</literal> type).</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecC14NTransform">struct xmlSecC14NTransform</title>
+<programlisting>struct xmlSecC14NTransform {
+ /* same as for xmlSecTransform but id type changed */
+ xmlSecC14NTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+
+ /* xmlSecC14NTransform specific */
+ void *c14nData;
+};
+</programlisting>
+<para>
+The C14N transform structure.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="struct">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row>
+<entry><link linkend="xmlSecC14NTransformId">xmlSecC14NTransformId</link> <structfield>id</structfield></entry>
+<entry> the transform id (pointer to <link linkend="xmlSecC14NTransformId">xmlSecC14NTransformId</link>).
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecTransformStatus">xmlSecTransformStatus</link> <structfield>status</structfield></entry>
+<entry> the transform status (ok/fail/unknown).
+</entry>
+</row>
+<row>
+<entry>int <structfield>dontDestroy</structfield></entry>
+<entry> the don't automatically destroy flag.
+</entry>
+</row>
+<row>
+<entry>void *<structfield>data</structfield></entry>
+<entry> the pointer to transform specific data.
+</entry>
+</row>
+<row>
+<entry>void *<structfield>c14nData</structfield></entry>
+<entry> the pointer to transform specific data.
+</entry>
+</row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecC14NTransformExecuteMethod">xmlSecC14NTransformExecuteMethod ()</title>
+<programlisting>int (*xmlSecC14NTransformExecuteMethod)
+ (<link linkend="xmlSecC14NTransformPtr">xmlSecC14NTransformPtr</link> transform,
+ <link linkend="xmlDocPtr">xmlDocPtr</link> doc,
+ <link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> nodes,
+ <link linkend="xmlOutputBufferPtr">xmlOutputBufferPtr</link> buffer);</programlisting>
+<para>
+Transform specific execute method. returns result in the <parameter>buffer</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to C14N transform.
+</entry></row>
+<row><entry align="right"><parameter>doc</parameter>&nbsp;:</entry>
+<entry> the pointer to current document.
+</entry></row>
+<row><entry align="right"><parameter>nodes</parameter>&nbsp;:</entry>
+<entry> the pointer to current nodes set.
+</entry></row>
+<row><entry align="right"><parameter>buffer</parameter>&nbsp;:</entry>
+<entry> the result buffer.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecC14NTransformExecute">xmlSecC14NTransformExecute ()</title>
+<programlisting>int xmlSecC14NTransformExecute (<link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform,
+ <link linkend="xmlDocPtr">xmlDocPtr</link> doc,
+ <link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> nodes,
+ <link linkend="xmlOutputBufferPtr">xmlOutputBufferPtr</link> buffer);</programlisting>
+<para>
+Executes the C14N <parameter>transform</parameter> and returns result in the <parameter>buffer</parameter>
+(wrapper for transform specific <link linkend="executeC14n">executeC14n</link>() method). If the
+<parameter>trnaform</parameter> is NULL then the default <link linkend="xmlSecC14NInclusive">xmlSecC14NInclusive</link>
+transform is executed.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to C14N transform.
+</entry></row>
+<row><entry align="right"><parameter>doc</parameter>&nbsp;:</entry>
+<entry> the pointer to current document.
+</entry></row>
+<row><entry align="right"><parameter>nodes</parameter>&nbsp;:</entry>
+<entry> the pointer to current nodes set.
+</entry></row>
+<row><entry align="right"><parameter>buffer</parameter>&nbsp;:</entry>
+<entry> the result buffer.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformState">struct xmlSecTransformState</title>
+<programlisting>struct xmlSecTransformState {
+ /* initial state */
+ xmlDocPtr initDoc;
+ xmlSecNodeSetPtr initNodeSet;
+ char *initUri;
+
+ /* current state: xml */
+ xmlDocPtr curDoc;
+ xmlSecNodeSetPtr curNodeSet;
+
+ /* current state: binary */
+ xmlBufferPtr curBuf;
+ xmlSecTransformPtr curFirstBinTransform;
+ xmlSecTransformPtr curLastBinTransform;
+
+ /* optimization: special case for c14n transforms */
+ xmlSecTransformPtr curC14NTransform;
+};
+</programlisting>
+<para>
+The current transforms state.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="struct">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row>
+<entry><link linkend="xmlDocPtr">xmlDocPtr</link> <structfield>initDoc</structfield></entry>
+<entry> the pointer to the original xml document.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> <structfield>initNodeSet</structfield></entry>
+<entry> the original nodes set.
+</entry>
+</row>
+<row>
+<entry>char *<structfield>initUri</structfield></entry>
+<entry> the original uri.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlDocPtr">xmlDocPtr</link> <structfield>curDoc</structfield></entry>
+<entry> the pointer to the current doc.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> <structfield>curNodeSet</structfield></entry>
+<entry> the pointer to the current nodes set.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlBufferPtr">xmlBufferPtr</link> <structfield>curBuf</structfield></entry>
+<entry> the pointer to the current binary data.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> <structfield>curFirstBinTransform</structfield></entry>
+<entry> the pointer to the first pending binary transform.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> <structfield>curLastBinTransform</structfield></entry>
+<entry> the pointer to the last pending binary transform.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> <structfield>curC14NTransform</structfield></entry>
+<entry> the current pending c14n transform.
+</entry>
+</row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformStateCreate">xmlSecTransformStateCreate ()</title>
+<programlisting><link linkend="xmlSecTransformStatePtr">xmlSecTransformStatePtr</link> xmlSecTransformStateCreate
+ (<link linkend="xmlDocPtr">xmlDocPtr</link> doc,
+ <link linkend="xmlSecNodeSetPtr">xmlSecNodeSetPtr</link> nodeSet,
+ const char *uri);</programlisting>
+<para>
+Creates new transform state.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>doc</parameter>&nbsp;:</entry>
+<entry> the pointer to XML document that contains &lt;dsig:Signature&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>nodeSet</parameter>&nbsp;:</entry>
+<entry> the original nodes set.
+</entry></row>
+<row><entry align="right"><parameter>uri</parameter>&nbsp;:</entry>
+<entry> the original uri.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>pointer to newly allocated <link linkend="xmlSecTransformState">xmlSecTransformState</link> structure
+or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformStateDestroy">xmlSecTransformStateDestroy ()</title>
+<programlisting>void xmlSecTransformStateDestroy (<link linkend="xmlSecTransformStatePtr">xmlSecTransformStatePtr</link> state);</programlisting>
+<para>
+Destroys the transform state.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>state</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecTransformState">xmlSecTransformState</link> structure.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformStateUpdate">xmlSecTransformStateUpdate ()</title>
+<programlisting>int xmlSecTransformStateUpdate (<link linkend="xmlSecTransformStatePtr">xmlSecTransformStatePtr</link> state,
+ <link linkend="xmlSecTransformPtr">xmlSecTransformPtr</link> transform);</programlisting>
+<para>
+Updates the current <parameter>state</parameter> with <parameter>transform</parameter>. Note all transforms are
+applied immidiatelly.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>state</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecTransformState">xmlSecTransformState</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecTransform">xmlSecTransform</link> structure.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecTransformStateFinal">xmlSecTransformStateFinal ()</title>
+<programlisting>int xmlSecTransformStateFinal (<link linkend="xmlSecTransformStatePtr">xmlSecTransformStatePtr</link> state,
+ <link linkend="xmlSecTransformResult">xmlSecTransformResult</link> type);</programlisting>
+<para>
+Finalazies transforms <parameter>state</parameter> (applies all pending transforms) and
+creates a result of the desired <parameter>type</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>state</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecTransformState">xmlSecTransformState</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>type</parameter>&nbsp;:</entry>
+<entry> the desired final type.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+
+</refsect1>
+
+
+
+
+</refentry>
diff --git a/docs/api-0.0.x/sgml/version.sgml b/docs/api-0.0.x/sgml/version.sgml
new file mode 100644
index 00000000..b5a61d54
--- /dev/null
+++ b/docs/api-0.0.x/sgml/version.sgml
@@ -0,0 +1,91 @@
+<refentry id="xmlsec-version">
+<refmeta>
+<refentrytitle>version.h</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>XMLSEC Library</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>version.h</refname><refpurpose>The library version infromation.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><title>Synopsis</title>
+<synopsis>
+
+
+
+#define <link linkend="XMLSEC-VERSION-CAPS">XMLSEC_VERSION</link>
+#define <link linkend="XMLSEC-VERSION-MAJOR-CAPS">XMLSEC_VERSION_MAJOR</link>
+#define <link linkend="XMLSEC-VERSION-MINOR-CAPS">XMLSEC_VERSION_MINOR</link>
+#define <link linkend="XMLSEC-VERSION-SUBMINOR-CAPS">XMLSEC_VERSION_SUBMINOR</link>
+#define <link linkend="XMLSEC-VERSION-INFO-CAPS">XMLSEC_VERSION_INFO</link>
+</synopsis>
+</refsynopsisdiv>
+
+
+
+
+
+<refsect1>
+<title>Description</title>
+<para>
+
+</para>
+</refsect1>
+
+<refsect1>
+<title>Details</title>
+<refsect2>
+<title><anchor id="XMLSEC-VERSION-CAPS">XMLSEC_VERSION</title>
+<programlisting>#define XMLSEC_VERSION "0.0.12"
+</programlisting>
+<para>
+The library version string in the format
+"&lt;major-number&gt;.&lt;minor-number&gt;.&lt;sub-minor-number&gt;".</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-VERSION-MAJOR-CAPS">XMLSEC_VERSION_MAJOR</title>
+<programlisting>#define XMLSEC_VERSION_MAJOR 0
+</programlisting>
+<para>
+The library major version number.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-VERSION-MINOR-CAPS">XMLSEC_VERSION_MINOR</title>
+<programlisting>#define XMLSEC_VERSION_MINOR 0
+</programlisting>
+<para>
+The library minor version number.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-VERSION-SUBMINOR-CAPS">XMLSEC_VERSION_SUBMINOR</title>
+<programlisting>#define XMLSEC_VERSION_SUBMINOR 12
+</programlisting>
+<para>
+The library sub-minor version number.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="XMLSEC-VERSION-INFO-CAPS">XMLSEC_VERSION_INFO</title>
+<programlisting>#define XMLSEC_VERSION_INFO "0:12:0"
+</programlisting>
+<para>
+The library version info string in the format
+"&lt;major-number&gt;+&lt;minor-number&gt;:&lt;sub-minor-number&gt;:&lt;minor-number&gt;".</para>
+<para>
+
+</para></refsect2>
+
+</refsect1>
+
+
+
+
+</refentry>
diff --git a/docs/api-0.0.x/sgml/x509.sgml b/docs/api-0.0.x/sgml/x509.sgml
new file mode 100644
index 00000000..2811789b
--- /dev/null
+++ b/docs/api-0.0.x/sgml/x509.sgml
@@ -0,0 +1,499 @@
+<refentry id="xmlsec-x509">
+<refmeta>
+<refentrytitle>x509.h</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>XMLSEC Library</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>x509.h</refname><refpurpose>The X509 certificates functions.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><title>Synopsis</title>
+<synopsis>
+
+
+
+<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> <link linkend="xmlSecX509DataCreate">xmlSecX509DataCreate</link> (void);
+void <link linkend="xmlSecX509DataDestroy">xmlSecX509DataDestroy</link> (<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> x509Data);
+<link linkend="size-t">size_t</link> <link linkend="xmlSecX509DataGetCertsNumber">xmlSecX509DataGetCertsNumber</link> (<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> x509Data);
+<link linkend="size-t">size_t</link> <link linkend="xmlSecX509DataGetCrlsNumber">xmlSecX509DataGetCrlsNumber</link> (<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> x509Data);
+int <link linkend="xmlSecX509DataReadDerCert">xmlSecX509DataReadDerCert</link> (<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> x509Data,
+ <link linkend="xmlChar">xmlChar</link> *buf,
+ <link linkend="size-t">size_t</link> size,
+ int base64);
+<link linkend="xmlChar">xmlChar</link>* <link linkend="xmlSecX509DataWriteDerCert">xmlSecX509DataWriteDerCert</link> (<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> x509Data,
+ int pos);
+int <link linkend="xmlSecX509DataReadDerCrl">xmlSecX509DataReadDerCrl</link> (<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> x509Data,
+ <link linkend="xmlChar">xmlChar</link> *buf,
+ <link linkend="size-t">size_t</link> size,
+ int base64);
+<link linkend="xmlChar">xmlChar</link>* <link linkend="xmlSecX509DataWriteDerCrl">xmlSecX509DataWriteDerCrl</link> (<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> x509Data,
+ int pos);
+int <link linkend="xmlSecX509DataReadPemCert">xmlSecX509DataReadPemCert</link> (<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> x509Data,
+ const char *filename);
+<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> <link linkend="xmlSecX509DataDup">xmlSecX509DataDup</link> (<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> x509Data);
+<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> <link linkend="xmlSecX509DataCreateKey">xmlSecX509DataCreateKey</link> (<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> x509Data);
+void <link linkend="xmlSecX509DataDebugDump">xmlSecX509DataDebugDump</link> (<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> x509Data,
+ <link linkend="FILE-CAPS">FILE</link> *output);
+<link linkend="xmlSecX509StorePtr">xmlSecX509StorePtr</link> <link linkend="xmlSecX509StoreCreate">xmlSecX509StoreCreate</link> (void);
+void <link linkend="xmlSecX509StoreDestroy">xmlSecX509StoreDestroy</link> (<link linkend="xmlSecX509StorePtr">xmlSecX509StorePtr</link> store);
+<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> <link linkend="xmlSecX509StoreFind">xmlSecX509StoreFind</link> (<link linkend="xmlSecX509StorePtr">xmlSecX509StorePtr</link> store,
+ <link linkend="xmlChar">xmlChar</link> *subjectName,
+ <link linkend="xmlChar">xmlChar</link> *issuerName,
+ <link linkend="xmlChar">xmlChar</link> *issuerSerial,
+ <link linkend="xmlChar">xmlChar</link> *ski,
+ <link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> x509Data);
+int <link linkend="xmlSecX509StoreVerify">xmlSecX509StoreVerify</link> (<link linkend="xmlSecX509StorePtr">xmlSecX509StorePtr</link> store,
+ <link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> x509Data);
+int <link linkend="xmlSecX509StoreLoadPemCert">xmlSecX509StoreLoadPemCert</link> (<link linkend="xmlSecX509StorePtr">xmlSecX509StorePtr</link> store,
+ const char *filename,
+ int trusted);
+int <link linkend="xmlSecX509StoreAddCertsDir">xmlSecX509StoreAddCertsDir</link> (<link linkend="xmlSecX509StorePtr">xmlSecX509StorePtr</link> store,
+ const char *path);
+<link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> <link linkend="xmlSecPKCS12ReadKey">xmlSecPKCS12ReadKey</link> (const char *filename,
+ const char *pwd);
+</synopsis>
+</refsynopsisdiv>
+
+
+
+
+
+<refsect1>
+<title>Description</title>
+<para>
+
+</para>
+</refsect1>
+
+<refsect1>
+<title>Details</title>
+<refsect2>
+<title><anchor id="xmlSecX509DataCreate">xmlSecX509DataCreate ()</title>
+<programlisting><link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> xmlSecX509DataCreate (void);</programlisting>
+<para>
+Creates new x509 data.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly created <link linkend="xmlSecX509Data">xmlSecX509Data</link> structure
+or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecX509DataDestroy">xmlSecX509DataDestroy ()</title>
+<programlisting>void xmlSecX509DataDestroy (<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> x509Data);</programlisting>
+<para>
+Destroys x509 data.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>x509Data</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecX509Data">xmlSecX509Data</link> structure.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecX509DataGetCertsNumber">xmlSecX509DataGetCertsNumber ()</title>
+<programlisting><link linkend="size-t">size_t</link> xmlSecX509DataGetCertsNumber (<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> x509Data);</programlisting>
+<para>
+Gets the number of certs in <parameter>x509Data</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>x509Data</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecX509Data">xmlSecX509Data</link> structure.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the number of certs in <parameter>x509Data</parameter>.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecX509DataGetCrlsNumber">xmlSecX509DataGetCrlsNumber ()</title>
+<programlisting><link linkend="size-t">size_t</link> xmlSecX509DataGetCrlsNumber (<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> x509Data);</programlisting>
+<para>
+Gets the number of crls in <parameter>x509Data</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>x509Data</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecX509Data">xmlSecX509Data</link> structure.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the number of crls in <parameter>x509Data</parameter>.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecX509DataReadDerCert">xmlSecX509DataReadDerCert ()</title>
+<programlisting>int xmlSecX509DataReadDerCert (<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> x509Data,
+ <link linkend="xmlChar">xmlChar</link> *buf,
+ <link linkend="size-t">size_t</link> size,
+ int base64);</programlisting>
+<para>
+Reads certificates the from a DER binary data in <parameter>buf</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>x509Data</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecX509Data">xmlSecX509Data</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>buf</parameter>&nbsp;:</entry>
+<entry> the pointer to binary data.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the size of binary data.
+</entry></row>
+<row><entry align="right"><parameter>base64</parameter>&nbsp;:</entry>
+<entry> the flag that indicate whether the <parameter>buf</parameter> is base64 encoded or not.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecX509DataWriteDerCert">xmlSecX509DataWriteDerCert ()</title>
+<programlisting><link linkend="xmlChar">xmlChar</link>* xmlSecX509DataWriteDerCert (<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> x509Data,
+ int pos);</programlisting>
+<para>
+Writes <parameter>pos</parameter> certificate from <parameter>x509Data</parameter> into allocated buffer
+in DER + base64 encode format. The caller is responsible for freeing
+the returned buffer using <link linkend="xmlFree">xmlFree</link>() function.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>x509Data</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecX509Data">xmlSecX509Data</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>pos</parameter>&nbsp;:</entry>
+<entry> the cert number.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to allocated result buffer or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecX509DataReadDerCrl">xmlSecX509DataReadDerCrl ()</title>
+<programlisting>int xmlSecX509DataReadDerCrl (<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> x509Data,
+ <link linkend="xmlChar">xmlChar</link> *buf,
+ <link linkend="size-t">size_t</link> size,
+ int base64);</programlisting>
+<para>
+Reads crls the from a DER binary data in <parameter>buf</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>x509Data</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecX509Data">xmlSecX509Data</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>buf</parameter>&nbsp;:</entry>
+<entry> the pointer to binary data.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the size of binary data.
+</entry></row>
+<row><entry align="right"><parameter>base64</parameter>&nbsp;:</entry>
+<entry> the flag that indicate whether the <parameter>buf</parameter> is base64 encoded or not.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecX509DataWriteDerCrl">xmlSecX509DataWriteDerCrl ()</title>
+<programlisting><link linkend="xmlChar">xmlChar</link>* xmlSecX509DataWriteDerCrl (<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> x509Data,
+ int pos);</programlisting>
+<para>
+Writes <parameter>pos</parameter> crl from <parameter>x509Data</parameter> into allocated buffer
+in DER + base64 encode format. The caller is responsible for freeing
+the returned buffer using <link linkend="xmlFree">xmlFree</link>() function.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>x509Data</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecX509Data">xmlSecX509Data</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>pos</parameter>&nbsp;:</entry>
+<entry> the cert number.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to allocated result buffer or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecX509DataReadPemCert">xmlSecX509DataReadPemCert ()</title>
+<programlisting>int xmlSecX509DataReadPemCert (<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> x509Data,
+ const char *filename);</programlisting>
+<para>
+Reads cert from PEM file <parameter>filename</parameter> into <parameter>x509Data</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>x509Data</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecX509Data">xmlSecX509Data</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>filename</parameter>&nbsp;:</entry>
+<entry> the PEM file name.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecX509DataDup">xmlSecX509DataDup ()</title>
+<programlisting><link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> xmlSecX509DataDup (<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> x509Data);</programlisting>
+<para>
+Duplicates the <parameter>x509Data</parameter> structure.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>x509Data</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecX509Data">xmlSecX509Data</link> structure.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly created <link linkend="xmlSecX509Data">xmlSecX509Data</link> structure
+or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecX509DataCreateKey">xmlSecX509DataCreateKey ()</title>
+<programlisting><link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> xmlSecX509DataCreateKey (<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> x509Data);</programlisting>
+<para>
+Creates the key from <parameter>x509Data</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>x509Data</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecX509Data">xmlSecX509Data</link> structure.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly allocated key or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecX509DataDebugDump">xmlSecX509DataDebugDump ()</title>
+<programlisting>void xmlSecX509DataDebugDump (<link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> x509Data,
+ <link linkend="FILE-CAPS">FILE</link> *output);</programlisting>
+<para>
+Prints the information about <parameter>x509Data</parameter> to <parameter>output</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>x509Data</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecX509Data">xmlSecX509Data</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>output</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="FILE-CAPS">FILE</link> structure.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecX509StoreCreate">xmlSecX509StoreCreate ()</title>
+<programlisting><link linkend="xmlSecX509StorePtr">xmlSecX509StorePtr</link> xmlSecX509StoreCreate (void);</programlisting>
+<para>
+Creates new x509 store.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly allocated <link linkend="xmlSecX509Store">xmlSecX509Store</link> structure.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecX509StoreDestroy">xmlSecX509StoreDestroy ()</title>
+<programlisting>void xmlSecX509StoreDestroy (<link linkend="xmlSecX509StorePtr">xmlSecX509StorePtr</link> store);</programlisting>
+<para>
+Destroys the <link linkend="xmlSecX509Store">xmlSecX509Store</link> structure.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>store</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecX509Store">xmlSecX509Store</link> structure.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecX509StoreFind">xmlSecX509StoreFind ()</title>
+<programlisting><link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> xmlSecX509StoreFind (<link linkend="xmlSecX509StorePtr">xmlSecX509StorePtr</link> store,
+ <link linkend="xmlChar">xmlChar</link> *subjectName,
+ <link linkend="xmlChar">xmlChar</link> *issuerName,
+ <link linkend="xmlChar">xmlChar</link> *issuerSerial,
+ <link linkend="xmlChar">xmlChar</link> *ski,
+ <link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> x509Data);</programlisting>
+<para>
+Searches for matching certificate in the keys manager.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>store</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecX509Store">xmlSecX509Store</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>subjectName</parameter>&nbsp;:</entry>
+<entry> the subject name string.
+</entry></row>
+<row><entry align="right"><parameter>issuerName</parameter>&nbsp;:</entry>
+<entry> the issuer name string.
+</entry></row>
+<row><entry align="right"><parameter>issuerSerial</parameter>&nbsp;:</entry>
+<entry> the issuer serial.
+</entry></row>
+<row><entry align="right"><parameter>ski</parameter>&nbsp;:</entry>
+<entry> the SKI string.
+</entry></row>
+<row><entry align="right"><parameter>x509Data</parameter>&nbsp;:</entry>
+<entry> the current X509 certs data (may be NULL).
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to certificate that matches given criteria or NULL
+if an error occurs or certificate not found.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecX509StoreVerify">xmlSecX509StoreVerify ()</title>
+<programlisting>int xmlSecX509StoreVerify (<link linkend="xmlSecX509StorePtr">xmlSecX509StorePtr</link> store,
+ <link linkend="xmlSecX509DataPtr">xmlSecX509DataPtr</link> x509Data);</programlisting>
+<para>
+Verifies the cert(s) from <parameter>x509Data</parameter> against <parameter>store</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>store</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecX509Store">xmlSecX509Store</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>x509Data</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecX509Data">xmlSecX509Data</link> structure.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>1 if verification succeeded, 0 if not and a negative
+value if a processing error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecX509StoreLoadPemCert">xmlSecX509StoreLoadPemCert ()</title>
+<programlisting>int xmlSecX509StoreLoadPemCert (<link linkend="xmlSecX509StorePtr">xmlSecX509StorePtr</link> store,
+ const char *filename,
+ int trusted);</programlisting>
+<para>
+Reads cert from PEM <parameter>filename</parameter> and adds to the list of trusted or known
+untrusted certs in <parameter>store</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>store</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecX509Store">xmlSecX509Store</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>filename</parameter>&nbsp;:</entry>
+<entry> the PEM file.
+</entry></row>
+<row><entry align="right"><parameter>trusted</parameter>&nbsp;:</entry>
+<entry> the flag that indicates is the certificate in <parameter>filename</parameter>
+ trusted or not.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecX509StoreAddCertsDir">xmlSecX509StoreAddCertsDir ()</title>
+<programlisting>int xmlSecX509StoreAddCertsDir (<link linkend="xmlSecX509StorePtr">xmlSecX509StorePtr</link> store,
+ const char *path);</programlisting>
+<para>
+Adds all certs in the <parameter>path</parameter> to the list of trusted certs
+in <parameter>store</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>store</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecX509Store">xmlSecX509Store</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>path</parameter>&nbsp;:</entry>
+<entry> the path to the certs dir.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecPKCS12ReadKey">xmlSecPKCS12ReadKey ()</title>
+<programlisting><link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> xmlSecPKCS12ReadKey (const char *filename,
+ const char *pwd);</programlisting>
+<para>
+Reads the key from pkcs12 file <parameter>filename</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>filename</parameter>&nbsp;:</entry>
+<entry> the pkcs12 file name.
+</entry></row>
+<row><entry align="right"><parameter>pwd</parameter>&nbsp;:</entry>
+<entry> the password for the pkcs12 file.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly allocated key or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+
+</refsect1>
+
+
+
+
+</refentry>
diff --git a/docs/api-0.0.x/sgml/xmldsig.sgml b/docs/api-0.0.x/sgml/xmldsig.sgml
new file mode 100644
index 00000000..7034c0c7
--- /dev/null
+++ b/docs/api-0.0.x/sgml/xmldsig.sgml
@@ -0,0 +1,859 @@
+<refentry id="xmlsec-xmldsig">
+<refmeta>
+<refentrytitle>xmldsig.h</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>XMLSEC Library</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>xmldsig.h</refname><refpurpose>The <ulink url="http://www.w3.org/Signature/">XML Digital Signature</ulink>
+standard implementation.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><title>Synopsis</title>
+<synopsis>
+
+
+
+struct <link linkend="xmlSecDSigCtx">xmlSecDSigCtx</link>;
+<link linkend="xmlSecDSigCtxPtr">xmlSecDSigCtxPtr</link> <link linkend="xmlSecDSigCtxCreate">xmlSecDSigCtxCreate</link> (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> keysMngr);
+void <link linkend="xmlSecDSigCtxDestroy">xmlSecDSigCtxDestroy</link> (<link linkend="xmlSecDSigCtxPtr">xmlSecDSigCtxPtr</link> ctx);
+int <link linkend="xmlSecDSigValidate">xmlSecDSigValidate</link> (<link linkend="xmlSecDSigCtxPtr">xmlSecDSigCtxPtr</link> ctx,
+ void *context,
+ <link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> signNode,
+ <link linkend="xmlSecDSigResultPtr">xmlSecDSigResultPtr</link> *result);
+int <link linkend="xmlSecDSigGenerate">xmlSecDSigGenerate</link> (<link linkend="xmlSecDSigCtxPtr">xmlSecDSigCtxPtr</link> ctx,
+ void *context,
+ <link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> signNode,
+ <link linkend="xmlSecDSigResultPtr">xmlSecDSigResultPtr</link> *result);
+struct <link linkend="xmlSecDSigResult">xmlSecDSigResult</link>;
+struct <link linkend="xmlSecReferenceResult">xmlSecReferenceResult</link>;
+enum <link linkend="xmlSecReferenceType">xmlSecReferenceType</link>;
+<link linkend="xmlSecDSigResultPtr">xmlSecDSigResultPtr</link> <link linkend="xmlSecDSigResultCreate">xmlSecDSigResultCreate</link> (<link linkend="xmlSecDSigCtxPtr">xmlSecDSigCtxPtr</link> ctx,
+ void *context,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> signNode,
+ int sign);
+void <link linkend="xmlSecDSigResultDestroy">xmlSecDSigResultDestroy</link> (<link linkend="xmlSecDSigResultPtr">xmlSecDSigResultPtr</link> result);
+void <link linkend="xmlSecDSigResultDebugDump">xmlSecDSigResultDebugDump</link> (<link linkend="xmlSecDSigResultPtr">xmlSecDSigResultPtr</link> result,
+ <link linkend="FILE-CAPS">FILE</link> *output);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecSignatureCreate">xmlSecSignatureCreate</link> (const <link linkend="xmlChar">xmlChar</link> *id);
+void <link linkend="xmlSecSignatureDestroy">xmlSecSignatureDestroy</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> signNode);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecSignatureAddSignedInfo">xmlSecSignatureAddSignedInfo</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> signNode,
+ const <link linkend="xmlChar">xmlChar</link> *id);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecSignatureAddKeyInfo">xmlSecSignatureAddKeyInfo</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> signNode,
+ const <link linkend="xmlChar">xmlChar</link> *id);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecSignatureAddObject">xmlSecSignatureAddObject</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> signNode,
+ const <link linkend="xmlChar">xmlChar</link> *id,
+ const <link linkend="xmlChar">xmlChar</link> *mimeType,
+ const <link linkend="xmlChar">xmlChar</link> *encoding);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecSignedInfoAddC14NMethod">xmlSecSignedInfoAddC14NMethod</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> signedInfoNode,
+ <link linkend="xmlSecTransformId">xmlSecTransformId</link> c14nMethod);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecSignedInfoAddSignMethod">xmlSecSignedInfoAddSignMethod</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> signedInfoNode,
+ <link linkend="xmlSecTransformId">xmlSecTransformId</link> signMethod);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecSignedInfoAddReference">xmlSecSignedInfoAddReference</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> signedInfoNode,
+ const <link linkend="xmlChar">xmlChar</link> *id,
+ const <link linkend="xmlChar">xmlChar</link> *uri,
+ const <link linkend="xmlChar">xmlChar</link> *type);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecReferenceAddDigestMethod">xmlSecReferenceAddDigestMethod</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> refNode,
+ <link linkend="xmlSecTransformId">xmlSecTransformId</link> digestMethod);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecReferenceAddTransform">xmlSecReferenceAddTransform</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> refNode,
+ <link linkend="xmlSecTransformId">xmlSecTransformId</link> transform);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecObjectAddSignProperties">xmlSecObjectAddSignProperties</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> objectNode,
+ const <link linkend="xmlChar">xmlChar</link> *id,
+ const <link linkend="xmlChar">xmlChar</link> *target);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecObjectAddManifest">xmlSecObjectAddManifest</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> objectNode,
+ const <link linkend="xmlChar">xmlChar</link> *id);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecManifestAddReference">xmlSecManifestAddReference</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> manifestNode,
+ const <link linkend="xmlChar">xmlChar</link> *id,
+ const <link linkend="xmlChar">xmlChar</link> *uri,
+ const <link linkend="xmlChar">xmlChar</link> *type);
+</synopsis>
+</refsynopsisdiv>
+
+
+
+
+
+<refsect1>
+<title>Description</title>
+<para>
+</para>
+</refsect1>
+
+<refsect1>
+<title>Details</title>
+<refsect2>
+<title><anchor id="xmlSecDSigCtx">struct xmlSecDSigCtx</title>
+<programlisting>struct xmlSecDSigCtx {
+ xmlSecKeysMngrPtr keysMngr;
+ int processManifests;
+ int storeSignatures;
+ int storeReferences;
+ int storeManifests;
+ int fakeSignatures;
+ time_t certsVerificationTime;
+};
+</programlisting>
+<para>
+XML DSig context.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="struct">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row>
+<entry><link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> <structfield>keysMngr</structfield></entry>
+<entry> the keys manager <link linkend="xmlSecKeysMngr">xmlSecKeysMngr</link>.
+</entry>
+</row>
+<row>
+<entry>int <structfield>processManifests</structfield></entry>
+<entry> if 0 then &lt;dsig:Manifests&gt; nodes are not processed.
+</entry>
+</row>
+<row>
+<entry>int <structfield>storeSignatures</structfield></entry>
+<entry> store the signed content just (&lt;dsig:SignedInfo&gt; element)
+before applying signature.
+</entry>
+</row>
+<row>
+<entry>int <structfield>storeReferences</structfield></entry>
+<entry> store the result of processing &lt;dsig:Reference&gt; nodes in
+ &lt;dsig:SignedInfo&gt; nodes just before digesting.
+</entry>
+</row>
+<row>
+<entry>int <structfield>storeManifests</structfield></entry>
+<entry> store the result of processing &lt;dsig:Reference&gt; nodes in
+&lt;dsig:Manifest&gt; nodes just before digesting (ignored if <parameter>processManifest</parameter> is 0).
+</entry>
+</row>
+<row>
+<entry>int <structfield>fakeSignatures</structfield></entry>
+<entry> for performance testing only.
+</entry>
+</row>
+<row>
+<entry><link linkend="time-t">time_t</link> <structfield>certsVerificationTime</structfield></entry>
+<entry>
+
+</entry>
+</row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDSigCtxCreate">xmlSecDSigCtxCreate ()</title>
+<programlisting><link linkend="xmlSecDSigCtxPtr">xmlSecDSigCtxPtr</link> xmlSecDSigCtxCreate (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> keysMngr);</programlisting>
+<para>
+Creates new <link linkend="xmlSecDSigCtx">xmlSecDSigCtx</link> structure.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>keysMngr</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecKeysMngr">xmlSecKeysMngr</link> structure
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>pointer to newly allocated <link linkend="xmlSecDSigCtx">xmlSecDSigCtx</link> structure or NULL
+if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDSigCtxDestroy">xmlSecDSigCtxDestroy ()</title>
+<programlisting>void xmlSecDSigCtxDestroy (<link linkend="xmlSecDSigCtxPtr">xmlSecDSigCtxPtr</link> ctx);</programlisting>
+<para>
+Destroys <link linkend="xmlSecDSigCtx">xmlSecDSigCtx</link> structure <parameter>ctx</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>ctx</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecDSigCtx">xmlSecDSigCtx</link> structure.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDSigValidate">xmlSecDSigValidate ()</title>
+<programlisting>int xmlSecDSigValidate (<link linkend="xmlSecDSigCtxPtr">xmlSecDSigCtxPtr</link> ctx,
+ void *context,
+ <link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> signNode,
+ <link linkend="xmlSecDSigResultPtr">xmlSecDSigResultPtr</link> *result);</programlisting>
+<para>
+Validates the signature in <parameter>signNode</parameter> and stores the pointer to validation
+result structure <link linkend="xmlSecDSigResult">xmlSecDSigResult</link> in the <parameter>result</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>ctx</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecDSigCtx">xmlSecDSigCtx</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>context</parameter>&nbsp;:</entry>
+<entry> the pointer to application specific data that will be
+ passed to all callback functions.
+</entry></row>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the key to use (if NULL then the key specified in &lt;dsig:KeyInfo&gt;
+ will be used).
+</entry></row>
+<row><entry align="right"><parameter>signNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:Signature&gt; node that will be validated.
+</entry></row>
+<row><entry align="right"><parameter>result</parameter>&nbsp;:</entry>
+<entry> the pointer where to store validation results.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 if there were no processing errors during validation or a negative
+value otherwise. The return value equal to 0 DOES NOT mean that the signature
+is valid: check the <link linkend="result">result</link> member of <link linkend="xmlSecDSigResult">xmlSecDSigResult</link> structure instead.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDSigGenerate">xmlSecDSigGenerate ()</title>
+<programlisting>int xmlSecDSigGenerate (<link linkend="xmlSecDSigCtxPtr">xmlSecDSigCtxPtr</link> ctx,
+ void *context,
+ <link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> signNode,
+ <link linkend="xmlSecDSigResultPtr">xmlSecDSigResultPtr</link> *result);</programlisting>
+<para>
+Signs the data according to the template in <parameter>signNode</parameter> node.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>ctx</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecDSigCtx">xmlSecDSigCtx</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>context</parameter>&nbsp;:</entry>
+<entry> the pointer to application specific data that will be
+ passed to all callback functions.
+</entry></row>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the key to use (if NULL then the key specified in &lt;dsig:KeyInfo&gt;
+ will be used).
+</entry></row>
+<row><entry align="right"><parameter>signNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:Signature&gt; node template.
+</entry></row>
+<row><entry align="right"><parameter>result</parameter>&nbsp;:</entry>
+<entry> the pointer where to store signature results.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success and a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDSigResult">struct xmlSecDSigResult</title>
+<programlisting>struct xmlSecDSigResult {
+ xmlSecDSigCtxPtr ctx;
+ void *context;
+ xmlNodePtr self;
+ int sign;
+ xmlSecTransformStatus result;
+ xmlSecTransformId signMethod;
+ xmlSecKeyPtr key;
+ xmlSecReferenceResultPtr firstSignRef;
+ xmlSecReferenceResultPtr lastSignRef;
+ xmlSecReferenceResultPtr firstManifestRef;
+ xmlSecReferenceResultPtr lastManifestRef;
+ xmlBufferPtr buffer;
+};
+</programlisting>
+<para>
+XML DSig Result.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="struct">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row>
+<entry><link linkend="xmlSecDSigCtxPtr">xmlSecDSigCtxPtr</link> <structfield>ctx</structfield></entry>
+<entry> the DSig context <link linkend="xmlSecDSigCtx">xmlSecDSigCtx</link>.
+</entry>
+</row>
+<row>
+<entry>void *<structfield>context</structfield></entry>
+<entry> the pointer to application specific data.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlNodePtr">xmlNodePtr</link> <structfield>self</structfield></entry>
+<entry> the pointer to &lt;dsig:Signature&gt; node.
+</entry>
+</row>
+<row>
+<entry>int <structfield>sign</structfield></entry>
+<entry> the sign/verify flag.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecTransformStatus">xmlSecTransformStatus</link> <structfield>result</structfield></entry>
+<entry> the signature verification/generation status.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecTransformId">xmlSecTransformId</link> <structfield>signMethod</structfield></entry>
+<entry> the signature algorithm .
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> <structfield>key</structfield></entry>
+<entry> the pointer to signature key.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecReferenceResultPtr">xmlSecReferenceResultPtr</link> <structfield>firstSignRef</structfield></entry>
+<entry> the pointer to the first &lt;dsig:SignedInfo&gt; reference result.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecReferenceResultPtr">xmlSecReferenceResultPtr</link> <structfield>lastSignRef</structfield></entry>
+<entry> the pointer to the last &lt;dsig:SignedInfo&gt; reference result.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecReferenceResultPtr">xmlSecReferenceResultPtr</link> <structfield>firstManifestRef</structfield></entry>
+<entry> the pointer to the first &lt;dsig:Manifest&gt; reference result
+ (valid only if the <link linkend="processManifests">processManifests</link> flag in <parameter>ctx</parameter> is set to 1).
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecReferenceResultPtr">xmlSecReferenceResultPtr</link> <structfield>lastManifestRef</structfield></entry>
+<entry> the pointer to the last &lt;dsig:Manifest&gt; reference result
+ (valid only if the <link linkend="processManifests">processManifests</link> flag in <parameter>ctx</parameter> is set to 1).
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlBufferPtr">xmlBufferPtr</link> <structfield>buffer</structfield></entry>
+<entry> the pointer to the signed content - the canonicalization of
+ &lt;dsig:SignedInfo&gt; node (valid only if the <link linkend="storeSignatures">storeSignatures</link> flag
+ in <link linkend="ctx">ctx</link> structure is set to 1).
+</entry>
+</row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecReferenceResult">struct xmlSecReferenceResult</title>
+<programlisting>struct xmlSecReferenceResult {
+ xmlSecDSigCtxPtr ctx;
+ xmlNodePtr self;
+ xmlSecReferenceType refType;
+ xmlSecTransformStatus result;
+ xmlSecReferenceResultPtr next;
+ xmlSecReferenceResultPtr prev;
+ xmlChar *uri;
+ xmlChar *id;
+ xmlChar *type;
+ xmlSecTransformId digestMethod;
+ xmlBufferPtr buffer;
+};
+</programlisting>
+<para>
+The result of &lt;dsig:Reference&gt; processing.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="struct">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row>
+<entry><link linkend="xmlSecDSigCtxPtr">xmlSecDSigCtxPtr</link> <structfield>ctx</structfield></entry>
+<entry> the pointer to DSig context.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlNodePtr">xmlNodePtr</link> <structfield>self</structfield></entry>
+<entry> the pointer to &lt;dsig:Reference&gt; node.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecReferenceType">xmlSecReferenceType</link> <structfield>refType</structfield></entry>
+<entry> the &lt;dsig:Reference&gt; node location.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecTransformStatus">xmlSecTransformStatus</link> <structfield>result</structfield></entry>
+<entry> the verification/generation result.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecReferenceResultPtr">xmlSecReferenceResultPtr</link> <structfield>next</structfield></entry>
+<entry> the next reference result.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecReferenceResultPtr">xmlSecReferenceResultPtr</link> <structfield>prev</structfield></entry>
+<entry> the prev reference result.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlChar">xmlChar</link> *<structfield>uri</structfield></entry>
+<entry> the &lt;dsig:Reference&gt; node URI attribute.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlChar">xmlChar</link> *<structfield>id</structfield></entry>
+<entry> the &lt;dsig:Reference&gt; node Id attribute.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlChar">xmlChar</link> *<structfield>type</structfield></entry>
+<entry> the &lt;dsig:Reference&gt; node Type attribute.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecTransformId">xmlSecTransformId</link> <structfield>digestMethod</structfield></entry>
+<entry> the used digest algorithm id.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlBufferPtr">xmlBufferPtr</link> <structfield>buffer</structfield></entry>
+<entry> the pointer to digested content (valid only if
+ the <link linkend="storeReferences">storeReferences</link> or <link linkend="storeManifests">storeManifests</link> flags in <link linkend="xmlSecDSigCtx">xmlSecDSigCtx</link>).
+</entry>
+</row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecReferenceType">enum xmlSecReferenceType</title>
+<programlisting>typedef enum {
+ xmlSecSignedInfoReference,
+ xmlSecManifestReference
+} xmlSecReferenceType;
+</programlisting>
+<para>
+The possible &lt;dsig:Reference&gt; node locations:
+in the &lt;dsig:SignedInfo&gt; node or in the &lt;dsig:Manifest&gt; node.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="enum">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row>
+<entry><literal>xmlSecSignedInfoReference</literal></entry>
+<entry> reference in &lt;dsig:SignedInfo&gt; node.
+</entry>
+</row>
+<row>
+<entry><literal>xmlSecManifestReference</literal></entry>
+<entry> reference &lt;dsig:Manifest&gt; node.
+</entry>
+</row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDSigResultCreate">xmlSecDSigResultCreate ()</title>
+<programlisting><link linkend="xmlSecDSigResultPtr">xmlSecDSigResultPtr</link> xmlSecDSigResultCreate (<link linkend="xmlSecDSigCtxPtr">xmlSecDSigCtxPtr</link> ctx,
+ void *context,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> signNode,
+ int sign);</programlisting>
+<para>
+Creates new <link linkend="xmlSecDSigResult">xmlSecDSigResult</link> structure.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>ctx</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecDSigCtx">xmlSecDSigCtx</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>context</parameter>&nbsp;:</entry>
+<entry> the pointer to application specific data that will be
+ passed to all callback functions.
+</entry></row>
+<row><entry align="right"><parameter>signNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:Signature&gt; node that will be validated.
+</entry></row>
+<row><entry align="right"><parameter>sign</parameter>&nbsp;:</entry>
+<entry> the sign or verify flag.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>newly created <link linkend="xmlSecDSigResult">xmlSecDSigResult</link> structure or NULL
+if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDSigResultDestroy">xmlSecDSigResultDestroy ()</title>
+<programlisting>void xmlSecDSigResultDestroy (<link linkend="xmlSecDSigResultPtr">xmlSecDSigResultPtr</link> result);</programlisting>
+<para>
+Destroys the <link linkend="xmlSecDSigResult">xmlSecDSigResult</link> structure <parameter>result</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>result</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecDSigResult">xmlSecDSigResult</link> structure.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDSigResultDebugDump">xmlSecDSigResultDebugDump ()</title>
+<programlisting>void xmlSecDSigResultDebugDump (<link linkend="xmlSecDSigResultPtr">xmlSecDSigResultPtr</link> result,
+ <link linkend="FILE-CAPS">FILE</link> *output);</programlisting>
+<para>
+Prints the <link linkend="xmlSecDSigResult">xmlSecDSigResult</link> structure <parameter>result</parameter> to file <parameter>output</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>result</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecDSigResult">xmlSecDSigResult</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>output</parameter>&nbsp;:</entry>
+<entry> the pointer to destination FILE.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecSignatureCreate">xmlSecSignatureCreate ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecSignatureCreate (const <link linkend="xmlChar">xmlChar</link> *id);</programlisting>
+<para>
+Creates new &lt;dsig:Signature&gt; node with the mandatory &lt;dsig:SignatureValue&gt;
+child. The application is responsible for inserting the returned node
+in the XML document.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>id</parameter>&nbsp;:</entry>
+<entry> the node id (may be NULL).
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly created &lt;dsig:Signature&gt; node or NULL if an
+error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecSignatureDestroy">xmlSecSignatureDestroy ()</title>
+<programlisting>void xmlSecSignatureDestroy (<link linkend="xmlNodePtr">xmlNodePtr</link> signNode);</programlisting>
+<para>
+Destroys standalone &lt;dsig:Signature&gt; node. You MUST not call this function
+if the &lt;dsig:Signature&gt; node was inserted in the XML document.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>signNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:Signature&gt; node.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecSignatureAddSignedInfo">xmlSecSignatureAddSignedInfo ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecSignatureAddSignedInfo (<link linkend="xmlNodePtr">xmlNodePtr</link> signNode,
+ const <link linkend="xmlChar">xmlChar</link> *id);</programlisting>
+<para>
+Adds &lt;dsig:SignedInfo&gt; node to the &lt;dsig:Signature&gt; node <parameter>signNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>signNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:Signature&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>id</parameter>&nbsp;:</entry>
+<entry> the node id (may be NULL).
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly created &lt;dsig:SignedInfo&gt; node or NULL if
+an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecSignatureAddKeyInfo">xmlSecSignatureAddKeyInfo ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecSignatureAddKeyInfo (<link linkend="xmlNodePtr">xmlNodePtr</link> signNode,
+ const <link linkend="xmlChar">xmlChar</link> *id);</programlisting>
+<para>
+Adds &lt;dsig:KeyInfo&gt; node to the &lt;dsig:Signature&gt; node <parameter>signNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>signNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:Signature&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>id</parameter>&nbsp;:</entry>
+<entry> the node id (may be NULL).
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly created &lt;dsig:KeyInfo&gt; node or NULL if an
+error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecSignatureAddObject">xmlSecSignatureAddObject ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecSignatureAddObject (<link linkend="xmlNodePtr">xmlNodePtr</link> signNode,
+ const <link linkend="xmlChar">xmlChar</link> *id,
+ const <link linkend="xmlChar">xmlChar</link> *mimeType,
+ const <link linkend="xmlChar">xmlChar</link> *encoding);</programlisting>
+<para>
+Adds &lt;dsig:Object&gt; node to the &lt;dsig:Signature&gt; node <parameter>signNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>signNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:Signature&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>id</parameter>&nbsp;:</entry>
+<entry> the node id (may be NULL).
+</entry></row>
+<row><entry align="right"><parameter>mimeType</parameter>&nbsp;:</entry>
+<entry> the object mime type (may be NULL).
+</entry></row>
+<row><entry align="right"><parameter>encoding</parameter>&nbsp;:</entry>
+<entry> the object encoding (may be NULL).
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly created &lt;dsig:Object&gt; node or NULL
+if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecSignedInfoAddC14NMethod">xmlSecSignedInfoAddC14NMethod ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecSignedInfoAddC14NMethod (<link linkend="xmlNodePtr">xmlNodePtr</link> signedInfoNode,
+ <link linkend="xmlSecTransformId">xmlSecTransformId</link> c14nMethod);</programlisting>
+<para>
+Adds &lt;dsig:CanonicalizationMethod&gt; node with specified C14N algorithm
+<parameter>c14nMethod</parameter> to the &lt;dsig:SignedInfo&gt; node <parameter>signedInfoNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>signedInfoNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:SignedInfo&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>c14nMethod</parameter>&nbsp;:</entry>
+<entry> the c14n method id.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly created &lt;dsig:CanonicalizationMethod&gt; node or
+NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecSignedInfoAddSignMethod">xmlSecSignedInfoAddSignMethod ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecSignedInfoAddSignMethod (<link linkend="xmlNodePtr">xmlNodePtr</link> signedInfoNode,
+ <link linkend="xmlSecTransformId">xmlSecTransformId</link> signMethod);</programlisting>
+<para>
+Adds &lt;dsig:SignatureMethod&gt; node with given signature algorithm
+<parameter>signMethod</parameter> to the &lt;dsig:SignedInfo&gt; node <parameter>signedInfoNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>signedInfoNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:SignedInfo&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>signMethod</parameter>&nbsp;:</entry>
+<entry> the result method id.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly created &lt;dsig:SignatureMethod&gt; node or NULL
+if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecSignedInfoAddReference">xmlSecSignedInfoAddReference ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecSignedInfoAddReference (<link linkend="xmlNodePtr">xmlNodePtr</link> signedInfoNode,
+ const <link linkend="xmlChar">xmlChar</link> *id,
+ const <link linkend="xmlChar">xmlChar</link> *uri,
+ const <link linkend="xmlChar">xmlChar</link> *type);</programlisting>
+<para>
+Adds &lt;dsig:Reference&gt; node with given URI (<parameter>uri</parameter>), Id (<parameter>id</parameter>) and
+Type (<parameter>type</parameter>) attributes and the required child node &lt;dsig:DigestValue&gt;
+to the &lt;dsig:SignedInfo&gt; node <parameter>signedInfoNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>signedInfoNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:SignedInfo&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>id</parameter>&nbsp;:</entry>
+<entry> the node id (may be NULL).
+</entry></row>
+<row><entry align="right"><parameter>uri</parameter>&nbsp;:</entry>
+<entry> the reference node uri (may be NULL).
+</entry></row>
+<row><entry align="right"><parameter>type</parameter>&nbsp;:</entry>
+<entry> the reference node type (may be NULL).
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly created &lt;dsig:Reference&gt; node or NULL
+if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecReferenceAddDigestMethod">xmlSecReferenceAddDigestMethod ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecReferenceAddDigestMethod (<link linkend="xmlNodePtr">xmlNodePtr</link> refNode,
+ <link linkend="xmlSecTransformId">xmlSecTransformId</link> digestMethod);</programlisting>
+<para>
+Adds &lt;dsig:DigestMethod&gt; node with given digest algorithm
+(<parameter>digestMethod</parameter>) to the &lt;dsig:Reference&gt; node <parameter>refNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>refNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:Reference&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>digestMethod</parameter>&nbsp;:</entry>
+<entry> the digest method id.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly created &lt;dsig:DigestMethod&gt; node or NULL
+if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecReferenceAddTransform">xmlSecReferenceAddTransform ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecReferenceAddTransform (<link linkend="xmlNodePtr">xmlNodePtr</link> refNode,
+ <link linkend="xmlSecTransformId">xmlSecTransformId</link> transform);</programlisting>
+<para>
+Adds &lt;dsig:Transform&gt; node to the &lt;dsig:Reference&gt; node <parameter>refNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>refNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:Reference&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the transform method id.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly created &lt;dsig:Transform&gt; node or NULL if an
+error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecObjectAddSignProperties">xmlSecObjectAddSignProperties ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecObjectAddSignProperties (<link linkend="xmlNodePtr">xmlNodePtr</link> objectNode,
+ const <link linkend="xmlChar">xmlChar</link> *id,
+ const <link linkend="xmlChar">xmlChar</link> *target);</programlisting>
+<para>
+Adds &lt;dsig:SignatureProperties&gt; node to the &lt;dsig:Object&gt; node <parameter>objectNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>objectNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:Object&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>id</parameter>&nbsp;:</entry>
+<entry> the node id (may be NULL).
+</entry></row>
+<row><entry align="right"><parameter>target</parameter>&nbsp;:</entry>
+<entry> the Target (may be NULL).
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly created &lt;dsig:SignatureProperties&gt; node or NULL
+if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecObjectAddManifest">xmlSecObjectAddManifest ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecObjectAddManifest (<link linkend="xmlNodePtr">xmlNodePtr</link> objectNode,
+ const <link linkend="xmlChar">xmlChar</link> *id);</programlisting>
+<para>
+Adds &lt;dsig:Manifest&gt; node to the &lt;dsig:Object&gt; node <parameter>objectNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>objectNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:Object&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>id</parameter>&nbsp;:</entry>
+<entry> the node id (may be NULL).
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly created &lt;dsig:Manifest&gt; node or NULL
+if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecManifestAddReference">xmlSecManifestAddReference ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecManifestAddReference (<link linkend="xmlNodePtr">xmlNodePtr</link> manifestNode,
+ const <link linkend="xmlChar">xmlChar</link> *id,
+ const <link linkend="xmlChar">xmlChar</link> *uri,
+ const <link linkend="xmlChar">xmlChar</link> *type);</programlisting>
+<para>
+Adds &lt;dsig:Reference&gt; node with specified URI (<parameter>uri</parameter>), Id (<parameter>id</parameter>) and
+Type (<parameter>type</parameter>) attributes and the required child node &lt;dsig:DigestValue&gt;
+to the &lt;dsig:Manifest&gt; node <parameter>manifestNode</parameter>:.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>manifestNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;dsig:Manifest&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>id</parameter>&nbsp;:</entry>
+<entry> the node id (may be NULL).
+</entry></row>
+<row><entry align="right"><parameter>uri</parameter>&nbsp;:</entry>
+<entry> the reference node uri (may be NULL).
+</entry></row>
+<row><entry align="right"><parameter>type</parameter>&nbsp;:</entry>
+<entry> the reference node type (may be NULL).
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly created &lt;dsig:Reference&gt; node or NULL
+if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+
+</refsect1>
+
+
+
+
+</refentry>
diff --git a/docs/api-0.0.x/sgml/xmlenc.sgml b/docs/api-0.0.x/sgml/xmlenc.sgml
new file mode 100644
index 00000000..3b0b3343
--- /dev/null
+++ b/docs/api-0.0.x/sgml/xmlenc.sgml
@@ -0,0 +1,702 @@
+<refentry id="xmlsec-xmlenc">
+<refmeta>
+<refentrytitle>xmlenc.h</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>XMLSEC Library</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>xmlenc.h</refname><refpurpose>The <ulink url="http://www.w3.org/Encryption/">XML Encrypiton</ulink>
+standard implementation.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><title>Synopsis</title>
+<synopsis>
+
+
+
+struct <link linkend="xmlSecEncCtx">xmlSecEncCtx</link>;
+<link linkend="xmlSecEncCtxPtr">xmlSecEncCtxPtr</link> <link linkend="xmlSecEncCtxCreate">xmlSecEncCtxCreate</link> (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> keysMngr);
+void <link linkend="xmlSecEncCtxDestroy">xmlSecEncCtxDestroy</link> (<link linkend="xmlSecEncCtxPtr">xmlSecEncCtxPtr</link> ctx);
+int <link linkend="xmlSecEncryptMemory">xmlSecEncryptMemory</link> (<link linkend="xmlSecEncCtxPtr">xmlSecEncCtxPtr</link> ctx,
+ void *context,
+ <link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> encNode,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size,
+ <link linkend="xmlSecEncResultPtr">xmlSecEncResultPtr</link> *result);
+int <link linkend="xmlSecEncryptUri">xmlSecEncryptUri</link> (<link linkend="xmlSecEncCtxPtr">xmlSecEncCtxPtr</link> ctx,
+ void *context,
+ <link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> encNode,
+ const char *uri,
+ <link linkend="xmlSecEncResultPtr">xmlSecEncResultPtr</link> *result);
+int <link linkend="xmlSecEncryptXmlNode">xmlSecEncryptXmlNode</link> (<link linkend="xmlSecEncCtxPtr">xmlSecEncCtxPtr</link> ctx,
+ void *context,
+ <link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> encNode,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> src,
+ <link linkend="xmlSecEncResultPtr">xmlSecEncResultPtr</link> *result);
+int <link linkend="xmlSecDecrypt">xmlSecDecrypt</link> (<link linkend="xmlSecEncCtxPtr">xmlSecEncCtxPtr</link> ctx,
+ void *context,
+ <link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> encNode,
+ <link linkend="xmlSecEncResultPtr">xmlSecEncResultPtr</link> *result);
+struct <link linkend="xmlSecEncResult">xmlSecEncResult</link>;
+<link linkend="xmlSecEncResultPtr">xmlSecEncResultPtr</link> <link linkend="xmlSecEncResultCreate">xmlSecEncResultCreate</link> (<link linkend="xmlSecEncCtxPtr">xmlSecEncCtxPtr</link> ctx,
+ void *context,
+ int encrypt,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> node);
+void <link linkend="xmlSecEncResultDestroy">xmlSecEncResultDestroy</link> (<link linkend="xmlSecEncResultPtr">xmlSecEncResultPtr</link> result);
+void <link linkend="xmlSecEncResultDebugDump">xmlSecEncResultDebugDump</link> (<link linkend="xmlSecEncResultPtr">xmlSecEncResultPtr</link> result,
+ <link linkend="FILE-CAPS">FILE</link> *output);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecEncDataCreate">xmlSecEncDataCreate</link> (const <link linkend="xmlChar">xmlChar</link> *id,
+ const <link linkend="xmlChar">xmlChar</link> *type,
+ const <link linkend="xmlChar">xmlChar</link> *mimeType,
+ const <link linkend="xmlChar">xmlChar</link> *encoding);
+void <link linkend="xmlSecEncDataDestroy">xmlSecEncDataDestroy</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> encNode);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecEncDataAddEncMethod">xmlSecEncDataAddEncMethod</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> encNode,
+ <link linkend="xmlSecTransformId">xmlSecTransformId</link> encMethod);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecEncDataAddKeyInfo">xmlSecEncDataAddKeyInfo</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> encNode);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecEncDataAddEncProperties">xmlSecEncDataAddEncProperties</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> encNode,
+ const <link linkend="xmlChar">xmlChar</link> *id);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecEncDataAddEncProperty">xmlSecEncDataAddEncProperty</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> encNode,
+ const <link linkend="xmlChar">xmlChar</link> *id,
+ const <link linkend="xmlChar">xmlChar</link> *target);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecEncDataAddCipherValue">xmlSecEncDataAddCipherValue</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> encNode);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecEncDataAddCipherReference">xmlSecEncDataAddCipherReference</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> encNode,
+ const <link linkend="xmlChar">xmlChar</link> *uri);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecCipherReferenceAddTransform">xmlSecCipherReferenceAddTransform</link>
+ (<link linkend="xmlNodePtr">xmlNodePtr</link> encNode,
+ <link linkend="xmlSecTransformId">xmlSecTransformId</link> transform);
+</synopsis>
+</refsynopsisdiv>
+
+
+
+
+
+<refsect1>
+<title>Description</title>
+<para>
+
+</para>
+</refsect1>
+
+<refsect1>
+<title>Details</title>
+<refsect2>
+<title><anchor id="xmlSecEncCtx">struct xmlSecEncCtx</title>
+<programlisting>struct xmlSecEncCtx {
+ xmlSecKeysMngrPtr keysMngr;
+ xmlSecTransformId encryptionMethod;
+ int ignoreType;
+ time_t certsVerificationTime;
+};
+</programlisting>
+<para>
+XML Encrypiton context.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="struct">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row>
+<entry><link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> <structfield>keysMngr</structfield></entry>
+<entry> the pointer to keys manager <link linkend="xmlSecKeysMngr">xmlSecKeysMngr</link>.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecTransformId">xmlSecTransformId</link> <structfield>encryptionMethod</structfield></entry>
+<entry> the default encryption algorithm id.
+</entry>
+</row>
+<row>
+<entry>int <structfield>ignoreType</structfield></entry>
+<entry> the flag to ignore Type attribute in the &lt;enc:EncryptedData&gt;
+ node
+</entry>
+</row>
+<row>
+<entry><link linkend="time-t">time_t</link> <structfield>certsVerificationTime</structfield></entry>
+<entry>
+
+</entry>
+</row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEncCtxCreate">xmlSecEncCtxCreate ()</title>
+<programlisting><link linkend="xmlSecEncCtxPtr">xmlSecEncCtxPtr</link> xmlSecEncCtxCreate (<link linkend="xmlSecKeysMngrPtr">xmlSecKeysMngrPtr</link> keysMngr);</programlisting>
+<para>
+Creates new encryption context.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>keysMngr</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecKeysMngr">xmlSecKeysMngr</link> structure.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>newly allocated <link linkend="xmlSecEncCtx">xmlSecEncCtx</link> structure or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEncCtxDestroy">xmlSecEncCtxDestroy ()</title>
+<programlisting>void xmlSecEncCtxDestroy (<link linkend="xmlSecEncCtxPtr">xmlSecEncCtxPtr</link> ctx);</programlisting>
+<para>
+Destroys the <link linkend="xmlSecEncCtx">xmlSecEncCtx</link> structure.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>ctx</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecEncCtx">xmlSecEncCtx</link> structure.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEncryptMemory">xmlSecEncryptMemory ()</title>
+<programlisting>int xmlSecEncryptMemory (<link linkend="xmlSecEncCtxPtr">xmlSecEncCtxPtr</link> ctx,
+ void *context,
+ <link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> encNode,
+ unsigned char *buf,
+ <link linkend="size-t">size_t</link> size,
+ <link linkend="xmlSecEncResultPtr">xmlSecEncResultPtr</link> *result);</programlisting>
+<para>
+Encrypts binary data from the <parameter>buf</parameter> according to the template in the
+&lt;enc:EncryptionData&gt; node. After the encrytion the result XML is in
+the <parameter>encNode</parameter> node.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>ctx</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecEncCtx">xmlSecEncCtx</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>context</parameter>&nbsp;:</entry>
+<entry> the pointer to application specific data that will be
+ passed to all callback functions.
+</entry></row>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the key to use (if NULL then the key specified in &lt;dsig:KeyInfo&gt;
+ will be used).
+</entry></row>
+<row><entry align="right"><parameter>encNode</parameter>&nbsp;:</entry>
+<entry> the pointer to encryption template (&lt;enc:EncryptionData&gt; node).
+</entry></row>
+<row><entry align="right"><parameter>buf</parameter>&nbsp;:</entry>
+<entry> the pointer to data to encrypt.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the size of the data in <parameter>buf</parameter>.
+</entry></row>
+<row><entry align="right"><parameter>result</parameter>&nbsp;:</entry>
+<entry> the pointer where to store encryption results.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEncryptUri">xmlSecEncryptUri ()</title>
+<programlisting>int xmlSecEncryptUri (<link linkend="xmlSecEncCtxPtr">xmlSecEncCtxPtr</link> ctx,
+ void *context,
+ <link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> encNode,
+ const char *uri,
+ <link linkend="xmlSecEncResultPtr">xmlSecEncResultPtr</link> *result);</programlisting>
+<para>
+Encrypts binary data from the <parameter>uri</parameter> according to the template in the
+&lt;enc:EncryptionData&gt; node. After the encrytion the result XML is in
+the <parameter>encNode</parameter> node.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>ctx</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecEncCtx">xmlSecEncCtx</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>context</parameter>&nbsp;:</entry>
+<entry> the pointer to application specific data that will be
+ passed to all callback functions.
+</entry></row>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the key to use (if NULL then the key specified in &lt;dsig:KeyInfo&gt;
+ will be used).
+</entry></row>
+<row><entry align="right"><parameter>encNode</parameter>&nbsp;:</entry>
+<entry> the pointer to encryption template (&lt;enc:EncryptionData&gt; node).
+</entry></row>
+<row><entry align="right"><parameter>uri</parameter>&nbsp;:</entry>
+<entry> the URI to data to encrypt.
+</entry></row>
+<row><entry align="right"><parameter>result</parameter>&nbsp;:</entry>
+<entry> the pointer where to store encryption results.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEncryptXmlNode">xmlSecEncryptXmlNode ()</title>
+<programlisting>int xmlSecEncryptXmlNode (<link linkend="xmlSecEncCtxPtr">xmlSecEncCtxPtr</link> ctx,
+ void *context,
+ <link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> encNode,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> src,
+ <link linkend="xmlSecEncResultPtr">xmlSecEncResultPtr</link> *result);</programlisting>
+<para>
+Encrypts XML data from the <parameter>encNode</parameter> according to the template in the
+&lt;enc:EncryptionData&gt; node. After the encrytion the result XML is in
+the <parameter>src</parameter> node.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>ctx</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecEncCtx">xmlSecEncCtx</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>context</parameter>&nbsp;:</entry>
+<entry> the pointer to application specific data that will be
+ passed to all callback functions.
+</entry></row>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the key to use (if NULL then the key specified in &lt;dsig:KeyInfo&gt;
+ will be used).
+</entry></row>
+<row><entry align="right"><parameter>encNode</parameter>&nbsp;:</entry>
+<entry> the pointer to encryption template (&lt;enc:EncryptionData&gt; node).
+</entry></row>
+<row><entry align="right"><parameter>src</parameter>&nbsp;:</entry>
+<entry> the pointer to XML node to encrypt.
+</entry></row>
+<row><entry align="right"><parameter>result</parameter>&nbsp;:</entry>
+<entry> the pointer where to store encryption results.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecDecrypt">xmlSecDecrypt ()</title>
+<programlisting>int xmlSecDecrypt (<link linkend="xmlSecEncCtxPtr">xmlSecEncCtxPtr</link> ctx,
+ void *context,
+ <link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> key,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> encNode,
+ <link linkend="xmlSecEncResultPtr">xmlSecEncResultPtr</link> *result);</programlisting>
+<para>
+Decrypts data from the &lt;enc:EncryptionData&gt; node.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>ctx</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecEncCtx">xmlSecEncCtx</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>context</parameter>&nbsp;:</entry>
+<entry> the pointer to application specific data that will be
+ passed to all callback functions.
+</entry></row>
+<row><entry align="right"><parameter>key</parameter>&nbsp;:</entry>
+<entry> the key to use (if NULL then the key specified in &lt;dsig:KeyInfo&gt;
+ will be used).
+</entry></row>
+<row><entry align="right"><parameter>encNode</parameter>&nbsp;:</entry>
+<entry> the pointer to encryption template (&lt;enc:EncryptionData&gt; node).
+</entry></row>
+<row><entry align="right"><parameter>result</parameter>&nbsp;:</entry>
+<entry> the pointer where to store encryption results.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEncResult">struct xmlSecEncResult</title>
+<programlisting>struct xmlSecEncResult {
+ xmlSecEncCtxPtr ctx;
+ void *context;
+ xmlNodePtr self;
+ int encrypt;
+ xmlChar *id;
+ xmlChar *type;
+ xmlChar *mimeType;
+ xmlChar *encoding;
+ xmlSecTransformId encryptionMethod;
+ xmlSecKeyPtr key;
+ xmlBufferPtr buffer;
+ int replaced;
+};
+</programlisting>
+<para>
+The XML Encrypiton results.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="struct">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row>
+<entry><link linkend="xmlSecEncCtxPtr">xmlSecEncCtxPtr</link> <structfield>ctx</structfield></entry>
+<entry> the pointer to <link linkend="xmlSecEncCtx">xmlSecEncCtx</link> structure.
+</entry>
+</row>
+<row>
+<entry>void *<structfield>context</structfield></entry>
+<entry> the pointer to application specific data.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlNodePtr">xmlNodePtr</link> <structfield>self</structfield></entry>
+<entry> the pointer to &lt;enc:EncryptedData&gt; node.
+</entry>
+</row>
+<row>
+<entry>int <structfield>encrypt</structfield></entry>
+<entry> the encrypt/decrypt flag.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlChar">xmlChar</link> *<structfield>id</structfield></entry>
+<entry> the Id attribute of the &lt;enc:EncryptedData&gt; node.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlChar">xmlChar</link> *<structfield>type</structfield></entry>
+<entry> the Type attribute of the &lt;enc:EncryptedData&gt; node.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlChar">xmlChar</link> *<structfield>mimeType</structfield></entry>
+<entry> the MimeType attribute of the &lt;enc:EncryptedData&gt; node.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlChar">xmlChar</link> *<structfield>encoding</structfield></entry>
+<entry> the Encoding attribute of the &lt;enc:EncryptedData&gt; node.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecTransformId">xmlSecTransformId</link> <structfield>encryptionMethod</structfield></entry>
+<entry> the used encryption algorithm id.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlSecKeyPtr">xmlSecKeyPtr</link> <structfield>key</structfield></entry>
+<entry> the used encryption key.
+</entry>
+</row>
+<row>
+<entry><link linkend="xmlBufferPtr">xmlBufferPtr</link> <structfield>buffer</structfield></entry>
+<entry> the decrypted data.
+</entry>
+</row>
+<row>
+<entry>int <structfield>replaced</structfield></entry>
+<entry> if set then the decrypted data were put back into the original document.
+</entry>
+</row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEncResultCreate">xmlSecEncResultCreate ()</title>
+<programlisting><link linkend="xmlSecEncResultPtr">xmlSecEncResultPtr</link> xmlSecEncResultCreate (<link linkend="xmlSecEncCtxPtr">xmlSecEncCtxPtr</link> ctx,
+ void *context,
+ int encrypt,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> node);</programlisting>
+<para>
+Creates new <link linkend="xmlSecEncResult">xmlSecEncResult</link> structure.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>ctx</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecEncCtx">xmlSecEncCtx</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>context</parameter>&nbsp;:</entry>
+<entry> the pointer to application specific data that will be
+ passed to all callback functions.
+</entry></row>
+<row><entry align="right"><parameter>encrypt</parameter>&nbsp;:</entry>
+<entry> the encrypt/decrypt flag.
+</entry></row>
+<row><entry align="right"><parameter>node</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;enc:EncryptedData&gt; node.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>newly created <link linkend="xmlSecEncResult">xmlSecEncResult</link> structure or NULL
+if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEncResultDestroy">xmlSecEncResultDestroy ()</title>
+<programlisting>void xmlSecEncResultDestroy (<link linkend="xmlSecEncResultPtr">xmlSecEncResultPtr</link> result);</programlisting>
+<para>
+Destroys <link linkend="xmlSecEncResult">xmlSecEncResult</link> structure <parameter>result</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>result</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecEncResult">xmlSecEncResult</link> structure.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEncResultDebugDump">xmlSecEncResultDebugDump ()</title>
+<programlisting>void xmlSecEncResultDebugDump (<link linkend="xmlSecEncResultPtr">xmlSecEncResultPtr</link> result,
+ <link linkend="FILE-CAPS">FILE</link> *output);</programlisting>
+<para>
+Prints the <link linkend="xmlSecEncResult">xmlSecEncResult</link> structure <parameter>result</parameter> to file <parameter>output</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>result</parameter>&nbsp;:</entry>
+<entry> the pointer to <link linkend="xmlSecEncResult">xmlSecEncResult</link> structure.
+</entry></row>
+<row><entry align="right"><parameter>output</parameter>&nbsp;:</entry>
+<entry> the pointer to destination FILE.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEncDataCreate">xmlSecEncDataCreate ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecEncDataCreate (const <link linkend="xmlChar">xmlChar</link> *id,
+ const <link linkend="xmlChar">xmlChar</link> *type,
+ const <link linkend="xmlChar">xmlChar</link> *mimeType,
+ const <link linkend="xmlChar">xmlChar</link> *encoding);</programlisting>
+<para>
+Creates new &lt;enc:EncryptedData&gt; node for encryption template.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>id</parameter>&nbsp;:</entry>
+<entry> the Id attribute (optional).
+</entry></row>
+<row><entry align="right"><parameter>type</parameter>&nbsp;:</entry>
+<entry> the Type attribute (optional)
+</entry></row>
+<row><entry align="right"><parameter>mimeType</parameter>&nbsp;:</entry>
+<entry> the MimeType attribute (optional)
+</entry></row>
+<row><entry align="right"><parameter>encoding</parameter>&nbsp;:</entry>
+<entry> the Encoding attribute (optional)
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer newly created &lt;enc:EncryptedData&gt; node or NULL
+if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEncDataDestroy">xmlSecEncDataDestroy ()</title>
+<programlisting>void xmlSecEncDataDestroy (<link linkend="xmlNodePtr">xmlNodePtr</link> encNode);</programlisting>
+<para>
+Destroys the &lt;enc:EncryptedData&gt; node <parameter>encNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>encNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;enc:EncryptedData&gt; node.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEncDataAddEncMethod">xmlSecEncDataAddEncMethod ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecEncDataAddEncMethod (<link linkend="xmlNodePtr">xmlNodePtr</link> encNode,
+ <link linkend="xmlSecTransformId">xmlSecTransformId</link> encMethod);</programlisting>
+<para>
+Adds &lt;enc:EncryptionMethod&gt; node with specified encryption
+algorithm (<parameter>encMethodId</parameter>) to the &lt;enc:EncryptedData&gt; node <parameter>encNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>encNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;enc:EncryptedData&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>encMethod</parameter>&nbsp;:</entry>
+<entry> the encryption method id.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly created &lt;enc:EncryptionMethod&gt; node or
+NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEncDataAddKeyInfo">xmlSecEncDataAddKeyInfo ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecEncDataAddKeyInfo (<link linkend="xmlNodePtr">xmlNodePtr</link> encNode);</programlisting>
+<para>
+Adds &lt;dsig:KeyInfo&gt; to the &lt;enc:EncryptedData&gt; node <parameter>encNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>encNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;enc:EncryptedData&gt; node.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly created &lt;dsig:KeyInfo&gt; node or
+NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEncDataAddEncProperties">xmlSecEncDataAddEncProperties ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecEncDataAddEncProperties (<link linkend="xmlNodePtr">xmlNodePtr</link> encNode,
+ const <link linkend="xmlChar">xmlChar</link> *id);</programlisting>
+<para>
+Adds &lt;enc:EncryptionProperties&gt; node to the &lt;enc:EncryptedData&gt;
+node <parameter>encNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>encNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;enc:EncryptedData&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>id</parameter>&nbsp;:</entry>
+<entry> the Id attribute (optional).
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly created &lt;enc:EncryptionProperties&gt; node or
+NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEncDataAddEncProperty">xmlSecEncDataAddEncProperty ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecEncDataAddEncProperty (<link linkend="xmlNodePtr">xmlNodePtr</link> encNode,
+ const <link linkend="xmlChar">xmlChar</link> *id,
+ const <link linkend="xmlChar">xmlChar</link> *target);</programlisting>
+<para>
+Adds &lt;enc:EncryptionProperty&gt; node (and the parent
+&lt;enc:EncryptionProperties&gt; node if required) to the
+&lt;enc:EncryptedData&gt; node <parameter>encNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>encNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;enc:EncryptedData&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>id</parameter>&nbsp;:</entry>
+<entry> the Id attribute (optional).
+</entry></row>
+<row><entry align="right"><parameter>target</parameter>&nbsp;:</entry>
+<entry> the Target attribute (optional).
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly created &lt;enc:EncryptionProperty&gt; node or
+NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEncDataAddCipherValue">xmlSecEncDataAddCipherValue ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecEncDataAddCipherValue (<link linkend="xmlNodePtr">xmlNodePtr</link> encNode);</programlisting>
+<para>
+Adds &lt;enc:CipherValue&gt; to the &lt;enc:EncryptedData&gt; node <parameter>encNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>encNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;enc:EncryptedData&gt; node.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly created &lt;enc:CipherValue&gt; node or
+NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecEncDataAddCipherReference">xmlSecEncDataAddCipherReference ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecEncDataAddCipherReference (<link linkend="xmlNodePtr">xmlNodePtr</link> encNode,
+ const <link linkend="xmlChar">xmlChar</link> *uri);</programlisting>
+<para>
+Adds &lt;enc:CipherReference&gt; node with specified URI attribute <parameter>uri</parameter>
+to the &lt;enc:EncryptedData&gt; node <parameter>encNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>encNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;enc:EncryptedData&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>uri</parameter>&nbsp;:</entry>
+<entry> the URI attribute (may be NULL).
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly created &lt;enc:CipherReference&gt; node or
+NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecCipherReferenceAddTransform">xmlSecCipherReferenceAddTransform ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecCipherReferenceAddTransform
+ (<link linkend="xmlNodePtr">xmlNodePtr</link> encNode,
+ <link linkend="xmlSecTransformId">xmlSecTransformId</link> transform);</programlisting>
+<para>
+Adds &lt;dsig:Transform&gt; node (and the parent &lt;dsig:Transforms&gt; node)
+with specified transform methods <parameter>transform</parameter> to the &lt;enc:CipherReference&gt;
+child node of the &lt;enc:EncryptedData&gt; node <parameter>encNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>encNode</parameter>&nbsp;:</entry>
+<entry> the pointer to &lt;enc:EncryptedData&gt; node.
+</entry></row>
+<row><entry align="right"><parameter>transform</parameter>&nbsp;:</entry>
+<entry> the transform id.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to newly created &lt;dsig:Transform&gt; node or
+NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+
+</refsect1>
+
+
+
+
+</refentry>
diff --git a/docs/api-0.0.x/sgml/xmlsec.sgml b/docs/api-0.0.x/sgml/xmlsec.sgml
new file mode 100644
index 00000000..20dddcde
--- /dev/null
+++ b/docs/api-0.0.x/sgml/xmlsec.sgml
@@ -0,0 +1,58 @@
+<refentry id="xmlsec-xmlsec">
+<refmeta>
+<refentrytitle>xmlsec.h</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>XMLSEC Library</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>xmlsec.h</refname><refpurpose>The library initialization/cleanup functions.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><title>Synopsis</title>
+<synopsis>
+
+
+
+void <link linkend="xmlSecInit">xmlSecInit</link> (void);
+void <link linkend="xmlSecShutdown">xmlSecShutdown</link> (void);
+</synopsis>
+</refsynopsisdiv>
+
+
+
+
+
+<refsect1>
+<title>Description</title>
+<para>
+
+</para>
+</refsect1>
+
+<refsect1>
+<title>Details</title>
+<refsect2>
+<title><anchor id="xmlSecInit">xmlSecInit ()</title>
+<programlisting>void xmlSecInit (void);</programlisting>
+<para>
+Initializes XML Security Library. The depended libraries
+(LibXML, LibXSLT and OpenSSL) must be initialized before.</para>
+<para>
+
+</para></refsect2>
+<refsect2>
+<title><anchor id="xmlSecShutdown">xmlSecShutdown ()</title>
+<programlisting>void xmlSecShutdown (void);</programlisting>
+<para>
+Clean ups the XML Security Library.</para>
+<para>
+
+</para></refsect2>
+
+</refsect1>
+
+
+
+
+</refentry>
diff --git a/docs/api-0.0.x/sgml/xmltree.sgml b/docs/api-0.0.x/sgml/xmltree.sgml
new file mode 100644
index 00000000..4c33bdd2
--- /dev/null
+++ b/docs/api-0.0.x/sgml/xmltree.sgml
@@ -0,0 +1,500 @@
+<refentry id="xmlsec-xmltree">
+<refmeta>
+<refentrytitle>xmltree.h</refentrytitle>
+<manvolnum>3</manvolnum>
+<refmiscinfo>XMLSEC Library</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+<refname>xmltree.h</refname><refpurpose>The XML tree helper functions.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv><title>Synopsis</title>
+<synopsis>
+
+
+
+<link linkend="xmlDocPtr">xmlDocPtr</link> <link linkend="xmlSecParseFile">xmlSecParseFile</link> (const char *filename);
+<link linkend="xmlDocPtr">xmlDocPtr</link> <link linkend="xmlSecParseMemory">xmlSecParseMemory</link> (unsigned char *buffer,
+ <link linkend="size-t">size_t</link> size,
+ int recovery);
+<link linkend="xmlDocPtr">xmlDocPtr</link> <link linkend="xmlSecParseMemoryExt">xmlSecParseMemoryExt</link> (unsigned char *prefix,
+ <link linkend="size-t">size_t</link> prefixSize,
+ unsigned char *buffer,
+ <link linkend="size-t">size_t</link> bufferSize,
+ unsigned char *postfix,
+ <link linkend="size-t">size_t</link> postfixSize);
+int <link linkend="xmlSecCheckNodeName">xmlSecCheckNodeName</link> (const <link linkend="xmlNodePtr">xmlNodePtr</link> cur,
+ const <link linkend="xmlChar">xmlChar</link> *name,
+ const <link linkend="xmlChar">xmlChar</link> *ns);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecGetNextElementNode">xmlSecGetNextElementNode</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> cur);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecFindChild">xmlSecFindChild</link> (const <link linkend="xmlNodePtr">xmlNodePtr</link> parent,
+ const <link linkend="xmlChar">xmlChar</link> *name,
+ const <link linkend="xmlChar">xmlChar</link> *ns);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecFindParent">xmlSecFindParent</link> (const <link linkend="xmlNodePtr">xmlNodePtr</link> cur,
+ const <link linkend="xmlChar">xmlChar</link> *name,
+ const <link linkend="xmlChar">xmlChar</link> *ns);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecFindNode">xmlSecFindNode</link> (const <link linkend="xmlNodePtr">xmlNodePtr</link> parent,
+ const <link linkend="xmlChar">xmlChar</link> *name,
+ const <link linkend="xmlChar">xmlChar</link> *ns);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecAddChild">xmlSecAddChild</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> parent,
+ const <link linkend="xmlChar">xmlChar</link> *name,
+ const <link linkend="xmlChar">xmlChar</link> *ns);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecAddNextSibling">xmlSecAddNextSibling</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
+ const <link linkend="xmlChar">xmlChar</link> *name,
+ const <link linkend="xmlChar">xmlChar</link> *ns);
+<link linkend="xmlNodePtr">xmlNodePtr</link> <link linkend="xmlSecAddPrevSibling">xmlSecAddPrevSibling</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
+ const <link linkend="xmlChar">xmlChar</link> *name,
+ const <link linkend="xmlChar">xmlChar</link> *ns);
+int <link linkend="xmlSecReplaceNode">xmlSecReplaceNode</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> newNode);
+int <link linkend="xmlSecReplaceContent">xmlSecReplaceContent</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> newNode);
+int <link linkend="xmlSecReplaceNodeBuffer">xmlSecReplaceNodeBuffer</link> (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
+ unsigned char *buffer,
+ <link linkend="size-t">size_t</link> size);
+void <link linkend="xmlSecAddIDs">xmlSecAddIDs</link> (<link linkend="xmlDocPtr">xmlDocPtr</link> doc,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> cur,
+ const <link linkend="xmlChar">xmlChar</link> **ids);
+#define <link linkend="xmlSecGetHex">xmlSecGetHex</link> (c)
+#define <link linkend="xmlSecIsHex">xmlSecIsHex</link> (c)
+</synopsis>
+</refsynopsisdiv>
+
+
+
+
+
+<refsect1>
+<title>Description</title>
+<para>
+
+</para>
+</refsect1>
+
+<refsect1>
+<title>Details</title>
+<refsect2>
+<title><anchor id="xmlSecParseFile">xmlSecParseFile ()</title>
+<programlisting><link linkend="xmlDocPtr">xmlDocPtr</link> xmlSecParseFile (const char *filename);</programlisting>
+<para>
+Loads XML Doc from file <parameter>filename</parameter>. We need a special version because of
+c14n issue. The code is copied from <link linkend="xmlSAXParseFileWithData">xmlSAXParseFileWithData</link>() function.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>filename</parameter>&nbsp;:</entry>
+<entry> the filename.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>pointer to the loaded XML document or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecParseMemory">xmlSecParseMemory ()</title>
+<programlisting><link linkend="xmlDocPtr">xmlDocPtr</link> xmlSecParseMemory (unsigned char *buffer,
+ <link linkend="size-t">size_t</link> size,
+ int recovery);</programlisting>
+<para>
+Loads XML Doc from memory. We need a special version because of
+c14n issue. The code is copied from <link linkend="xmlSAXParseMemory">xmlSAXParseMemory</link>() function.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>buffer</parameter>&nbsp;:</entry>
+<entry> the input buffer.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the input buffer size.
+</entry></row>
+<row><entry align="right"><parameter>recovery</parameter>&nbsp;:</entry>
+<entry> the flag.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>pointer to the loaded XML document or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecParseMemoryExt">xmlSecParseMemoryExt ()</title>
+<programlisting><link linkend="xmlDocPtr">xmlDocPtr</link> xmlSecParseMemoryExt (unsigned char *prefix,
+ <link linkend="size-t">size_t</link> prefixSize,
+ unsigned char *buffer,
+ <link linkend="size-t">size_t</link> bufferSize,
+ unsigned char *postfix,
+ <link linkend="size-t">size_t</link> postfixSize);</programlisting>
+<para>
+Loads XML Doc from 3 chunks of memory: <parameter>prefix</parameter>, <parameter>buffer</parameter> and <parameter>postfix</parameter>. '</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>prefix</parameter>&nbsp;:</entry>
+<entry> the first part of the input.
+</entry></row>
+<row><entry align="right"><parameter>prefixSize</parameter>&nbsp;:</entry>
+<entry> the size of the first part of the input.
+</entry></row>
+<row><entry align="right"><parameter>buffer</parameter>&nbsp;:</entry>
+<entry> the second part of the input.
+</entry></row>
+<row><entry align="right"><parameter>bufferSize</parameter>&nbsp;:</entry>
+<entry> the size of the second part of the input.
+</entry></row>
+<row><entry align="right"><parameter>postfix</parameter>&nbsp;:</entry>
+<entry> the third part of the input.
+</entry></row>
+<row><entry align="right"><parameter>postfixSize</parameter>&nbsp;:</entry>
+<entry> the size of the third part of the input.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>pointer to the loaded XML document or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecCheckNodeName">xmlSecCheckNodeName ()</title>
+<programlisting>int xmlSecCheckNodeName (const <link linkend="xmlNodePtr">xmlNodePtr</link> cur,
+ const <link linkend="xmlChar">xmlChar</link> *name,
+ const <link linkend="xmlChar">xmlChar</link> *ns);</programlisting>
+<para>
+Checks that the node has a given name and a given namespace href.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>cur</parameter>&nbsp;:</entry>
+<entry> the pointer to an XML node.
+</entry></row>
+<row><entry align="right"><parameter>name</parameter>&nbsp;:</entry>
+<entry> the name,
+</entry></row>
+<row><entry align="right"><parameter>ns</parameter>&nbsp;:</entry>
+<entry> the namespace href.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>1 if the node matches or 0 otherwise.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecGetNextElementNode">xmlSecGetNextElementNode ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecGetNextElementNode (<link linkend="xmlNodePtr">xmlNodePtr</link> cur);</programlisting>
+<para>
+Seraches for the next element node.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>cur</parameter>&nbsp;:</entry>
+<entry> the pointer to an XML node.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to next element node or NULL if it is not found.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecFindChild">xmlSecFindChild ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecFindChild (const <link linkend="xmlNodePtr">xmlNodePtr</link> parent,
+ const <link linkend="xmlChar">xmlChar</link> *name,
+ const <link linkend="xmlChar">xmlChar</link> *ns);</programlisting>
+<para>
+Searches a direct child of the <parameter>parent</parameter> node having given name and
+namespace href.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>parent</parameter>&nbsp;:</entry>
+<entry> the pointer to XML node.
+</entry></row>
+<row><entry align="right"><parameter>name</parameter>&nbsp;:</entry>
+<entry> the name.
+</entry></row>
+<row><entry align="right"><parameter>ns</parameter>&nbsp;:</entry>
+<entry> the namespace href (may be NULL).
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to the found node or NULL if an error occurs or
+node is not found.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecFindParent">xmlSecFindParent ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecFindParent (const <link linkend="xmlNodePtr">xmlNodePtr</link> cur,
+ const <link linkend="xmlChar">xmlChar</link> *name,
+ const <link linkend="xmlChar">xmlChar</link> *ns);</programlisting>
+<para>
+Searches the ancestors axis of the <parameter>cur</parameter> node for a node having given name
+and namespace href.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>cur</parameter>&nbsp;:</entry>
+<entry> the pointer to an XML node.
+</entry></row>
+<row><entry align="right"><parameter>name</parameter>&nbsp;:</entry>
+<entry> the name.
+</entry></row>
+<row><entry align="right"><parameter>ns</parameter>&nbsp;:</entry>
+<entry> the namespace href (may be NULL).
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to the found node or NULL if an error occurs or
+node is not found.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecFindNode">xmlSecFindNode ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecFindNode (const <link linkend="xmlNodePtr">xmlNodePtr</link> parent,
+ const <link linkend="xmlChar">xmlChar</link> *name,
+ const <link linkend="xmlChar">xmlChar</link> *ns);</programlisting>
+<para>
+Searches all children of the <parameter>parent</parameter> node having given name and
+namespace href.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>parent</parameter>&nbsp;:</entry>
+<entry> the pointer to XML node.
+</entry></row>
+<row><entry align="right"><parameter>name</parameter>&nbsp;:</entry>
+<entry> the name.
+</entry></row>
+<row><entry align="right"><parameter>ns</parameter>&nbsp;:</entry>
+<entry> the namespace href (may be NULL).
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to the found node or NULL if an error occurs or
+node is not found.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecAddChild">xmlSecAddChild ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecAddChild (<link linkend="xmlNodePtr">xmlNodePtr</link> parent,
+ const <link linkend="xmlChar">xmlChar</link> *name,
+ const <link linkend="xmlChar">xmlChar</link> *ns);</programlisting>
+<para>
+Adds a child to the node <parameter>parent</parameter> with given <parameter>name</parameter> and namespace <parameter>ns</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>parent</parameter>&nbsp;:</entry>
+<entry> the pointer to an XML node.
+</entry></row>
+<row><entry align="right"><parameter>name</parameter>&nbsp;:</entry>
+<entry> the new node name.
+</entry></row>
+<row><entry align="right"><parameter>ns</parameter>&nbsp;:</entry>
+<entry> the new node namespace.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>pointer to the new node or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecAddNextSibling">xmlSecAddNextSibling ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecAddNextSibling (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
+ const <link linkend="xmlChar">xmlChar</link> *name,
+ const <link linkend="xmlChar">xmlChar</link> *ns);</programlisting>
+<para>
+Adds next sibling to the node <parameter>node</parameter> with given <parameter>name</parameter> and namespace <parameter>ns</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>node</parameter>&nbsp;:</entry>
+<entry> the pointer to an XML node.
+</entry></row>
+<row><entry align="right"><parameter>name</parameter>&nbsp;:</entry>
+<entry> the new node name.
+</entry></row>
+<row><entry align="right"><parameter>ns</parameter>&nbsp;:</entry>
+<entry> the new node namespace.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>pointer to the new node or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecAddPrevSibling">xmlSecAddPrevSibling ()</title>
+<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link> xmlSecAddPrevSibling (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
+ const <link linkend="xmlChar">xmlChar</link> *name,
+ const <link linkend="xmlChar">xmlChar</link> *ns);</programlisting>
+<para>
+Adds prev sibling to the node <parameter>node</parameter> with given <parameter>name</parameter> and namespace <parameter>ns</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>node</parameter>&nbsp;:</entry>
+<entry> the pointer to an XML node.
+</entry></row>
+<row><entry align="right"><parameter>name</parameter>&nbsp;:</entry>
+<entry> the new node name.
+</entry></row>
+<row><entry align="right"><parameter>ns</parameter>&nbsp;:</entry>
+<entry> the new node namespace.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>pointer to the new node or NULL if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecReplaceNode">xmlSecReplaceNode ()</title>
+<programlisting>int xmlSecReplaceNode (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> newNode);</programlisting>
+<para>
+Swaps the <parameter>node</parameter> and <parameter>newNode</parameter> in the XML tree.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>node</parameter>&nbsp;:</entry>
+<entry> the current node.
+</entry></row>
+<row><entry align="right"><parameter>newNode</parameter>&nbsp;:</entry>
+<entry> the new node.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecReplaceContent">xmlSecReplaceContent ()</title>
+<programlisting>int xmlSecReplaceContent (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> newNode);</programlisting>
+<para>
+Swaps the content of <parameter>node</parameter> and <parameter>newNode</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>node</parameter>&nbsp;:</entry>
+<entry> the current node.
+</entry></row>
+<row><entry align="right"><parameter>newNode</parameter>&nbsp;:</entry>
+<entry> the new node.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecReplaceNodeBuffer">xmlSecReplaceNodeBuffer ()</title>
+<programlisting>int xmlSecReplaceNodeBuffer (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
+ unsigned char *buffer,
+ <link linkend="size-t">size_t</link> size);</programlisting>
+<para>
+Swaps the <parameter>node</parameter> and the parsed XML data from the <parameter>buffer</parameter> in the XML tree.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>node</parameter>&nbsp;:</entry>
+<entry> the current node.
+</entry></row>
+<row><entry align="right"><parameter>buffer</parameter>&nbsp;:</entry>
+<entry> the XML data.
+</entry></row>
+<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
+<entry> the XML data size.
+</entry></row>
+<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value if an error occurs.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecAddIDs">xmlSecAddIDs ()</title>
+<programlisting>void xmlSecAddIDs (<link linkend="xmlDocPtr">xmlDocPtr</link> doc,
+ <link linkend="xmlNodePtr">xmlNodePtr</link> cur,
+ const <link linkend="xmlChar">xmlChar</link> **ids);</programlisting>
+<para>
+Walks thru all children of the <parameter>cur</parameter> node and adds all attributes
+from the <parameter>ids</parameter> list to the <parameter>doc</parameter> document IDs attributes hash.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>doc</parameter>&nbsp;:</entry>
+<entry> the pointer to an XML document.
+</entry></row>
+<row><entry align="right"><parameter>cur</parameter>&nbsp;:</entry>
+<entry> the pointer to an XML node.
+</entry></row>
+<row><entry align="right"><parameter>ids</parameter>&nbsp;:</entry>
+<entry> the pointer to a NULL terminated list of ID attributes.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecGetHex">xmlSecGetHex()</title>
+<programlisting>#define xmlSecGetHex(c)</programlisting>
+<para>
+Macro. Returns the hex value of the <parameter>c</parameter>.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>c</parameter>&nbsp;:</entry>
+<entry> the character,
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+<refsect2>
+<title><anchor id="xmlSecIsHex">xmlSecIsHex()</title>
+<programlisting>#define xmlSecIsHex(c)</programlisting>
+<para>
+Macro. Returns 1 if <parameter>c</parameter> is a hex digit or 0 other wise.</para>
+<para>
+
+</para><informaltable pgwide="1" frame="none" role="params">
+<tgroup cols="2">
+<colspec colwidth="2*">
+<colspec colwidth="8*">
+<tbody>
+<row><entry align="right"><parameter>c</parameter>&nbsp;:</entry>
+<entry> the character.
+</entry></row>
+</tbody></tgroup></informaltable></refsect2>
+
+</refsect1>
+
+
+
+
+</refentry>
diff --git a/docs/api-0.0.x/tmpl.stamp b/docs/api-0.0.x/tmpl.stamp
new file mode 100644
index 00000000..e0cb1394
--- /dev/null
+++ b/docs/api-0.0.x/tmpl.stamp
@@ -0,0 +1 @@
+timestamp \ No newline at end of file
diff --git a/docs/api-0.0.x/tmpl/base64.sgml b/docs/api-0.0.x/tmpl/base64.sgml
new file mode 100644
index 00000000..09f67551
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/base64.sgml
@@ -0,0 +1,80 @@
+<!-- ##### SECTION Title ##### -->
+base64.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The BASE64 encode/decode functions.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### FUNCTION xmlSecBase64CtxCreate ##### -->
+<para>
+
+</para>
+
+@encode:
+@columns:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecBase64CtxDestroy ##### -->
+<para>
+
+</para>
+
+@ctx:
+
+
+<!-- ##### FUNCTION xmlSecBase64CtxUpdate ##### -->
+<para>
+
+</para>
+
+@ctx:
+@in:
+@inLen:
+@out:
+@outLen:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecBase64CtxFinal ##### -->
+<para>
+
+</para>
+
+@ctx:
+@out:
+@outLen:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecBase64Encode ##### -->
+<para>
+
+</para>
+
+@buf:
+@len:
+@columns:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecBase64Decode ##### -->
+<para>
+
+</para>
+
+@str:
+@buf:
+@len:
+@Returns:
+
+
diff --git a/docs/api-0.0.x/tmpl/bn.sgml b/docs/api-0.0.x/tmpl/bn.sgml
new file mode 100644
index 00000000..cc288e4b
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/bn.sgml
@@ -0,0 +1,58 @@
+<!-- ##### SECTION Title ##### -->
+bn.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The big numbers helper functions.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### FUNCTION xmlSecCryptoBinary2BN ##### -->
+<para>
+
+</para>
+
+@str:
+@a:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecBN2CryptoBinary ##### -->
+<para>
+
+</para>
+
+@a:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecNodeGetBNValue ##### -->
+<para>
+
+</para>
+
+@cur:
+@a:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecNodeSetBNValue ##### -->
+<para>
+
+</para>
+
+@cur:
+@a:
+@addLineBreaks:
+@Returns:
+<!-- # Unused Parameters # -->
+@addLineBreak:
+
+
diff --git a/docs/api-0.0.x/tmpl/buffered.sgml b/docs/api-0.0.x/tmpl/buffered.sgml
new file mode 100644
index 00000000..ab173e73
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/buffered.sgml
@@ -0,0 +1,96 @@
+<!-- ##### SECTION Title ##### -->
+buffered.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The buffered transform.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT xmlSecBufferedTransform ##### -->
+<para>
+
+</para>
+
+@id:
+@status:
+@dontDestroy:
+@data:
+@encode:
+@next:
+@prev:
+@binData:
+@buffer:
+
+<!-- ##### TYPEDEF xmlSecBufferedTransformId ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### USER_FUNCTION xmlSecBufferedProcessMethod ##### -->
+<para>
+
+</para>
+
+@transform:
+@buffer:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecBufferedTransformRead ##### -->
+<para>
+
+</para>
+
+@transform:
+@buf:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecBufferedTransformWrite ##### -->
+<para>
+
+</para>
+
+@transform:
+@buf:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecBufferedTransformFlush ##### -->
+<para>
+
+</para>
+
+@transform:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecBufferedDestroy ##### -->
+<para>
+
+</para>
+
+@buffered:
+
+
+<!-- ##### FUNCTION xmlSecBufferedProcess ##### -->
+<para>
+
+</para>
+
+@transform:
+@buffer:
+@Returns:
+
+
diff --git a/docs/api-0.0.x/tmpl/ciphers.sgml b/docs/api-0.0.x/tmpl/ciphers.sgml
new file mode 100644
index 00000000..922e3849
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/ciphers.sgml
@@ -0,0 +1,133 @@
+<!-- ##### SECTION Title ##### -->
+ciphers.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The ciphers transform.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT xmlSecCipherTransform ##### -->
+<para>
+
+</para>
+
+@id:
+@status:
+@dontDestroy:
+@data:
+@encode:
+@next:
+@prev:
+@binData:
+@bufIn:
+@bufOut:
+@cipherCtx:
+@iv:
+@ivPos:
+@cipherData:
+
+<!-- ##### TYPEDEF xmlSecCipherTransformId ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### USER_FUNCTION xmlSecCipherUpdateMethod ##### -->
+<para>
+
+</para>
+
+@transform:
+@buffer:
+@size:
+@Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecCipherFinalMethod ##### -->
+<para>
+
+</para>
+
+@transform:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecCipherTransformRead ##### -->
+<para>
+
+</para>
+
+@transform:
+@buf:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecCipherTransformWrite ##### -->
+<para>
+
+</para>
+
+@transform:
+@buf:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecCipherTransformFlush ##### -->
+<para>
+
+</para>
+
+@transform:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecEvpCipherUpdate ##### -->
+<para>
+
+</para>
+
+@cipher:
+@buffer:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecEvpCipherFinal ##### -->
+<para>
+
+</para>
+
+@cipher:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecCipherUpdate ##### -->
+<para>
+
+</para>
+
+@transform:
+@buffer:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecCipherFinal ##### -->
+<para>
+
+</para>
+
+@transform:
+@Returns:
+
+
diff --git a/docs/api-0.0.x/tmpl/debug.sgml b/docs/api-0.0.x/tmpl/debug.sgml
new file mode 100644
index 00000000..5da55458
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/debug.sgml
@@ -0,0 +1,45 @@
+<!-- ##### SECTION Title ##### -->
+debug.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The usefull debugging functions.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### FUNCTION xmlSecTimerInit ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTimerStart ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTimerEnd ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTimerGet ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
diff --git a/docs/api-0.0.x/tmpl/digests.sgml b/docs/api-0.0.x/tmpl/digests.sgml
new file mode 100644
index 00000000..8df64861
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/digests.sgml
@@ -0,0 +1,168 @@
+<!-- ##### SECTION Title ##### -->
+digests.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The digests transform.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT xmlSecDigestTransform ##### -->
+<para>
+
+</para>
+
+@id:
+@status:
+@dontDestroy:
+@data:
+@encode:
+@next:
+@prev:
+@binData:
+@pushModeEnabled:
+@digest:
+@digestSize:
+@digestLastByteMask:
+@digestData:
+
+<!-- ##### TYPEDEF xmlSecDigestTransformId ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### USER_FUNCTION xmlSecDigestUpdateMethod ##### -->
+<para>
+
+</para>
+
+@transform:
+@buffer:
+@size:
+@Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecDigestSignMethod ##### -->
+<para>
+
+</para>
+
+@transform:
+@buffer:
+@size:
+@Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecDigestVerifyMethod ##### -->
+<para>
+
+</para>
+
+@transform:
+@buffer:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecDigestSignNode ##### -->
+<para>
+
+</para>
+
+@transform:
+@valueNode:
+@removeOldContent:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecDigestVerifyNode ##### -->
+<para>
+
+</para>
+
+@transform:
+@valueNode:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecDigestSetPushMode ##### -->
+<para>
+
+</para>
+
+@transform:
+@enabled:
+
+
+<!-- ##### FUNCTION xmlSecDigestUpdate ##### -->
+<para>
+
+</para>
+
+@transform:
+@buffer:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecDigestSign ##### -->
+<para>
+
+</para>
+
+@transform:
+@buffer:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecDigestVerify ##### -->
+<para>
+
+</para>
+
+@transform:
+@buffer:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecDigestTransformRead ##### -->
+<para>
+
+</para>
+
+@transform:
+@buf:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecDigestTransformWrite ##### -->
+<para>
+
+</para>
+
+@transform:
+@buf:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecDigestTransformFlush ##### -->
+<para>
+
+</para>
+
+@transform:
+@Returns:
+
+
diff --git a/docs/api-0.0.x/tmpl/digests.sgml.bak b/docs/api-0.0.x/tmpl/digests.sgml.bak
new file mode 100644
index 00000000..83028dab
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/digests.sgml.bak
@@ -0,0 +1,167 @@
+<!-- ##### SECTION Title ##### -->
+digests.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The digests transform.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT xmlSecDigestTransform ##### -->
+<para>
+
+</para>
+
+@id:
+@status:
+@dontDestroy:
+@data:
+@encode:
+@next:
+@prev:
+@binData:
+@pushModeEnabled:
+@digest:
+@digestSize:
+@digestData:
+
+<!-- ##### TYPEDEF xmlSecDigestTransformId ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### USER_FUNCTION xmlSecDigestUpdateMethod ##### -->
+<para>
+
+</para>
+
+@transform:
+@buffer:
+@size:
+@Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecDigestSignMethod ##### -->
+<para>
+
+</para>
+
+@transform:
+@buffer:
+@size:
+@Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecDigestVerifyMethod ##### -->
+<para>
+
+</para>
+
+@transform:
+@buffer:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecDigestSignNode ##### -->
+<para>
+
+</para>
+
+@transform:
+@valueNode:
+@removeOldContent:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecDigestVerifyNode ##### -->
+<para>
+
+</para>
+
+@transform:
+@valueNode:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecDigestSetPushMode ##### -->
+<para>
+
+</para>
+
+@transform:
+@enabled:
+
+
+<!-- ##### FUNCTION xmlSecDigestUpdate ##### -->
+<para>
+
+</para>
+
+@transform:
+@buffer:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecDigestSign ##### -->
+<para>
+
+</para>
+
+@transform:
+@buffer:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecDigestVerify ##### -->
+<para>
+
+</para>
+
+@transform:
+@buffer:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecDigestTransformRead ##### -->
+<para>
+
+</para>
+
+@transform:
+@buf:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecDigestTransformWrite ##### -->
+<para>
+
+</para>
+
+@transform:
+@buf:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecDigestTransformFlush ##### -->
+<para>
+
+</para>
+
+@transform:
+@Returns:
+
+
diff --git a/docs/api-0.0.x/tmpl/errors.sgml b/docs/api-0.0.x/tmpl/errors.sgml
new file mode 100644
index 00000000..0e15ca4a
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/errors.sgml
@@ -0,0 +1,334 @@
+<!-- ##### SECTION Title ##### -->
+errors.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The errors reporting functions.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+All errors are reported to application provided callback function.
+The default callback function reports an error to OpenSSL using
+ERR_put_error() function and to LibXML using xmlGenericError()
+function.
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### MACRO XMLSEC_ERRORS_LIB ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_FUNCTION ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_MALLOC_FAILED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_XMLSEC_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_INVALID_TRANSFORM ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_TRANSFORM_DATA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_TRANSFORM_OR_KEY ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_KEY ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_KEY_DATA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_KEY_SIZE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_KEY_ORIGIN ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_KEY_NOT_FOUND ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_SIZE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_DATA ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_TYPE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_USAGE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_NODE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_NODESET ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_NODE_CONTENT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_SAME_DOCUMENT_REQUIRED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_NODE_NOT_FOUND ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_MAX_RETRIEVALS_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_DSIG_INVALID_REFERENCE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_ASSERTION ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_R_DISABLED ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### USER_FUNCTION xmlSecErrorsCallback ##### -->
+<para>
+
+</para>
+
+@file:
+@line:
+@func:
+@reason:
+@msg:
+
+
+<!-- ##### FUNCTION xmlSecErrorsInit ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecErrorsShutdown ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecErrorsSetCallback ##### -->
+<para>
+
+</para>
+
+@callback:
+
+
+<!-- ##### VARIABLE xmlSecPrintErrorMessages ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO XMLSEC_ERRORS_HERE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecError ##### -->
+<para>
+
+</para>
+
+@file:
+@line:
+@func:
+@reason:
+@msg:
+@Varargs:
+
+
+<!-- ##### MACRO xmlSecAssert ##### -->
+<para>
+
+</para>
+
+@p:
+
+
+<!-- ##### MACRO xmlSecAssert2 ##### -->
+<para>
+
+</para>
+
+@p:
+@ret:
+
+
diff --git a/docs/api-0.0.x/tmpl/io.sgml b/docs/api-0.0.x/tmpl/io.sgml
new file mode 100644
index 00000000..729dfadb
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/io.sgml
@@ -0,0 +1,72 @@
+<!-- ##### SECTION Title ##### -->
+io.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The IO transforms.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### FUNCTION xmlSecIOInit ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecIOShutdown ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### VARIABLE xmlSecInputUri ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION xmlSecInputUriTransformOpen ##### -->
+<para>
+
+</para>
+
+@transform:
+@uri:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecCleanupInputCallbacks ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecRegisterDefaultInputCallbacks ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecRegisterInputCallbacks ##### -->
+<para>
+
+</para>
+
+@matchFunc:
+@openFunc:
+@readFunc:
+@closeFunc:
+@Returns:
+
+
diff --git a/docs/api-0.0.x/tmpl/keyinfo.sgml b/docs/api-0.0.x/tmpl/keyinfo.sgml
new file mode 100644
index 00000000..ff62f857
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/keyinfo.sgml
@@ -0,0 +1,106 @@
+<!-- ##### SECTION Title ##### -->
+keyinfo.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The &lt;dsig:KeyInfo&gt; element manipulation functions.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### FUNCTION xmlSecKeyInfoNodeRead ##### -->
+<para>
+
+</para>
+
+@keyInfoNode:
+@keysMngr:
+@context:
+@keyId:
+@keyType:
+@keyUsage:
+@certsVerificationTime:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyInfoNodeWrite ##### -->
+<para>
+
+</para>
+
+@keyInfoNode:
+@keysMngr:
+@context:
+@key:
+@type:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyInfoAddKeyName ##### -->
+<para>
+
+</para>
+
+@keyInfoNode:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyInfoAddKeyValue ##### -->
+<para>
+
+</para>
+
+@keyInfoNode:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyInfoAddX509Data ##### -->
+<para>
+
+</para>
+
+@keyInfoNode:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyInfoAddRetrievalMethod ##### -->
+<para>
+
+</para>
+
+@keyInfoNode:
+@uri:
+@type:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecRetrievalMethodAddTransform ##### -->
+<para>
+
+</para>
+
+@retrMethod:
+@transform:
+@Returns:
+<!-- # Unused Parameters # -->
+@id:
+
+
+<!-- ##### FUNCTION xmlSecKeyInfoAddEncryptedKey ##### -->
+<para>
+
+</para>
+
+@keyInfoNode:
+@id:
+@type:
+@recipient:
+@Returns:
+
+
diff --git a/docs/api-0.0.x/tmpl/keyinfo.sgml.bak b/docs/api-0.0.x/tmpl/keyinfo.sgml.bak
new file mode 100644
index 00000000..6fadd15b
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/keyinfo.sgml.bak
@@ -0,0 +1,105 @@
+<!-- ##### SECTION Title ##### -->
+keyinfo.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The &lt;dsig:KeyInfo&gt; element manipulation functions.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### FUNCTION xmlSecKeyInfoNodeRead ##### -->
+<para>
+
+</para>
+
+@keyInfoNode:
+@keysMngr:
+@context:
+@keyId:
+@keyType:
+@keyUsage:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyInfoNodeWrite ##### -->
+<para>
+
+</para>
+
+@keyInfoNode:
+@keysMngr:
+@context:
+@key:
+@type:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyInfoAddKeyName ##### -->
+<para>
+
+</para>
+
+@keyInfoNode:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyInfoAddKeyValue ##### -->
+<para>
+
+</para>
+
+@keyInfoNode:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyInfoAddX509Data ##### -->
+<para>
+
+</para>
+
+@keyInfoNode:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyInfoAddRetrievalMethod ##### -->
+<para>
+
+</para>
+
+@keyInfoNode:
+@uri:
+@type:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecRetrievalMethodAddTransform ##### -->
+<para>
+
+</para>
+
+@retrMethod:
+@transform:
+@Returns:
+<!-- # Unused Parameters # -->
+@id:
+
+
+<!-- ##### FUNCTION xmlSecKeyInfoAddEncryptedKey ##### -->
+<para>
+
+</para>
+
+@keyInfoNode:
+@id:
+@type:
+@recipient:
+@Returns:
+
+
diff --git a/docs/api-0.0.x/tmpl/keys.sgml b/docs/api-0.0.x/tmpl/keys.sgml
new file mode 100644
index 00000000..7e20b7a2
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/keys.sgml
@@ -0,0 +1,282 @@
+<!-- ##### SECTION Title ##### -->
+keys.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The keys helper functions.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### TYPEDEF xmlSecKeyId ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ENUM xmlSecKeyType ##### -->
+<para>
+
+</para>
+
+@xmlSecKeyTypePublic:
+@xmlSecKeyTypePrivate:
+@xmlSecKeyTypeAny:
+
+<!-- ##### ENUM xmlSecKeyUsage ##### -->
+<para>
+
+</para>
+
+@xmlSecKeyUsageAny:
+@xmlSecKeyUsageSign:
+@xmlSecKeyUsageVerify:
+@xmlSecKeyUsageEncrypt:
+@xmlSecKeyUsageDecrypt:
+
+<!-- ##### TYPEDEF xmlSecKeyOrigin ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO xmlSecKeyOriginDefault ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyOriginKeyManager ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyOriginKeyName ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyOriginKeyValue ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyOriginRetrievalDocument ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyOriginRetrievalRemote ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyOriginX509 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyOriginPGP ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyOriginEncryptedKey ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyOriginAll ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyIdUnknown ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### STRUCT xmlSecKey ##### -->
+<para>
+
+</para>
+
+@id:
+@type:
+@name:
+@origin:
+@x509Data:
+@keyData:
+
+<!-- ##### FUNCTION xmlSecKeyCreate ##### -->
+<para>
+
+</para>
+
+@id:
+@origin:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDestroy ##### -->
+<para>
+
+</para>
+
+@key:
+
+
+<!-- ##### FUNCTION xmlSecKeyDuplicate ##### -->
+<para>
+
+</para>
+
+@key:
+@origin:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecVerifyKey ##### -->
+<para>
+
+</para>
+
+@key:
+@name:
+@id:
+@type:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDebugDump ##### -->
+<para>
+
+</para>
+
+@key:
+@output:
+
+
+<!-- ##### FUNCTION xmlSecKeyReadPemCert ##### -->
+<para>
+
+</para>
+
+@key:
+@filename:
+@Returns:
+
+
+<!-- ##### STRUCT xmlSecKeysMngr ##### -->
+<para>
+
+</para>
+
+@getKey:
+@allowedOrigins:
+@maxRetrievalsLevel:
+@maxEncKeysLevel:
+@findKey:
+@keysData:
+@failIfCertNotFound:
+@findX509:
+@verifyX509:
+@x509Data:
+
+<!-- ##### USER_FUNCTION xmlSecGetKeyCallback ##### -->
+<para>
+
+</para>
+
+@keyInfoNode:
+@mngr:
+@context:
+@keyId:
+@type:
+@usage:
+@certsVerificationTime:
+@Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecFindKeyCallback ##### -->
+<para>
+
+</para>
+
+@mngr:
+@context:
+@name:
+@id:
+@type:
+@usage:
+@Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecX509FindCallback ##### -->
+<para>
+
+</para>
+
+@mngr:
+@context:
+@subjectName:
+@issuerName:
+@issuerSerial:
+@ski:
+@cert:
+@Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecX509VerifyCallback ##### -->
+<para>
+
+</para>
+
+@mngr:
+@context:
+@cert:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeysMngrGetKey ##### -->
+<para>
+
+</para>
+
+@keyInfoNode:
+@mngr:
+@context:
+@keyId:
+@keyType:
+@keyUsage:
+@certsVerificationTime:
+@Returns:
+
+
diff --git a/docs/api-0.0.x/tmpl/keys.sgml.bak b/docs/api-0.0.x/tmpl/keys.sgml.bak
new file mode 100644
index 00000000..8d34b6df
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/keys.sgml.bak
@@ -0,0 +1,280 @@
+<!-- ##### SECTION Title ##### -->
+keys.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The keys helper functions.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### TYPEDEF xmlSecKeyId ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### ENUM xmlSecKeyType ##### -->
+<para>
+
+</para>
+
+@xmlSecKeyTypePublic:
+@xmlSecKeyTypePrivate:
+@xmlSecKeyTypeAny:
+
+<!-- ##### ENUM xmlSecKeyUsage ##### -->
+<para>
+
+</para>
+
+@xmlSecKeyUsageAny:
+@xmlSecKeyUsageSign:
+@xmlSecKeyUsageVerify:
+@xmlSecKeyUsageEncrypt:
+@xmlSecKeyUsageDecrypt:
+
+<!-- ##### TYPEDEF xmlSecKeyOrigin ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO xmlSecKeyOriginDefault ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyOriginKeyManager ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyOriginKeyName ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyOriginKeyValue ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyOriginRetrievalDocument ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyOriginRetrievalRemote ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyOriginX509 ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyOriginPGP ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyOriginEncryptedKey ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyOriginAll ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyIdUnknown ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### STRUCT xmlSecKey ##### -->
+<para>
+
+</para>
+
+@id:
+@type:
+@name:
+@origin:
+@x509Data:
+@keyData:
+
+<!-- ##### FUNCTION xmlSecKeyCreate ##### -->
+<para>
+
+</para>
+
+@id:
+@origin:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDestroy ##### -->
+<para>
+
+</para>
+
+@key:
+
+
+<!-- ##### FUNCTION xmlSecKeyDuplicate ##### -->
+<para>
+
+</para>
+
+@key:
+@origin:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecVerifyKey ##### -->
+<para>
+
+</para>
+
+@key:
+@name:
+@id:
+@type:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyDebugDump ##### -->
+<para>
+
+</para>
+
+@key:
+@output:
+
+
+<!-- ##### FUNCTION xmlSecKeyReadPemCert ##### -->
+<para>
+
+</para>
+
+@key:
+@filename:
+@Returns:
+
+
+<!-- ##### STRUCT xmlSecKeysMngr ##### -->
+<para>
+
+</para>
+
+@getKey:
+@allowedOrigins:
+@maxRetrievalsLevel:
+@maxEncKeysLevel:
+@findKey:
+@keysData:
+@failIfCertNotFound:
+@findX509:
+@verifyX509:
+@x509Data:
+
+<!-- ##### USER_FUNCTION xmlSecGetKeyCallback ##### -->
+<para>
+
+</para>
+
+@keyInfoNode:
+@mngr:
+@context:
+@keyId:
+@type:
+@usage:
+@Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecFindKeyCallback ##### -->
+<para>
+
+</para>
+
+@mngr:
+@context:
+@name:
+@id:
+@type:
+@usage:
+@Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecX509FindCallback ##### -->
+<para>
+
+</para>
+
+@mngr:
+@context:
+@subjectName:
+@issuerName:
+@issuerSerial:
+@ski:
+@cert:
+@Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecX509VerifyCallback ##### -->
+<para>
+
+</para>
+
+@mngr:
+@context:
+@cert:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeysMngrGetKey ##### -->
+<para>
+
+</para>
+
+@keyInfoNode:
+@mngr:
+@context:
+@keyId:
+@keyType:
+@keyUsage:
+@Returns:
+
+
diff --git a/docs/api-0.0.x/tmpl/keysInternal.sgml b/docs/api-0.0.x/tmpl/keysInternal.sgml
new file mode 100644
index 00000000..3f84eb34
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/keysInternal.sgml
@@ -0,0 +1,170 @@
+<!-- ##### SECTION Title ##### -->
+keysInternal.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The internal keys functions.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### MACRO xmlSecKeyInifiteRetrivals ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### USER_FUNCTION xmlSecKeyCreateMethod ##### -->
+<para>
+
+</para>
+
+@id:
+@Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecKeyDuplicateMethod ##### -->
+<para>
+
+</para>
+
+@key:
+@Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecKeyDestroyMethod ##### -->
+<para>
+
+</para>
+
+@key:
+
+
+<!-- ##### USER_FUNCTION xmlSecKeyReadXmlMethod ##### -->
+<para>
+
+</para>
+
+@key:
+@node:
+@Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecKeyWriteXmlMethod ##### -->
+<para>
+
+</para>
+
+@key:
+@type:
+@parent:
+@Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecKeyReadBinaryMethod ##### -->
+<para>
+
+</para>
+
+@key:
+@buf:
+@size:
+@Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecKeyWriteBinaryMethod ##### -->
+<para>
+
+</para>
+
+@key:
+@type:
+@buf:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeysInit ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecKeyIsValid ##### -->
+<para>
+
+</para>
+
+@key:
+
+
+<!-- ##### MACRO xmlSecKeyCheckId ##### -->
+<para>
+
+</para>
+
+@key:
+@keyId:
+
+
+<!-- ##### MACRO xmlSecKeyCheckTransform ##### -->
+<para>
+
+</para>
+
+@key:
+@tr:
+
+
+<!-- ##### FUNCTION xmlSecKeyReadXml ##### -->
+<para>
+
+</para>
+
+@id:
+@node:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyWriteXml ##### -->
+<para>
+
+</para>
+
+@key:
+@type:
+@node:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyReadBin ##### -->
+<para>
+
+</para>
+
+@id:
+@buf:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecKeyWriteBin ##### -->
+<para>
+
+</para>
+
+@key:
+@type:
+@buf:
+@size:
+@Returns:
+
+
diff --git a/docs/api-0.0.x/tmpl/keysmngr.sgml b/docs/api-0.0.x/tmpl/keysmngr.sgml
new file mode 100644
index 00000000..02bcc948
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/keysmngr.sgml
@@ -0,0 +1,153 @@
+<!-- ##### SECTION Title ##### -->
+keysmngr.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The simple keys manager implementation.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### FUNCTION xmlSecSimpleKeysMngrCreate ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecSimpleKeysMngrDestroy ##### -->
+<para>
+
+</para>
+
+@mngr:
+
+
+<!-- ##### FUNCTION xmlSecSimpleKeysMngrFindKey ##### -->
+<para>
+
+</para>
+
+@mngr:
+@context:
+@name:
+@id:
+@type:
+@usage:
+@Returns:
+<!-- # Unused Parameters # -->
+@keyType:
+@keyUsage:
+
+
+<!-- ##### FUNCTION xmlSecSimpleKeysMngrAddKey ##### -->
+<para>
+
+</para>
+
+@mngr:
+@key:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecSimpleKeysMngrLoad ##### -->
+<para>
+
+</para>
+
+@mngr:
+@uri:
+@strict:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecSimpleKeysMngrSave ##### -->
+<para>
+
+</para>
+
+@mngr:
+@filename:
+@type:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecSimpleKeysMngrLoadPemKey ##### -->
+<para>
+
+</para>
+
+@mngr:
+@keyfile:
+@keyPwd:
+@keyPwdCallback:
+@privateKey:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecSimpleKeysMngrX509Find ##### -->
+<para>
+
+</para>
+
+@mngr:
+@context:
+@subjectName:
+@issuerName:
+@issuerSerial:
+@ski:
+@cert:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecSimpleKeysMngrX509Verify ##### -->
+<para>
+
+</para>
+
+@mngr:
+@context:
+@cert:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecSimpleKeysMngrLoadPemCert ##### -->
+<para>
+
+</para>
+
+@mngr:
+@filename:
+@trusted:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecSimpleKeysMngrAddCertsDir ##### -->
+<para>
+
+</para>
+
+@mngr:
+@path:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecSimpleKeysMngrLoadPkcs12 ##### -->
+<para>
+
+</para>
+
+@mngr:
+@name:
+@filename:
+@pwd:
+@Returns:
+
+
diff --git a/docs/api-0.0.x/tmpl/membuf.sgml b/docs/api-0.0.x/tmpl/membuf.sgml
new file mode 100644
index 00000000..1ebb5c0f
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/membuf.sgml
@@ -0,0 +1,32 @@
+<!-- ##### SECTION Title ##### -->
+membuf.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The memory buffer transform.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### VARIABLE xmlSecMemBuf ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION xmlSecMemBufTransformGetBuffer ##### -->
+<para>
+
+</para>
+
+@transform:
+@removeBuffer:
+@Returns:
+
+
diff --git a/docs/api-0.0.x/tmpl/nodeset.sgml b/docs/api-0.0.x/tmpl/nodeset.sgml
new file mode 100644
index 00000000..8809ce70
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/nodeset.sgml
@@ -0,0 +1,149 @@
+<!-- ##### SECTION Title ##### -->
+nodeset.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The enchanced nodes set imlmentation.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### ENUM xmlSecNodeSetType ##### -->
+<para>
+
+</para>
+
+@xmlSecNodeSetNormal:
+@xmlSecNodeSetInvert:
+@xmlSecNodeSetTree:
+@xmlSecNodeSetTreeWithoutComments:
+@xmlSecNodeSetTreeInvert:
+@xmlSecNodeSetTreeWithoutCommentsInvert:
+@xmlSecNodeSetList:
+
+<!-- ##### ENUM xmlSecNodeSetOp ##### -->
+<para>
+
+</para>
+
+@xmlSecNodeSetIntersection:
+@xmlSecNodeSetSubtraction:
+@xmlSecNodeSetUnion:
+
+<!-- ##### STRUCT xmlSecNodeSet ##### -->
+<para>
+
+</para>
+
+@nodes:
+@doc:
+@type:
+@op:
+@next:
+@prev:
+@children:
+
+<!-- ##### USER_FUNCTION xmlSecNodeSetWalkCallback ##### -->
+<para>
+
+</para>
+
+@nset:
+@cur:
+@parent:
+@data:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecNodeSetCreate ##### -->
+<para>
+
+</para>
+
+@doc:
+@nodes:
+@type:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecNodeSetDestroy ##### -->
+<para>
+
+</para>
+
+@nset:
+
+
+<!-- ##### FUNCTION xmlSecNodeSetContains ##### -->
+<para>
+
+</para>
+
+@nset:
+@node:
+@parent:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecNodeSetAdd ##### -->
+<para>
+
+</para>
+
+@nset:
+@newNSet:
+@op:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecNodeSetAddList ##### -->
+<para>
+
+</para>
+
+@nset:
+@newNSet:
+@op:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecNodeSetGetChildren ##### -->
+<para>
+
+</para>
+
+@doc:
+@parent:
+@withComments:
+@invert:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecNodeSetWalk ##### -->
+<para>
+
+</para>
+
+@nset:
+@walkFunc:
+@data:
+@Returns:
+<!-- # Unused Parameters # -->
+@func:
+
+
+<!-- ##### FUNCTION xmlSecNodeSetDebugDump ##### -->
+<para>
+
+</para>
+
+@nset:
+@output:
+
+
diff --git a/docs/api-0.0.x/tmpl/transforms.sgml b/docs/api-0.0.x/tmpl/transforms.sgml
new file mode 100644
index 00000000..e9427c2c
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/transforms.sgml
@@ -0,0 +1,389 @@
+<!-- ##### SECTION Title ##### -->
+transforms.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The transforms functions.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### ENUM xmlSecTransformStatus ##### -->
+<para>
+
+</para>
+
+@xmlSecTransformStatusNone:
+@xmlSecTransformStatusOk:
+@xmlSecTransformStatusFail:
+
+<!-- ##### TYPEDEF xmlSecTransformId ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO xmlSecTransformUnknown ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### VARIABLE xmlSecEncAes128Cbc ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecEncAes192Cbc ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecEncAes256Cbc ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecKWAes128 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecKWAes192 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecKWAes256 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecEncBase64Encode ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecEncBase64Decode ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecC14NInclusive ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecC14NInclusiveWithComments ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecC14NExclusive ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecC14NExclusiveWithComments ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecEncDes3Cbc ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecKWDes3Cbc ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecSignDsaSha1 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecTransformEnveloped ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecMacHmacSha1 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecMacHmacRipeMd160 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecMacHmacMd5 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecDigestRipemd160 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecSignRsaSha1 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecEncRsaPkcs1 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecEncRsaOaep ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecDigestSha1 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecTransformXPath ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecTransformXPath2 ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecTransformXPointer ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecTransformXslt ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION xmlSecC14NExclAddInclNamespaces ##### -->
+<para>
+
+</para>
+
+@transformNode:
+@prefixList:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecHmacAddOutputLength ##### -->
+<para>
+
+</para>
+
+@transformNode:
+@bitsLen:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncRsaOaepAddParam ##### -->
+<para>
+
+</para>
+
+@transformNode:
+@buf:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformXPathAdd ##### -->
+<para>
+
+</para>
+
+@transformNode:
+@expression:
+@namespaces:
+@Returns:
+
+
+<!-- ##### ENUM xmlSecXPath2TransformType ##### -->
+<para>
+
+</para>
+
+@xmlSecXPathTransformIntersect:
+@xmlSecXPathTransformSubtract:
+@xmlSecXPathTransformUnion:
+
+<!-- ##### FUNCTION xmlSecTransformXPath2Add ##### -->
+<para>
+
+</para>
+
+@transformNode:
+@type:
+@expression:
+@namespaces:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformXPointerAdd ##### -->
+<para>
+
+</para>
+
+@transformNode:
+@expression:
+@namespaces:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformXsltAdd ##### -->
+<para>
+
+</para>
+
+@transformNode:
+@xslt:
+@Returns:
+
+
+<!-- ##### VARIABLE xmlSecAesKey ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecDesKey ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecDsaKey ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecHmacKey ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecRsaKey ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION xmlSecAesKeyGenerate ##### -->
+<para>
+
+</para>
+
+@key:
+@buf:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecDesKeyGenerate ##### -->
+<para>
+
+</para>
+
+@key:
+@buf:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecDsaKeyGenerate ##### -->
+<para>
+
+</para>
+
+@key:
+@dsa:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecHmacKeyGenerate ##### -->
+<para>
+
+</para>
+
+@key:
+@buf:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecRsaKeyGenerate ##### -->
+<para>
+
+</para>
+
+@key:
+@rsa:
+@Returns:
+
+
+<!-- ##### MACRO XMLSEC_BASE64_LINESIZE ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecBase64EncodeSetLineSize ##### -->
+<para>
+
+</para>
+
+@transform:
+@lineSize:
+
+
diff --git a/docs/api-0.0.x/tmpl/transformsInternal.sgml b/docs/api-0.0.x/tmpl/transformsInternal.sgml
new file mode 100644
index 00000000..d3ef5fef
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/transformsInternal.sgml
@@ -0,0 +1,556 @@
+<!-- ##### SECTION Title ##### -->
+transformsInternal.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The internal transform's functions.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### ENUM xmlSecTransformType ##### -->
+<para>
+
+</para>
+
+@xmlSecTransformTypeBinary:
+@xmlSecTransformTypeXml:
+@xmlSecTransformTypeC14N:
+
+<!-- ##### TYPEDEF xmlSecTransformUsage ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO xmlSecUsageAny ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecUsageDSigC14N ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecUsageDSigTransform ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecUsageDSigDigest ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecUsageDSigSignature ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### MACRO xmlSecUsageEncryptionMethod ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### ENUM xmlSecTransformResult ##### -->
+<para>
+
+</para>
+
+@xmlSecTransformResultBinary:
+@xmlSecTransformResultXml:
+
+<!-- ##### STRUCT xmlSecTransform ##### -->
+<para>
+
+</para>
+
+@id:
+@status:
+@dontDestroy:
+@data:
+
+<!-- ##### FUNCTION xmlSecTransformsInit ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecTransformsNodeRead ##### -->
+<para>
+
+</para>
+
+@state:
+@transformsNode:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformFind ##### -->
+<para>
+
+</para>
+
+@href:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformNodeRead ##### -->
+<para>
+
+</para>
+
+@transformNode:
+@usage:
+@dontDestroy:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformNodeWrite ##### -->
+<para>
+
+</para>
+
+@transformNode:
+@id:
+@Returns:
+
+
+<!-- ##### MACRO xmlSecTransformIsValid ##### -->
+<para>
+
+</para>
+
+@transform:
+
+
+<!-- ##### MACRO xmlSecTransformCheckType ##### -->
+<para>
+
+</para>
+
+@transform:
+@t:
+
+
+<!-- ##### MACRO xmlSecTransformCheckId ##### -->
+<para>
+
+</para>
+
+@transform:
+@i:
+
+
+<!-- ##### FUNCTION xmlSecTransformCreate ##### -->
+<para>
+
+</para>
+
+@id:
+@usage:
+@dontDestroy:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformDestroy ##### -->
+<para>
+
+</para>
+
+@transform:
+@forceDestroy:
+
+
+<!-- ##### FUNCTION xmlSecTransformRead ##### -->
+<para>
+
+</para>
+
+@transform:
+@transformNode:
+@Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecTransformCreateMethod ##### -->
+<para>
+
+</para>
+
+@id:
+@Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecTransformDestroyMethod ##### -->
+<para>
+
+</para>
+
+@transform:
+
+
+<!-- ##### USER_FUNCTION xmlSecTransformReadNodeMethod ##### -->
+<para>
+
+</para>
+
+@transform:
+@transformNode:
+@Returns:
+
+
+<!-- ##### TYPEDEF xmlSecBinTransformId ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT xmlSecBinTransform ##### -->
+<para>
+
+</para>
+
+@id:
+@status:
+@dontDestroy:
+@data:
+@encode:
+@next:
+@prev:
+@binData:
+
+<!-- ##### ENUM xmlSecBinTransformSubType ##### -->
+<para>
+
+</para>
+
+@xmlSecBinTransformSubTypeNone:
+@xmlSecBinTransformSubTypeDigest:
+@xmlSecBinTransformSubTypeCipher:
+@xmlSecBinTransformSubTypeBuffered:
+
+<!-- ##### MACRO xmlSecBinTransformIdCheckKeyId ##### -->
+<para>
+
+</para>
+
+@id:
+@kId:
+
+
+<!-- ##### MACRO xmlSecBinTransformIdGetKeyId ##### -->
+<para>
+
+</para>
+
+@id:
+
+
+<!-- ##### MACRO xmlSecBinTransformCheckSubType ##### -->
+<para>
+
+</para>
+
+@transform:
+@t:
+
+
+<!-- ##### MACRO xmlSecBinTransformIdGetEncKeyType ##### -->
+<para>
+
+</para>
+
+@id:
+
+
+<!-- ##### MACRO xmlSecBinTransformIdGetDecKeyType ##### -->
+<para>
+
+</para>
+
+@id:
+
+
+<!-- ##### FUNCTION xmlSecBinTransformAddKey ##### -->
+<para>
+
+</para>
+
+@transform:
+@key:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecBinTransformRead ##### -->
+<para>
+
+</para>
+
+@transform:
+@buf:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecBinTransformWrite ##### -->
+<para>
+
+</para>
+
+@transform:
+@buf:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecBinTransformFlush ##### -->
+<para>
+
+</para>
+
+@transform:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecBinTransformAddAfter ##### -->
+<para>
+
+</para>
+
+@curTransform:
+@newTransform:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecBinTransformAddBefore ##### -->
+<para>
+
+</para>
+
+@curTransform:
+@newTransform:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecBinTransformRemove ##### -->
+<para>
+
+</para>
+
+@transform:
+
+
+<!-- ##### FUNCTION xmlSecBinTransformDestroyAll ##### -->
+<para>
+
+</para>
+
+@transform:
+
+
+<!-- ##### FUNCTION xmlSecBinTransformSetEncrypt ##### -->
+<para>
+
+</para>
+
+@transform:
+@encrypt:
+
+
+<!-- ##### USER_FUNCTION xmlSecBinTransformAddKeyMethod ##### -->
+<para>
+
+</para>
+
+@transform:
+@key:
+@Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecBinTransformReadMethod ##### -->
+<para>
+
+</para>
+
+@transform:
+@buf:
+@size:
+@Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecBinTransformWriteMethod ##### -->
+<para>
+
+</para>
+
+@transform:
+@buf:
+@size:
+@Returns:
+
+
+<!-- ##### USER_FUNCTION xmlSecBinTransformFlushMethod ##### -->
+<para>
+
+</para>
+
+@transform:
+@Returns:
+
+
+<!-- ##### TYPEDEF xmlSecXmlTransformId ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT xmlSecXmlTransform ##### -->
+<para>
+
+</para>
+
+@id:
+@status:
+@dontDestroy:
+@data:
+@here:
+@xmlData:
+
+<!-- ##### USER_FUNCTION xmlSecXmlTransformExecuteMethod ##### -->
+<para>
+
+</para>
+
+@transform:
+@ctxDoc:
+@doc:
+@nodes:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecXmlTransformExecute ##### -->
+<para>
+
+</para>
+
+@transform:
+@ctxDoc:
+@doc:
+@nodes:
+@Returns:
+
+
+<!-- ##### TYPEDEF xmlSecC14NTransformId ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT xmlSecC14NTransform ##### -->
+<para>
+
+</para>
+
+@id:
+@status:
+@dontDestroy:
+@data:
+@c14nData:
+
+<!-- ##### USER_FUNCTION xmlSecC14NTransformExecuteMethod ##### -->
+<para>
+
+</para>
+
+@transform:
+@doc:
+@nodes:
+@buffer:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecC14NTransformExecute ##### -->
+<para>
+
+</para>
+
+@transform:
+@doc:
+@nodes:
+@buffer:
+@Returns:
+
+
+<!-- ##### STRUCT xmlSecTransformState ##### -->
+<para>
+
+</para>
+
+@initDoc:
+@initNodeSet:
+@initUri:
+@curDoc:
+@curNodeSet:
+@curBuf:
+@curFirstBinTransform:
+@curLastBinTransform:
+@curC14NTransform:
+
+<!-- ##### FUNCTION xmlSecTransformStateCreate ##### -->
+<para>
+
+</para>
+
+@doc:
+@nodeSet:
+@uri:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformStateDestroy ##### -->
+<para>
+
+</para>
+
+@state:
+
+
+<!-- ##### FUNCTION xmlSecTransformStateUpdate ##### -->
+<para>
+
+</para>
+
+@state:
+@transform:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecTransformStateFinal ##### -->
+<para>
+
+</para>
+
+@state:
+@type:
+@Returns:
+
+
diff --git a/docs/api-0.0.x/tmpl/version.sgml b/docs/api-0.0.x/tmpl/version.sgml
new file mode 100644
index 00000000..f9a2a6bb
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/version.sgml
@@ -0,0 +1,51 @@
+<!-- ##### SECTION Title ##### -->
+version.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The library version infromation.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### 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-0.0.x/tmpl/x509.sgml b/docs/api-0.0.x/tmpl/x509.sgml
new file mode 100644
index 00000000..6561e19b
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/x509.sgml
@@ -0,0 +1,204 @@
+<!-- ##### SECTION Title ##### -->
+x509.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The X509 certificates functions.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### FUNCTION xmlSecX509DataCreate ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecX509DataDestroy ##### -->
+<para>
+
+</para>
+
+@x509Data:
+
+
+<!-- ##### FUNCTION xmlSecX509DataGetCertsNumber ##### -->
+<para>
+
+</para>
+
+@x509Data:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecX509DataGetCrlsNumber ##### -->
+<para>
+
+</para>
+
+@x509Data:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecX509DataReadDerCert ##### -->
+<para>
+
+</para>
+
+@x509Data:
+@buf:
+@size:
+@base64:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecX509DataWriteDerCert ##### -->
+<para>
+
+</para>
+
+@x509Data:
+@pos:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecX509DataReadDerCrl ##### -->
+<para>
+
+</para>
+
+@x509Data:
+@buf:
+@size:
+@base64:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecX509DataWriteDerCrl ##### -->
+<para>
+
+</para>
+
+@x509Data:
+@pos:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecX509DataReadPemCert ##### -->
+<para>
+
+</para>
+
+@x509Data:
+@filename:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecX509DataDup ##### -->
+<para>
+
+</para>
+
+@x509Data:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecX509DataCreateKey ##### -->
+<para>
+
+</para>
+
+@x509Data:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecX509DataDebugDump ##### -->
+<para>
+
+</para>
+
+@x509Data:
+@output:
+
+
+<!-- ##### FUNCTION xmlSecX509StoreCreate ##### -->
+<para>
+
+</para>
+
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecX509StoreDestroy ##### -->
+<para>
+
+</para>
+
+@store:
+
+
+<!-- ##### FUNCTION xmlSecX509StoreFind ##### -->
+<para>
+
+</para>
+
+@store:
+@subjectName:
+@issuerName:
+@issuerSerial:
+@ski:
+@x509Data:
+@Returns:
+<!-- # Unused Parameters # -->
+@skit:
+
+
+<!-- ##### FUNCTION xmlSecX509StoreVerify ##### -->
+<para>
+
+</para>
+
+@store:
+@x509Data:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecX509StoreLoadPemCert ##### -->
+<para>
+
+</para>
+
+@store:
+@filename:
+@trusted:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecX509StoreAddCertsDir ##### -->
+<para>
+
+</para>
+
+@store:
+@path:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecPKCS12ReadKey ##### -->
+<para>
+
+</para>
+
+@filename:
+@pwd:
+@Returns:
+
+
diff --git a/docs/api-0.0.x/tmpl/xmldsig.sgml b/docs/api-0.0.x/tmpl/xmldsig.sgml
new file mode 100644
index 00000000..4bfb34b7
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/xmldsig.sgml
@@ -0,0 +1,282 @@
+<!-- ##### SECTION Title ##### -->
+xmldsig.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The <ulink url="http://www.w3.org/Signature/">XML Digital Signature</ulink>
+standard implementation.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT xmlSecDSigCtx ##### -->
+<para>
+
+</para>
+
+@keysMngr:
+@processManifests:
+@storeSignatures:
+@storeReferences:
+@storeManifests:
+@fakeSignatures:
+@certsVerificationTime:
+
+<!-- ##### FUNCTION xmlSecDSigCtxCreate ##### -->
+<para>
+
+</para>
+
+@keysMngr:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecDSigCtxDestroy ##### -->
+<para>
+
+</para>
+
+@ctx:
+
+
+<!-- ##### FUNCTION xmlSecDSigValidate ##### -->
+<para>
+
+</para>
+
+@ctx:
+@context:
+@key:
+@signNode:
+@result:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecDSigGenerate ##### -->
+<para>
+
+</para>
+
+@ctx:
+@context:
+@key:
+@signNode:
+@result:
+@Returns:
+
+
+<!-- ##### STRUCT xmlSecDSigResult ##### -->
+<para>
+
+</para>
+
+@ctx:
+@context:
+@self:
+@sign:
+@result:
+@signMethod:
+@key:
+@firstSignRef:
+@lastSignRef:
+@firstManifestRef:
+@lastManifestRef:
+@buffer:
+
+<!-- ##### STRUCT xmlSecReferenceResult ##### -->
+<para>
+
+</para>
+
+@ctx:
+@self:
+@refType:
+@result:
+@next:
+@prev:
+@uri:
+@id:
+@type:
+@digestMethod:
+@buffer:
+
+<!-- ##### ENUM xmlSecReferenceType ##### -->
+<para>
+
+</para>
+
+@xmlSecSignedInfoReference:
+@xmlSecManifestReference:
+
+<!-- ##### FUNCTION xmlSecDSigResultCreate ##### -->
+<para>
+
+</para>
+
+@ctx:
+@context:
+@signNode:
+@sign:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecDSigResultDestroy ##### -->
+<para>
+
+</para>
+
+@result:
+
+
+<!-- ##### FUNCTION xmlSecDSigResultDebugDump ##### -->
+<para>
+
+</para>
+
+@result:
+@output:
+
+
+<!-- ##### FUNCTION xmlSecSignatureCreate ##### -->
+<para>
+
+</para>
+
+@id:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecSignatureDestroy ##### -->
+<para>
+
+</para>
+
+@signNode:
+
+
+<!-- ##### FUNCTION xmlSecSignatureAddSignedInfo ##### -->
+<para>
+
+</para>
+
+@signNode:
+@id:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecSignatureAddKeyInfo ##### -->
+<para>
+
+</para>
+
+@signNode:
+@id:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecSignatureAddObject ##### -->
+<para>
+
+</para>
+
+@signNode:
+@id:
+@mimeType:
+@encoding:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecSignedInfoAddC14NMethod ##### -->
+<para>
+
+</para>
+
+@signedInfoNode:
+@c14nMethod:
+@Returns:
+<!-- # Unused Parameters # -->
+@encMethod:
+
+
+<!-- ##### FUNCTION xmlSecSignedInfoAddSignMethod ##### -->
+<para>
+
+</para>
+
+@signedInfoNode:
+@signMethod:
+@Returns:
+<!-- # Unused Parameters # -->
+@encMethod:
+
+
+<!-- ##### FUNCTION xmlSecSignedInfoAddReference ##### -->
+<para>
+
+</para>
+
+@signedInfoNode:
+@id:
+@uri:
+@type:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecReferenceAddDigestMethod ##### -->
+<para>
+
+</para>
+
+@refNode:
+@digestMethod:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecReferenceAddTransform ##### -->
+<para>
+
+</para>
+
+@refNode:
+@transform:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecObjectAddSignProperties ##### -->
+<para>
+
+</para>
+
+@objectNode:
+@id:
+@target:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecObjectAddManifest ##### -->
+<para>
+
+</para>
+
+@objectNode:
+@id:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecManifestAddReference ##### -->
+<para>
+
+</para>
+
+@manifestNode:
+@id:
+@uri:
+@type:
+@Returns:
+
+
diff --git a/docs/api-0.0.x/tmpl/xmldsig.sgml.bak b/docs/api-0.0.x/tmpl/xmldsig.sgml.bak
new file mode 100644
index 00000000..50380129
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/xmldsig.sgml.bak
@@ -0,0 +1,281 @@
+<!-- ##### SECTION Title ##### -->
+xmldsig.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The <ulink url="http://www.w3.org/Signature/">XML Digital Signature</ulink>
+standard implementation.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT xmlSecDSigCtx ##### -->
+<para>
+
+</para>
+
+@keysMngr:
+@processManifests:
+@storeSignatures:
+@storeReferences:
+@storeManifests:
+@fakeSignatures:
+
+<!-- ##### FUNCTION xmlSecDSigCtxCreate ##### -->
+<para>
+
+</para>
+
+@keysMngr:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecDSigCtxDestroy ##### -->
+<para>
+
+</para>
+
+@ctx:
+
+
+<!-- ##### FUNCTION xmlSecDSigValidate ##### -->
+<para>
+
+</para>
+
+@ctx:
+@context:
+@key:
+@signNode:
+@result:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecDSigGenerate ##### -->
+<para>
+
+</para>
+
+@ctx:
+@context:
+@key:
+@signNode:
+@result:
+@Returns:
+
+
+<!-- ##### STRUCT xmlSecDSigResult ##### -->
+<para>
+
+</para>
+
+@ctx:
+@context:
+@self:
+@sign:
+@result:
+@signMethod:
+@key:
+@firstSignRef:
+@lastSignRef:
+@firstManifestRef:
+@lastManifestRef:
+@buffer:
+
+<!-- ##### STRUCT xmlSecReferenceResult ##### -->
+<para>
+
+</para>
+
+@ctx:
+@self:
+@refType:
+@result:
+@next:
+@prev:
+@uri:
+@id:
+@type:
+@digestMethod:
+@buffer:
+
+<!-- ##### ENUM xmlSecReferenceType ##### -->
+<para>
+
+</para>
+
+@xmlSecSignedInfoReference:
+@xmlSecManifestReference:
+
+<!-- ##### FUNCTION xmlSecDSigResultCreate ##### -->
+<para>
+
+</para>
+
+@ctx:
+@context:
+@signNode:
+@sign:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecDSigResultDestroy ##### -->
+<para>
+
+</para>
+
+@result:
+
+
+<!-- ##### FUNCTION xmlSecDSigResultDebugDump ##### -->
+<para>
+
+</para>
+
+@result:
+@output:
+
+
+<!-- ##### FUNCTION xmlSecSignatureCreate ##### -->
+<para>
+
+</para>
+
+@id:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecSignatureDestroy ##### -->
+<para>
+
+</para>
+
+@signNode:
+
+
+<!-- ##### FUNCTION xmlSecSignatureAddSignedInfo ##### -->
+<para>
+
+</para>
+
+@signNode:
+@id:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecSignatureAddKeyInfo ##### -->
+<para>
+
+</para>
+
+@signNode:
+@id:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecSignatureAddObject ##### -->
+<para>
+
+</para>
+
+@signNode:
+@id:
+@mimeType:
+@encoding:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecSignedInfoAddC14NMethod ##### -->
+<para>
+
+</para>
+
+@signedInfoNode:
+@c14nMethod:
+@Returns:
+<!-- # Unused Parameters # -->
+@encMethod:
+
+
+<!-- ##### FUNCTION xmlSecSignedInfoAddSignMethod ##### -->
+<para>
+
+</para>
+
+@signedInfoNode:
+@signMethod:
+@Returns:
+<!-- # Unused Parameters # -->
+@encMethod:
+
+
+<!-- ##### FUNCTION xmlSecSignedInfoAddReference ##### -->
+<para>
+
+</para>
+
+@signedInfoNode:
+@id:
+@uri:
+@type:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecReferenceAddDigestMethod ##### -->
+<para>
+
+</para>
+
+@refNode:
+@digestMethod:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecReferenceAddTransform ##### -->
+<para>
+
+</para>
+
+@refNode:
+@transform:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecObjectAddSignProperties ##### -->
+<para>
+
+</para>
+
+@objectNode:
+@id:
+@target:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecObjectAddManifest ##### -->
+<para>
+
+</para>
+
+@objectNode:
+@id:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecManifestAddReference ##### -->
+<para>
+
+</para>
+
+@manifestNode:
+@id:
+@uri:
+@type:
+@Returns:
+
+
diff --git a/docs/api-0.0.x/tmpl/xmlenc.sgml b/docs/api-0.0.x/tmpl/xmlenc.sgml
new file mode 100644
index 00000000..f99fa14e
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/xmlenc.sgml
@@ -0,0 +1,238 @@
+<!-- ##### SECTION Title ##### -->
+xmlenc.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The <ulink url="http://www.w3.org/Encryption/">XML Encrypiton</ulink>
+standard implementation.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT xmlSecEncCtx ##### -->
+<para>
+
+</para>
+
+@keysMngr:
+@encryptionMethod:
+@ignoreType:
+@certsVerificationTime:
+
+<!-- ##### FUNCTION xmlSecEncCtxCreate ##### -->
+<para>
+
+</para>
+
+@keysMngr:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncCtxDestroy ##### -->
+<para>
+
+</para>
+
+@ctx:
+
+
+<!-- ##### FUNCTION xmlSecEncryptMemory ##### -->
+<para>
+
+</para>
+
+@ctx:
+@context:
+@key:
+@encNode:
+@buf:
+@size:
+@result:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncryptUri ##### -->
+<para>
+
+</para>
+
+@ctx:
+@context:
+@key:
+@encNode:
+@uri:
+@result:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncryptXmlNode ##### -->
+<para>
+
+</para>
+
+@ctx:
+@context:
+@key:
+@encNode:
+@src:
+@result:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecDecrypt ##### -->
+<para>
+
+</para>
+
+@ctx:
+@context:
+@key:
+@encNode:
+@result:
+@Returns:
+<!-- # Unused Parameters # -->
+@encDataNode:
+
+
+<!-- ##### STRUCT xmlSecEncResult ##### -->
+<para>
+
+</para>
+
+@ctx:
+@context:
+@self:
+@encrypt:
+@id:
+@type:
+@mimeType:
+@encoding:
+@encryptionMethod:
+@key:
+@buffer:
+@replaced:
+
+<!-- ##### FUNCTION xmlSecEncResultCreate ##### -->
+<para>
+
+</para>
+
+@ctx:
+@context:
+@encrypt:
+@node:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncResultDestroy ##### -->
+<para>
+
+</para>
+
+@result:
+
+
+<!-- ##### FUNCTION xmlSecEncResultDebugDump ##### -->
+<para>
+
+</para>
+
+@result:
+@output:
+
+
+<!-- ##### FUNCTION xmlSecEncDataCreate ##### -->
+<para>
+
+</para>
+
+@id:
+@type:
+@mimeType:
+@encoding:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncDataDestroy ##### -->
+<para>
+
+</para>
+
+@encNode:
+
+
+<!-- ##### FUNCTION xmlSecEncDataAddEncMethod ##### -->
+<para>
+
+</para>
+
+@encNode:
+@encMethod:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncDataAddKeyInfo ##### -->
+<para>
+
+</para>
+
+@encNode:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncDataAddEncProperties ##### -->
+<para>
+
+</para>
+
+@encNode:
+@id:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncDataAddEncProperty ##### -->
+<para>
+
+</para>
+
+@encNode:
+@id:
+@target:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncDataAddCipherValue ##### -->
+<para>
+
+</para>
+
+@encNode:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncDataAddCipherReference ##### -->
+<para>
+
+</para>
+
+@encNode:
+@uri:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecCipherReferenceAddTransform ##### -->
+<para>
+
+</para>
+
+@encNode:
+@transform:
+@Returns:
+
+
diff --git a/docs/api-0.0.x/tmpl/xmlenc.sgml.bak b/docs/api-0.0.x/tmpl/xmlenc.sgml.bak
new file mode 100644
index 00000000..a6d6d6a1
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/xmlenc.sgml.bak
@@ -0,0 +1,237 @@
+<!-- ##### SECTION Title ##### -->
+xmlenc.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The <ulink url="http://www.w3.org/Encryption/">XML Encrypiton</ulink>
+standard implementation.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT xmlSecEncCtx ##### -->
+<para>
+
+</para>
+
+@keysMngr:
+@encryptionMethod:
+@ignoreType:
+
+<!-- ##### FUNCTION xmlSecEncCtxCreate ##### -->
+<para>
+
+</para>
+
+@keysMngr:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncCtxDestroy ##### -->
+<para>
+
+</para>
+
+@ctx:
+
+
+<!-- ##### FUNCTION xmlSecEncryptMemory ##### -->
+<para>
+
+</para>
+
+@ctx:
+@context:
+@key:
+@encNode:
+@buf:
+@size:
+@result:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncryptUri ##### -->
+<para>
+
+</para>
+
+@ctx:
+@context:
+@key:
+@encNode:
+@uri:
+@result:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncryptXmlNode ##### -->
+<para>
+
+</para>
+
+@ctx:
+@context:
+@key:
+@encNode:
+@src:
+@result:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecDecrypt ##### -->
+<para>
+
+</para>
+
+@ctx:
+@context:
+@key:
+@encNode:
+@result:
+@Returns:
+<!-- # Unused Parameters # -->
+@encDataNode:
+
+
+<!-- ##### STRUCT xmlSecEncResult ##### -->
+<para>
+
+</para>
+
+@ctx:
+@context:
+@self:
+@encrypt:
+@id:
+@type:
+@mimeType:
+@encoding:
+@encryptionMethod:
+@key:
+@buffer:
+@replaced:
+
+<!-- ##### FUNCTION xmlSecEncResultCreate ##### -->
+<para>
+
+</para>
+
+@ctx:
+@context:
+@encrypt:
+@node:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncResultDestroy ##### -->
+<para>
+
+</para>
+
+@result:
+
+
+<!-- ##### FUNCTION xmlSecEncResultDebugDump ##### -->
+<para>
+
+</para>
+
+@result:
+@output:
+
+
+<!-- ##### FUNCTION xmlSecEncDataCreate ##### -->
+<para>
+
+</para>
+
+@id:
+@type:
+@mimeType:
+@encoding:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncDataDestroy ##### -->
+<para>
+
+</para>
+
+@encNode:
+
+
+<!-- ##### FUNCTION xmlSecEncDataAddEncMethod ##### -->
+<para>
+
+</para>
+
+@encNode:
+@encMethod:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncDataAddKeyInfo ##### -->
+<para>
+
+</para>
+
+@encNode:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncDataAddEncProperties ##### -->
+<para>
+
+</para>
+
+@encNode:
+@id:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncDataAddEncProperty ##### -->
+<para>
+
+</para>
+
+@encNode:
+@id:
+@target:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncDataAddCipherValue ##### -->
+<para>
+
+</para>
+
+@encNode:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecEncDataAddCipherReference ##### -->
+<para>
+
+</para>
+
+@encNode:
+@uri:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecCipherReferenceAddTransform ##### -->
+<para>
+
+</para>
+
+@encNode:
+@transform:
+@Returns:
+
+
diff --git a/docs/api-0.0.x/tmpl/xmlsec-unused.sgml b/docs/api-0.0.x/tmpl/xmlsec-unused.sgml
new file mode 100644
index 00000000..7ee21820
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/xmlsec-unused.sgml
@@ -0,0 +1,242 @@
+<!-- ##### MACRO ATTRIBUTE_UNUSED ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO extern ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION xmlSecAddIdAttributeName ##### -->
+<para>
+
+</para>
+
+@id:
+@Returns:
+
+<!-- ##### FUNCTION xmlSecBase64CtxInit ##### -->
+<para>
+
+</para>
+
+@ctx:
+@Returns:
+
+<!-- ##### STRUCT xmlSecBinTransformIdStruct ##### -->
+<para>
+
+</para>
+
+@type:
+@usage:
+@href:
+@create:
+@destroy:
+@read:
+@keyId:
+@encryption:
+@decryption:
+@binSubType:
+@addBinKey:
+@readBin:
+@writeBin:
+@flushBin:
+
+<!-- ##### STRUCT xmlSecBufferedTransformIdStruct ##### -->
+<para>
+
+</para>
+
+@type:
+@usage:
+@href:
+@create:
+@destroy:
+@read:
+@keyId:
+@encryption:
+@decryption:
+@binSubType:
+@addBinKey:
+@readBin:
+@writeBin:
+@flushBin:
+@bufferedProcess:
+
+<!-- ##### STRUCT xmlSecC14NTransformIdStruct ##### -->
+<para>
+
+</para>
+
+@type:
+@usage:
+@href:
+@create:
+@destroy:
+@read:
+@executeC14N:
+
+<!-- ##### STRUCT xmlSecCipherTransformIdStruct ##### -->
+<para>
+
+</para>
+
+@type:
+@usage:
+@href:
+@create:
+@destroy:
+@read:
+@keyId:
+@encryption:
+@decryption:
+@binSubType:
+@addBinKey:
+@readBin:
+@writeBin:
+@flushBin:
+@cipherUpdate:
+@cipherFinal:
+@keySize:
+@ivSize:
+@bufInSize:
+@bufOutSize:
+
+<!-- ##### FUNCTION xmlSecClearIdAttributeNames ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT xmlSecDigestTransformIdStruct ##### -->
+<para>
+
+</para>
+
+@type:
+@usage:
+@href:
+@create:
+@destroy:
+@read:
+@keyId:
+@encryption:
+@decryption:
+@binSubType:
+@addBinKey:
+@readBin:
+@writeBin:
+@flushBin:
+@digestUpdate:
+@digestSign:
+@digestVerify:
+
+<!-- ##### FUNCTION xmlSecFindNodeById ##### -->
+<para>
+
+</para>
+
+@parent:
+@id:
+@Returns:
+
+<!-- ##### FUNCTION xmlSecGetChildNodeSet ##### -->
+<para>
+
+</para>
+
+@parent:
+@nodeSet:
+@withComments:
+@Returns:
+
+<!-- ##### STRUCT xmlSecKeyIdStruct ##### -->
+<para>
+
+</para>
+
+@keyValueNodeName:
+@keyValueNodeNs:
+@create:
+@destroy:
+@duplicate:
+@read:
+@write:
+@readBin:
+@writeBin:
+
+<!-- ##### FUNCTION xmlSecNodeSetContain ##### -->
+<para>
+
+</para>
+
+@nset:
+@node:
+@parent:
+@Returns:
+
+<!-- ##### FUNCTION xmlSecTransformAddKey ##### -->
+<para>
+
+</para>
+
+@transform:
+@key:
+@Returns:
+
+<!-- ##### STRUCT xmlSecTransformIdStruct ##### -->
+<para>
+
+</para>
+
+@type:
+@usage:
+@href:
+@create:
+@destroy:
+@read:
+
+<!-- ##### TYPEDEF xmlSecX509DataPtr ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### TYPEDEF xmlSecX509StorePtr ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### VARIABLE xmlSecXPathAlt ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT xmlSecXmlTransformIdStruct ##### -->
+<para>
+
+</para>
+
+@type:
+@usage:
+@href:
+@create:
+@destroy:
+@read:
+@executeXml:
+
+<!-- ##### FUNCTION xmlSecXmlTransformSetHere ##### -->
+<para>
+
+</para>
+
+@transform:
+@here:
+@trasnform:
+
diff --git a/docs/api-0.0.x/tmpl/xmlsec.sgml b/docs/api-0.0.x/tmpl/xmlsec.sgml
new file mode 100644
index 00000000..daba1074
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/xmlsec.sgml
@@ -0,0 +1,30 @@
+<!-- ##### SECTION Title ##### -->
+xmlsec.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The library initialization/cleanup functions.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### FUNCTION xmlSecInit ##### -->
+<para>
+
+</para>
+
+
+
+<!-- ##### FUNCTION xmlSecShutdown ##### -->
+<para>
+
+</para>
+
+
+
diff --git a/docs/api-0.0.x/tmpl/xmltree.sgml b/docs/api-0.0.x/tmpl/xmltree.sgml
new file mode 100644
index 00000000..103c770d
--- /dev/null
+++ b/docs/api-0.0.x/tmpl/xmltree.sgml
@@ -0,0 +1,193 @@
+<!-- ##### SECTION Title ##### -->
+xmltree.h
+
+<!-- ##### SECTION Short_Description ##### -->
+The XML tree helper functions.
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### FUNCTION xmlSecParseFile ##### -->
+<para>
+
+</para>
+
+@filename:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecParseMemory ##### -->
+<para>
+
+</para>
+
+@buffer:
+@size:
+@recovery:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecParseMemoryExt ##### -->
+<para>
+
+</para>
+
+@prefix:
+@prefixSize:
+@buffer:
+@bufferSize:
+@postfix:
+@postfixSize:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecCheckNodeName ##### -->
+<para>
+
+</para>
+
+@cur:
+@name:
+@ns:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecGetNextElementNode ##### -->
+<para>
+
+</para>
+
+@cur:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecFindChild ##### -->
+<para>
+
+</para>
+
+@parent:
+@name:
+@ns:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecFindParent ##### -->
+<para>
+
+</para>
+
+@cur:
+@name:
+@ns:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecFindNode ##### -->
+<para>
+
+</para>
+
+@parent:
+@name:
+@ns:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecAddChild ##### -->
+<para>
+
+</para>
+
+@parent:
+@name:
+@ns:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecAddNextSibling ##### -->
+<para>
+
+</para>
+
+@node:
+@name:
+@ns:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecAddPrevSibling ##### -->
+<para>
+
+</para>
+
+@node:
+@name:
+@ns:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecReplaceNode ##### -->
+<para>
+
+</para>
+
+@node:
+@newNode:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecReplaceContent ##### -->
+<para>
+
+</para>
+
+@node:
+@newNode:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecReplaceNodeBuffer ##### -->
+<para>
+
+</para>
+
+@node:
+@buffer:
+@size:
+@Returns:
+
+
+<!-- ##### FUNCTION xmlSecAddIDs ##### -->
+<para>
+
+</para>
+
+@doc:
+@cur:
+@ids:
+
+
+<!-- ##### MACRO xmlSecGetHex ##### -->
+<para>
+
+</para>
+
+@c:
+
+
+<!-- ##### MACRO xmlSecIsHex ##### -->
+<para>
+
+</para>
+
+@c:
+
+
diff --git a/docs/api-0.0.x/xmlsec-base64.html b/docs/api-0.0.x/xmlsec-base64.html
new file mode 100644
index 00000000..37be716f
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-base64.html
@@ -0,0 +1,1080 @@
+<HTML
+><HEAD
+><TITLE
+>base64.h</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="XML Security Library Reference Manual"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="XML Security Library Internal Functions Reference"
+HREF="xmlsec-ref-int.html"><LINK
+REL="PREVIOUS"
+TITLE="XML Security Library Internal Functions Reference"
+HREF="xmlsec-ref-int.html"><LINK
+REL="NEXT"
+TITLE="bn.h"
+HREF="xmlsec-bn.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="4"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="5"
+>XML Security Library Reference Manual</FONT
+></TH
+></TR
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-ref-int.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref-int.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-bn.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+></TABLE
+></DIV
+><H1
+><A
+NAME="XMLSEC-BASE64"
+></A
+>base64.h</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN4979"
+></A
+><H2
+>Name</H2
+>base64.h&nbsp;--&nbsp;The BASE64 encode/decode functions.</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN4982"
+></A
+><H2
+>Synopsis</H2
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="SYNOPSIS"
+>&#13;
+
+<GTKDOCLINK
+HREF="XMLSECBASE64CTXPTR"
+>xmlSecBase64CtxPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-base64.html#XMLSECBASE64CTXCREATE"
+>xmlSecBase64CtxCreate</A
+> (int encode,
+ int columns);
+void <A
+HREF="xmlsec-base64.html#XMLSECBASE64CTXDESTROY"
+>xmlSecBase64CtxDestroy</A
+> (<GTKDOCLINK
+HREF="XMLSECBASE64CTXPTR"
+>xmlSecBase64CtxPtr</GTKDOCLINK
+> ctx);
+int <A
+HREF="xmlsec-base64.html#XMLSECBASE64CTXUPDATE"
+>xmlSecBase64CtxUpdate</A
+> (<GTKDOCLINK
+HREF="XMLSECBASE64CTXPTR"
+>xmlSecBase64CtxPtr</GTKDOCLINK
+> ctx,
+ unsigned char *in,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> inLen,
+ unsigned char *out,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> outLen);
+int <A
+HREF="xmlsec-base64.html#XMLSECBASE64CTXFINAL"
+>xmlSecBase64CtxFinal</A
+> (<GTKDOCLINK
+HREF="XMLSECBASE64CTXPTR"
+>xmlSecBase64CtxPtr</GTKDOCLINK
+> ctx,
+ unsigned char *out,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> outLen);
+<GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+>* <A
+HREF="xmlsec-base64.html#XMLSECBASE64ENCODE"
+>xmlSecBase64Encode</A
+> (unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> len,
+ int columns);
+int <A
+HREF="xmlsec-base64.html#XMLSECBASE64DECODE"
+>xmlSecBase64Decode</A
+> (const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *str,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> len);</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN5002"
+></A
+><H2
+>Description</H2
+><P
+></P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN5005"
+></A
+><H2
+>Details</H2
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5007"
+></A
+><H3
+><A
+NAME="XMLSECBASE64CTXCREATE"
+></A
+>xmlSecBase64CtxCreate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECBASE64CTXPTR"
+>xmlSecBase64CtxPtr</GTKDOCLINK
+> xmlSecBase64CtxCreate (int encode,
+ int columns);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Creates new base64 context.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5014"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>encode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the encode/decode flag (1 - encode, 0 - decode) </TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>columns</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the max line length.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>a pointer to newly created <GTKDOCLINK
+HREF="XMLSECBASE64CTX"
+>xmlSecBase64Ctx</GTKDOCLINK
+> structure
+or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5032"
+></A
+><H3
+><A
+NAME="XMLSECBASE64CTXDESTROY"
+></A
+>xmlSecBase64CtxDestroy ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecBase64CtxDestroy (<GTKDOCLINK
+HREF="XMLSECBASE64CTXPTR"
+>xmlSecBase64CtxPtr</GTKDOCLINK
+> ctx);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Destroys base64 context.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5039"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ctx</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <GTKDOCLINK
+HREF="XMLSECBASE64CTX"
+>xmlSecBase64Ctx</GTKDOCLINK
+> structure.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5049"
+></A
+><H3
+><A
+NAME="XMLSECBASE64CTXUPDATE"
+></A
+>xmlSecBase64CtxUpdate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecBase64CtxUpdate (<GTKDOCLINK
+HREF="XMLSECBASE64CTXPTR"
+>xmlSecBase64CtxPtr</GTKDOCLINK
+> ctx,
+ unsigned char *in,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> inLen,
+ unsigned char *out,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> outLen);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Encodes/decodes the next piece of data from input buffer.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5058"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ctx</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <GTKDOCLINK
+HREF="XMLSECBASE64CTX"
+>xmlSecBase64Ctx</GTKDOCLINK
+> structure</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>in</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input buffer</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>inLen</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input buffer size</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>out</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the output buffer</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>outLen</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the output buffer size</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the number of bytes written to output buffer or
+-1 if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5088"
+></A
+><H3
+><A
+NAME="XMLSECBASE64CTXFINAL"
+></A
+>xmlSecBase64CtxFinal ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecBase64CtxFinal (<GTKDOCLINK
+HREF="XMLSECBASE64CTXPTR"
+>xmlSecBase64CtxPtr</GTKDOCLINK
+> ctx,
+ unsigned char *out,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> outLen);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Encodes/decodes the last piece of data stored in the context
+and finalizes the result.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5096"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ctx</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <GTKDOCLINK
+HREF="XMLSECBASE64CTX"
+>xmlSecBase64Ctx</GTKDOCLINK
+> structure</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>out</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the output buffer</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>outLen</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the output buffer size</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the number of bytes written to output buffer or
+-1 if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5118"
+></A
+><H3
+><A
+NAME="XMLSECBASE64ENCODE"
+></A
+>xmlSecBase64Encode ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+>* xmlSecBase64Encode (unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> len,
+ int columns);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Encodes the data from input buffer and allocates the string for the result.
+The caller is responsible for freeing returned buffer using
+<GTKDOCLINK
+HREF="XMLFREE"
+>xmlFree</GTKDOCLINK
+>() function.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5127"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>len</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input buffer size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>columns</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the output max line length (if 0 then no line breaks
+ would be inserted)</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>newly allocated string with base64 encoded data
+or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5148"
+></A
+><H3
+><A
+NAME="XMLSECBASE64DECODE"
+></A
+>xmlSecBase64Decode ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecBase64Decode (const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *str,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> len);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Decodes input base64 encoded string and puts result into
+the output buffer.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5156"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>str</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input buffer with base64 encoded string</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the output buffer</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>len</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the output buffer size</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the number of bytes written to the output buffer or
+a negative value if an error occurs </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-ref-int.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref-int.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-bn.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>XML Security Library Internal Functions Reference</B
+></FONT
+></TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>bn.h</B
+></FONT
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/docs/api-0.0.x/xmlsec-bn.html b/docs/api-0.0.x/xmlsec-bn.html
new file mode 100644
index 00000000..c4fc693b
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-bn.html
@@ -0,0 +1,791 @@
+<HTML
+><HEAD
+><TITLE
+>bn.h</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="XML Security Library Reference Manual"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="XML Security Library Internal Functions Reference"
+HREF="xmlsec-ref-int.html"><LINK
+REL="PREVIOUS"
+TITLE="base64.h"
+HREF="xmlsec-base64.html"><LINK
+REL="NEXT"
+TITLE="buffered.h"
+HREF="xmlsec-buffered.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="4"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="5"
+>XML Security Library Reference Manual</FONT
+></TH
+></TR
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-base64.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref-int.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-buffered.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+></TABLE
+></DIV
+><H1
+><A
+NAME="XMLSEC-BN"
+></A
+>bn.h</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN5182"
+></A
+><H2
+>Name</H2
+>bn.h&nbsp;--&nbsp;The big numbers helper functions.</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN5185"
+></A
+><H2
+>Synopsis</H2
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="SYNOPSIS"
+>&#13;
+
+<GTKDOCLINK
+HREF="BIGNUM-CAPS"
+>BIGNUM</GTKDOCLINK
+>* <A
+HREF="xmlsec-bn.html#XMLSECCRYPTOBINARY2BN"
+>xmlSecCryptoBinary2BN</A
+> (const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *str,
+ <GTKDOCLINK
+HREF="BIGNUM-CAPS"
+>BIGNUM</GTKDOCLINK
+> **a);
+<GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+>* <A
+HREF="xmlsec-bn.html#XMLSECBN2CRYPTOBINARY"
+>xmlSecBN2CryptoBinary</A
+> (const <GTKDOCLINK
+HREF="BIGNUM-CAPS"
+>BIGNUM</GTKDOCLINK
+> *a);
+<GTKDOCLINK
+HREF="BIGNUM-CAPS"
+>BIGNUM</GTKDOCLINK
+>* <A
+HREF="xmlsec-bn.html#XMLSECNODEGETBNVALUE"
+>xmlSecNodeGetBNValue</A
+> (const <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> cur,
+ <GTKDOCLINK
+HREF="BIGNUM-CAPS"
+>BIGNUM</GTKDOCLINK
+> **a);
+int <A
+HREF="xmlsec-bn.html#XMLSECNODESETBNVALUE"
+>xmlSecNodeSetBNValue</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> cur,
+ const <GTKDOCLINK
+HREF="BIGNUM-CAPS"
+>BIGNUM</GTKDOCLINK
+> *a,
+ int addLineBreaks);</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN5202"
+></A
+><H2
+>Description</H2
+><P
+></P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN5205"
+></A
+><H2
+>Details</H2
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5207"
+></A
+><H3
+><A
+NAME="XMLSECCRYPTOBINARY2BN"
+></A
+>xmlSecCryptoBinary2BN ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="BIGNUM-CAPS"
+>BIGNUM</GTKDOCLINK
+>* xmlSecCryptoBinary2BN (const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *str,
+ <GTKDOCLINK
+HREF="BIGNUM-CAPS"
+>BIGNUM</GTKDOCLINK
+> **a);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Converts string from CryptoBinary format
+(http://www.w3.org/TR/xmldsig-core/<GTKDOCLINK
+HREF="SEC-CRYPTOBINARY"
+>sec-CryptoBinary</GTKDOCLINK
+>)
+to a BIGNUM. If no BIGNUM buffer provided then a new
+BIGNUM is created (caller is responsible for freeing it).</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5217"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>str</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the CryptoBinary string.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>a</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the buffer to store the result.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>a pointer to BIGNUM produced from CryptoBinary string
+or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5234"
+></A
+><H3
+><A
+NAME="XMLSECBN2CRYPTOBINARY"
+></A
+>xmlSecBN2CryptoBinary ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+>* xmlSecBN2CryptoBinary (const <GTKDOCLINK
+HREF="BIGNUM-CAPS"
+>BIGNUM</GTKDOCLINK
+> *a);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Converts BIGNUM to CryptoBinary string
+(http://www.w3.org/TR/xmldsig-core/<GTKDOCLINK
+HREF="SEC-CRYPTOBINARY"
+>sec-CryptoBinary</GTKDOCLINK
+>).</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5243"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>a</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to BIGNUM.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>newly allocated string (caller is responsible for
+freeing it using <GTKDOCLINK
+HREF="XMLFREE"
+>xmlFree</GTKDOCLINK
+>() function) or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5257"
+></A
+><H3
+><A
+NAME="XMLSECNODEGETBNVALUE"
+></A
+>xmlSecNodeGetBNValue ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="BIGNUM-CAPS"
+>BIGNUM</GTKDOCLINK
+>* xmlSecNodeGetBNValue (const <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> cur,
+ <GTKDOCLINK
+HREF="BIGNUM-CAPS"
+>BIGNUM</GTKDOCLINK
+> **a);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Converts the node content from CryptoBinary format
+(http://www.w3.org/TR/xmldsig-core/<GTKDOCLINK
+HREF="SEC-CRYPTOBINARY"
+>sec-CryptoBinary</GTKDOCLINK
+>)
+to a BIGNUM. If no BIGNUM buffer provided then a new
+BIGNUM is created (caller is responsible for freeing it).</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5267"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>cur</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the poitner to an XML node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>a</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the BIGNUM buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>a pointer to BIGNUM produced from CryptoBinary string
+or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5284"
+></A
+><H3
+><A
+NAME="XMLSECNODESETBNVALUE"
+></A
+>xmlSecNodeSetBNValue ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecNodeSetBNValue (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> cur,
+ const <GTKDOCLINK
+HREF="BIGNUM-CAPS"
+>BIGNUM</GTKDOCLINK
+> *a,
+ int addLineBreaks);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Converts BIGNUM to CryptoBinary string
+(http://www.w3.org/TR/xmldsig-core/<GTKDOCLINK
+HREF="SEC-CRYPTOBINARY"
+>sec-CryptoBinary</GTKDOCLINK
+>)
+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
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5293"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>cur</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to an XML node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>a</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the BIGNUM.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>addLineBreaks</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> if the flag is equal to 1 then
+ linebreaks will be added before and after
+ new buffer content.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or -1 otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-base64.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref-int.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-buffered.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>base64.h</B
+></FONT
+></TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>buffered.h</B
+></FONT
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/docs/api-0.0.x/xmlsec-buffered.html b/docs/api-0.0.x/xmlsec-buffered.html
new file mode 100644
index 00000000..7e6cab7a
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-buffered.html
@@ -0,0 +1,1227 @@
+<HTML
+><HEAD
+><TITLE
+>buffered.h</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="XML Security Library Reference Manual"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="XML Security Library Internal Functions Reference"
+HREF="xmlsec-ref-int.html"><LINK
+REL="PREVIOUS"
+TITLE="bn.h"
+HREF="xmlsec-bn.html"><LINK
+REL="NEXT"
+TITLE="ciphers.h"
+HREF="xmlsec-ciphers.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="4"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="5"
+>XML Security Library Reference Manual</FONT
+></TH
+></TR
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-bn.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref-int.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-ciphers.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+></TABLE
+></DIV
+><H1
+><A
+NAME="XMLSEC-BUFFERED"
+></A
+>buffered.h</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN5319"
+></A
+><H2
+>Name</H2
+>buffered.h&nbsp;--&nbsp;The buffered transform.</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN5322"
+></A
+><H2
+>Synopsis</H2
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="SYNOPSIS"
+>&#13;
+
+struct <A
+HREF="xmlsec-buffered.html#XMLSECBUFFEREDTRANSFORM"
+>xmlSecBufferedTransform</A
+>;
+typedef <A
+HREF="xmlsec-buffered.html#XMLSECBUFFEREDTRANSFORMID"
+>xmlSecBufferedTransformId</A
+>;
+int (<A
+HREF="xmlsec-buffered.html#XMLSECBUFFEREDPROCESSMETHOD"
+>*xmlSecBufferedProcessMethod</A
+>) (<GTKDOCLINK
+HREF="XMLSECBUFFEREDTRANSFORMPTR"
+>xmlSecBufferedTransformPtr</GTKDOCLINK
+> transform,
+ <GTKDOCLINK
+HREF="XMLBUFFERPTR"
+>xmlBufferPtr</GTKDOCLINK
+> buffer);
+int <A
+HREF="xmlsec-buffered.html#XMLSECBUFFEREDTRANSFORMREAD"
+>xmlSecBufferedTransformRead</A
+> (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);
+int <A
+HREF="xmlsec-buffered.html#XMLSECBUFFEREDTRANSFORMWRITE"
+>xmlSecBufferedTransformWrite</A
+> (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);
+int <A
+HREF="xmlsec-buffered.html#XMLSECBUFFEREDTRANSFORMFLUSH"
+>xmlSecBufferedTransformFlush</A
+> (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform);
+void <A
+HREF="xmlsec-buffered.html#XMLSECBUFFEREDDESTROY"
+>xmlSecBufferedDestroy</A
+> (<GTKDOCLINK
+HREF="XMLSECBUFFEREDTRANSFORMPTR"
+>xmlSecBufferedTransformPtr</GTKDOCLINK
+> buffered);
+int <A
+HREF="xmlsec-buffered.html#XMLSECBUFFEREDPROCESS"
+>xmlSecBufferedProcess</A
+> (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform,
+ <GTKDOCLINK
+HREF="XMLBUFFERPTR"
+>xmlBufferPtr</GTKDOCLINK
+> buffer);</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN5343"
+></A
+><H2
+>Description</H2
+><P
+></P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN5346"
+></A
+><H2
+>Details</H2
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5348"
+></A
+><H3
+><A
+NAME="XMLSECBUFFEREDTRANSFORM"
+></A
+>struct xmlSecBufferedTransform</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>struct xmlSecBufferedTransform {
+ /* same as for xmlSecTransform but id type changed */
+ xmlSecBufferedTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+
+ /* xmlSecBinTransform specific */
+ int encode;
+ xmlSecBinTransformPtr next;
+ xmlSecBinTransformPtr prev;
+ void *binData;
+
+ /* xmlSecBufferedTransform specific */
+ xmlBufferPtr buffer;
+};</PRE
+></TD
+></TR
+></TABLE
+><P
+>The buffered transform.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5354"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFF0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-buffered.html#XMLSECBUFFEREDTRANSFORMID"
+>xmlSecBufferedTransformId</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>id</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform id (pointer to <A
+HREF="xmlsec-transformsinternal.html#XMLSECBINTRANSFORMID"
+>xmlSecBinTransformId</A
+>).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMSTATUS"
+>xmlSecTransformStatus</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>status</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform status (ok/fail/unknown).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>int <TT
+CLASS="STRUCTFIELD"
+><I
+>dontDestroy</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the don't automatically destroy flag.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>void *<TT
+CLASS="STRUCTFIELD"
+><I
+>data</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to transform specific data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>int <TT
+CLASS="STRUCTFIELD"
+><I
+>encode</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> encode/decode (encrypt/decrypt) flag.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>next</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> next binary transform in the chain.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>prev</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> previous binary transform in the chain.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>void *<TT
+CLASS="STRUCTFIELD"
+><I
+>binData</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to binary transform speific data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLBUFFERPTR"
+>xmlBufferPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>buffer</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the internal buffer.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5401"
+></A
+><H3
+><A
+NAME="XMLSECBUFFEREDTRANSFORMID"
+></A
+>xmlSecBufferedTransformId</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>typedef const struct _xmlSecBufferedTransformIdStruct *xmlSecBufferedTransformId;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The buffered transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5407"
+></A
+><H3
+><A
+NAME="XMLSECBUFFEREDPROCESSMETHOD"
+></A
+>xmlSecBufferedProcessMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int (*xmlSecBufferedProcessMethod) (<GTKDOCLINK
+HREF="XMLSECBUFFEREDTRANSFORMPTR"
+>xmlSecBufferedTransformPtr</GTKDOCLINK
+> transform,
+ <GTKDOCLINK
+HREF="XMLBUFFERPTR"
+>xmlBufferPtr</GTKDOCLINK
+> buffer);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Processes the data in the buffer.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5415"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to buffered transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buffer</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to input/output buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 in success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5432"
+></A
+><H3
+><A
+NAME="XMLSECBUFFEREDTRANSFORMREAD"
+></A
+>xmlSecBufferedTransformRead ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecBufferedTransformRead (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Reads the all data from previous transform and returns
+to the caller.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5440"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to a buffered transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the output buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the output buffer size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the number of bytes in the buffer or negative value
+if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5461"
+></A
+><H3
+><A
+NAME="XMLSECBUFFEREDTRANSFORMWRITE"
+></A
+>xmlSecBufferedTransformWrite ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecBufferedTransformWrite (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds the data to the internal buffer.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5469"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the poiter to a buffered transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input data buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input data size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 if success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5490"
+></A
+><H3
+><A
+NAME="XMLSECBUFFEREDTRANSFORMFLUSH"
+></A
+>xmlSecBufferedTransformFlush ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecBufferedTransformFlush (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Writes internal data to previous transform.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5497"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to a buffered transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 if success or negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5510"
+></A
+><H3
+><A
+NAME="XMLSECBUFFEREDDESTROY"
+></A
+>xmlSecBufferedDestroy ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecBufferedDestroy (<GTKDOCLINK
+HREF="XMLSECBUFFEREDTRANSFORMPTR"
+>xmlSecBufferedTransformPtr</GTKDOCLINK
+> buffered);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Destroys the buffered transform.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5517"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buffered</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to a buffered transform.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5526"
+></A
+><H3
+><A
+NAME="XMLSECBUFFEREDPROCESS"
+></A
+>xmlSecBufferedProcess ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecBufferedProcess (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform,
+ <GTKDOCLINK
+HREF="XMLBUFFERPTR"
+>xmlBufferPtr</GTKDOCLINK
+> buffer);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Executes buffered transform.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5534"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to a buffered transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buffer</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the buffered transform result,</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>number of bytes processed or a negative value
+if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-bn.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref-int.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-ciphers.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>bn.h</B
+></FONT
+></TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>ciphers.h</B
+></FONT
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/docs/api-0.0.x/xmlsec-ciphers.html b/docs/api-0.0.x/xmlsec-ciphers.html
new file mode 100644
index 00000000..24bb1d5c
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-ciphers.html
@@ -0,0 +1,1703 @@
+<HTML
+><HEAD
+><TITLE
+>ciphers.h</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="XML Security Library Reference Manual"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="XML Security Library Internal Functions Reference"
+HREF="xmlsec-ref-int.html"><LINK
+REL="PREVIOUS"
+TITLE="buffered.h"
+HREF="xmlsec-buffered.html"><LINK
+REL="NEXT"
+TITLE="digests.h"
+HREF="xmlsec-digests.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="4"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="5"
+>XML Security Library Reference Manual</FONT
+></TH
+></TR
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-buffered.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref-int.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-digests.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+></TABLE
+></DIV
+><H1
+><A
+NAME="XMLSEC-CIPHERS"
+></A
+>ciphers.h</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN5556"
+></A
+><H2
+>Name</H2
+>ciphers.h&nbsp;--&nbsp;The ciphers transform.</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN5559"
+></A
+><H2
+>Synopsis</H2
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="SYNOPSIS"
+>&#13;
+
+struct <A
+HREF="xmlsec-ciphers.html#XMLSECCIPHERTRANSFORM"
+>xmlSecCipherTransform</A
+>;
+typedef <A
+HREF="xmlsec-ciphers.html#XMLSECCIPHERTRANSFORMID"
+>xmlSecCipherTransformId</A
+>;
+int (<A
+HREF="xmlsec-ciphers.html#XMLSECCIPHERUPDATEMETHOD"
+>*xmlSecCipherUpdateMethod</A
+>) (<GTKDOCLINK
+HREF="XMLSECCIPHERTRANSFORMPTR"
+>xmlSecCipherTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buffer,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);
+int (<A
+HREF="xmlsec-ciphers.html#XMLSECCIPHERFINALMETHOD"
+>*xmlSecCipherFinalMethod</A
+>) (<GTKDOCLINK
+HREF="XMLSECCIPHERTRANSFORMPTR"
+>xmlSecCipherTransformPtr</GTKDOCLINK
+> transform);
+int <A
+HREF="xmlsec-ciphers.html#XMLSECCIPHERTRANSFORMREAD"
+>xmlSecCipherTransformRead</A
+> (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);
+int <A
+HREF="xmlsec-ciphers.html#XMLSECCIPHERTRANSFORMWRITE"
+>xmlSecCipherTransformWrite</A
+> (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);
+int <A
+HREF="xmlsec-ciphers.html#XMLSECCIPHERTRANSFORMFLUSH"
+>xmlSecCipherTransformFlush</A
+> (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform);
+int <A
+HREF="xmlsec-ciphers.html#XMLSECEVPCIPHERUPDATE"
+>xmlSecEvpCipherUpdate</A
+> (<GTKDOCLINK
+HREF="XMLSECCIPHERTRANSFORMPTR"
+>xmlSecCipherTransformPtr</GTKDOCLINK
+> cipher,
+ unsigned char *buffer,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);
+int <A
+HREF="xmlsec-ciphers.html#XMLSECEVPCIPHERFINAL"
+>xmlSecEvpCipherFinal</A
+> (<GTKDOCLINK
+HREF="XMLSECCIPHERTRANSFORMPTR"
+>xmlSecCipherTransformPtr</GTKDOCLINK
+> cipher);
+int <A
+HREF="xmlsec-ciphers.html#XMLSECCIPHERUPDATE"
+>xmlSecCipherUpdate</A
+> (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buffer,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);
+int <A
+HREF="xmlsec-ciphers.html#XMLSECCIPHERFINAL"
+>xmlSecCipherFinal</A
+> (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform);</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN5587"
+></A
+><H2
+>Description</H2
+><P
+></P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN5590"
+></A
+><H2
+>Details</H2
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5592"
+></A
+><H3
+><A
+NAME="XMLSECCIPHERTRANSFORM"
+></A
+>struct xmlSecCipherTransform</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>struct xmlSecCipherTransform {
+ /* same as for xmlSecTransform but id type changed */
+ xmlSecCipherTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+
+ /* xmlSecBinTransform specific */
+ int encode;
+ xmlSecCipherTransformPtr next;
+ xmlSecCipherTransformPtr prev;
+ void *binData;
+
+ /* xmlSecCipherTransform specific */
+ unsigned char *bufIn;
+ unsigned char *bufOut;
+ EVP_CIPHER_CTX cipherCtx;
+ unsigned char *iv;
+ size_t ivPos;
+ void *cipherData;
+};</PRE
+></TD
+></TR
+></TABLE
+><P
+>The cipher (encrypt/decrypt) transform.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5598"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFF0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-ciphers.html#XMLSECCIPHERTRANSFORMID"
+>xmlSecCipherTransformId</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>id</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform id (pointer to <A
+HREF="xmlsec-transformsinternal.html#XMLSECBINTRANSFORMID"
+>xmlSecBinTransformId</A
+>).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMSTATUS"
+>xmlSecTransformStatus</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>status</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform status (ok/fail/unknown).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>int <TT
+CLASS="STRUCTFIELD"
+><I
+>dontDestroy</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the don't automatically destroy flag.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>void *<TT
+CLASS="STRUCTFIELD"
+><I
+>data</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to transform specific data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>int <TT
+CLASS="STRUCTFIELD"
+><I
+>encode</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> encode/decode (encrypt/decrypt) flag.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECCIPHERTRANSFORMPTR"
+>xmlSecCipherTransformPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>next</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> next binary transform in the chain.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECCIPHERTRANSFORMPTR"
+>xmlSecCipherTransformPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>prev</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> previous binary transform in the chain.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>void *<TT
+CLASS="STRUCTFIELD"
+><I
+>binData</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to binary transform speific data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>unsigned char *<TT
+CLASS="STRUCTFIELD"
+><I
+>bufIn</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to input buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>unsigned char *<TT
+CLASS="STRUCTFIELD"
+><I
+>bufOut</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to output buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="EVP-CIPHER-CTX-CAPS"
+>EVP_CIPHER_CTX</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>cipherCtx</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the EVP chiper context.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>unsigned char *<TT
+CLASS="STRUCTFIELD"
+><I
+>iv</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to IV.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>ivPos</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the position in IV (what was written out).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>void *<TT
+CLASS="STRUCTFIELD"
+><I
+>cipherData</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the chipher specific data.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5666"
+></A
+><H3
+><A
+NAME="XMLSECCIPHERTRANSFORMID"
+></A
+>xmlSecCipherTransformId</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>typedef const struct _xmlSecCipherTransformIdStruct *xmlSecCipherTransformId;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The cipher (encrypt/decrypt) transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5672"
+></A
+><H3
+><A
+NAME="XMLSECCIPHERUPDATEMETHOD"
+></A
+>xmlSecCipherUpdateMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int (*xmlSecCipherUpdateMethod) (<GTKDOCLINK
+HREF="XMLSECCIPHERTRANSFORMPTR"
+>xmlSecCipherTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buffer,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Encrypts/decrypts new chunk of data.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5680"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to cipher transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buffer</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the data size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5701"
+></A
+><H3
+><A
+NAME="XMLSECCIPHERFINALMETHOD"
+></A
+>xmlSecCipherFinalMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int (*xmlSecCipherFinalMethod) (<GTKDOCLINK
+HREF="XMLSECCIPHERTRANSFORMPTR"
+>xmlSecCipherTransformPtr</GTKDOCLINK
+> transform);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Finalizes encryption/decryption.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5708"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to cipher transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5721"
+></A
+><H3
+><A
+NAME="XMLSECCIPHERTRANSFORMREAD"
+></A
+>xmlSecCipherTransformRead ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecCipherTransformRead (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Reads data from previous transform, encrypts or decrypts them
+and returns in the output buffer.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5729"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to a cipher transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the output buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> tje output buffer size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the number of bytes in the buffer or negative value
+if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5750"
+></A
+><H3
+><A
+NAME="XMLSECCIPHERTRANSFORMWRITE"
+></A
+>xmlSecCipherTransformWrite ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecCipherTransformWrite (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Encrypts or decrypts the input data and writes them
+to the next transform.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5758"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the poiter to a cipher transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input data buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input data size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 if success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5779"
+></A
+><H3
+><A
+NAME="XMLSECCIPHERTRANSFORMFLUSH"
+></A
+>xmlSecCipherTransformFlush ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecCipherTransformFlush (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Writes the rest of data to previous transform.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5786"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to a cipher transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 if success or negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5799"
+></A
+><H3
+><A
+NAME="XMLSECEVPCIPHERUPDATE"
+></A
+>xmlSecEvpCipherUpdate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecEvpCipherUpdate (<GTKDOCLINK
+HREF="XMLSECCIPHERTRANSFORMPTR"
+>xmlSecCipherTransformPtr</GTKDOCLINK
+> cipher,
+ unsigned char *buffer,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Encrypts/decrypts new piece of data.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5807"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>cipher</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to EVP_* cipher transform. </TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buffer</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input buffer size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the number of bytes processed or a negative value
+if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5828"
+></A
+><H3
+><A
+NAME="XMLSECEVPCIPHERFINAL"
+></A
+>xmlSecEvpCipherFinal ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecEvpCipherFinal (<GTKDOCLINK
+HREF="XMLSECCIPHERTRANSFORMPTR"
+>xmlSecCipherTransformPtr</GTKDOCLINK
+> cipher);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Finalize encryption/decryption.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5835"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>cipher</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to EVP_* cipher transform. </TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the number of bytes processed or a negative value
+if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5848"
+></A
+><H3
+><A
+NAME="XMLSECCIPHERUPDATE"
+></A
+>xmlSecCipherUpdate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecCipherUpdate (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buffer,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Encrypts/decrypts new piece of data.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5856"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to cipher transform. </TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buffer</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input buffer size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the number of bytes processed or a negative value
+if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5877"
+></A
+><H3
+><A
+NAME="XMLSECCIPHERFINAL"
+></A
+>xmlSecCipherFinal ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecCipherFinal (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Finalize encryption/decryption.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5884"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to cipher transform. </TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the number of bytes processed or a negative value
+if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-buffered.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref-int.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-digests.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>buffered.h</B
+></FONT
+></TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>digests.h</B
+></FONT
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/docs/api-0.0.x/xmlsec-debug.html b/docs/api-0.0.x/xmlsec-debug.html
new file mode 100644
index 00000000..216f052f
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-debug.html
@@ -0,0 +1,452 @@
+<HTML
+><HEAD
+><TITLE
+>debug.h</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="XML Security Library Reference Manual"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="XML Security Library Reference"
+HREF="xmlsec-ref.html"><LINK
+REL="PREVIOUS"
+TITLE="errors.h"
+HREF="xmlsec-errors.html"><LINK
+REL="NEXT"
+TITLE="keyinfo.h"
+HREF="xmlsec-keyinfo.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="4"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="5"
+>XML Security Library Reference Manual</FONT
+></TH
+></TR
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-errors.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-keyinfo.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+></TABLE
+></DIV
+><H1
+><A
+NAME="XMLSEC-DEBUG"
+></A
+>debug.h</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN2113"
+></A
+><H2
+>Name</H2
+>debug.h&nbsp;--&nbsp;The usefull debugging functions.</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN2116"
+></A
+><H2
+>Synopsis</H2
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="SYNOPSIS"
+>&#13;
+
+void <A
+HREF="xmlsec-debug.html#XMLSECTIMERINIT"
+>xmlSecTimerInit</A
+> (void);
+void <A
+HREF="xmlsec-debug.html#XMLSECTIMERSTART"
+>xmlSecTimerStart</A
+> (void);
+void <A
+HREF="xmlsec-debug.html#XMLSECTIMEREND"
+>xmlSecTimerEnd</A
+> (void);
+<GTKDOCLINK
+HREF="DOUBLE"
+>double</GTKDOCLINK
+> <A
+HREF="xmlsec-debug.html#XMLSECTIMERGET"
+>xmlSecTimerGet</A
+> (void);</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN2124"
+></A
+><H2
+>Description</H2
+><P
+></P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN2127"
+></A
+><H2
+>Details</H2
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2129"
+></A
+><H3
+><A
+NAME="XMLSECTIMERINIT"
+></A
+>xmlSecTimerInit ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecTimerInit (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Resets the total time counter.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2135"
+></A
+><H3
+><A
+NAME="XMLSECTIMERSTART"
+></A
+>xmlSecTimerStart ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecTimerStart (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Starts timer.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2141"
+></A
+><H3
+><A
+NAME="XMLSECTIMEREND"
+></A
+>xmlSecTimerEnd ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecTimerEnd (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds the time from the last <A
+HREF="xmlsec-debug.html#XMLSECTIMERSTART"
+>xmlSecTimerStart</A
+>() function call
+to the total time counter.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2148"
+></A
+><H3
+><A
+NAME="XMLSECTIMERGET"
+></A
+>xmlSecTimerGet ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="DOUBLE"
+>double</GTKDOCLINK
+> xmlSecTimerGet (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Gets the current total time counter value in msec.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN2155"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the current total time in msec.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-errors.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-keyinfo.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>errors.h</B
+></FONT
+></TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>keyinfo.h</B
+></FONT
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/docs/api-0.0.x/xmlsec-decl-list.txt b/docs/api-0.0.x/xmlsec-decl-list.txt
new file mode 100644
index 00000000..e58ec908
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-decl-list.txt
@@ -0,0 +1,482 @@
+<SECTION>
+<FILE>base64</FILE>
+xmlSecBase64CtxCreate
+xmlSecBase64CtxDestroy
+xmlSecBase64CtxUpdate
+xmlSecBase64CtxFinal
+xmlSecBase64Encode
+xmlSecBase64Decode
+</SECTION>
+
+<SECTION>
+<FILE>bn</FILE>
+xmlSecCryptoBinary2BN
+xmlSecBN2CryptoBinary
+xmlSecNodeGetBNValue
+xmlSecNodeSetBNValue
+</SECTION>
+
+<SECTION>
+<FILE>buffered</FILE>
+xmlSecBufferedTransformId
+xmlSecBufferedProcessMethod
+xmlSecBufferedTransformIdStruct
+xmlSecBufferedTransform
+xmlSecBufferedTransformRead
+xmlSecBufferedTransformWrite
+xmlSecBufferedTransformFlush
+xmlSecBufferedDestroy
+xmlSecBufferedProcess
+</SECTION>
+
+<SECTION>
+<FILE>ciphers</FILE>
+xmlSecCipherTransformId
+xmlSecCipherUpdateMethod
+xmlSecCipherFinalMethod
+xmlSecCipherTransformIdStruct
+xmlSecCipherTransform
+xmlSecCipherTransformRead
+xmlSecCipherTransformWrite
+xmlSecCipherTransformFlush
+xmlSecEvpCipherUpdate
+xmlSecEvpCipherFinal
+xmlSecCipherUpdate
+xmlSecCipherFinal
+</SECTION>
+
+<SECTION>
+<FILE>debug</FILE>
+xmlSecTimerInit
+xmlSecTimerStart
+xmlSecTimerEnd
+xmlSecTimerGet
+</SECTION>
+
+<SECTION>
+<FILE>digests</FILE>
+xmlSecDigestTransformId
+xmlSecDigestUpdateMethod
+xmlSecDigestSignMethod
+xmlSecDigestVerifyMethod
+xmlSecDigestTransformIdStruct
+xmlSecDigestTransform
+xmlSecDigestSignNode
+xmlSecDigestVerifyNode
+xmlSecDigestSetPushMode
+xmlSecDigestUpdate
+xmlSecDigestSign
+xmlSecDigestVerify
+xmlSecDigestTransformRead
+xmlSecDigestTransformWrite
+xmlSecDigestTransformFlush
+</SECTION>
+
+<SECTION>
+<FILE>errors</FILE>
+XMLSEC_ERRORS_LIB
+XMLSEC_ERRORS_FUNCTION
+XMLSEC_ERRORS_R_MALLOC_FAILED
+XMLSEC_ERRORS_R_XMLSEC_FAILED
+XMLSEC_ERRORS_R_CRYPTO_FAILED
+XMLSEC_ERRORS_R_XML_FAILED
+XMLSEC_ERRORS_R_XSLT_FAILED
+XMLSEC_ERRORS_R_IO_FAILED
+XMLSEC_ERRORS_R_INVALID_TRANSFORM
+XMLSEC_ERRORS_R_INVALID_TRANSFORM_DATA
+XMLSEC_ERRORS_R_INVALID_TRANSFORM_OR_KEY
+XMLSEC_ERRORS_R_INVALID_KEY
+XMLSEC_ERRORS_R_INVALID_KEY_DATA
+XMLSEC_ERRORS_R_INVALID_KEY_SIZE
+XMLSEC_ERRORS_R_INVALID_KEY_ORIGIN
+XMLSEC_ERRORS_R_KEY_NOT_FOUND
+XMLSEC_ERRORS_R_INVALID_SIZE
+XMLSEC_ERRORS_R_INVALID_DATA
+XMLSEC_ERRORS_R_INVALID_TYPE
+XMLSEC_ERRORS_R_INVALID_USAGE
+XMLSEC_ERRORS_R_INVALID_NODE
+XMLSEC_ERRORS_R_INVALID_NODESET
+XMLSEC_ERRORS_R_INVALID_NODE_CONTENT
+XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE
+XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT
+XMLSEC_ERRORS_R_SAME_DOCUMENT_REQUIRED
+XMLSEC_ERRORS_R_NODE_NOT_FOUND
+XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL
+XMLSEC_ERRORS_R_CERT_VERIFY_FAILED
+XMLSEC_ERRORS_R_CERT_NOT_FOUND
+XMLSEC_ERRORS_R_CERT_REVOKED
+XMLSEC_ERRORS_R_CERT_ISSUER_FAILED
+XMLSEC_ERRORS_R_CERT_NOT_YET_VALID
+XMLSEC_ERRORS_R_CERT_HAS_EXPIRED
+XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE
+XMLSEC_ERRORS_R_ASSERTION
+XMLSEC_ERRORS_R_DISABLED
+xmlSecErrorsCallback
+xmlSecErrorsInit
+xmlSecErrorsShutdown
+xmlSecErrorsSetCallback
+xmlSecPrintErrorMessages
+XMLSEC_ERRORS_HERE
+xmlSecError
+xmlSecAssert
+xmlSecAssert2
+</SECTION>
+
+<SECTION>
+<FILE>io</FILE>
+xmlSecInputUri
+xmlSecIOInit
+xmlSecIOShutdown
+xmlSecInputUriTransformOpen
+xmlSecCleanupInputCallbacks
+xmlSecRegisterDefaultInputCallbacks
+xmlSecRegisterInputCallbacks
+</SECTION>
+
+<SECTION>
+<FILE>keyinfo</FILE>
+xmlSecKeyInfoNodeRead
+xmlSecKeyInfoNodeWrite
+xmlSecKeyInfoAddKeyName
+xmlSecKeyInfoAddKeyValue
+xmlSecKeyInfoAddX509Data
+xmlSecKeyInfoAddRetrievalMethod
+xmlSecRetrievalMethodAddTransform
+xmlSecKeyInfoAddEncryptedKey
+</SECTION>
+
+<SECTION>
+<FILE>keys</FILE>
+xmlSecKeyId
+xmlSecKeyType
+xmlSecKeyUsage
+xmlSecKeyOrigin
+xmlSecKeyOriginDefault
+xmlSecKeyOriginKeyManager
+xmlSecKeyOriginKeyName
+xmlSecKeyOriginKeyValue
+xmlSecKeyOriginRetrievalDocument
+xmlSecKeyOriginRetrievalRemote
+xmlSecKeyOriginX509
+xmlSecKeyOriginPGP
+xmlSecKeyOriginEncryptedKey
+xmlSecKeyOriginAll
+xmlSecKeyIdUnknown
+xmlSecKey
+xmlSecKeyCreate
+xmlSecKeyDestroy
+xmlSecKeyDuplicate
+xmlSecVerifyKey
+xmlSecKeyDebugDump
+xmlSecKeyDebugXmlDump
+xmlSecKeyReadPemCert
+xmlSecGetKeyCallback
+xmlSecFindKeyCallback
+xmlSecX509FindCallback
+xmlSecX509VerifyCallback
+xmlSecKeysMngr
+xmlSecKeysMngrGetKey
+</SECTION>
+
+<SECTION>
+<FILE>keysInternal</FILE>
+xmlSecKeyInifiteRetrivals
+xmlSecKeyCreateMethod
+xmlSecKeyDuplicateMethod
+xmlSecKeyDestroyMethod
+xmlSecKeyReadXmlMethod
+xmlSecKeyWriteXmlMethod
+xmlSecKeyReadBinaryMethod
+xmlSecKeyWriteBinaryMethod
+xmlSecKeyIdStruct
+xmlSecKeysInit
+xmlSecKeyIsValid
+xmlSecKeyCheckId
+xmlSecKeyCheckTransform
+xmlSecKeyReadXml
+xmlSecKeyWriteXml
+xmlSecKeyReadBin
+xmlSecKeyWriteBin
+</SECTION>
+
+<SECTION>
+<FILE>keysmngr</FILE>
+xmlSecSimpleKeysMngrCreate
+xmlSecSimpleKeysMngrDestroy
+xmlSecSimpleKeysMngrFindKey
+xmlSecSimpleKeysMngrAddKey
+xmlSecSimpleKeysMngrLoad
+xmlSecSimpleKeysMngrSave
+xmlSecSimpleKeysMngrLoadPemKey
+xmlSecSimpleKeysMngrX509Find
+xmlSecSimpleKeysMngrX509Verify
+xmlSecSimpleKeysMngrLoadPemCert
+xmlSecSimpleKeysMngrAddCertsDir
+xmlSecSimpleKeysMngrLoadPkcs12
+xmlSecSimpleKeysMngrSetCertsFlags
+xmlSecSimpleKeysMngrSetVerifyDepth
+</SECTION>
+
+<SECTION>
+<FILE>membuf</FILE>
+xmlSecMemBuf
+xmlSecMemBufTransformGetBuffer
+</SECTION>
+
+<SECTION>
+<FILE>nodeset</FILE>
+xmlSecNodeSetType
+xmlSecNodeSetOp
+xmlSecNodeSet
+xmlSecNodeSetWalkCallback
+xmlSecNodeSetCreate
+xmlSecNodeSetDestroy
+xmlSecNodeSetContains
+xmlSecNodeSetAdd
+xmlSecNodeSetAddList
+xmlSecNodeSetGetChildren
+xmlSecNodeSetWalk
+xmlSecNodeSetDebugDump
+</SECTION>
+
+<SECTION>
+<FILE>transforms</FILE>
+xmlSecTransformId
+xmlSecTransformUnknown
+xmlSecTransformStatus
+xmlSecEncAes128Cbc
+xmlSecEncAes192Cbc
+xmlSecEncAes256Cbc
+xmlSecKWAes128
+xmlSecKWAes192
+xmlSecKWAes256
+xmlSecAesKey
+xmlSecAesKeyGenerate
+XMLSEC_BASE64_LINESIZE
+xmlSecEncBase64Encode
+xmlSecEncBase64Decode
+xmlSecBase64EncodeSetLineSize
+xmlSecC14NInclusive
+xmlSecC14NInclusiveWithComments
+xmlSecC14NExclusive
+xmlSecC14NExclusiveWithComments
+xmlSecC14NExclAddInclNamespaces
+xmlSecEncDes3Cbc
+xmlSecKWDes3Cbc
+xmlSecDesKey
+xmlSecDesKeyGenerate
+xmlSecSignDsaSha1
+xmlSecDsaKey
+xmlSecDsaKeyGenerate
+xmlSecTransformEnveloped
+xmlSecMacHmacSha1
+xmlSecMacHmacRipeMd160
+xmlSecMacHmacMd5
+xmlSecHmacKey
+xmlSecHmacKeyGenerate
+xmlSecHmacAddOutputLength
+xmlSecDigestRipemd160
+xmlSecSignRsaSha1
+xmlSecEncRsaPkcs1
+xmlSecEncRsaOaep
+xmlSecRsaKey
+xmlSecRsaKeyGenerate
+xmlSecEncRsaOaepAddParam
+xmlSecDigestSha1
+xmlSecXPath2TransformType
+xmlSecTransformXPath
+xmlSecTransformXPath2
+xmlSecTransformXPointer
+xmlSecTransformXPathAdd
+xmlSecTransformXPath2Add
+xmlSecTransformXPointerAdd
+xmlSecTransformXslt
+xmlSecTransformXsltAdd
+</SECTION>
+
+<SECTION>
+<FILE>version</FILE>
+XMLSEC_VERSION
+XMLSEC_VERSION_MAJOR
+XMLSEC_VERSION_MINOR
+XMLSEC_VERSION_SUBMINOR
+XMLSEC_VERSION_INFO
+</SECTION>
+
+<SECTION>
+<FILE>transformsInternal</FILE>
+xmlSecUsageAny
+xmlSecUsageDSigC14N
+xmlSecUsageDSigTransform
+xmlSecUsageDSigDigest
+xmlSecUsageDSigSignature
+xmlSecUsageEncryptionMethod
+xmlSecTransformUsage
+xmlSecBinTransformId
+xmlSecXmlTransformId
+xmlSecC14NTransformId
+xmlSecTransformType
+xmlSecBinTransformSubType
+xmlSecTransformResult
+xmlSecTransformState
+xmlSecTransformStateCreate
+xmlSecTransformStateDestroy
+xmlSecTransformStateUpdate
+xmlSecTransformStateFinal
+xmlSecTransformCreateMethod
+xmlSecTransformDestroyMethod
+xmlSecTransformReadNodeMethod
+xmlSecTransformIdStruct
+xmlSecTransform
+xmlSecTransformIsValid
+xmlSecTransformCheckType
+xmlSecTransformCheckId
+xmlSecTransformsInit
+xmlSecTransformsNodeRead
+xmlSecTransformFind
+xmlSecTransformNodeRead
+xmlSecTransformNodeWrite
+xmlSecTransformCreate
+xmlSecTransformDestroy
+xmlSecTransformRead
+xmlSecBinTransformAddKeyMethod
+xmlSecBinTransformReadMethod
+xmlSecBinTransformWriteMethod
+xmlSecBinTransformFlushMethod
+xmlSecBinTransformIdStruct
+xmlSecBinTransform
+xmlSecBinTransformIdCheckKeyId
+xmlSecBinTransformIdGetKeyId
+xmlSecBinTransformCheckSubType
+xmlSecBinTransformIdGetEncKeyType
+xmlSecBinTransformIdGetDecKeyType
+xmlSecBinTransformAddKey
+xmlSecBinTransformRead
+xmlSecBinTransformWrite
+xmlSecBinTransformFlush
+xmlSecBinTransformAddAfter
+xmlSecBinTransformAddBefore
+xmlSecBinTransformRemove
+xmlSecBinTransformDestroyAll
+xmlSecBinTransformSetEncrypt
+xmlSecXmlTransformExecuteMethod
+xmlSecXmlTransformIdStruct
+xmlSecXmlTransform
+xmlSecXmlTransformExecute
+xmlSecC14NTransformExecuteMethod
+xmlSecC14NTransformIdStruct
+xmlSecC14NTransform
+xmlSecC14NTransformExecute
+</SECTION>
+
+<SECTION>
+<FILE>x509</FILE>
+xmlSecX509Data
+xmlSecX509Store
+xmlSecX509DataCreate
+xmlSecX509DataDestroy
+xmlSecX509DataGetCertsNumber
+xmlSecX509DataGetCrlsNumber
+xmlSecX509DataReadDerCert
+xmlSecX509DataWriteDerCert
+xmlSecX509DataReadDerCrl
+xmlSecX509DataWriteDerCrl
+xmlSecX509DataReadPemCert
+xmlSecX509DataDup
+xmlSecX509DataCreateKey
+xmlSecX509DataDebugDump
+xmlSecX509DataDebugXmlDump
+xmlSecX509StoreCreate
+xmlSecX509StoreDestroy
+xmlSecX509StoreFind
+xmlSecX509StoreVerify
+xmlSecX509StoreLoadPemCert
+xmlSecX509StoreAddCertsDir
+xmlSecPKCS12ReadKey
+xmlSecX509DataPtr
+xmlSecX509StorePtr
+</SECTION>
+
+<SECTION>
+<FILE>xmldsig</FILE>
+xmlSecDSigCtx
+xmlSecDSigResult
+xmlSecReferenceType
+xmlSecReferenceResult
+xmlSecDSigCtxCreate
+xmlSecDSigCtxDestroy
+xmlSecSignatureCreate
+xmlSecSignatureDestroy
+xmlSecSignatureAddSignedInfo
+xmlSecSignatureAddKeyInfo
+xmlSecSignatureAddObject
+xmlSecSignedInfoAddC14NMethod
+xmlSecSignedInfoAddSignMethod
+xmlSecSignedInfoAddReference
+xmlSecReferenceAddDigestMethod
+xmlSecReferenceAddTransform
+xmlSecObjectAddSignProperties
+xmlSecObjectAddManifest
+xmlSecManifestAddReference
+xmlSecDSigValidate
+xmlSecDSigGenerate
+xmlSecDSigResultCreate
+xmlSecDSigResultDestroy
+xmlSecDSigResultDebugDump
+xmlSecDSigResultDebugXmlDump
+</SECTION>
+
+<SECTION>
+<FILE>xmlenc</FILE>
+xmlSecEncCtx
+xmlSecEncResult
+xmlSecEncCtxCreate
+xmlSecEncCtxDestroy
+xmlSecEncryptMemory
+xmlSecEncryptUri
+xmlSecEncryptXmlNode
+xmlSecDecrypt
+xmlSecEncResultCreate
+xmlSecEncResultDestroy
+xmlSecEncResultDebugDump
+xmlSecEncResultDebugXmlDump
+xmlSecEncDataCreate
+xmlSecEncDataDestroy
+xmlSecEncDataAddEncMethod
+xmlSecEncDataAddKeyInfo
+xmlSecEncDataAddEncProperties
+xmlSecEncDataAddEncProperty
+xmlSecEncDataAddCipherValue
+xmlSecEncDataAddCipherReference
+xmlSecCipherReferenceAddTransform
+</SECTION>
+
+<SECTION>
+<FILE>xmlsec</FILE>
+extern
+xmlSecInit
+xmlSecShutdown
+ATTRIBUTE_UNUSED
+</SECTION>
+
+<SECTION>
+<FILE>xmltree</FILE>
+xmlSecParseFile
+xmlSecParseMemory
+xmlSecParseMemoryExt
+xmlSecCheckNodeName
+xmlSecGetNextElementNode
+xmlSecFindChild
+xmlSecFindParent
+xmlSecFindNode
+xmlSecAddChild
+xmlSecAddNextSibling
+xmlSecAddPrevSibling
+xmlSecReplaceNode
+xmlSecReplaceContent
+xmlSecReplaceNodeBuffer
+xmlSecAddIDs
+xmlSecIsHex
+xmlSecGetHex
+</SECTION>
+
diff --git a/docs/api-0.0.x/xmlsec-decl-list.txt.bak b/docs/api-0.0.x/xmlsec-decl-list.txt.bak
new file mode 100644
index 00000000..5db0987e
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-decl-list.txt.bak
@@ -0,0 +1,471 @@
+<SECTION>
+<FILE>base64</FILE>
+xmlSecBase64CtxCreate
+xmlSecBase64CtxDestroy
+xmlSecBase64CtxUpdate
+xmlSecBase64CtxFinal
+xmlSecBase64Encode
+xmlSecBase64Decode
+</SECTION>
+
+<SECTION>
+<FILE>bn</FILE>
+xmlSecCryptoBinary2BN
+xmlSecBN2CryptoBinary
+xmlSecNodeGetBNValue
+xmlSecNodeSetBNValue
+</SECTION>
+
+<SECTION>
+<FILE>buffered</FILE>
+xmlSecBufferedTransformId
+xmlSecBufferedProcessMethod
+xmlSecBufferedTransformIdStruct
+xmlSecBufferedTransform
+xmlSecBufferedTransformRead
+xmlSecBufferedTransformWrite
+xmlSecBufferedTransformFlush
+xmlSecBufferedDestroy
+xmlSecBufferedProcess
+</SECTION>
+
+<SECTION>
+<FILE>ciphers</FILE>
+xmlSecCipherTransformId
+xmlSecCipherUpdateMethod
+xmlSecCipherFinalMethod
+xmlSecCipherTransformIdStruct
+xmlSecCipherTransform
+xmlSecCipherTransformRead
+xmlSecCipherTransformWrite
+xmlSecCipherTransformFlush
+xmlSecEvpCipherUpdate
+xmlSecEvpCipherFinal
+xmlSecCipherUpdate
+xmlSecCipherFinal
+</SECTION>
+
+<SECTION>
+<FILE>debug</FILE>
+xmlSecTimerInit
+xmlSecTimerStart
+xmlSecTimerEnd
+xmlSecTimerGet
+</SECTION>
+
+<SECTION>
+<FILE>digests</FILE>
+xmlSecDigestTransformId
+xmlSecDigestUpdateMethod
+xmlSecDigestSignMethod
+xmlSecDigestVerifyMethod
+xmlSecDigestTransformIdStruct
+xmlSecDigestTransform
+xmlSecDigestSignNode
+xmlSecDigestVerifyNode
+xmlSecDigestSetPushMode
+xmlSecDigestUpdate
+xmlSecDigestSign
+xmlSecDigestVerify
+xmlSecDigestTransformRead
+xmlSecDigestTransformWrite
+xmlSecDigestTransformFlush
+</SECTION>
+
+<SECTION>
+<FILE>io</FILE>
+xmlSecInputUri
+xmlSecIOInit
+xmlSecIOShutdown
+xmlSecInputUriTransformOpen
+xmlSecCleanupInputCallbacks
+xmlSecRegisterDefaultInputCallbacks
+xmlSecRegisterInputCallbacks
+</SECTION>
+
+<SECTION>
+<FILE>keyinfo</FILE>
+xmlSecKeyInfoNodeRead
+xmlSecKeyInfoNodeWrite
+xmlSecKeyInfoAddKeyName
+xmlSecKeyInfoAddKeyValue
+xmlSecKeyInfoAddX509Data
+xmlSecKeyInfoAddRetrievalMethod
+xmlSecRetrievalMethodAddTransform
+xmlSecKeyInfoAddEncryptedKey
+</SECTION>
+
+<SECTION>
+<FILE>keys</FILE>
+xmlSecKeyId
+xmlSecKeyType
+xmlSecKeyUsage
+xmlSecKeyOrigin
+xmlSecKeyOriginDefault
+xmlSecKeyOriginKeyManager
+xmlSecKeyOriginKeyName
+xmlSecKeyOriginKeyValue
+xmlSecKeyOriginRetrievalDocument
+xmlSecKeyOriginRetrievalRemote
+xmlSecKeyOriginX509
+xmlSecKeyOriginPGP
+xmlSecKeyOriginEncryptedKey
+xmlSecKeyOriginAll
+xmlSecKeyIdUnknown
+xmlSecKey
+xmlSecKeyCreate
+xmlSecKeyDestroy
+xmlSecKeyDuplicate
+xmlSecVerifyKey
+xmlSecKeyDebugDump
+xmlSecKeyReadPemCert
+xmlSecGetKeyCallback
+xmlSecFindKeyCallback
+xmlSecX509FindCallback
+xmlSecX509VerifyCallback
+xmlSecKeysMngr
+xmlSecKeysMngrGetKey
+</SECTION>
+
+<SECTION>
+<FILE>keysInternal</FILE>
+xmlSecKeyInifiteRetrivals
+xmlSecKeyCreateMethod
+xmlSecKeyDuplicateMethod
+xmlSecKeyDestroyMethod
+xmlSecKeyReadXmlMethod
+xmlSecKeyWriteXmlMethod
+xmlSecKeyReadBinaryMethod
+xmlSecKeyWriteBinaryMethod
+xmlSecKeyIdStruct
+xmlSecKeysInit
+xmlSecKeyIsValid
+xmlSecKeyCheckId
+xmlSecKeyCheckTransform
+xmlSecKeyReadXml
+xmlSecKeyWriteXml
+xmlSecKeyReadBin
+xmlSecKeyWriteBin
+</SECTION>
+
+<SECTION>
+<FILE>keysmngr</FILE>
+xmlSecSimpleKeysMngrCreate
+xmlSecSimpleKeysMngrDestroy
+xmlSecSimpleKeysMngrFindKey
+xmlSecSimpleKeysMngrAddKey
+xmlSecSimpleKeysMngrLoad
+xmlSecSimpleKeysMngrSave
+xmlSecSimpleKeysMngrLoadPemKey
+xmlSecSimpleKeysMngrX509Find
+xmlSecSimpleKeysMngrX509Verify
+xmlSecSimpleKeysMngrLoadPemCert
+xmlSecSimpleKeysMngrAddCertsDir
+xmlSecSimpleKeysMngrLoadPkcs12
+</SECTION>
+
+<SECTION>
+<FILE>membuf</FILE>
+xmlSecMemBuf
+xmlSecMemBufTransformGetBuffer
+</SECTION>
+
+<SECTION>
+<FILE>transforms</FILE>
+xmlSecTransformId
+xmlSecTransformUnknown
+xmlSecTransformStatus
+xmlSecEncAes128Cbc
+xmlSecEncAes192Cbc
+xmlSecEncAes256Cbc
+xmlSecKWAes128
+xmlSecKWAes192
+xmlSecKWAes256
+xmlSecAesKey
+xmlSecAesKeyGenerate
+XMLSEC_BASE64_LINESIZE
+xmlSecEncBase64Encode
+xmlSecEncBase64Decode
+xmlSecBase64EncodeSetLineSize
+xmlSecC14NInclusive
+xmlSecC14NInclusiveWithComments
+xmlSecC14NExclusive
+xmlSecC14NExclusiveWithComments
+xmlSecC14NExclAddInclNamespaces
+xmlSecEncDes3Cbc
+xmlSecKWDes3Cbc
+xmlSecDesKey
+xmlSecDesKeyGenerate
+xmlSecSignDsaSha1
+xmlSecDsaKey
+xmlSecDsaKeyGenerate
+xmlSecTransformEnveloped
+xmlSecMacHmacSha1
+xmlSecMacHmacRipeMd160
+xmlSecMacHmacMd5
+xmlSecHmacKey
+xmlSecHmacKeyGenerate
+xmlSecHmacAddOutputLength
+xmlSecDigestRipemd160
+xmlSecSignRsaSha1
+xmlSecEncRsaPkcs1
+xmlSecEncRsaOaep
+xmlSecRsaKey
+xmlSecRsaKeyGenerate
+xmlSecEncRsaOaepAddParam
+xmlSecDigestSha1
+xmlSecXPath2TransformType
+xmlSecTransformXPath
+xmlSecTransformXPath2
+xmlSecTransformXPointer
+xmlSecTransformXPathAdd
+xmlSecTransformXPath2Add
+xmlSecTransformXPointerAdd
+xmlSecTransformXslt
+xmlSecTransformXsltAdd
+</SECTION>
+
+<SECTION>
+<FILE>transformsInternal</FILE>
+xmlSecUsageAny
+xmlSecUsageDSigC14N
+xmlSecUsageDSigTransform
+xmlSecUsageDSigDigest
+xmlSecUsageDSigSignature
+xmlSecUsageEncryptionMethod
+xmlSecTransformUsage
+xmlSecBinTransformId
+xmlSecXmlTransformId
+xmlSecC14NTransformId
+xmlSecTransformType
+xmlSecBinTransformSubType
+xmlSecTransformResult
+xmlSecTransformState
+xmlSecTransformStateCreate
+xmlSecTransformStateDestroy
+xmlSecTransformStateUpdate
+xmlSecTransformStateFinal
+xmlSecTransformCreateMethod
+xmlSecTransformDestroyMethod
+xmlSecTransformReadNodeMethod
+xmlSecTransformIdStruct
+xmlSecTransform
+xmlSecTransformIsValid
+xmlSecTransformCheckType
+xmlSecTransformCheckId
+xmlSecTransformsInit
+xmlSecTransformsNodeRead
+xmlSecTransformFind
+xmlSecTransformNodeRead
+xmlSecTransformNodeWrite
+xmlSecTransformCreate
+xmlSecTransformDestroy
+xmlSecTransformRead
+xmlSecBinTransformAddKeyMethod
+xmlSecBinTransformReadMethod
+xmlSecBinTransformWriteMethod
+xmlSecBinTransformFlushMethod
+xmlSecBinTransformIdStruct
+xmlSecBinTransform
+xmlSecBinTransformIdCheckKeyId
+xmlSecBinTransformIdGetKeyId
+xmlSecBinTransformCheckSubType
+xmlSecBinTransformIdGetEncKeyType
+xmlSecBinTransformIdGetDecKeyType
+xmlSecBinTransformAddKey
+xmlSecBinTransformRead
+xmlSecBinTransformWrite
+xmlSecBinTransformFlush
+xmlSecBinTransformAddAfter
+xmlSecBinTransformAddBefore
+xmlSecBinTransformRemove
+xmlSecBinTransformDestroyAll
+xmlSecBinTransformSetEncrypt
+xmlSecXmlTransformExecuteMethod
+xmlSecXmlTransformIdStruct
+xmlSecXmlTransform
+xmlSecXmlTransformExecute
+xmlSecC14NTransformExecuteMethod
+xmlSecC14NTransformIdStruct
+xmlSecC14NTransform
+xmlSecC14NTransformExecute
+</SECTION>
+
+<SECTION>
+<FILE>version</FILE>
+XMLSEC_VERSION
+XMLSEC_VERSION_MAJOR
+XMLSEC_VERSION_MINOR
+XMLSEC_VERSION_SUBMINOR
+XMLSEC_VERSION_INFO
+</SECTION>
+
+<SECTION>
+<FILE>x509</FILE>
+xmlSecX509DataCreate
+xmlSecX509DataDestroy
+xmlSecX509DataGetCertsNumber
+xmlSecX509DataGetCrlsNumber
+xmlSecX509DataReadDerCert
+xmlSecX509DataWriteDerCert
+xmlSecX509DataReadDerCrl
+xmlSecX509DataWriteDerCrl
+xmlSecX509DataReadPemCert
+xmlSecX509DataDup
+xmlSecX509DataCreateKey
+xmlSecX509DataDebugDump
+xmlSecX509StoreCreate
+xmlSecX509StoreDestroy
+xmlSecX509StoreFind
+xmlSecX509StoreVerify
+xmlSecX509StoreLoadPemCert
+xmlSecX509StoreAddCertsDir
+xmlSecPKCS12ReadKey
+xmlSecX509DataPtr
+xmlSecX509StorePtr
+</SECTION>
+
+<SECTION>
+<FILE>xmldsig</FILE>
+xmlSecDSigCtx
+xmlSecDSigResult
+xmlSecReferenceType
+xmlSecReferenceResult
+xmlSecDSigCtxCreate
+xmlSecDSigCtxDestroy
+xmlSecSignatureCreate
+xmlSecSignatureDestroy
+xmlSecSignatureAddSignedInfo
+xmlSecSignatureAddKeyInfo
+xmlSecSignatureAddObject
+xmlSecSignedInfoAddC14NMethod
+xmlSecSignedInfoAddSignMethod
+xmlSecSignedInfoAddReference
+xmlSecReferenceAddDigestMethod
+xmlSecReferenceAddTransform
+xmlSecObjectAddSignProperties
+xmlSecObjectAddManifest
+xmlSecManifestAddReference
+xmlSecDSigValidate
+xmlSecDSigGenerate
+xmlSecDSigResultCreate
+xmlSecDSigResultDestroy
+xmlSecDSigResultDebugDump
+</SECTION>
+
+<SECTION>
+<FILE>xmlenc</FILE>
+xmlSecEncCtx
+xmlSecEncResult
+xmlSecEncCtxCreate
+xmlSecEncCtxDestroy
+xmlSecEncryptMemory
+xmlSecEncryptUri
+xmlSecEncryptXmlNode
+xmlSecDecrypt
+xmlSecEncResultCreate
+xmlSecEncResultDestroy
+xmlSecEncResultDebugDump
+xmlSecEncDataCreate
+xmlSecEncDataDestroy
+xmlSecEncDataAddEncMethod
+xmlSecEncDataAddKeyInfo
+xmlSecEncDataAddEncProperties
+xmlSecEncDataAddEncProperty
+xmlSecEncDataAddCipherValue
+xmlSecEncDataAddCipherReference
+xmlSecCipherReferenceAddTransform
+</SECTION>
+
+<SECTION>
+<FILE>xmlsec</FILE>
+extern
+xmlSecInit
+xmlSecShutdown
+ATTRIBUTE_UNUSED
+</SECTION>
+
+<SECTION>
+<FILE>xmltree</FILE>
+xmlSecParseFile
+xmlSecParseMemory
+xmlSecParseMemoryExt
+xmlSecCheckNodeName
+xmlSecGetNextElementNode
+xmlSecFindChild
+xmlSecFindParent
+xmlSecFindNode
+xmlSecAddChild
+xmlSecAddNextSibling
+xmlSecAddPrevSibling
+xmlSecReplaceNode
+xmlSecReplaceContent
+xmlSecReplaceNodeBuffer
+xmlSecAddIDs
+xmlSecIsHex
+xmlSecGetHex
+</SECTION>
+
+<SECTION>
+<FILE>errors</FILE>
+XMLSEC_ERRORS_LIB
+XMLSEC_ERRORS_FUNCTION
+XMLSEC_ERRORS_R_MALLOC_FAILED
+XMLSEC_ERRORS_R_XMLSEC_FAILED
+XMLSEC_ERRORS_R_CRYPTO_FAILED
+XMLSEC_ERRORS_R_XML_FAILED
+XMLSEC_ERRORS_R_XSLT_FAILED
+XMLSEC_ERRORS_R_IO_FAILED
+XMLSEC_ERRORS_R_INVALID_TRANSFORM
+XMLSEC_ERRORS_R_INVALID_TRANSFORM_DATA
+XMLSEC_ERRORS_R_INVALID_TRANSFORM_OR_KEY
+XMLSEC_ERRORS_R_INVALID_KEY
+XMLSEC_ERRORS_R_INVALID_KEY_DATA
+XMLSEC_ERRORS_R_INVALID_KEY_SIZE
+XMLSEC_ERRORS_R_INVALID_KEY_ORIGIN
+XMLSEC_ERRORS_R_KEY_NOT_FOUND
+XMLSEC_ERRORS_R_INVALID_SIZE
+XMLSEC_ERRORS_R_INVALID_DATA
+XMLSEC_ERRORS_R_INVALID_TYPE
+XMLSEC_ERRORS_R_INVALID_USAGE
+XMLSEC_ERRORS_R_INVALID_NODE
+XMLSEC_ERRORS_R_INVALID_NODESET
+XMLSEC_ERRORS_R_INVALID_NODE_CONTENT
+XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE
+XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT
+XMLSEC_ERRORS_R_SAME_DOCUMENT_REQUIRED
+XMLSEC_ERRORS_R_NODE_NOT_FOUND
+XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL
+XMLSEC_ERRORS_R_CERT_VERIFY_FAILED
+XMLSEC_ERRORS_R_CERT_NOT_FOUND
+XMLSEC_ERRORS_R_CERT_REVOKED
+XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE
+XMLSEC_ERRORS_R_ASSERTION
+XMLSEC_ERRORS_R_DISABLED
+xmlSecErrorsCallback
+xmlSecErrorsInit
+xmlSecErrorsShutdown
+xmlSecErrorsSetCallback
+xmlSecPrintErrorMessages
+XMLSEC_ERRORS_HERE
+xmlSecError
+xmlSecAssert
+xmlSecAssert2
+</SECTION>
+
+<SECTION>
+<FILE>nodeset</FILE>
+xmlSecNodeSetType
+xmlSecNodeSetOp
+xmlSecNodeSet
+xmlSecNodeSetWalkCallback
+xmlSecNodeSetCreate
+xmlSecNodeSetDestroy
+xmlSecNodeSetContains
+xmlSecNodeSetAdd
+xmlSecNodeSetAddList
+xmlSecNodeSetGetChildren
+xmlSecNodeSetWalk
+xmlSecNodeSetDebugDump
+</SECTION>
+
diff --git a/docs/api-0.0.x/xmlsec-decl.txt b/docs/api-0.0.x/xmlsec-decl.txt
new file mode 100644
index 00000000..eae736c7
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-decl.txt
@@ -0,0 +1,2328 @@
+<FUNCTION>
+<NAME>xmlSecBase64CtxCreate</NAME>
+<RETURNS>xmlSecBase64CtxPtr </RETURNS>
+int encode,int columns
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBase64CtxDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlSecBase64CtxPtr ctx
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBase64CtxUpdate</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBase64CtxPtr ctx,const unsigned char *in,size_t inLen,unsigned char *out,size_t outLen
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBase64CtxFinal</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBase64CtxPtr ctx,unsigned char *out,size_t outLen
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBase64Encode</NAME>
+<RETURNS>xmlChar *</RETURNS>
+const unsigned char *buf,size_t len,int columns
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBase64Decode</NAME>
+<RETURNS>int </RETURNS>
+const xmlChar* str,unsigned char *buf,size_t len
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecCryptoBinary2BN</NAME>
+<RETURNS>BIGNUM *</RETURNS>
+const xmlChar *str,BIGNUM **a
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBN2CryptoBinary</NAME>
+<RETURNS>xmlChar *</RETURNS>
+const BIGNUM *a
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecNodeGetBNValue</NAME>
+<RETURNS>BIGNUM *</RETURNS>
+const xmlNodePtr cur,BIGNUM **a
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecNodeSetBNValue</NAME>
+<RETURNS>int </RETURNS>
+xmlNodePtr cur,const BIGNUM *a,int addLineBreaks
+</FUNCTION>
+<TYPEDEF>
+<NAME>xmlSecBufferedTransformId</NAME>
+typedef const struct _xmlSecBufferedTransformIdStruct *xmlSecBufferedTransformId;
+</TYPEDEF>
+<USER_FUNCTION>
+<NAME>xmlSecBufferedProcessMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBufferedTransformPtr transform,
+ xmlBufferPtr buffer
+</USER_FUNCTION>
+<STRUCT>
+<NAME>xmlSecBufferedTransformIdStruct</NAME>
+struct xmlSecBufferedTransformIdStruct {
+ /* same as xmlSecTransformId */
+ xmlSecTransformType type;
+ xmlSecTransformUsage usage;
+ const xmlChar *href;
+
+ xmlSecTransformCreateMethod create;
+ xmlSecTransformDestroyMethod destroy;
+ xmlSecTransformReadNodeMethod read;
+
+ /* xmlSecBinTransform data/methods */
+ xmlSecKeyId keyId;
+ xmlSecKeyType encryption;
+ xmlSecKeyType decryption;
+ xmlSecBinTransformSubType binSubType;
+
+ xmlSecBinTransformAddKeyMethod addBinKey;
+ xmlSecBinTransformReadMethod readBin;
+ xmlSecBinTransformWriteMethod writeBin;
+ xmlSecBinTransformFlushMethod flushBin;
+
+ /* xmlSecBufferedTransform data/methods */
+ xmlSecBufferedProcessMethod bufferedProcess;
+};
+</STRUCT>
+<STRUCT>
+<NAME>xmlSecBufferedTransform</NAME>
+struct xmlSecBufferedTransform {
+ /* same as for xmlSecTransform but id type changed */
+ xmlSecBufferedTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+
+ /* xmlSecBinTransform specific */
+ int encode;
+ xmlSecBinTransformPtr next;
+ xmlSecBinTransformPtr prev;
+ void *binData;
+
+ /* xmlSecBufferedTransform specific */
+ xmlBufferPtr buffer;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>xmlSecBufferedTransformRead</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform,unsigned char *buf,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBufferedTransformWrite</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform,const unsigned char *buf,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBufferedTransformFlush</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBufferedDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlSecBufferedTransformPtr buffered
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBufferedProcess</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform,xmlBufferPtr buffer
+</FUNCTION>
+<TYPEDEF>
+<NAME>xmlSecCipherTransformId</NAME>
+typedef const struct _xmlSecCipherTransformIdStruct *xmlSecCipherTransformId;
+</TYPEDEF>
+<USER_FUNCTION>
+<NAME>xmlSecCipherUpdateMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecCipherTransformPtr transform,
+ const unsigned char *buffer,
+ size_t size
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecCipherFinalMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecCipherTransformPtr transform
+</USER_FUNCTION>
+<STRUCT>
+<NAME>xmlSecCipherTransformIdStruct</NAME>
+struct xmlSecCipherTransformIdStruct {
+ /* same as xmlSecTransformId */
+ xmlSecTransformType type;
+ xmlSecTransformUsage usage;
+ const xmlChar *href;
+
+ xmlSecTransformCreateMethod create;
+ xmlSecTransformDestroyMethod destroy;
+ xmlSecTransformReadNodeMethod read;
+
+ /* xmlSecBinTransform data/methods */
+ xmlSecKeyId keyId;
+ xmlSecKeyType encryption;
+ xmlSecKeyType decryption;
+ xmlSecBinTransformSubType binSubType;
+
+ xmlSecBinTransformAddKeyMethod addBinKey;
+ xmlSecBinTransformReadMethod readBin;
+ xmlSecBinTransformWriteMethod writeBin;
+ xmlSecBinTransformFlushMethod flushBin;
+
+ /* xmlSecCipherTransform data/methods */
+ xmlSecCipherUpdateMethod cipherUpdate;
+ xmlSecCipherFinalMethod cipherFinal;
+ size_t keySize;
+ size_t ivSize;
+ size_t bufInSize;
+ size_t bufOutSize;
+};
+</STRUCT>
+<STRUCT>
+<NAME>xmlSecCipherTransform</NAME>
+struct xmlSecCipherTransform {
+ /* same as for xmlSecTransform but id type changed */
+ xmlSecCipherTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+
+ /* xmlSecBinTransform specific */
+ int encode;
+ xmlSecCipherTransformPtr next;
+ xmlSecCipherTransformPtr prev;
+ void *binData;
+
+ /* xmlSecCipherTransform specific */
+ unsigned char *bufIn;
+ unsigned char *bufOut;
+ EVP_CIPHER_CTX cipherCtx;
+ unsigned char *iv;
+ size_t ivPos;
+ void *cipherData;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>xmlSecCipherTransformRead</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform,unsigned char *buf,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecCipherTransformWrite</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform,const unsigned char *buf,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecCipherTransformFlush</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEvpCipherUpdate</NAME>
+<RETURNS>int </RETURNS>
+xmlSecCipherTransformPtr cipher,const unsigned char *buffer,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEvpCipherFinal</NAME>
+<RETURNS>int </RETURNS>
+xmlSecCipherTransformPtr cipher
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecCipherUpdate</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,const unsigned char *buffer,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecCipherFinal</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTimerInit</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTimerStart</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTimerEnd</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTimerGet</NAME>
+<RETURNS>double </RETURNS>
+void
+</FUNCTION>
+<TYPEDEF>
+<NAME>xmlSecDigestTransformId</NAME>
+typedef const struct _xmlSecDigestTransformIdStruct *xmlSecDigestTransformId;
+</TYPEDEF>
+<USER_FUNCTION>
+<NAME>xmlSecDigestUpdateMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecDigestTransformPtr transform,
+ const unsigned char *buffer,
+ size_t size
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecDigestSignMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecDigestTransformPtr transform,
+ unsigned char **buffer,
+ size_t *size
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecDigestVerifyMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecDigestTransformPtr transform,
+ const unsigned char *buffer,
+ size_t size
+</USER_FUNCTION>
+<STRUCT>
+<NAME>xmlSecDigestTransformIdStruct</NAME>
+struct xmlSecDigestTransformIdStruct {
+ /* same as xmlSecTransformId */
+ xmlSecTransformType type;
+ xmlSecTransformUsage usage;
+ const xmlChar *href;
+
+ xmlSecTransformCreateMethod create;
+ xmlSecTransformDestroyMethod destroy;
+ xmlSecTransformReadNodeMethod read;
+
+ /* xmlSecBinTransform data/methods */
+ xmlSecKeyId keyId;
+ xmlSecKeyType encryption;
+ xmlSecKeyType decryption;
+ xmlSecBinTransformSubType binSubType;
+
+ xmlSecBinTransformAddKeyMethod addBinKey;
+ xmlSecBinTransformReadMethod readBin;
+ xmlSecBinTransformWriteMethod writeBin;
+ xmlSecBinTransformFlushMethod flushBin;
+
+ /* xmlSecDigestTransform data/methods */
+ xmlSecDigestUpdateMethod digestUpdate;
+ xmlSecDigestSignMethod digestSign;
+ xmlSecDigestVerifyMethod digestVerify;
+};
+</STRUCT>
+<STRUCT>
+<NAME>xmlSecDigestTransform</NAME>
+struct xmlSecDigestTransform {
+ /* same as for xmlSecTransform but id type changed */
+ xmlSecDigestTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+
+ /* xmlSecBinTransform specific */
+ int encode;
+ xmlSecDigestTransformPtr next;
+ xmlSecDigestTransformPtr prev;
+ void *binData;
+
+ /* xmlSecDigestTransform specific */
+ int pushModeEnabled;
+ unsigned char *digest;
+ size_t digestSize;
+ unsigned char digestLastByteMask;
+ void *digestData;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>xmlSecDigestSignNode</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,xmlNodePtr valueNode,int removeOldContent
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDigestVerifyNode</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,const xmlNodePtr valueNode
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDigestSetPushMode</NAME>
+<RETURNS>void </RETURNS>
+xmlSecTransformPtr transform,int enabled
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDigestUpdate</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,const unsigned char *buffer,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDigestSign</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,unsigned char **buffer,size_t *size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDigestVerify</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,const unsigned char *buffer,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDigestTransformRead</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform,unsigned char *buf,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDigestTransformWrite</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform,const unsigned char *buf,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDigestTransformFlush</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform
+</FUNCTION>
+<MACRO>
+<NAME>XMLSEC_ERRORS_LIB</NAME>
+#define XMLSEC_ERRORS_LIB (ERR_LIB_USER + 57)
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_FUNCTION</NAME>
+#define XMLSEC_ERRORS_FUNCTION 0
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_MALLOC_FAILED</NAME>
+#define XMLSEC_ERRORS_R_MALLOC_FAILED 1
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_XMLSEC_FAILED</NAME>
+#define XMLSEC_ERRORS_R_XMLSEC_FAILED 2
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_CRYPTO_FAILED</NAME>
+#define XMLSEC_ERRORS_R_CRYPTO_FAILED 3
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_XML_FAILED</NAME>
+#define XMLSEC_ERRORS_R_XML_FAILED 4
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_XSLT_FAILED</NAME>
+#define XMLSEC_ERRORS_R_XSLT_FAILED 5
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_IO_FAILED</NAME>
+#define XMLSEC_ERRORS_R_IO_FAILED 6
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_TRANSFORM</NAME>
+#define XMLSEC_ERRORS_R_INVALID_TRANSFORM 10
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_TRANSFORM_DATA</NAME>
+#define XMLSEC_ERRORS_R_INVALID_TRANSFORM_DATA 11
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_TRANSFORM_OR_KEY</NAME>
+#define XMLSEC_ERRORS_R_INVALID_TRANSFORM_OR_KEY 12
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_KEY</NAME>
+#define XMLSEC_ERRORS_R_INVALID_KEY 13
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_KEY_DATA</NAME>
+#define XMLSEC_ERRORS_R_INVALID_KEY_DATA 14
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_KEY_SIZE</NAME>
+#define XMLSEC_ERRORS_R_INVALID_KEY_SIZE 15
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_KEY_ORIGIN</NAME>
+#define XMLSEC_ERRORS_R_INVALID_KEY_ORIGIN 16
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_KEY_NOT_FOUND</NAME>
+#define XMLSEC_ERRORS_R_KEY_NOT_FOUND 17
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_SIZE</NAME>
+#define XMLSEC_ERRORS_R_INVALID_SIZE 18
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_DATA</NAME>
+#define XMLSEC_ERRORS_R_INVALID_DATA 19
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_TYPE</NAME>
+#define XMLSEC_ERRORS_R_INVALID_TYPE 21
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_USAGE</NAME>
+#define XMLSEC_ERRORS_R_INVALID_USAGE 22
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_NODE</NAME>
+#define XMLSEC_ERRORS_R_INVALID_NODE 23
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_NODESET</NAME>
+#define XMLSEC_ERRORS_R_INVALID_NODESET 24
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_NODE_CONTENT</NAME>
+#define XMLSEC_ERRORS_R_INVALID_NODE_CONTENT 25
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE</NAME>
+#define XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE 26
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT</NAME>
+#define XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT 27
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_SAME_DOCUMENT_REQUIRED</NAME>
+#define XMLSEC_ERRORS_R_SAME_DOCUMENT_REQUIRED 28
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_NODE_NOT_FOUND</NAME>
+#define XMLSEC_ERRORS_R_NODE_NOT_FOUND 29
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL</NAME>
+#define XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL 30
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_CERT_VERIFY_FAILED</NAME>
+#define XMLSEC_ERRORS_R_CERT_VERIFY_FAILED 41
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_CERT_NOT_FOUND</NAME>
+#define XMLSEC_ERRORS_R_CERT_NOT_FOUND 42
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_CERT_REVOKED</NAME>
+#define XMLSEC_ERRORS_R_CERT_REVOKED 43
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_CERT_ISSUER_FAILED</NAME>
+#define XMLSEC_ERRORS_R_CERT_ISSUER_FAILED 44
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_CERT_NOT_YET_VALID</NAME>
+#define XMLSEC_ERRORS_R_CERT_NOT_YET_VALID 45
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_CERT_HAS_EXPIRED</NAME>
+#define XMLSEC_ERRORS_R_CERT_HAS_EXPIRED 46
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE</NAME>
+#define XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE 51
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_ASSERTION</NAME>
+#define XMLSEC_ERRORS_R_ASSERTION 100
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_DISABLED</NAME>
+#define XMLSEC_ERRORS_R_DISABLED 101
+</MACRO>
+<USER_FUNCTION>
+<NAME>xmlSecErrorsCallback</NAME>
+<RETURNS>void </RETURNS>
+const char* file, int line,
+ const char* func,
+ int reason, const char* msg
+</USER_FUNCTION>
+<FUNCTION>
+<NAME>xmlSecErrorsInit</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecErrorsShutdown</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecErrorsSetCallback</NAME>
+<RETURNS>void </RETURNS>
+xmlSecErrorsCallback callback
+</FUNCTION>
+<VARIABLE>
+<NAME>xmlSecPrintErrorMessages</NAME>
+extern int xmlSecPrintErrorMessages;
+</VARIABLE>
+<MACRO>
+<NAME>XMLSEC_ERRORS_HERE</NAME>
+#define XMLSEC_ERRORS_HERE __FILE__,__LINE__,__FUNCTION__
+</MACRO>
+<FUNCTION>
+<NAME>xmlSecError</NAME>
+<RETURNS>void </RETURNS>
+const char* file, int line,const char* func,int reason, const char* msg,...
+</FUNCTION>
+<MACRO>
+<NAME>xmlSecAssert</NAME>
+#define xmlSecAssert( p ) \
+ if(!( p ) ) { \
+ xmlSecError(XMLSEC_ERRORS_HERE, \
+ XMLSEC_ERRORS_R_ASSERTION, \
+ "%s", #p); \
+ return; \
+ }
+</MACRO>
+<MACRO>
+<NAME>xmlSecAssert2</NAME>
+#define xmlSecAssert2( p, ret ) \
+ if(!( p ) ) { \
+ xmlSecError(XMLSEC_ERRORS_HERE, \
+ XMLSEC_ERRORS_R_ASSERTION, \
+ "%s", #p); \
+ return(ret); \
+ }
+</MACRO>
+<VARIABLE>
+<NAME>xmlSecInputUri</NAME>
+extern xmlSecTransformId xmlSecInputUri;
+</VARIABLE>
+<FUNCTION>
+<NAME>xmlSecIOInit</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecIOShutdown</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecInputUriTransformOpen</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,const char *uri
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecCleanupInputCallbacks</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecRegisterDefaultInputCallbacks</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecRegisterInputCallbacks</NAME>
+<RETURNS>int </RETURNS>
+xmlInputMatchCallback matchFunc,xmlInputOpenCallback openFunc,xmlInputReadCallback readFunc,xmlInputCloseCallback closeFunc
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyInfoNodeRead</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+xmlNodePtr keyInfoNode,xmlSecKeysMngrPtr keysMngr,void *context,xmlSecKeyId keyId,xmlSecKeyType keyType,xmlSecKeyUsage keyUsage,time_t certsVerificationTime
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyInfoNodeWrite</NAME>
+<RETURNS>int </RETURNS>
+xmlNodePtr keyInfoNode,xmlSecKeysMngrPtr keysMngr,void *context,xmlSecKeyPtr key,xmlSecKeyType type
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyInfoAddKeyName</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr keyInfoNode
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyInfoAddKeyValue</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr keyInfoNode
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyInfoAddX509Data</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr keyInfoNode
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyInfoAddRetrievalMethod</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr keyInfoNode,const xmlChar *uri,const xmlChar *type
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecRetrievalMethodAddTransform</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr retrMethod,xmlSecTransformId transform
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyInfoAddEncryptedKey</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr keyInfoNode,const xmlChar *id,const xmlChar *type,const xmlChar *recipient
+</FUNCTION>
+<TYPEDEF>
+<NAME>xmlSecKeyId</NAME>
+typedef const struct _xmlSecKeyIdStruct *xmlSecKeyId;
+</TYPEDEF>
+<ENUM>
+<NAME>xmlSecKeyType</NAME>
+typedef enum {
+ xmlSecKeyTypePublic = 0,
+ xmlSecKeyTypePrivate,
+ xmlSecKeyTypeAny
+} xmlSecKeyType;
+</ENUM>
+<ENUM>
+<NAME>xmlSecKeyUsage</NAME>
+typedef enum {
+ xmlSecKeyUsageAny = 0,
+ xmlSecKeyUsageSign,
+ xmlSecKeyUsageVerify,
+ xmlSecKeyUsageEncrypt,
+ xmlSecKeyUsageDecrypt
+} xmlSecKeyUsage;
+</ENUM>
+<TYPEDEF>
+<NAME>xmlSecKeyOrigin</NAME>
+typedef long xmlSecKeyOrigin;
+</TYPEDEF>
+<MACRO>
+<NAME>xmlSecKeyOriginDefault</NAME>
+#define xmlSecKeyOriginDefault 0
+</MACRO>
+<MACRO>
+<NAME>xmlSecKeyOriginKeyManager</NAME>
+#define xmlSecKeyOriginKeyManager 1
+</MACRO>
+<MACRO>
+<NAME>xmlSecKeyOriginKeyName</NAME>
+#define xmlSecKeyOriginKeyName 2
+</MACRO>
+<MACRO>
+<NAME>xmlSecKeyOriginKeyValue</NAME>
+#define xmlSecKeyOriginKeyValue 4
+</MACRO>
+<MACRO>
+<NAME>xmlSecKeyOriginRetrievalDocument</NAME>
+#define xmlSecKeyOriginRetrievalDocument 8
+</MACRO>
+<MACRO>
+<NAME>xmlSecKeyOriginRetrievalRemote</NAME>
+#define xmlSecKeyOriginRetrievalRemote 16
+</MACRO>
+<MACRO>
+<NAME>xmlSecKeyOriginX509</NAME>
+#define xmlSecKeyOriginX509 32
+</MACRO>
+<MACRO>
+<NAME>xmlSecKeyOriginPGP</NAME>
+#define xmlSecKeyOriginPGP 64
+</MACRO>
+<MACRO>
+<NAME>xmlSecKeyOriginEncryptedKey</NAME>
+#define xmlSecKeyOriginEncryptedKey 128
+</MACRO>
+<MACRO>
+<NAME>xmlSecKeyOriginAll</NAME>
+#define xmlSecKeyOriginAll \
+ (xmlSecKeyOriginKeyManager | xmlSecKeyOriginKeyName | \
+ xmlSecKeyOriginKeyValue | xmlSecKeyOriginKeyValue | \
+ xmlSecKeyOriginRetrievalDocument | xmlSecKeyOriginRetrievalRemote | \
+ xmlSecKeyOriginX509 | xmlSecKeyOriginPGP | xmlSecKeyOriginEncryptedKey)
+</MACRO>
+<MACRO>
+<NAME>xmlSecKeyIdUnknown</NAME>
+#define xmlSecKeyIdUnknown NULL
+</MACRO>
+<STRUCT>
+<NAME>xmlSecKey</NAME>
+struct xmlSecKey {
+ xmlSecKeyId id;
+ xmlSecKeyType type;
+ xmlChar *name;
+ xmlSecKeyOrigin origin;
+ xmlSecX509DataPtr x509Data;
+ void *keyData;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>xmlSecKeyCreate</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+xmlSecKeyId id,xmlSecKeyOrigin origin
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlSecKeyPtr key
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyDuplicate</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+xmlSecKeyPtr key,xmlSecKeyOrigin origin
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecVerifyKey</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeyPtr key,const xmlChar *name,xmlSecKeyId id,xmlSecKeyType type
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyDebugDump</NAME>
+<RETURNS>void </RETURNS>
+xmlSecKeyPtr key,FILE *output
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyDebugXmlDump</NAME>
+<RETURNS>void </RETURNS>
+xmlSecKeyPtr key,FILE *output
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyReadPemCert</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeyPtr key,const char *filename
+</FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecGetKeyCallback</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+xmlNodePtr keyInfoNode,
+ xmlSecKeysMngrPtr mngr,
+ void *context,
+ xmlSecKeyId keyId,
+ xmlSecKeyType type,
+ xmlSecKeyUsage usage,
+ time_t certsVerificationTime
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecFindKeyCallback</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+xmlSecKeysMngrPtr mngr,
+ void *context,
+ const xmlChar *name,
+ xmlSecKeyId id,
+ xmlSecKeyType type,
+ xmlSecKeyUsage usage
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecX509FindCallback</NAME>
+<RETURNS>xmlSecX509DataPtr </RETURNS>
+xmlSecKeysMngrPtr mngr,
+ void *context,
+ xmlChar *subjectName,
+ xmlChar *issuerName,
+ xmlChar *issuerSerial,
+ xmlChar *ski,
+ xmlSecX509DataPtr cert
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecX509VerifyCallback</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeysMngrPtr mngr,
+ void *context,
+ xmlSecX509DataPtr cert
+</USER_FUNCTION>
+<STRUCT>
+<NAME>xmlSecKeysMngr</NAME>
+struct xmlSecKeysMngr {
+ xmlSecGetKeyCallback getKey;
+ xmlSecKeyOrigin allowedOrigins;
+ int maxRetrievalsLevel;
+ int maxEncKeysLevel;
+
+ /* low level keys */
+ xmlSecFindKeyCallback findKey;
+ void *keysData;
+
+ /* x509 certs */
+ int failIfCertNotFound;
+ xmlSecX509FindCallback findX509;
+ xmlSecX509VerifyCallback verifyX509;
+ void *x509Data;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>xmlSecKeysMngrGetKey</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+xmlNodePtr keyInfoNode,xmlSecKeysMngrPtr mngr,void *context,xmlSecKeyId keyId,xmlSecKeyType keyType,xmlSecKeyUsage keyUsage,time_t certsVerificationTime
+</FUNCTION>
+<MACRO>
+<NAME>xmlSecKeyInifiteRetrivals</NAME>
+#define xmlSecKeyInifiteRetrivals 99999
+</MACRO>
+<USER_FUNCTION>
+<NAME>xmlSecKeyCreateMethod</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+xmlSecKeyId id
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecKeyDuplicateMethod</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+xmlSecKeyPtr key
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecKeyDestroyMethod</NAME>
+<RETURNS>void </RETURNS>
+xmlSecKeyPtr key
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecKeyReadXmlMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeyPtr key,
+ xmlNodePtr node
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecKeyWriteXmlMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeyPtr key,
+ xmlSecKeyType type,
+ xmlNodePtr parent
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecKeyReadBinaryMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeyPtr key,
+ const unsigned char *buf,
+ size_t size
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecKeyWriteBinaryMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeyPtr key,
+ xmlSecKeyType type,
+ unsigned char **buf,
+ size_t *size
+</USER_FUNCTION>
+<STRUCT>
+<NAME>xmlSecKeyIdStruct</NAME>
+struct xmlSecKeyIdStruct {
+ /* xlmlSecKeyId data */
+ const xmlChar *keyValueNodeName;
+ const xmlChar *keyValueNodeNs;
+
+ /* xmlSecKeyId methods */
+ xmlSecKeyCreateMethod create;
+ xmlSecKeyDestroyMethod destroy;
+ xmlSecKeyDuplicateMethod duplicate;
+ xmlSecKeyReadXmlMethod read;
+ xmlSecKeyWriteXmlMethod write;
+ xmlSecKeyReadBinaryMethod readBin;
+ xmlSecKeyWriteBinaryMethod writeBin;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>xmlSecKeysInit</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<MACRO>
+<NAME>xmlSecKeyIsValid</NAME>
+#define xmlSecKeyIsValid(key) \
+ ((( key ) != NULL) && ((( key )->id) != NULL))
+</MACRO>
+<MACRO>
+<NAME>xmlSecKeyCheckId</NAME>
+#define xmlSecKeyCheckId(key, keyId) \
+ (xmlSecKeyIsValid(( key )) && \
+ ((( key )->id) == ( keyId )))
+</MACRO>
+<MACRO>
+<NAME>xmlSecKeyCheckTransform</NAME>
+#define xmlSecKeyCheckTransform(key, tr) \
+ (xmlSecKeyIsValid(( key )) && \
+ ((((const xmlSecKeyId) (( key )->id->transformId))) == ( tr )))
+</MACRO>
+<FUNCTION>
+<NAME>xmlSecKeyReadXml</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+xmlSecKeyId id,xmlNodePtr node
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyWriteXml</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeyPtr key,xmlSecKeyType type,xmlNodePtr node
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyReadBin</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+xmlSecKeyId id,const unsigned char *buf,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyWriteBin</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeyPtr key,xmlSecKeyType type,unsigned char **buf,size_t *size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSimpleKeysMngrCreate</NAME>
+<RETURNS>xmlSecKeysMngrPtr </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSimpleKeysMngrDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlSecKeysMngrPtr mngr
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSimpleKeysMngrFindKey</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+xmlSecKeysMngrPtr mngr,void *context,const xmlChar *name,xmlSecKeyId id,xmlSecKeyType type,xmlSecKeyUsage usage
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSimpleKeysMngrAddKey</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeysMngrPtr mngr,xmlSecKeyPtr key
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSimpleKeysMngrLoad</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeysMngrPtr mngr,const char *uri,int strict
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSimpleKeysMngrSave</NAME>
+<RETURNS>int </RETURNS>
+const xmlSecKeysMngrPtr mngr,const char *filename,xmlSecKeyType type
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSimpleKeysMngrLoadPemKey</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+xmlSecKeysMngrPtr mngr,const char *keyfile,const char *keyPwd,pem_password_cb *keyPwdCallback,int privateKey
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSimpleKeysMngrX509Find</NAME>
+<RETURNS>xmlSecX509DataPtr </RETURNS>
+xmlSecKeysMngrPtr mngr,void *context,xmlChar *subjectName,xmlChar *issuerName,xmlChar *issuerSerial,xmlChar *ski,xmlSecX509DataPtr cert
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSimpleKeysMngrX509Verify</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeysMngrPtr mngr,void *context,xmlSecX509DataPtr cert
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSimpleKeysMngrLoadPemCert</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeysMngrPtr mngr,const char *filename,int trusted
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSimpleKeysMngrAddCertsDir</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeysMngrPtr mngr,const char *path
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSimpleKeysMngrLoadPkcs12</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeysMngrPtr mngr,const char* name,const char *filename,const char *pwd
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSimpleKeysMngrSetCertsFlags</NAME>
+<RETURNS>void </RETURNS>
+xmlSecKeysMngrPtr mngr,unsigned long flags
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSimpleKeysMngrSetVerifyDepth</NAME>
+<RETURNS>void </RETURNS>
+xmlSecKeysMngrPtr mngr,int depth
+</FUNCTION>
+<VARIABLE>
+<NAME>xmlSecMemBuf</NAME>
+extern xmlSecTransformId xmlSecMemBuf;
+</VARIABLE>
+<FUNCTION>
+<NAME>xmlSecMemBufTransformGetBuffer</NAME>
+<RETURNS>xmlBufferPtr </RETURNS>
+xmlSecTransformPtr transform,int removeBuffer
+</FUNCTION>
+<ENUM>
+<NAME>xmlSecNodeSetType</NAME>
+typedef enum {
+ xmlSecNodeSetNormal = 0,
+ xmlSecNodeSetInvert,
+ xmlSecNodeSetTree,
+ xmlSecNodeSetTreeWithoutComments,
+ xmlSecNodeSetTreeInvert,
+ xmlSecNodeSetTreeWithoutCommentsInvert,
+ xmlSecNodeSetList
+} xmlSecNodeSetType;
+</ENUM>
+<ENUM>
+<NAME>xmlSecNodeSetOp</NAME>
+typedef enum {
+ xmlSecNodeSetIntersection = 0,
+ xmlSecNodeSetSubtraction,
+ xmlSecNodeSetUnion
+} xmlSecNodeSetOp;
+</ENUM>
+<STRUCT>
+<NAME>xmlSecNodeSet</NAME>
+struct xmlSecNodeSet {
+ xmlNodeSetPtr nodes;
+ xmlDocPtr doc;
+ xmlSecNodeSetType type;
+ xmlSecNodeSetOp op;
+ xmlSecNodeSetPtr next;
+ xmlSecNodeSetPtr prev;
+ xmlSecNodeSetPtr children;
+};
+</STRUCT>
+<USER_FUNCTION>
+<NAME>xmlSecNodeSetWalkCallback</NAME>
+<RETURNS>int </RETURNS>
+xmlSecNodeSetPtr nset,
+ xmlNodePtr cur,
+ xmlNodePtr parent,
+ void* data
+</USER_FUNCTION>
+<FUNCTION>
+<NAME>xmlSecNodeSetCreate</NAME>
+<RETURNS>xmlSecNodeSetPtr </RETURNS>
+xmlDocPtr doc,xmlNodeSetPtr nodes,xmlSecNodeSetType type
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecNodeSetDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlSecNodeSetPtr nset
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecNodeSetContains</NAME>
+<RETURNS>int </RETURNS>
+xmlSecNodeSetPtr nset,xmlNodePtr node,xmlNodePtr parent
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecNodeSetAdd</NAME>
+<RETURNS>xmlSecNodeSetPtr </RETURNS>
+xmlSecNodeSetPtr nset,xmlSecNodeSetPtr newNSet,xmlSecNodeSetOp op
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecNodeSetAddList</NAME>
+<RETURNS>xmlSecNodeSetPtr </RETURNS>
+xmlSecNodeSetPtr nset,xmlSecNodeSetPtr newNSet,xmlSecNodeSetOp op
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecNodeSetGetChildren</NAME>
+<RETURNS>xmlSecNodeSetPtr </RETURNS>
+xmlDocPtr doc,const xmlNodePtr parent,int withComments,int invert
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecNodeSetWalk</NAME>
+<RETURNS>int </RETURNS>
+xmlSecNodeSetPtr nset,xmlSecNodeSetWalkCallback walkFunc,void* data
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecNodeSetDebugDump</NAME>
+<RETURNS>void </RETURNS>
+xmlSecNodeSetPtr nset,FILE *output
+</FUNCTION>
+<TYPEDEF>
+<NAME>xmlSecTransformId</NAME>
+typedef const struct _xmlSecTransformIdStruct xmlSecTransformIdStruct, *xmlSecTransformId;
+</TYPEDEF>
+<MACRO>
+<NAME>xmlSecTransformUnknown</NAME>
+#define xmlSecTransformUnknown NULL
+</MACRO>
+<ENUM>
+<NAME>xmlSecTransformStatus</NAME>
+typedef enum {
+ xmlSecTransformStatusNone = 0,
+ xmlSecTransformStatusOk,
+ xmlSecTransformStatusFail
+} xmlSecTransformStatus;
+</ENUM>
+<VARIABLE>
+<NAME>xmlSecEncAes128Cbc</NAME>
+extern xmlSecTransformId xmlSecEncAes128Cbc;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecEncAes192Cbc</NAME>
+extern xmlSecTransformId xmlSecEncAes192Cbc;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecEncAes256Cbc</NAME>
+extern xmlSecTransformId xmlSecEncAes256Cbc;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecKWAes128</NAME>
+extern xmlSecTransformId xmlSecKWAes128;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecKWAes192</NAME>
+extern xmlSecTransformId xmlSecKWAes192;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecKWAes256</NAME>
+extern xmlSecTransformId xmlSecKWAes256;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecAesKey</NAME>
+extern xmlSecKeyId xmlSecAesKey;
+</VARIABLE>
+<FUNCTION>
+<NAME>xmlSecAesKeyGenerate</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeyPtr key,const unsigned char *buf,size_t size
+</FUNCTION>
+<MACRO>
+<NAME>XMLSEC_BASE64_LINESIZE</NAME>
+#define XMLSEC_BASE64_LINESIZE 64
+</MACRO>
+<VARIABLE>
+<NAME>xmlSecEncBase64Encode</NAME>
+extern xmlSecTransformId xmlSecEncBase64Encode;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecEncBase64Decode</NAME>
+extern xmlSecTransformId xmlSecEncBase64Decode;
+</VARIABLE>
+<FUNCTION>
+<NAME>xmlSecBase64EncodeSetLineSize</NAME>
+<RETURNS>void </RETURNS>
+xmlSecTransformPtr transform,size_t lineSize
+</FUNCTION>
+<VARIABLE>
+<NAME>xmlSecC14NInclusive</NAME>
+extern xmlSecTransformId xmlSecC14NInclusive;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecC14NInclusiveWithComments</NAME>
+extern xmlSecTransformId xmlSecC14NInclusiveWithComments;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecC14NExclusive</NAME>
+extern xmlSecTransformId xmlSecC14NExclusive;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecC14NExclusiveWithComments</NAME>
+extern xmlSecTransformId xmlSecC14NExclusiveWithComments;
+</VARIABLE>
+<FUNCTION>
+<NAME>xmlSecC14NExclAddInclNamespaces</NAME>
+<RETURNS>int </RETURNS>
+xmlNodePtr transformNode,const xmlChar *prefixList
+</FUNCTION>
+<VARIABLE>
+<NAME>xmlSecEncDes3Cbc</NAME>
+extern xmlSecTransformId xmlSecEncDes3Cbc;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecKWDes3Cbc</NAME>
+extern xmlSecTransformId xmlSecKWDes3Cbc;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecDesKey</NAME>
+extern xmlSecKeyId xmlSecDesKey;
+</VARIABLE>
+<FUNCTION>
+<NAME>xmlSecDesKeyGenerate</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeyPtr key,const unsigned char *buf,size_t size
+</FUNCTION>
+<VARIABLE>
+<NAME>xmlSecSignDsaSha1</NAME>
+extern xmlSecTransformId xmlSecSignDsaSha1;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecDsaKey</NAME>
+extern xmlSecKeyId xmlSecDsaKey;
+</VARIABLE>
+<FUNCTION>
+<NAME>xmlSecDsaKeyGenerate</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeyPtr key,DSA *dsa
+</FUNCTION>
+<VARIABLE>
+<NAME>xmlSecTransformEnveloped</NAME>
+extern xmlSecTransformId xmlSecTransformEnveloped;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecMacHmacSha1</NAME>
+extern xmlSecTransformId xmlSecMacHmacSha1;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecMacHmacRipeMd160</NAME>
+extern xmlSecTransformId xmlSecMacHmacRipeMd160;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecMacHmacMd5</NAME>
+extern xmlSecTransformId xmlSecMacHmacMd5;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecHmacKey</NAME>
+extern xmlSecKeyId xmlSecHmacKey;
+</VARIABLE>
+<FUNCTION>
+<NAME>xmlSecHmacKeyGenerate</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeyPtr key,const unsigned char *buf,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecHmacAddOutputLength</NAME>
+<RETURNS>int </RETURNS>
+xmlNodePtr transformNode,size_t bitsLen
+</FUNCTION>
+<VARIABLE>
+<NAME>xmlSecDigestRipemd160</NAME>
+extern xmlSecTransformId xmlSecDigestRipemd160;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecSignRsaSha1</NAME>
+extern xmlSecTransformId xmlSecSignRsaSha1;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecEncRsaPkcs1</NAME>
+extern xmlSecTransformId xmlSecEncRsaPkcs1;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecEncRsaOaep</NAME>
+extern xmlSecTransformId xmlSecEncRsaOaep;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecRsaKey</NAME>
+extern xmlSecKeyId xmlSecRsaKey;
+</VARIABLE>
+<FUNCTION>
+<NAME>xmlSecRsaKeyGenerate</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeyPtr key,RSA *rsa
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncRsaOaepAddParam</NAME>
+<RETURNS>int </RETURNS>
+xmlNodePtr transformNode,const unsigned char *buf,size_t size
+</FUNCTION>
+<VARIABLE>
+<NAME>xmlSecDigestSha1</NAME>
+extern xmlSecTransformId xmlSecDigestSha1;
+</VARIABLE>
+<ENUM>
+<NAME>xmlSecXPath2TransformType</NAME>
+typedef enum {
+ xmlSecXPathTransformIntersect = 0,
+ xmlSecXPathTransformSubtract,
+ xmlSecXPathTransformUnion
+} xmlSecXPath2TransformType;
+</ENUM>
+<VARIABLE>
+<NAME>xmlSecTransformXPath</NAME>
+extern xmlSecTransformId xmlSecTransformXPath;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecTransformXPath2</NAME>
+extern xmlSecTransformId xmlSecTransformXPath2;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecTransformXPointer</NAME>
+extern xmlSecTransformId xmlSecTransformXPointer;
+</VARIABLE>
+<FUNCTION>
+<NAME>xmlSecTransformXPathAdd</NAME>
+<RETURNS>int </RETURNS>
+xmlNodePtr transformNode,const xmlChar *expression,const xmlChar **namespaces
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTransformXPath2Add</NAME>
+<RETURNS>int </RETURNS>
+xmlNodePtr transformNode,xmlSecXPath2TransformType type,const xmlChar *expression,const xmlChar **namespaces
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTransformXPointerAdd</NAME>
+<RETURNS>int </RETURNS>
+xmlNodePtr transformNode,const xmlChar *expression,const xmlChar **namespaces
+</FUNCTION>
+<VARIABLE>
+<NAME>xmlSecTransformXslt</NAME>
+extern xmlSecTransformId xmlSecTransformXslt;
+</VARIABLE>
+<FUNCTION>
+<NAME>xmlSecTransformXsltAdd</NAME>
+<RETURNS>int </RETURNS>
+xmlNodePtr transformNode,const xmlChar *xslt
+</FUNCTION>
+<MACRO>
+<NAME>XMLSEC_VERSION</NAME>
+#define XMLSEC_VERSION "0.0.12"
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_VERSION_MAJOR</NAME>
+#define XMLSEC_VERSION_MAJOR 0
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_VERSION_MINOR</NAME>
+#define XMLSEC_VERSION_MINOR 0
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_VERSION_SUBMINOR</NAME>
+#define XMLSEC_VERSION_SUBMINOR 12
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_VERSION_INFO</NAME>
+#define XMLSEC_VERSION_INFO "0:12:0"
+</MACRO>
+<MACRO>
+<NAME>xmlSecUsageAny</NAME>
+#define xmlSecUsageAny 0
+</MACRO>
+<MACRO>
+<NAME>xmlSecUsageDSigC14N</NAME>
+#define xmlSecUsageDSigC14N 1
+</MACRO>
+<MACRO>
+<NAME>xmlSecUsageDSigTransform</NAME>
+#define xmlSecUsageDSigTransform 2
+</MACRO>
+<MACRO>
+<NAME>xmlSecUsageDSigDigest</NAME>
+#define xmlSecUsageDSigDigest 4
+</MACRO>
+<MACRO>
+<NAME>xmlSecUsageDSigSignature</NAME>
+#define xmlSecUsageDSigSignature 8
+</MACRO>
+<MACRO>
+<NAME>xmlSecUsageEncryptionMethod</NAME>
+#define xmlSecUsageEncryptionMethod 16
+</MACRO>
+<TYPEDEF>
+<NAME>xmlSecTransformUsage</NAME>
+typedef unsigned long xmlSecTransformUsage;
+</TYPEDEF>
+<TYPEDEF>
+<NAME>xmlSecBinTransformId</NAME>
+typedef const struct _xmlSecBinTransformIdStruct *xmlSecBinTransformId;
+</TYPEDEF>
+<TYPEDEF>
+<NAME>xmlSecXmlTransformId</NAME>
+typedef const struct _xmlSecXmlTransformIdStruct *xmlSecXmlTransformId;
+</TYPEDEF>
+<TYPEDEF>
+<NAME>xmlSecC14NTransformId</NAME>
+typedef const struct _xmlSecC14NTransformIdStruct *xmlSecC14NTransformId;
+</TYPEDEF>
+<ENUM>
+<NAME>xmlSecTransformType</NAME>
+typedef enum {
+ xmlSecTransformTypeBinary,
+ xmlSecTransformTypeXml,
+ xmlSecTransformTypeC14N
+} xmlSecTransformType;
+</ENUM>
+<ENUM>
+<NAME>xmlSecBinTransformSubType</NAME>
+typedef enum {
+ xmlSecBinTransformSubTypeNone = 0,
+ xmlSecBinTransformSubTypeDigest,
+ xmlSecBinTransformSubTypeCipher,
+ xmlSecBinTransformSubTypeBuffered
+} xmlSecBinTransformSubType;
+</ENUM>
+<ENUM>
+<NAME>xmlSecTransformResult</NAME>
+typedef enum {
+ xmlSecTransformResultBinary,
+ xmlSecTransformResultXml
+} xmlSecTransformResult;
+</ENUM>
+<STRUCT>
+<NAME>xmlSecTransformState</NAME>
+struct xmlSecTransformState {
+ /* initial state */
+ xmlDocPtr initDoc;
+ xmlSecNodeSetPtr initNodeSet;
+ char *initUri;
+
+ /* current state: xml */
+ xmlDocPtr curDoc;
+ xmlSecNodeSetPtr curNodeSet;
+
+ /* current state: binary */
+ xmlBufferPtr curBuf;
+ xmlSecTransformPtr curFirstBinTransform;
+ xmlSecTransformPtr curLastBinTransform;
+
+ /* optimization: special case for c14n transforms */
+ xmlSecTransformPtr curC14NTransform;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>xmlSecTransformStateCreate</NAME>
+<RETURNS>xmlSecTransformStatePtr </RETURNS>
+xmlDocPtr doc,xmlSecNodeSetPtr nodeSet,const char *uri
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTransformStateDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlSecTransformStatePtr state
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTransformStateUpdate</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformStatePtr state,xmlSecTransformPtr transform
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTransformStateFinal</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformStatePtr state,xmlSecTransformResult type
+</FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecTransformCreateMethod</NAME>
+<RETURNS>xmlSecTransformPtr </RETURNS>
+xmlSecTransformId id
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecTransformDestroyMethod</NAME>
+<RETURNS>void </RETURNS>
+xmlSecTransformPtr transform
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecTransformReadNodeMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,
+ xmlNodePtr transformNode
+</USER_FUNCTION>
+<STRUCT>
+<NAME>xmlSecTransformIdStruct</NAME>
+struct xmlSecTransformIdStruct {
+ /* data */
+ xmlSecTransformType type;
+ xmlSecTransformUsage usage;
+ const xmlChar *href;
+
+ /* methods */
+ xmlSecTransformCreateMethod create;
+ xmlSecTransformDestroyMethod destroy;
+ xmlSecTransformReadNodeMethod read;
+};
+</STRUCT>
+<STRUCT>
+<NAME>xmlSecTransform</NAME>
+struct xmlSecTransform {
+ xmlSecTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+};
+</STRUCT>
+<MACRO>
+<NAME>xmlSecTransformIsValid</NAME>
+#define xmlSecTransformIsValid(transform) \
+ ((( transform ) != NULL) && ((( transform )->id) != NULL))
+</MACRO>
+<MACRO>
+<NAME>xmlSecTransformCheckType</NAME>
+#define xmlSecTransformCheckType(transform, t) \
+ (xmlSecTransformIsValid(( transform )) && \
+ ((( transform )->id->type) == ( t )))
+</MACRO>
+<MACRO>
+<NAME>xmlSecTransformCheckId</NAME>
+#define xmlSecTransformCheckId(transform, i) \
+ (xmlSecTransformIsValid(( transform )) && \
+ ((((const xmlSecTransformId) (( transform )->id))) == ( i )))
+</MACRO>
+<FUNCTION>
+<NAME>xmlSecTransformsInit</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTransformsNodeRead</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformStatePtr state,xmlNodePtr transformsNode
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTransformFind</NAME>
+<RETURNS>xmlSecTransformId </RETURNS>
+const xmlChar *href
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTransformNodeRead</NAME>
+<RETURNS>xmlSecTransformPtr </RETURNS>
+xmlNodePtr transformNode,xmlSecTransformUsage usage,int dontDestroy
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTransformNodeWrite</NAME>
+<RETURNS>int </RETURNS>
+xmlNodePtr transformNode,xmlSecTransformId id
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTransformCreate</NAME>
+<RETURNS>xmlSecTransformPtr </RETURNS>
+xmlSecTransformId id,xmlSecTransformUsage usage,int dontDestroy
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTransformDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlSecTransformPtr transform,int forceDestroy
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTransformRead</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,xmlNodePtr transformNode
+</FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecBinTransformAddKeyMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform,
+ xmlSecKeyPtr key
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecBinTransformReadMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform,
+ unsigned char *buf,
+ size_t size
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecBinTransformWriteMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform,
+ const unsigned char *buf,
+ size_t size
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecBinTransformFlushMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform
+</USER_FUNCTION>
+<STRUCT>
+<NAME>xmlSecBinTransformIdStruct</NAME>
+struct xmlSecBinTransformIdStruct {
+ /* same as xmlSecTransformId */
+ /* data */
+ xmlSecTransformType type;
+ xmlSecTransformUsage usage;
+ const xmlChar *href;
+
+ /* methods */
+ xmlSecTransformCreateMethod create;
+ xmlSecTransformDestroyMethod destroy;
+ xmlSecTransformReadNodeMethod read;
+
+ /* xmlSecBinTransform data/methods */
+ /* data */
+ xmlSecKeyId keyId;
+ xmlSecKeyType encryption;
+ xmlSecKeyType decryption;
+ xmlSecBinTransformSubType binSubType;
+
+ /* methods */
+ xmlSecBinTransformAddKeyMethod addBinKey;
+ xmlSecBinTransformReadMethod readBin;
+ xmlSecBinTransformWriteMethod writeBin;
+ xmlSecBinTransformFlushMethod flushBin;
+};
+</STRUCT>
+<STRUCT>
+<NAME>xmlSecBinTransform</NAME>
+struct xmlSecBinTransform {
+ /* same as for xmlSecTransform but id type changed */
+ xmlSecBinTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+
+ /* xmlSecBinTransform specific */
+ int encode;
+ xmlSecBinTransformPtr next;
+ xmlSecBinTransformPtr prev;
+ void *binData;
+};
+</STRUCT>
+<MACRO>
+<NAME>xmlSecBinTransformIdCheckKeyId</NAME>
+#define xmlSecBinTransformIdCheckKeyId(id, kId) \
+ (((id) != NULL) && \
+ ((id)->type == xmlSecTransformTypeBinary) && \
+ (((xmlSecBinTransformId)(id))->keyId == kId))
+</MACRO>
+<MACRO>
+<NAME>xmlSecBinTransformIdGetKeyId</NAME>
+#define xmlSecBinTransformIdGetKeyId(id) \
+ ((((id) != NULL) && \
+ ((id)->type == xmlSecTransformTypeBinary)) ? \
+ ((xmlSecBinTransformId)(id))->keyId : \
+ xmlSecKeyIdUnknown)
+</MACRO>
+<MACRO>
+<NAME>xmlSecBinTransformCheckSubType</NAME>
+#define xmlSecBinTransformCheckSubType(transform, t) \
+ (xmlSecTransformCheckType(( transform ), xmlSecTransformTypeBinary) && \
+ ((((xmlSecBinTransformId)(( transform )->id))->binSubType) == ( t )))
+</MACRO>
+<MACRO>
+<NAME>xmlSecBinTransformIdGetEncKeyType</NAME>
+#define xmlSecBinTransformIdGetEncKeyType(id) \
+ ((((id) != NULL) && \
+ ((id)->type == xmlSecTransformTypeBinary)) ? \
+ ((xmlSecBinTransformId)(id))->encryption : \
+ xmlSecKeyTypeAny)
+</MACRO>
+<MACRO>
+<NAME>xmlSecBinTransformIdGetDecKeyType</NAME>
+#define xmlSecBinTransformIdGetDecKeyType(id) \
+ ((((id) != NULL) && \
+ ((id)->type == xmlSecTransformTypeBinary)) ? \
+ ((xmlSecBinTransformId)(id))->decryption : \
+ xmlSecKeyTypeAny)
+</MACRO>
+<FUNCTION>
+<NAME>xmlSecBinTransformAddKey</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,xmlSecKeyPtr key
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBinTransformRead</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,unsigned char *buf,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBinTransformWrite</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,const unsigned char *buf,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBinTransformFlush</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBinTransformAddAfter</NAME>
+<RETURNS>xmlSecTransformPtr </RETURNS>
+xmlSecTransformPtr curTransform,xmlSecTransformPtr newTransform
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBinTransformAddBefore</NAME>
+<RETURNS>xmlSecTransformPtr </RETURNS>
+xmlSecTransformPtr curTransform,xmlSecTransformPtr newTransform
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBinTransformRemove</NAME>
+<RETURNS>void </RETURNS>
+xmlSecTransformPtr transform
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBinTransformDestroyAll</NAME>
+<RETURNS>void </RETURNS>
+xmlSecTransformPtr transform
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBinTransformSetEncrypt</NAME>
+<RETURNS>void </RETURNS>
+xmlSecTransformPtr transform,int encrypt
+</FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecXmlTransformExecuteMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecXmlTransformPtr transform,
+ xmlDocPtr ctxDoc,
+ xmlDocPtr *doc,
+ xmlSecNodeSetPtr *nodes
+</USER_FUNCTION>
+<STRUCT>
+<NAME>xmlSecXmlTransformIdStruct</NAME>
+struct xmlSecXmlTransformIdStruct {
+ /* same as xmlSecTransformId */
+ /* data */
+ xmlSecTransformType type;
+ xmlSecTransformUsage usage;
+ const xmlChar *href;
+
+ /* methods */
+ xmlSecTransformCreateMethod create;
+ xmlSecTransformDestroyMethod destroy;
+ xmlSecTransformReadNodeMethod read;
+
+
+ /* xmlTransform info */
+ /* method */
+ xmlSecXmlTransformExecuteMethod executeXml;
+};
+</STRUCT>
+<STRUCT>
+<NAME>xmlSecXmlTransform</NAME>
+struct xmlSecXmlTransform {
+ /* same as for xmlSecTransform but id type changed */
+ xmlSecXmlTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+
+ /* xmlSecXmlTransform specific */
+ xmlNodePtr here;
+ void *xmlData;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>xmlSecXmlTransformExecute</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,xmlDocPtr ctxDoc,xmlDocPtr *doc,xmlSecNodeSetPtr *nodes
+</FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecC14NTransformExecuteMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecC14NTransformPtr transform,
+ xmlDocPtr doc,
+ xmlSecNodeSetPtr nodes,
+ xmlOutputBufferPtr buffer
+</USER_FUNCTION>
+<STRUCT>
+<NAME>xmlSecC14NTransformIdStruct</NAME>
+struct xmlSecC14NTransformIdStruct {
+ /* same as xmlSecTransformId */
+ /* data */
+ xmlSecTransformType type;
+ xmlSecTransformUsage usage;
+ const xmlChar *href;
+
+ /* methods */
+ xmlSecTransformCreateMethod create;
+ xmlSecTransformDestroyMethod destroy;
+ xmlSecTransformReadNodeMethod read;
+
+ /* xmlC14nTransform specific */
+ xmlSecC14NTransformExecuteMethod executeC14N;
+};
+</STRUCT>
+<STRUCT>
+<NAME>xmlSecC14NTransform</NAME>
+struct xmlSecC14NTransform {
+ /* same as for xmlSecTransform but id type changed */
+ xmlSecC14NTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+
+ /* xmlSecC14NTransform specific */
+ void *c14nData;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>xmlSecC14NTransformExecute</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,xmlDocPtr doc,xmlSecNodeSetPtr nodes,xmlOutputBufferPtr buffer
+</FUNCTION>
+<STRUCT>
+<NAME>xmlSecX509Data</NAME>
+struct xmlSecX509Data {
+ X509 *verified;
+ STACK_OF(X509) *certs;
+ STACK_OF(X509_CRL) *crls;
+ time_t certsVerificationTime;
+};
+</STRUCT>
+<STRUCT>
+<NAME>xmlSecX509Store</NAME>
+struct xmlSecX509Store {
+ unsigned long x509_store_flags;
+ X509_STORE *xst;
+ STACK_OF(X509) *untrusted;
+ STACK_OF(X509_CRL) *crls;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>xmlSecX509DataCreate</NAME>
+<RETURNS>xmlSecX509DataPtr </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509DataDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlSecX509DataPtr x509Data
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509DataGetCertsNumber</NAME>
+<RETURNS>size_t </RETURNS>
+xmlSecX509DataPtr x509Data
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509DataGetCrlsNumber</NAME>
+<RETURNS>size_t </RETURNS>
+xmlSecX509DataPtr x509Data
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509DataReadDerCert</NAME>
+<RETURNS>int </RETURNS>
+xmlSecX509DataPtr x509Data,xmlChar *buf,size_t size,int base64
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509DataWriteDerCert</NAME>
+<RETURNS>xmlChar *</RETURNS>
+xmlSecX509DataPtr x509Data,int pos
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509DataReadDerCrl</NAME>
+<RETURNS>int </RETURNS>
+xmlSecX509DataPtr x509Data,xmlChar *buf,size_t size,int base64
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509DataWriteDerCrl</NAME>
+<RETURNS>xmlChar *</RETURNS>
+xmlSecX509DataPtr x509Data,int pos
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509DataReadPemCert</NAME>
+<RETURNS>int </RETURNS>
+xmlSecX509DataPtr x509Data,const char *filename
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509DataDup</NAME>
+<RETURNS>xmlSecX509DataPtr </RETURNS>
+xmlSecX509DataPtr x509Data
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509DataCreateKey</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+xmlSecX509DataPtr x509Data
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509DataDebugDump</NAME>
+<RETURNS>void </RETURNS>
+xmlSecX509DataPtr x509Data,FILE *output
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509DataDebugXmlDump</NAME>
+<RETURNS>void </RETURNS>
+xmlSecX509DataPtr x509Data,FILE *output
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509StoreCreate</NAME>
+<RETURNS>xmlSecX509StorePtr </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509StoreDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlSecX509StorePtr store
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509StoreFind</NAME>
+<RETURNS>xmlSecX509DataPtr </RETURNS>
+xmlSecX509StorePtr store,xmlChar *subjectName,xmlChar *issuerName,xmlChar *issuerSerial,xmlChar *ski,xmlSecX509DataPtr x509Data
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509StoreVerify</NAME>
+<RETURNS>int </RETURNS>
+xmlSecX509StorePtr store,xmlSecX509DataPtr x509Data
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509StoreLoadPemCert</NAME>
+<RETURNS>int </RETURNS>
+xmlSecX509StorePtr store,const char *filename,int trusted
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509StoreAddCertsDir</NAME>
+<RETURNS>int </RETURNS>
+xmlSecX509StorePtr store,const char *path
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecPKCS12ReadKey</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+const char *filename,const char *pwd
+</FUNCTION>
+<TYPEDEF>
+<NAME>xmlSecX509DataPtr</NAME>
+typedef void* xmlSecX509Data, *xmlSecX509DataPtr;
+</TYPEDEF>
+<TYPEDEF>
+<NAME>xmlSecX509StorePtr</NAME>
+typedef void* xmlSecX509Store, *xmlSecX509StorePtr;
+</TYPEDEF>
+<STRUCT>
+<NAME>xmlSecDSigCtx</NAME>
+struct xmlSecDSigCtx {
+ xmlSecKeysMngrPtr keysMngr;
+ int processManifests;
+ int storeSignatures;
+ int storeReferences;
+ int storeManifests;
+ int fakeSignatures;
+ time_t certsVerificationTime;
+};
+</STRUCT>
+<STRUCT>
+<NAME>xmlSecDSigResult</NAME>
+struct xmlSecDSigResult {
+ xmlSecDSigCtxPtr ctx;
+ void *context;
+ xmlNodePtr self;
+ int sign;
+ xmlSecTransformStatus result;
+ xmlSecTransformId signMethod;
+ xmlSecKeyPtr key;
+ xmlSecReferenceResultPtr firstSignRef;
+ xmlSecReferenceResultPtr lastSignRef;
+ xmlSecReferenceResultPtr firstManifestRef;
+ xmlSecReferenceResultPtr lastManifestRef;
+ xmlBufferPtr buffer;
+};
+</STRUCT>
+<ENUM>
+<NAME>xmlSecReferenceType</NAME>
+typedef enum {
+ xmlSecSignedInfoReference,
+ xmlSecManifestReference
+} xmlSecReferenceType;
+</ENUM>
+<STRUCT>
+<NAME>xmlSecReferenceResult</NAME>
+struct xmlSecReferenceResult {
+ xmlSecDSigCtxPtr ctx;
+ xmlNodePtr self;
+ xmlSecReferenceType refType;
+ xmlSecTransformStatus result;
+ xmlSecReferenceResultPtr next;
+ xmlSecReferenceResultPtr prev;
+ xmlChar *uri;
+ xmlChar *id;
+ xmlChar *type;
+ xmlSecTransformId digestMethod;
+ xmlBufferPtr buffer;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>xmlSecDSigCtxCreate</NAME>
+<RETURNS>xmlSecDSigCtxPtr </RETURNS>
+xmlSecKeysMngrPtr keysMngr
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDSigCtxDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlSecDSigCtxPtr ctx
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSignatureCreate</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+const xmlChar *id
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSignatureDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlNodePtr signNode
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSignatureAddSignedInfo</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr signNode,const xmlChar *id
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSignatureAddKeyInfo</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr signNode,const xmlChar *id
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSignatureAddObject</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr signNode,const xmlChar *id,const xmlChar *mimeType,const xmlChar *encoding
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSignedInfoAddC14NMethod</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr signedInfoNode,xmlSecTransformId c14nMethod
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSignedInfoAddSignMethod</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr signedInfoNode,xmlSecTransformId signMethod
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSignedInfoAddReference</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr signedInfoNode,const xmlChar *id,const xmlChar *uri,const xmlChar *type
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecReferenceAddDigestMethod</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr refNode,xmlSecTransformId digestMethod
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecReferenceAddTransform</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr refNode,xmlSecTransformId transform
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecObjectAddSignProperties</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr objectNode,const xmlChar *id,const xmlChar *target
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecObjectAddManifest</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr objectNode,const xmlChar *id
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecManifestAddReference</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr manifestNode,const xmlChar *id,const xmlChar *uri,const xmlChar *type
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDSigValidate</NAME>
+<RETURNS>int </RETURNS>
+xmlSecDSigCtxPtr ctx,void *context,xmlSecKeyPtr key,xmlNodePtr signNode,xmlSecDSigResultPtr *result
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDSigGenerate</NAME>
+<RETURNS>int </RETURNS>
+xmlSecDSigCtxPtr ctx,void *context,xmlSecKeyPtr key,xmlNodePtr signNode,xmlSecDSigResultPtr *result
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDSigResultCreate</NAME>
+<RETURNS>xmlSecDSigResultPtr </RETURNS>
+xmlSecDSigCtxPtr ctx,void *context,xmlNodePtr signNode,int sign
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDSigResultDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlSecDSigResultPtr result
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDSigResultDebugDump</NAME>
+<RETURNS>void </RETURNS>
+xmlSecDSigResultPtr result,FILE *output
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDSigResultDebugXmlDump</NAME>
+<RETURNS>void </RETURNS>
+xmlSecDSigResultPtr result,FILE *output
+</FUNCTION>
+<STRUCT>
+<NAME>xmlSecEncCtx</NAME>
+struct xmlSecEncCtx {
+ xmlSecKeysMngrPtr keysMngr;
+ xmlSecTransformId encryptionMethod;
+ int ignoreType;
+ time_t certsVerificationTime;
+};
+</STRUCT>
+<STRUCT>
+<NAME>xmlSecEncResult</NAME>
+struct xmlSecEncResult {
+ xmlSecEncCtxPtr ctx;
+ void *context;
+ xmlNodePtr self;
+ int encrypt;
+ xmlChar *id;
+ xmlChar *type;
+ xmlChar *mimeType;
+ xmlChar *encoding;
+ xmlSecTransformId encryptionMethod;
+ xmlSecKeyPtr key;
+ xmlBufferPtr buffer;
+ int replaced;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>xmlSecEncCtxCreate</NAME>
+<RETURNS>xmlSecEncCtxPtr </RETURNS>
+xmlSecKeysMngrPtr keysMngr
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncCtxDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlSecEncCtxPtr ctx
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncryptMemory</NAME>
+<RETURNS>int </RETURNS>
+xmlSecEncCtxPtr ctx,void *context,xmlSecKeyPtr key,xmlNodePtr encNode,const unsigned char *buf,size_t size,xmlSecEncResultPtr *result
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncryptUri</NAME>
+<RETURNS>int </RETURNS>
+xmlSecEncCtxPtr ctx,void *context,xmlSecKeyPtr key,xmlNodePtr encNode,const char *uri,xmlSecEncResultPtr *result
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncryptXmlNode</NAME>
+<RETURNS>int </RETURNS>
+xmlSecEncCtxPtr ctx,void *context,xmlSecKeyPtr key,xmlNodePtr encNode,xmlNodePtr src,xmlSecEncResultPtr *result
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDecrypt</NAME>
+<RETURNS>int </RETURNS>
+xmlSecEncCtxPtr ctx,void *context,xmlSecKeyPtr key,xmlNodePtr encNode,xmlSecEncResultPtr *result
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncResultCreate</NAME>
+<RETURNS>xmlSecEncResultPtr </RETURNS>
+xmlSecEncCtxPtr ctx,void *context,int encrypt,xmlNodePtr node
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncResultDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlSecEncResultPtr result
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncResultDebugDump</NAME>
+<RETURNS>void </RETURNS>
+xmlSecEncResultPtr result,FILE *output
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncResultDebugXmlDump</NAME>
+<RETURNS>void </RETURNS>
+xmlSecEncResultPtr result,FILE *output
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncDataCreate</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+const xmlChar *id,const xmlChar *type,const xmlChar *mimeType,const xmlChar *encoding
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncDataDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlNodePtr encNode
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncDataAddEncMethod</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr encNode,xmlSecTransformId encMethod
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncDataAddKeyInfo</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr encNode
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncDataAddEncProperties</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr encNode,const xmlChar *id
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncDataAddEncProperty</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr encNode,const xmlChar *id,const xmlChar *target
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncDataAddCipherValue</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr encNode
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncDataAddCipherReference</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr encNode,const xmlChar *uri
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecCipherReferenceAddTransform</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr encNode,xmlSecTransformId transform
+</FUNCTION>
+<MACRO>
+<NAME>extern</NAME>
+# define extern __declspec(dllexport) extern
+</MACRO>
+<MACRO>
+<NAME>extern</NAME>
+# define extern
+</MACRO>
+<MACRO>
+<NAME>extern</NAME>
+# define extern extern
+</MACRO>
+<MACRO>
+<NAME>extern</NAME>
+# define extern __declspec(dllimport) extern
+</MACRO>
+<MACRO>
+<NAME>extern</NAME>
+# define extern extern
+</MACRO>
+<MACRO>
+<NAME>extern</NAME>
+# define extern extern
+</MACRO>
+<FUNCTION>
+<NAME>xmlSecInit</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecShutdown</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<MACRO>
+<NAME>ATTRIBUTE_UNUSED</NAME>
+#define ATTRIBUTE_UNUSED
+</MACRO>
+<MACRO>
+<NAME>ATTRIBUTE_UNUSED</NAME>
+#define ATTRIBUTE_UNUSED
+</MACRO>
+<FUNCTION>
+<NAME>xmlSecParseFile</NAME>
+<RETURNS>xmlDocPtr </RETURNS>
+const char *filename
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecParseMemory</NAME>
+<RETURNS>xmlDocPtr </RETURNS>
+const unsigned char *buffer,size_t size,int recovery
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecParseMemoryExt</NAME>
+<RETURNS>xmlDocPtr </RETURNS>
+const unsigned char *prefix,size_t prefixSize,const unsigned char *buffer,size_t bufferSize,const unsigned char *postfix,size_t postfixSize
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecCheckNodeName</NAME>
+<RETURNS>int </RETURNS>
+const xmlNodePtr cur,const xmlChar *name,const xmlChar *ns
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecGetNextElementNode</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr cur
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecFindChild</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+const xmlNodePtr parent,const xmlChar *name,const xmlChar *ns
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecFindParent</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+const xmlNodePtr cur,const xmlChar *name,const xmlChar *ns
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecFindNode</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+const xmlNodePtr parent,const xmlChar *name,const xmlChar *ns
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecAddChild</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr parent,const xmlChar *name,const xmlChar *ns
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecAddNextSibling</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr node,const xmlChar *name,const xmlChar *ns
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecAddPrevSibling</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr node,const xmlChar *name,const xmlChar *ns
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecReplaceNode</NAME>
+<RETURNS>int </RETURNS>
+xmlNodePtr node,xmlNodePtr newNode
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecReplaceContent</NAME>
+<RETURNS>int </RETURNS>
+xmlNodePtr node,xmlNodePtr newNode
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecReplaceNodeBuffer</NAME>
+<RETURNS>int </RETURNS>
+xmlNodePtr node,const unsigned char *buffer,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecAddIDs</NAME>
+<RETURNS>void </RETURNS>
+xmlDocPtr doc,xmlNodePtr cur,const xmlChar** ids
+</FUNCTION>
+<MACRO>
+<NAME>xmlSecIsHex</NAME>
+#define xmlSecIsHex(c) \
+ (( (('0' <= (c)) && ((c) <= '9')) || \
+ (('a' <= (c)) && ((c) <= 'f')) || \
+ (('A' <= (c)) && ((c) <= 'F')) ) ? 1 : 0)
+</MACRO>
+<MACRO>
+<NAME>xmlSecGetHex</NAME>
+#define xmlSecGetHex(c) \
+ ( (('0' <= (c)) && ((c) <= '9')) ? (c) - '0' : \
+ ( (('a' <= (c)) && ((c) <= 'f')) ? (c) - 'a' + 10 : \
+ ( (('A' <= (c)) && ((c) <= 'F')) ? (c) - 'A' + 10 : 0 )))
+</MACRO>
diff --git a/docs/api-0.0.x/xmlsec-decl.txt.bak b/docs/api-0.0.x/xmlsec-decl.txt.bak
new file mode 100644
index 00000000..84df322e
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-decl.txt.bak
@@ -0,0 +1,2256 @@
+<FUNCTION>
+<NAME>xmlSecBase64CtxCreate</NAME>
+<RETURNS>xmlSecBase64CtxPtr </RETURNS>
+int encode,int columns
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBase64CtxDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlSecBase64CtxPtr ctx
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBase64CtxUpdate</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBase64CtxPtr ctx,const unsigned char *in,size_t inLen,unsigned char *out,size_t outLen
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBase64CtxFinal</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBase64CtxPtr ctx,unsigned char *out,size_t outLen
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBase64Encode</NAME>
+<RETURNS>xmlChar *</RETURNS>
+const unsigned char *buf,size_t len,int columns
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBase64Decode</NAME>
+<RETURNS>int </RETURNS>
+const xmlChar* str,unsigned char *buf,size_t len
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecCryptoBinary2BN</NAME>
+<RETURNS>BIGNUM *</RETURNS>
+const xmlChar *str,BIGNUM **a
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBN2CryptoBinary</NAME>
+<RETURNS>xmlChar *</RETURNS>
+const BIGNUM *a
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecNodeGetBNValue</NAME>
+<RETURNS>BIGNUM *</RETURNS>
+const xmlNodePtr cur,BIGNUM **a
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecNodeSetBNValue</NAME>
+<RETURNS>int </RETURNS>
+xmlNodePtr cur,const BIGNUM *a,int addLineBreaks
+</FUNCTION>
+<TYPEDEF>
+<NAME>xmlSecBufferedTransformId</NAME>
+typedef const struct _xmlSecBufferedTransformIdStruct *xmlSecBufferedTransformId;
+</TYPEDEF>
+<USER_FUNCTION>
+<NAME>xmlSecBufferedProcessMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBufferedTransformPtr transform,
+ xmlBufferPtr buffer
+</USER_FUNCTION>
+<STRUCT>
+<NAME>xmlSecBufferedTransformIdStruct</NAME>
+struct xmlSecBufferedTransformIdStruct {
+ /* same as xmlSecTransformId */
+ xmlSecTransformType type;
+ xmlSecTransformUsage usage;
+ const xmlChar *href;
+
+ xmlSecTransformCreateMethod create;
+ xmlSecTransformDestroyMethod destroy;
+ xmlSecTransformReadNodeMethod read;
+
+ /* xmlSecBinTransform data/methods */
+ xmlSecKeyId keyId;
+ xmlSecKeyType encryption;
+ xmlSecKeyType decryption;
+ xmlSecBinTransformSubType binSubType;
+
+ xmlSecBinTransformAddKeyMethod addBinKey;
+ xmlSecBinTransformReadMethod readBin;
+ xmlSecBinTransformWriteMethod writeBin;
+ xmlSecBinTransformFlushMethod flushBin;
+
+ /* xmlSecBufferedTransform data/methods */
+ xmlSecBufferedProcessMethod bufferedProcess;
+};
+</STRUCT>
+<STRUCT>
+<NAME>xmlSecBufferedTransform</NAME>
+struct xmlSecBufferedTransform {
+ /* same as for xmlSecTransform but id type changed */
+ xmlSecBufferedTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+
+ /* xmlSecBinTransform specific */
+ int encode;
+ xmlSecBinTransformPtr next;
+ xmlSecBinTransformPtr prev;
+ void *binData;
+
+ /* xmlSecBufferedTransform specific */
+ xmlBufferPtr buffer;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>xmlSecBufferedTransformRead</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform,unsigned char *buf,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBufferedTransformWrite</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform,const unsigned char *buf,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBufferedTransformFlush</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBufferedDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlSecBufferedTransformPtr buffered
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBufferedProcess</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform,xmlBufferPtr buffer
+</FUNCTION>
+<TYPEDEF>
+<NAME>xmlSecCipherTransformId</NAME>
+typedef const struct _xmlSecCipherTransformIdStruct *xmlSecCipherTransformId;
+</TYPEDEF>
+<USER_FUNCTION>
+<NAME>xmlSecCipherUpdateMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecCipherTransformPtr transform,
+ const unsigned char *buffer,
+ size_t size
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecCipherFinalMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecCipherTransformPtr transform
+</USER_FUNCTION>
+<STRUCT>
+<NAME>xmlSecCipherTransformIdStruct</NAME>
+struct xmlSecCipherTransformIdStruct {
+ /* same as xmlSecTransformId */
+ xmlSecTransformType type;
+ xmlSecTransformUsage usage;
+ const xmlChar *href;
+
+ xmlSecTransformCreateMethod create;
+ xmlSecTransformDestroyMethod destroy;
+ xmlSecTransformReadNodeMethod read;
+
+ /* xmlSecBinTransform data/methods */
+ xmlSecKeyId keyId;
+ xmlSecKeyType encryption;
+ xmlSecKeyType decryption;
+ xmlSecBinTransformSubType binSubType;
+
+ xmlSecBinTransformAddKeyMethod addBinKey;
+ xmlSecBinTransformReadMethod readBin;
+ xmlSecBinTransformWriteMethod writeBin;
+ xmlSecBinTransformFlushMethod flushBin;
+
+ /* xmlSecCipherTransform data/methods */
+ xmlSecCipherUpdateMethod cipherUpdate;
+ xmlSecCipherFinalMethod cipherFinal;
+ size_t keySize;
+ size_t ivSize;
+ size_t bufInSize;
+ size_t bufOutSize;
+};
+</STRUCT>
+<STRUCT>
+<NAME>xmlSecCipherTransform</NAME>
+struct xmlSecCipherTransform {
+ /* same as for xmlSecTransform but id type changed */
+ xmlSecCipherTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+
+ /* xmlSecBinTransform specific */
+ int encode;
+ xmlSecCipherTransformPtr next;
+ xmlSecCipherTransformPtr prev;
+ void *binData;
+
+ /* xmlSecCipherTransform specific */
+ unsigned char *bufIn;
+ unsigned char *bufOut;
+ EVP_CIPHER_CTX cipherCtx;
+ unsigned char *iv;
+ size_t ivPos;
+ void *cipherData;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>xmlSecCipherTransformRead</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform,unsigned char *buf,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecCipherTransformWrite</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform,const unsigned char *buf,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecCipherTransformFlush</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEvpCipherUpdate</NAME>
+<RETURNS>int </RETURNS>
+xmlSecCipherTransformPtr cipher,const unsigned char *buffer,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEvpCipherFinal</NAME>
+<RETURNS>int </RETURNS>
+xmlSecCipherTransformPtr cipher
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecCipherUpdate</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,const unsigned char *buffer,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecCipherFinal</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTimerInit</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTimerStart</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTimerEnd</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTimerGet</NAME>
+<RETURNS>double </RETURNS>
+void
+</FUNCTION>
+<TYPEDEF>
+<NAME>xmlSecDigestTransformId</NAME>
+typedef const struct _xmlSecDigestTransformIdStruct *xmlSecDigestTransformId;
+</TYPEDEF>
+<USER_FUNCTION>
+<NAME>xmlSecDigestUpdateMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecDigestTransformPtr transform,
+ const unsigned char *buffer,
+ size_t size
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecDigestSignMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecDigestTransformPtr transform,
+ unsigned char **buffer,
+ size_t *size
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecDigestVerifyMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecDigestTransformPtr transform,
+ const unsigned char *buffer,
+ size_t size
+</USER_FUNCTION>
+<STRUCT>
+<NAME>xmlSecDigestTransformIdStruct</NAME>
+struct xmlSecDigestTransformIdStruct {
+ /* same as xmlSecTransformId */
+ xmlSecTransformType type;
+ xmlSecTransformUsage usage;
+ const xmlChar *href;
+
+ xmlSecTransformCreateMethod create;
+ xmlSecTransformDestroyMethod destroy;
+ xmlSecTransformReadNodeMethod read;
+
+ /* xmlSecBinTransform data/methods */
+ xmlSecKeyId keyId;
+ xmlSecKeyType encryption;
+ xmlSecKeyType decryption;
+ xmlSecBinTransformSubType binSubType;
+
+ xmlSecBinTransformAddKeyMethod addBinKey;
+ xmlSecBinTransformReadMethod readBin;
+ xmlSecBinTransformWriteMethod writeBin;
+ xmlSecBinTransformFlushMethod flushBin;
+
+ /* xmlSecDigestTransform data/methods */
+ xmlSecDigestUpdateMethod digestUpdate;
+ xmlSecDigestSignMethod digestSign;
+ xmlSecDigestVerifyMethod digestVerify;
+};
+</STRUCT>
+<STRUCT>
+<NAME>xmlSecDigestTransform</NAME>
+struct xmlSecDigestTransform {
+ /* same as for xmlSecTransform but id type changed */
+ xmlSecDigestTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+
+ /* xmlSecBinTransform specific */
+ int encode;
+ xmlSecDigestTransformPtr next;
+ xmlSecDigestTransformPtr prev;
+ void *binData;
+
+ /* xmlSecDigestTransform specific */
+ int pushModeEnabled;
+ unsigned char *digest;
+ size_t digestSize;
+ void *digestData;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>xmlSecDigestSignNode</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,xmlNodePtr valueNode,int removeOldContent
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDigestVerifyNode</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,const xmlNodePtr valueNode
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDigestSetPushMode</NAME>
+<RETURNS>void </RETURNS>
+xmlSecTransformPtr transform,int enabled
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDigestUpdate</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,const unsigned char *buffer,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDigestSign</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,unsigned char **buffer,size_t *size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDigestVerify</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,const unsigned char *buffer,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDigestTransformRead</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform,unsigned char *buf,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDigestTransformWrite</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform,const unsigned char *buf,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDigestTransformFlush</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform
+</FUNCTION>
+<VARIABLE>
+<NAME>xmlSecInputUri</NAME>
+extern xmlSecTransformId xmlSecInputUri;
+</VARIABLE>
+<FUNCTION>
+<NAME>xmlSecIOInit</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecIOShutdown</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecInputUriTransformOpen</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,const char *uri
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecCleanupInputCallbacks</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecRegisterDefaultInputCallbacks</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecRegisterInputCallbacks</NAME>
+<RETURNS>int </RETURNS>
+xmlInputMatchCallback matchFunc,xmlInputOpenCallback openFunc,xmlInputReadCallback readFunc,xmlInputCloseCallback closeFunc
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyInfoNodeRead</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+xmlNodePtr keyInfoNode,xmlSecKeysMngrPtr keysMngr,void *context,xmlSecKeyId keyId,xmlSecKeyType keyType,xmlSecKeyUsage keyUsage
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyInfoNodeWrite</NAME>
+<RETURNS>int </RETURNS>
+xmlNodePtr keyInfoNode,xmlSecKeysMngrPtr keysMngr,void *context,xmlSecKeyPtr key,xmlSecKeyType type
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyInfoAddKeyName</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr keyInfoNode
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyInfoAddKeyValue</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr keyInfoNode
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyInfoAddX509Data</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr keyInfoNode
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyInfoAddRetrievalMethod</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr keyInfoNode,const xmlChar *uri,const xmlChar *type
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecRetrievalMethodAddTransform</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr retrMethod,xmlSecTransformId transform
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyInfoAddEncryptedKey</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr keyInfoNode,const xmlChar *id,const xmlChar *type,const xmlChar *recipient
+</FUNCTION>
+<TYPEDEF>
+<NAME>xmlSecKeyId</NAME>
+typedef const struct _xmlSecKeyIdStruct *xmlSecKeyId;
+</TYPEDEF>
+<ENUM>
+<NAME>xmlSecKeyType</NAME>
+typedef enum {
+ xmlSecKeyTypePublic = 0,
+ xmlSecKeyTypePrivate,
+ xmlSecKeyTypeAny
+} xmlSecKeyType;
+</ENUM>
+<ENUM>
+<NAME>xmlSecKeyUsage</NAME>
+typedef enum {
+ xmlSecKeyUsageAny = 0,
+ xmlSecKeyUsageSign,
+ xmlSecKeyUsageVerify,
+ xmlSecKeyUsageEncrypt,
+ xmlSecKeyUsageDecrypt
+} xmlSecKeyUsage;
+</ENUM>
+<TYPEDEF>
+<NAME>xmlSecKeyOrigin</NAME>
+typedef long xmlSecKeyOrigin;
+</TYPEDEF>
+<MACRO>
+<NAME>xmlSecKeyOriginDefault</NAME>
+#define xmlSecKeyOriginDefault 0
+</MACRO>
+<MACRO>
+<NAME>xmlSecKeyOriginKeyManager</NAME>
+#define xmlSecKeyOriginKeyManager 1
+</MACRO>
+<MACRO>
+<NAME>xmlSecKeyOriginKeyName</NAME>
+#define xmlSecKeyOriginKeyName 2
+</MACRO>
+<MACRO>
+<NAME>xmlSecKeyOriginKeyValue</NAME>
+#define xmlSecKeyOriginKeyValue 4
+</MACRO>
+<MACRO>
+<NAME>xmlSecKeyOriginRetrievalDocument</NAME>
+#define xmlSecKeyOriginRetrievalDocument 8
+</MACRO>
+<MACRO>
+<NAME>xmlSecKeyOriginRetrievalRemote</NAME>
+#define xmlSecKeyOriginRetrievalRemote 16
+</MACRO>
+<MACRO>
+<NAME>xmlSecKeyOriginX509</NAME>
+#define xmlSecKeyOriginX509 32
+</MACRO>
+<MACRO>
+<NAME>xmlSecKeyOriginPGP</NAME>
+#define xmlSecKeyOriginPGP 64
+</MACRO>
+<MACRO>
+<NAME>xmlSecKeyOriginEncryptedKey</NAME>
+#define xmlSecKeyOriginEncryptedKey 128
+</MACRO>
+<MACRO>
+<NAME>xmlSecKeyOriginAll</NAME>
+#define xmlSecKeyOriginAll \
+ (xmlSecKeyOriginKeyManager | xmlSecKeyOriginKeyName | \
+ xmlSecKeyOriginKeyValue | xmlSecKeyOriginKeyValue | \
+ xmlSecKeyOriginRetrievalDocument | xmlSecKeyOriginRetrievalRemote | \
+ xmlSecKeyOriginX509 | xmlSecKeyOriginPGP | xmlSecKeyOriginEncryptedKey)
+</MACRO>
+<MACRO>
+<NAME>xmlSecKeyIdUnknown</NAME>
+#define xmlSecKeyIdUnknown NULL
+</MACRO>
+<STRUCT>
+<NAME>xmlSecKey</NAME>
+struct xmlSecKey {
+ xmlSecKeyId id;
+ xmlSecKeyType type;
+ xmlChar *name;
+ xmlSecKeyOrigin origin;
+ xmlSecX509DataPtr x509Data;
+ void *keyData;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>xmlSecKeyCreate</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+xmlSecKeyId id,xmlSecKeyOrigin origin
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlSecKeyPtr key
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyDuplicate</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+xmlSecKeyPtr key,xmlSecKeyOrigin origin
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecVerifyKey</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeyPtr key,const xmlChar *name,xmlSecKeyId id,xmlSecKeyType type
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyDebugDump</NAME>
+<RETURNS>void </RETURNS>
+xmlSecKeyPtr key,FILE *output
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyReadPemCert</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeyPtr key,const char *filename
+</FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecGetKeyCallback</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+xmlNodePtr keyInfoNode,
+ xmlSecKeysMngrPtr mngr,
+ void *context,
+ xmlSecKeyId keyId,
+ xmlSecKeyType type,
+ xmlSecKeyUsage usage
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecFindKeyCallback</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+xmlSecKeysMngrPtr mngr,
+ void *context,
+ const xmlChar *name,
+ xmlSecKeyId id,
+ xmlSecKeyType type,
+ xmlSecKeyUsage usage
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecX509FindCallback</NAME>
+<RETURNS>xmlSecX509DataPtr </RETURNS>
+xmlSecKeysMngrPtr mngr,
+ void *context,
+ xmlChar *subjectName,
+ xmlChar *issuerName,
+ xmlChar *issuerSerial,
+ xmlChar *ski,
+ xmlSecX509DataPtr cert
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecX509VerifyCallback</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeysMngrPtr mngr,
+ void *context,
+ xmlSecX509DataPtr cert
+</USER_FUNCTION>
+<STRUCT>
+<NAME>xmlSecKeysMngr</NAME>
+struct xmlSecKeysMngr {
+ xmlSecGetKeyCallback getKey;
+ xmlSecKeyOrigin allowedOrigins;
+ int maxRetrievalsLevel;
+ int maxEncKeysLevel;
+
+ /* low level keys */
+ xmlSecFindKeyCallback findKey;
+ void *keysData;
+
+ /* x509 certs */
+ int failIfCertNotFound;
+ xmlSecX509FindCallback findX509;
+ xmlSecX509VerifyCallback verifyX509;
+ void *x509Data;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>xmlSecKeysMngrGetKey</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+xmlNodePtr keyInfoNode,xmlSecKeysMngrPtr mngr,void *context,xmlSecKeyId keyId,xmlSecKeyType keyType,xmlSecKeyUsage keyUsage
+</FUNCTION>
+<MACRO>
+<NAME>xmlSecKeyInifiteRetrivals</NAME>
+#define xmlSecKeyInifiteRetrivals 99999
+</MACRO>
+<USER_FUNCTION>
+<NAME>xmlSecKeyCreateMethod</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+xmlSecKeyId id
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecKeyDuplicateMethod</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+xmlSecKeyPtr key
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecKeyDestroyMethod</NAME>
+<RETURNS>void </RETURNS>
+xmlSecKeyPtr key
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecKeyReadXmlMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeyPtr key,
+ xmlNodePtr node
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecKeyWriteXmlMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeyPtr key,
+ xmlSecKeyType type,
+ xmlNodePtr parent
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecKeyReadBinaryMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeyPtr key,
+ const unsigned char *buf,
+ size_t size
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecKeyWriteBinaryMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeyPtr key,
+ xmlSecKeyType type,
+ unsigned char **buf,
+ size_t *size
+</USER_FUNCTION>
+<STRUCT>
+<NAME>xmlSecKeyIdStruct</NAME>
+struct xmlSecKeyIdStruct {
+ /* xlmlSecKeyId data */
+ const xmlChar *keyValueNodeName;
+ const xmlChar *keyValueNodeNs;
+
+ /* xmlSecKeyId methods */
+ xmlSecKeyCreateMethod create;
+ xmlSecKeyDestroyMethod destroy;
+ xmlSecKeyDuplicateMethod duplicate;
+ xmlSecKeyReadXmlMethod read;
+ xmlSecKeyWriteXmlMethod write;
+ xmlSecKeyReadBinaryMethod readBin;
+ xmlSecKeyWriteBinaryMethod writeBin;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>xmlSecKeysInit</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<MACRO>
+<NAME>xmlSecKeyIsValid</NAME>
+#define xmlSecKeyIsValid(key) \
+ ((( key ) != NULL) && ((( key )->id) != NULL))
+</MACRO>
+<MACRO>
+<NAME>xmlSecKeyCheckId</NAME>
+#define xmlSecKeyCheckId(key, keyId) \
+ (xmlSecKeyIsValid(( key )) && \
+ ((( key )->id) == ( keyId )))
+</MACRO>
+<MACRO>
+<NAME>xmlSecKeyCheckTransform</NAME>
+#define xmlSecKeyCheckTransform(key, tr) \
+ (xmlSecKeyIsValid(( key )) && \
+ ((((const xmlSecKeyId) (( key )->id->transformId))) == ( tr )))
+</MACRO>
+<FUNCTION>
+<NAME>xmlSecKeyReadXml</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+xmlSecKeyId id,xmlNodePtr node
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyWriteXml</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeyPtr key,xmlSecKeyType type,xmlNodePtr node
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyReadBin</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+xmlSecKeyId id,const unsigned char *buf,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecKeyWriteBin</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeyPtr key,xmlSecKeyType type,unsigned char **buf,size_t *size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSimpleKeysMngrCreate</NAME>
+<RETURNS>xmlSecKeysMngrPtr </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSimpleKeysMngrDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlSecKeysMngrPtr mngr
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSimpleKeysMngrFindKey</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+xmlSecKeysMngrPtr mngr,void *context,const xmlChar *name,xmlSecKeyId id,xmlSecKeyType type,xmlSecKeyUsage usage
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSimpleKeysMngrAddKey</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeysMngrPtr mngr,xmlSecKeyPtr key
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSimpleKeysMngrLoad</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeysMngrPtr mngr,const char *uri,int strict
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSimpleKeysMngrSave</NAME>
+<RETURNS>int </RETURNS>
+const xmlSecKeysMngrPtr mngr,const char *filename,xmlSecKeyType type
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSimpleKeysMngrLoadPemKey</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+xmlSecKeysMngrPtr mngr,const char *keyfile,const char *keyPwd,pem_password_cb *keyPwdCallback,int privateKey
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSimpleKeysMngrX509Find</NAME>
+<RETURNS>xmlSecX509DataPtr </RETURNS>
+xmlSecKeysMngrPtr mngr,void *context,xmlChar *subjectName,xmlChar *issuerName,xmlChar *issuerSerial,xmlChar *ski,xmlSecX509DataPtr cert
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSimpleKeysMngrX509Verify</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeysMngrPtr mngr,void *context,xmlSecX509DataPtr cert
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSimpleKeysMngrLoadPemCert</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeysMngrPtr mngr,const char *filename,int trusted
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSimpleKeysMngrAddCertsDir</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeysMngrPtr mngr,const char *path
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSimpleKeysMngrLoadPkcs12</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeysMngrPtr mngr,const char* name,const char *filename,const char *pwd
+</FUNCTION>
+<VARIABLE>
+<NAME>xmlSecMemBuf</NAME>
+extern xmlSecTransformId xmlSecMemBuf;
+</VARIABLE>
+<FUNCTION>
+<NAME>xmlSecMemBufTransformGetBuffer</NAME>
+<RETURNS>xmlBufferPtr </RETURNS>
+xmlSecTransformPtr transform,int removeBuffer
+</FUNCTION>
+<TYPEDEF>
+<NAME>xmlSecTransformId</NAME>
+typedef const struct _xmlSecTransformIdStruct xmlSecTransformIdStruct, *xmlSecTransformId;
+</TYPEDEF>
+<MACRO>
+<NAME>xmlSecTransformUnknown</NAME>
+#define xmlSecTransformUnknown NULL
+</MACRO>
+<ENUM>
+<NAME>xmlSecTransformStatus</NAME>
+typedef enum {
+ xmlSecTransformStatusNone = 0,
+ xmlSecTransformStatusOk,
+ xmlSecTransformStatusFail
+} xmlSecTransformStatus;
+</ENUM>
+<VARIABLE>
+<NAME>xmlSecEncAes128Cbc</NAME>
+extern xmlSecTransformId xmlSecEncAes128Cbc;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecEncAes192Cbc</NAME>
+extern xmlSecTransformId xmlSecEncAes192Cbc;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecEncAes256Cbc</NAME>
+extern xmlSecTransformId xmlSecEncAes256Cbc;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecKWAes128</NAME>
+extern xmlSecTransformId xmlSecKWAes128;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecKWAes192</NAME>
+extern xmlSecTransformId xmlSecKWAes192;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecKWAes256</NAME>
+extern xmlSecTransformId xmlSecKWAes256;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecAesKey</NAME>
+extern xmlSecKeyId xmlSecAesKey;
+</VARIABLE>
+<FUNCTION>
+<NAME>xmlSecAesKeyGenerate</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeyPtr key,const unsigned char *buf,size_t size
+</FUNCTION>
+<MACRO>
+<NAME>XMLSEC_BASE64_LINESIZE</NAME>
+#define XMLSEC_BASE64_LINESIZE 64
+</MACRO>
+<VARIABLE>
+<NAME>xmlSecEncBase64Encode</NAME>
+extern xmlSecTransformId xmlSecEncBase64Encode;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecEncBase64Decode</NAME>
+extern xmlSecTransformId xmlSecEncBase64Decode;
+</VARIABLE>
+<FUNCTION>
+<NAME>xmlSecBase64EncodeSetLineSize</NAME>
+<RETURNS>void </RETURNS>
+xmlSecTransformPtr transform,size_t lineSize
+</FUNCTION>
+<VARIABLE>
+<NAME>xmlSecC14NInclusive</NAME>
+extern xmlSecTransformId xmlSecC14NInclusive;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecC14NInclusiveWithComments</NAME>
+extern xmlSecTransformId xmlSecC14NInclusiveWithComments;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecC14NExclusive</NAME>
+extern xmlSecTransformId xmlSecC14NExclusive;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecC14NExclusiveWithComments</NAME>
+extern xmlSecTransformId xmlSecC14NExclusiveWithComments;
+</VARIABLE>
+<FUNCTION>
+<NAME>xmlSecC14NExclAddInclNamespaces</NAME>
+<RETURNS>int </RETURNS>
+xmlNodePtr transformNode,const xmlChar *prefixList
+</FUNCTION>
+<VARIABLE>
+<NAME>xmlSecEncDes3Cbc</NAME>
+extern xmlSecTransformId xmlSecEncDes3Cbc;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecKWDes3Cbc</NAME>
+extern xmlSecTransformId xmlSecKWDes3Cbc;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecDesKey</NAME>
+extern xmlSecKeyId xmlSecDesKey;
+</VARIABLE>
+<FUNCTION>
+<NAME>xmlSecDesKeyGenerate</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeyPtr key,const unsigned char *buf,size_t size
+</FUNCTION>
+<VARIABLE>
+<NAME>xmlSecSignDsaSha1</NAME>
+extern xmlSecTransformId xmlSecSignDsaSha1;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecDsaKey</NAME>
+extern xmlSecKeyId xmlSecDsaKey;
+</VARIABLE>
+<FUNCTION>
+<NAME>xmlSecDsaKeyGenerate</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeyPtr key,DSA *dsa
+</FUNCTION>
+<VARIABLE>
+<NAME>xmlSecTransformEnveloped</NAME>
+extern xmlSecTransformId xmlSecTransformEnveloped;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecMacHmacSha1</NAME>
+extern xmlSecTransformId xmlSecMacHmacSha1;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecMacHmacRipeMd160</NAME>
+extern xmlSecTransformId xmlSecMacHmacRipeMd160;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecMacHmacMd5</NAME>
+extern xmlSecTransformId xmlSecMacHmacMd5;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecHmacKey</NAME>
+extern xmlSecKeyId xmlSecHmacKey;
+</VARIABLE>
+<FUNCTION>
+<NAME>xmlSecHmacKeyGenerate</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeyPtr key,const unsigned char *buf,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecHmacAddOutputLength</NAME>
+<RETURNS>int </RETURNS>
+xmlNodePtr transformNode,size_t bitsLen
+</FUNCTION>
+<VARIABLE>
+<NAME>xmlSecDigestRipemd160</NAME>
+extern xmlSecTransformId xmlSecDigestRipemd160;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecSignRsaSha1</NAME>
+extern xmlSecTransformId xmlSecSignRsaSha1;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecEncRsaPkcs1</NAME>
+extern xmlSecTransformId xmlSecEncRsaPkcs1;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecEncRsaOaep</NAME>
+extern xmlSecTransformId xmlSecEncRsaOaep;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecRsaKey</NAME>
+extern xmlSecKeyId xmlSecRsaKey;
+</VARIABLE>
+<FUNCTION>
+<NAME>xmlSecRsaKeyGenerate</NAME>
+<RETURNS>int </RETURNS>
+xmlSecKeyPtr key,RSA *rsa
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncRsaOaepAddParam</NAME>
+<RETURNS>int </RETURNS>
+xmlNodePtr transformNode,const unsigned char *buf,size_t size
+</FUNCTION>
+<VARIABLE>
+<NAME>xmlSecDigestSha1</NAME>
+extern xmlSecTransformId xmlSecDigestSha1;
+</VARIABLE>
+<ENUM>
+<NAME>xmlSecXPath2TransformType</NAME>
+typedef enum {
+ xmlSecXPathTransformIntersect = 0,
+ xmlSecXPathTransformSubtract,
+ xmlSecXPathTransformUnion
+} xmlSecXPath2TransformType;
+</ENUM>
+<VARIABLE>
+<NAME>xmlSecTransformXPath</NAME>
+extern xmlSecTransformId xmlSecTransformXPath;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecTransformXPath2</NAME>
+extern xmlSecTransformId xmlSecTransformXPath2;
+</VARIABLE>
+<VARIABLE>
+<NAME>xmlSecTransformXPointer</NAME>
+extern xmlSecTransformId xmlSecTransformXPointer;
+</VARIABLE>
+<FUNCTION>
+<NAME>xmlSecTransformXPathAdd</NAME>
+<RETURNS>int </RETURNS>
+xmlNodePtr transformNode,const xmlChar *expression,const xmlChar **namespaces
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTransformXPath2Add</NAME>
+<RETURNS>int </RETURNS>
+xmlNodePtr transformNode,xmlSecXPath2TransformType type,const xmlChar *expression,const xmlChar **namespaces
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTransformXPointerAdd</NAME>
+<RETURNS>int </RETURNS>
+xmlNodePtr transformNode,const xmlChar *expression,const xmlChar **namespaces
+</FUNCTION>
+<VARIABLE>
+<NAME>xmlSecTransformXslt</NAME>
+extern xmlSecTransformId xmlSecTransformXslt;
+</VARIABLE>
+<FUNCTION>
+<NAME>xmlSecTransformXsltAdd</NAME>
+<RETURNS>int </RETURNS>
+xmlNodePtr transformNode,const xmlChar *xslt
+</FUNCTION>
+<MACRO>
+<NAME>xmlSecUsageAny</NAME>
+#define xmlSecUsageAny 0
+</MACRO>
+<MACRO>
+<NAME>xmlSecUsageDSigC14N</NAME>
+#define xmlSecUsageDSigC14N 1
+</MACRO>
+<MACRO>
+<NAME>xmlSecUsageDSigTransform</NAME>
+#define xmlSecUsageDSigTransform 2
+</MACRO>
+<MACRO>
+<NAME>xmlSecUsageDSigDigest</NAME>
+#define xmlSecUsageDSigDigest 4
+</MACRO>
+<MACRO>
+<NAME>xmlSecUsageDSigSignature</NAME>
+#define xmlSecUsageDSigSignature 8
+</MACRO>
+<MACRO>
+<NAME>xmlSecUsageEncryptionMethod</NAME>
+#define xmlSecUsageEncryptionMethod 16
+</MACRO>
+<TYPEDEF>
+<NAME>xmlSecTransformUsage</NAME>
+typedef unsigned long xmlSecTransformUsage;
+</TYPEDEF>
+<TYPEDEF>
+<NAME>xmlSecBinTransformId</NAME>
+typedef const struct _xmlSecBinTransformIdStruct *xmlSecBinTransformId;
+</TYPEDEF>
+<TYPEDEF>
+<NAME>xmlSecXmlTransformId</NAME>
+typedef const struct _xmlSecXmlTransformIdStruct *xmlSecXmlTransformId;
+</TYPEDEF>
+<TYPEDEF>
+<NAME>xmlSecC14NTransformId</NAME>
+typedef const struct _xmlSecC14NTransformIdStruct *xmlSecC14NTransformId;
+</TYPEDEF>
+<ENUM>
+<NAME>xmlSecTransformType</NAME>
+typedef enum {
+ xmlSecTransformTypeBinary,
+ xmlSecTransformTypeXml,
+ xmlSecTransformTypeC14N
+} xmlSecTransformType;
+</ENUM>
+<ENUM>
+<NAME>xmlSecBinTransformSubType</NAME>
+typedef enum {
+ xmlSecBinTransformSubTypeNone = 0,
+ xmlSecBinTransformSubTypeDigest,
+ xmlSecBinTransformSubTypeCipher,
+ xmlSecBinTransformSubTypeBuffered
+} xmlSecBinTransformSubType;
+</ENUM>
+<ENUM>
+<NAME>xmlSecTransformResult</NAME>
+typedef enum {
+ xmlSecTransformResultBinary,
+ xmlSecTransformResultXml
+} xmlSecTransformResult;
+</ENUM>
+<STRUCT>
+<NAME>xmlSecTransformState</NAME>
+struct xmlSecTransformState {
+ /* initial state */
+ xmlDocPtr initDoc;
+ xmlSecNodeSetPtr initNodeSet;
+ char *initUri;
+
+ /* current state: xml */
+ xmlDocPtr curDoc;
+ xmlSecNodeSetPtr curNodeSet;
+
+ /* current state: binary */
+ xmlBufferPtr curBuf;
+ xmlSecTransformPtr curFirstBinTransform;
+ xmlSecTransformPtr curLastBinTransform;
+
+ /* optimization: special case for c14n transforms */
+ xmlSecTransformPtr curC14NTransform;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>xmlSecTransformStateCreate</NAME>
+<RETURNS>xmlSecTransformStatePtr </RETURNS>
+xmlDocPtr doc,xmlSecNodeSetPtr nodeSet,const char *uri
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTransformStateDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlSecTransformStatePtr state
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTransformStateUpdate</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformStatePtr state,xmlSecTransformPtr transform
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTransformStateFinal</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformStatePtr state,xmlSecTransformResult type
+</FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecTransformCreateMethod</NAME>
+<RETURNS>xmlSecTransformPtr </RETURNS>
+xmlSecTransformId id
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecTransformDestroyMethod</NAME>
+<RETURNS>void </RETURNS>
+xmlSecTransformPtr transform
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecTransformReadNodeMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,
+ xmlNodePtr transformNode
+</USER_FUNCTION>
+<STRUCT>
+<NAME>xmlSecTransformIdStruct</NAME>
+struct xmlSecTransformIdStruct {
+ /* data */
+ xmlSecTransformType type;
+ xmlSecTransformUsage usage;
+ const xmlChar *href;
+
+ /* methods */
+ xmlSecTransformCreateMethod create;
+ xmlSecTransformDestroyMethod destroy;
+ xmlSecTransformReadNodeMethod read;
+};
+</STRUCT>
+<STRUCT>
+<NAME>xmlSecTransform</NAME>
+struct xmlSecTransform {
+ xmlSecTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+};
+</STRUCT>
+<MACRO>
+<NAME>xmlSecTransformIsValid</NAME>
+#define xmlSecTransformIsValid(transform) \
+ ((( transform ) != NULL) && ((( transform )->id) != NULL))
+</MACRO>
+<MACRO>
+<NAME>xmlSecTransformCheckType</NAME>
+#define xmlSecTransformCheckType(transform, t) \
+ (xmlSecTransformIsValid(( transform )) && \
+ ((( transform )->id->type) == ( t )))
+</MACRO>
+<MACRO>
+<NAME>xmlSecTransformCheckId</NAME>
+#define xmlSecTransformCheckId(transform, i) \
+ (xmlSecTransformIsValid(( transform )) && \
+ ((((const xmlSecTransformId) (( transform )->id))) == ( i )))
+</MACRO>
+<FUNCTION>
+<NAME>xmlSecTransformsInit</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTransformsNodeRead</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformStatePtr state,xmlNodePtr transformsNode
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTransformFind</NAME>
+<RETURNS>xmlSecTransformId </RETURNS>
+const xmlChar *href
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTransformNodeRead</NAME>
+<RETURNS>xmlSecTransformPtr </RETURNS>
+xmlNodePtr transformNode,xmlSecTransformUsage usage,int dontDestroy
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTransformNodeWrite</NAME>
+<RETURNS>int </RETURNS>
+xmlNodePtr transformNode,xmlSecTransformId id
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTransformCreate</NAME>
+<RETURNS>xmlSecTransformPtr </RETURNS>
+xmlSecTransformId id,xmlSecTransformUsage usage,int dontDestroy
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTransformDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlSecTransformPtr transform,int forceDestroy
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecTransformRead</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,xmlNodePtr transformNode
+</FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecBinTransformAddKeyMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform,
+ xmlSecKeyPtr key
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecBinTransformReadMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform,
+ unsigned char *buf,
+ size_t size
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecBinTransformWriteMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform,
+ const unsigned char *buf,
+ size_t size
+</USER_FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecBinTransformFlushMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecBinTransformPtr transform
+</USER_FUNCTION>
+<STRUCT>
+<NAME>xmlSecBinTransformIdStruct</NAME>
+struct xmlSecBinTransformIdStruct {
+ /* same as xmlSecTransformId */
+ /* data */
+ xmlSecTransformType type;
+ xmlSecTransformUsage usage;
+ const xmlChar *href;
+
+ /* methods */
+ xmlSecTransformCreateMethod create;
+ xmlSecTransformDestroyMethod destroy;
+ xmlSecTransformReadNodeMethod read;
+
+ /* xmlSecBinTransform data/methods */
+ /* data */
+ xmlSecKeyId keyId;
+ xmlSecKeyType encryption;
+ xmlSecKeyType decryption;
+ xmlSecBinTransformSubType binSubType;
+
+ /* methods */
+ xmlSecBinTransformAddKeyMethod addBinKey;
+ xmlSecBinTransformReadMethod readBin;
+ xmlSecBinTransformWriteMethod writeBin;
+ xmlSecBinTransformFlushMethod flushBin;
+};
+</STRUCT>
+<STRUCT>
+<NAME>xmlSecBinTransform</NAME>
+struct xmlSecBinTransform {
+ /* same as for xmlSecTransform but id type changed */
+ xmlSecBinTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+
+ /* xmlSecBinTransform specific */
+ int encode;
+ xmlSecBinTransformPtr next;
+ xmlSecBinTransformPtr prev;
+ void *binData;
+};
+</STRUCT>
+<MACRO>
+<NAME>xmlSecBinTransformIdCheckKeyId</NAME>
+#define xmlSecBinTransformIdCheckKeyId(id, kId) \
+ (((id) != NULL) && \
+ ((id)->type == xmlSecTransformTypeBinary) && \
+ (((xmlSecBinTransformId)(id))->keyId == kId))
+</MACRO>
+<MACRO>
+<NAME>xmlSecBinTransformIdGetKeyId</NAME>
+#define xmlSecBinTransformIdGetKeyId(id) \
+ ((((id) != NULL) && \
+ ((id)->type == xmlSecTransformTypeBinary)) ? \
+ ((xmlSecBinTransformId)(id))->keyId : \
+ xmlSecKeyIdUnknown)
+</MACRO>
+<MACRO>
+<NAME>xmlSecBinTransformCheckSubType</NAME>
+#define xmlSecBinTransformCheckSubType(transform, t) \
+ (xmlSecTransformCheckType(( transform ), xmlSecTransformTypeBinary) && \
+ ((((xmlSecBinTransformId)(( transform )->id))->binSubType) == ( t )))
+</MACRO>
+<MACRO>
+<NAME>xmlSecBinTransformIdGetEncKeyType</NAME>
+#define xmlSecBinTransformIdGetEncKeyType(id) \
+ ((((id) != NULL) && \
+ ((id)->type == xmlSecTransformTypeBinary)) ? \
+ ((xmlSecBinTransformId)(id))->encryption : \
+ xmlSecKeyTypeAny)
+</MACRO>
+<MACRO>
+<NAME>xmlSecBinTransformIdGetDecKeyType</NAME>
+#define xmlSecBinTransformIdGetDecKeyType(id) \
+ ((((id) != NULL) && \
+ ((id)->type == xmlSecTransformTypeBinary)) ? \
+ ((xmlSecBinTransformId)(id))->decryption : \
+ xmlSecKeyTypeAny)
+</MACRO>
+<FUNCTION>
+<NAME>xmlSecBinTransformAddKey</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,xmlSecKeyPtr key
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBinTransformRead</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,unsigned char *buf,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBinTransformWrite</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,const unsigned char *buf,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBinTransformFlush</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBinTransformAddAfter</NAME>
+<RETURNS>xmlSecTransformPtr </RETURNS>
+xmlSecTransformPtr curTransform,xmlSecTransformPtr newTransform
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBinTransformAddBefore</NAME>
+<RETURNS>xmlSecTransformPtr </RETURNS>
+xmlSecTransformPtr curTransform,xmlSecTransformPtr newTransform
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBinTransformRemove</NAME>
+<RETURNS>void </RETURNS>
+xmlSecTransformPtr transform
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBinTransformDestroyAll</NAME>
+<RETURNS>void </RETURNS>
+xmlSecTransformPtr transform
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecBinTransformSetEncrypt</NAME>
+<RETURNS>void </RETURNS>
+xmlSecTransformPtr transform,int encrypt
+</FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecXmlTransformExecuteMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecXmlTransformPtr transform,
+ xmlDocPtr ctxDoc,
+ xmlDocPtr *doc,
+ xmlSecNodeSetPtr *nodes
+</USER_FUNCTION>
+<STRUCT>
+<NAME>xmlSecXmlTransformIdStruct</NAME>
+struct xmlSecXmlTransformIdStruct {
+ /* same as xmlSecTransformId */
+ /* data */
+ xmlSecTransformType type;
+ xmlSecTransformUsage usage;
+ const xmlChar *href;
+
+ /* methods */
+ xmlSecTransformCreateMethod create;
+ xmlSecTransformDestroyMethod destroy;
+ xmlSecTransformReadNodeMethod read;
+
+
+ /* xmlTransform info */
+ /* method */
+ xmlSecXmlTransformExecuteMethod executeXml;
+};
+</STRUCT>
+<STRUCT>
+<NAME>xmlSecXmlTransform</NAME>
+struct xmlSecXmlTransform {
+ /* same as for xmlSecTransform but id type changed */
+ xmlSecXmlTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+
+ /* xmlSecXmlTransform specific */
+ xmlNodePtr here;
+ void *xmlData;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>xmlSecXmlTransformExecute</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,xmlDocPtr ctxDoc,xmlDocPtr *doc,xmlSecNodeSetPtr *nodes
+</FUNCTION>
+<USER_FUNCTION>
+<NAME>xmlSecC14NTransformExecuteMethod</NAME>
+<RETURNS>int </RETURNS>
+xmlSecC14NTransformPtr transform,
+ xmlDocPtr doc,
+ xmlSecNodeSetPtr nodes,
+ xmlOutputBufferPtr buffer
+</USER_FUNCTION>
+<STRUCT>
+<NAME>xmlSecC14NTransformIdStruct</NAME>
+struct xmlSecC14NTransformIdStruct {
+ /* same as xmlSecTransformId */
+ /* data */
+ xmlSecTransformType type;
+ xmlSecTransformUsage usage;
+ const xmlChar *href;
+
+ /* methods */
+ xmlSecTransformCreateMethod create;
+ xmlSecTransformDestroyMethod destroy;
+ xmlSecTransformReadNodeMethod read;
+
+ /* xmlC14nTransform specific */
+ xmlSecC14NTransformExecuteMethod executeC14N;
+};
+</STRUCT>
+<STRUCT>
+<NAME>xmlSecC14NTransform</NAME>
+struct xmlSecC14NTransform {
+ /* same as for xmlSecTransform but id type changed */
+ xmlSecC14NTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+
+ /* xmlSecC14NTransform specific */
+ void *c14nData;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>xmlSecC14NTransformExecute</NAME>
+<RETURNS>int </RETURNS>
+xmlSecTransformPtr transform,xmlDocPtr doc,xmlSecNodeSetPtr nodes,xmlOutputBufferPtr buffer
+</FUNCTION>
+<MACRO>
+<NAME>XMLSEC_VERSION</NAME>
+#define XMLSEC_VERSION "0.0.8"
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_VERSION_MAJOR</NAME>
+#define XMLSEC_VERSION_MAJOR 0
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_VERSION_MINOR</NAME>
+#define XMLSEC_VERSION_MINOR 0
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_VERSION_SUBMINOR</NAME>
+#define XMLSEC_VERSION_SUBMINOR 8
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_VERSION_INFO</NAME>
+#define XMLSEC_VERSION_INFO "0:8:0"
+</MACRO>
+<FUNCTION>
+<NAME>xmlSecX509DataCreate</NAME>
+<RETURNS>xmlSecX509DataPtr </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509DataDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlSecX509DataPtr x509Data
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509DataGetCertsNumber</NAME>
+<RETURNS>size_t </RETURNS>
+xmlSecX509DataPtr x509Data
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509DataGetCrlsNumber</NAME>
+<RETURNS>size_t </RETURNS>
+xmlSecX509DataPtr x509Data
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509DataReadDerCert</NAME>
+<RETURNS>int </RETURNS>
+xmlSecX509DataPtr x509Data,xmlChar *buf,size_t size,int base64
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509DataWriteDerCert</NAME>
+<RETURNS>xmlChar *</RETURNS>
+xmlSecX509DataPtr x509Data,int pos
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509DataReadDerCrl</NAME>
+<RETURNS>int </RETURNS>
+xmlSecX509DataPtr x509Data,xmlChar *buf,size_t size,int base64
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509DataWriteDerCrl</NAME>
+<RETURNS>xmlChar *</RETURNS>
+xmlSecX509DataPtr x509Data,int pos
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509DataReadPemCert</NAME>
+<RETURNS>int </RETURNS>
+xmlSecX509DataPtr x509Data,const char *filename
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509DataDup</NAME>
+<RETURNS>xmlSecX509DataPtr </RETURNS>
+xmlSecX509DataPtr x509Data
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509DataCreateKey</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+xmlSecX509DataPtr x509Data
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509DataDebugDump</NAME>
+<RETURNS>void </RETURNS>
+xmlSecX509DataPtr x509Data,FILE *output
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509StoreCreate</NAME>
+<RETURNS>xmlSecX509StorePtr </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509StoreDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlSecX509StorePtr store
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509StoreFind</NAME>
+<RETURNS>xmlSecX509DataPtr </RETURNS>
+xmlSecX509StorePtr store,xmlChar *subjectName,xmlChar *issuerName,xmlChar *issuerSerial,xmlChar *ski,xmlSecX509DataPtr x509Data
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509StoreVerify</NAME>
+<RETURNS>int </RETURNS>
+xmlSecX509StorePtr store,xmlSecX509DataPtr x509Data
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509StoreLoadPemCert</NAME>
+<RETURNS>int </RETURNS>
+xmlSecX509StorePtr store,const char *filename,int trusted
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecX509StoreAddCertsDir</NAME>
+<RETURNS>int </RETURNS>
+xmlSecX509StorePtr store,const char *path
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecPKCS12ReadKey</NAME>
+<RETURNS>xmlSecKeyPtr </RETURNS>
+const char *filename,const char *pwd
+</FUNCTION>
+<TYPEDEF>
+<NAME>xmlSecX509DataPtr</NAME>
+typedef void* xmlSecX509Data, *xmlSecX509DataPtr;
+</TYPEDEF>
+<TYPEDEF>
+<NAME>xmlSecX509StorePtr</NAME>
+typedef void* xmlSecX509Store, *xmlSecX509StorePtr;
+</TYPEDEF>
+<STRUCT>
+<NAME>xmlSecDSigCtx</NAME>
+struct xmlSecDSigCtx {
+ xmlSecKeysMngrPtr keysMngr;
+ int processManifests;
+ int storeSignatures;
+ int storeReferences;
+ int storeManifests;
+ int fakeSignatures;
+};
+</STRUCT>
+<STRUCT>
+<NAME>xmlSecDSigResult</NAME>
+struct xmlSecDSigResult {
+ xmlSecDSigCtxPtr ctx;
+ void *context;
+ xmlNodePtr self;
+ int sign;
+ xmlSecTransformStatus result;
+ xmlSecTransformId signMethod;
+ xmlSecKeyPtr key;
+ xmlSecReferenceResultPtr firstSignRef;
+ xmlSecReferenceResultPtr lastSignRef;
+ xmlSecReferenceResultPtr firstManifestRef;
+ xmlSecReferenceResultPtr lastManifestRef;
+ xmlBufferPtr buffer;
+};
+</STRUCT>
+<ENUM>
+<NAME>xmlSecReferenceType</NAME>
+typedef enum {
+ xmlSecSignedInfoReference,
+ xmlSecManifestReference
+} xmlSecReferenceType;
+</ENUM>
+<STRUCT>
+<NAME>xmlSecReferenceResult</NAME>
+struct xmlSecReferenceResult {
+ xmlSecDSigCtxPtr ctx;
+ xmlNodePtr self;
+ xmlSecReferenceType refType;
+ xmlSecTransformStatus result;
+ xmlSecReferenceResultPtr next;
+ xmlSecReferenceResultPtr prev;
+ xmlChar *uri;
+ xmlChar *id;
+ xmlChar *type;
+ xmlSecTransformId digestMethod;
+ xmlBufferPtr buffer;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>xmlSecDSigCtxCreate</NAME>
+<RETURNS>xmlSecDSigCtxPtr </RETURNS>
+xmlSecKeysMngrPtr keysMngr
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDSigCtxDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlSecDSigCtxPtr ctx
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSignatureCreate</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+const xmlChar *id
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSignatureDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlNodePtr signNode
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSignatureAddSignedInfo</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr signNode,const xmlChar *id
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSignatureAddKeyInfo</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr signNode,const xmlChar *id
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSignatureAddObject</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr signNode,const xmlChar *id,const xmlChar *mimeType,const xmlChar *encoding
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSignedInfoAddC14NMethod</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr signedInfoNode,xmlSecTransformId c14nMethod
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSignedInfoAddSignMethod</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr signedInfoNode,xmlSecTransformId signMethod
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecSignedInfoAddReference</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr signedInfoNode,const xmlChar *id,const xmlChar *uri,const xmlChar *type
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecReferenceAddDigestMethod</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr refNode,xmlSecTransformId digestMethod
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecReferenceAddTransform</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr refNode,xmlSecTransformId transform
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecObjectAddSignProperties</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr objectNode,const xmlChar *id,const xmlChar *target
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecObjectAddManifest</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr objectNode,const xmlChar *id
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecManifestAddReference</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr manifestNode,const xmlChar *id,const xmlChar *uri,const xmlChar *type
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDSigValidate</NAME>
+<RETURNS>int </RETURNS>
+xmlSecDSigCtxPtr ctx,void *context,xmlSecKeyPtr key,xmlNodePtr signNode,xmlSecDSigResultPtr *result
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDSigGenerate</NAME>
+<RETURNS>int </RETURNS>
+xmlSecDSigCtxPtr ctx,void *context,xmlSecKeyPtr key,xmlNodePtr signNode,xmlSecDSigResultPtr *result
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDSigResultCreate</NAME>
+<RETURNS>xmlSecDSigResultPtr </RETURNS>
+xmlSecDSigCtxPtr ctx,void *context,xmlNodePtr signNode,int sign
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDSigResultDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlSecDSigResultPtr result
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDSigResultDebugDump</NAME>
+<RETURNS>void </RETURNS>
+xmlSecDSigResultPtr result,FILE *output
+</FUNCTION>
+<STRUCT>
+<NAME>xmlSecEncCtx</NAME>
+struct xmlSecEncCtx {
+ xmlSecKeysMngrPtr keysMngr;
+ xmlSecTransformId encryptionMethod;
+ int ignoreType;
+};
+</STRUCT>
+<STRUCT>
+<NAME>xmlSecEncResult</NAME>
+struct xmlSecEncResult {
+ xmlSecEncCtxPtr ctx;
+ void *context;
+ xmlNodePtr self;
+ int encrypt;
+ xmlChar *id;
+ xmlChar *type;
+ xmlChar *mimeType;
+ xmlChar *encoding;
+ xmlSecTransformId encryptionMethod;
+ xmlSecKeyPtr key;
+ xmlBufferPtr buffer;
+ int replaced;
+};
+</STRUCT>
+<FUNCTION>
+<NAME>xmlSecEncCtxCreate</NAME>
+<RETURNS>xmlSecEncCtxPtr </RETURNS>
+xmlSecKeysMngrPtr keysMngr
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncCtxDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlSecEncCtxPtr ctx
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncryptMemory</NAME>
+<RETURNS>int </RETURNS>
+xmlSecEncCtxPtr ctx,void *context,xmlSecKeyPtr key,xmlNodePtr encNode,const unsigned char *buf,size_t size,xmlSecEncResultPtr *result
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncryptUri</NAME>
+<RETURNS>int </RETURNS>
+xmlSecEncCtxPtr ctx,void *context,xmlSecKeyPtr key,xmlNodePtr encNode,const char *uri,xmlSecEncResultPtr *result
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncryptXmlNode</NAME>
+<RETURNS>int </RETURNS>
+xmlSecEncCtxPtr ctx,void *context,xmlSecKeyPtr key,xmlNodePtr encNode,xmlNodePtr src,xmlSecEncResultPtr *result
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecDecrypt</NAME>
+<RETURNS>int </RETURNS>
+xmlSecEncCtxPtr ctx,void *context,xmlSecKeyPtr key,xmlNodePtr encNode,xmlSecEncResultPtr *result
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncResultCreate</NAME>
+<RETURNS>xmlSecEncResultPtr </RETURNS>
+xmlSecEncCtxPtr ctx,void *context,int encrypt,xmlNodePtr node
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncResultDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlSecEncResultPtr result
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncResultDebugDump</NAME>
+<RETURNS>void </RETURNS>
+xmlSecEncResultPtr result,FILE *output
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncDataCreate</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+const xmlChar *id,const xmlChar *type,const xmlChar *mimeType,const xmlChar *encoding
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncDataDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlNodePtr encNode
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncDataAddEncMethod</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr encNode,xmlSecTransformId encMethod
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncDataAddKeyInfo</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr encNode
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncDataAddEncProperties</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr encNode,const xmlChar *id
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncDataAddEncProperty</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr encNode,const xmlChar *id,const xmlChar *target
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncDataAddCipherValue</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr encNode
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecEncDataAddCipherReference</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr encNode,const xmlChar *uri
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecCipherReferenceAddTransform</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr encNode,xmlSecTransformId transform
+</FUNCTION>
+<MACRO>
+<NAME>extern</NAME>
+#define extern extern
+</MACRO>
+<MACRO>
+<NAME>extern</NAME>
+#define extern
+</MACRO>
+<MACRO>
+<NAME>extern</NAME>
+#define extern __declspec(dllimport) extern
+</MACRO>
+<MACRO>
+<NAME>extern</NAME>
+#define extern extern
+</MACRO>
+<FUNCTION>
+<NAME>xmlSecInit</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecShutdown</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<MACRO>
+<NAME>ATTRIBUTE_UNUSED</NAME>
+#define ATTRIBUTE_UNUSED
+</MACRO>
+<MACRO>
+<NAME>ATTRIBUTE_UNUSED</NAME>
+#define ATTRIBUTE_UNUSED
+</MACRO>
+<FUNCTION>
+<NAME>xmlSecParseFile</NAME>
+<RETURNS>xmlDocPtr </RETURNS>
+const char *filename
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecParseMemory</NAME>
+<RETURNS>xmlDocPtr </RETURNS>
+const unsigned char *buffer,size_t size,int recovery
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecParseMemoryExt</NAME>
+<RETURNS>xmlDocPtr </RETURNS>
+const unsigned char *prefix,size_t prefixSize,const unsigned char *buffer,size_t bufferSize,const unsigned char *postfix,size_t postfixSize
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecCheckNodeName</NAME>
+<RETURNS>int </RETURNS>
+const xmlNodePtr cur,const xmlChar *name,const xmlChar *ns
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecGetNextElementNode</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr cur
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecFindChild</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+const xmlNodePtr parent,const xmlChar *name,const xmlChar *ns
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecFindParent</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+const xmlNodePtr cur,const xmlChar *name,const xmlChar *ns
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecFindNode</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+const xmlNodePtr parent,const xmlChar *name,const xmlChar *ns
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecAddChild</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr parent,const xmlChar *name,const xmlChar *ns
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecAddNextSibling</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr node,const xmlChar *name,const xmlChar *ns
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecAddPrevSibling</NAME>
+<RETURNS>xmlNodePtr </RETURNS>
+xmlNodePtr node,const xmlChar *name,const xmlChar *ns
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecReplaceNode</NAME>
+<RETURNS>int </RETURNS>
+xmlNodePtr node,xmlNodePtr newNode
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecReplaceContent</NAME>
+<RETURNS>int </RETURNS>
+xmlNodePtr node,xmlNodePtr newNode
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecReplaceNodeBuffer</NAME>
+<RETURNS>int </RETURNS>
+xmlNodePtr node,const unsigned char *buffer,size_t size
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecAddIDs</NAME>
+<RETURNS>void </RETURNS>
+xmlDocPtr doc,xmlNodePtr cur,const xmlChar** ids
+</FUNCTION>
+<MACRO>
+<NAME>xmlSecIsHex</NAME>
+#define xmlSecIsHex(c) \
+ (( (('0' <= (c)) && ((c) <= '9')) || \
+ (('a' <= (c)) && ((c) <= 'f')) || \
+ (('A' <= (c)) && ((c) <= 'F')) ) ? 1 : 0)
+</MACRO>
+<MACRO>
+<NAME>xmlSecGetHex</NAME>
+#define xmlSecGetHex(c) \
+ ( (('0' <= (c)) && ((c) <= '9')) ? (c) - '0' : \
+ ( (('a' <= (c)) && ((c) <= 'f')) ? (c) - 'a' + 10 : \
+ ( (('A' <= (c)) && ((c) <= 'F')) ? (c) - 'A' + 10 : 0 )))
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_LIB</NAME>
+#define XMLSEC_ERRORS_LIB (ERR_LIB_USER + 57)
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_FUNCTION</NAME>
+#define XMLSEC_ERRORS_FUNCTION 0
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_MALLOC_FAILED</NAME>
+#define XMLSEC_ERRORS_R_MALLOC_FAILED 1
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_XMLSEC_FAILED</NAME>
+#define XMLSEC_ERRORS_R_XMLSEC_FAILED 2
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_CRYPTO_FAILED</NAME>
+#define XMLSEC_ERRORS_R_CRYPTO_FAILED 3
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_XML_FAILED</NAME>
+#define XMLSEC_ERRORS_R_XML_FAILED 4
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_XSLT_FAILED</NAME>
+#define XMLSEC_ERRORS_R_XSLT_FAILED 5
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_IO_FAILED</NAME>
+#define XMLSEC_ERRORS_R_IO_FAILED 6
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_TRANSFORM</NAME>
+#define XMLSEC_ERRORS_R_INVALID_TRANSFORM 10
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_TRANSFORM_DATA</NAME>
+#define XMLSEC_ERRORS_R_INVALID_TRANSFORM_DATA 11
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_TRANSFORM_OR_KEY</NAME>
+#define XMLSEC_ERRORS_R_INVALID_TRANSFORM_OR_KEY 12
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_KEY</NAME>
+#define XMLSEC_ERRORS_R_INVALID_KEY 13
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_KEY_DATA</NAME>
+#define XMLSEC_ERRORS_R_INVALID_KEY_DATA 14
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_KEY_SIZE</NAME>
+#define XMLSEC_ERRORS_R_INVALID_KEY_SIZE 15
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_KEY_ORIGIN</NAME>
+#define XMLSEC_ERRORS_R_INVALID_KEY_ORIGIN 16
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_KEY_NOT_FOUND</NAME>
+#define XMLSEC_ERRORS_R_KEY_NOT_FOUND 17
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_SIZE</NAME>
+#define XMLSEC_ERRORS_R_INVALID_SIZE 18
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_DATA</NAME>
+#define XMLSEC_ERRORS_R_INVALID_DATA 19
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_TYPE</NAME>
+#define XMLSEC_ERRORS_R_INVALID_TYPE 21
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_USAGE</NAME>
+#define XMLSEC_ERRORS_R_INVALID_USAGE 22
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_NODE</NAME>
+#define XMLSEC_ERRORS_R_INVALID_NODE 23
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_NODESET</NAME>
+#define XMLSEC_ERRORS_R_INVALID_NODESET 24
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_NODE_CONTENT</NAME>
+#define XMLSEC_ERRORS_R_INVALID_NODE_CONTENT 25
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE</NAME>
+#define XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE 26
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT</NAME>
+#define XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT 27
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_SAME_DOCUMENT_REQUIRED</NAME>
+#define XMLSEC_ERRORS_R_SAME_DOCUMENT_REQUIRED 28
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_NODE_NOT_FOUND</NAME>
+#define XMLSEC_ERRORS_R_NODE_NOT_FOUND 29
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL</NAME>
+#define XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL 30
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_CERT_VERIFY_FAILED</NAME>
+#define XMLSEC_ERRORS_R_CERT_VERIFY_FAILED 31
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_CERT_NOT_FOUND</NAME>
+#define XMLSEC_ERRORS_R_CERT_NOT_FOUND 32
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_CERT_REVOKED</NAME>
+#define XMLSEC_ERRORS_R_CERT_REVOKED 33
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE</NAME>
+#define XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE 34
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_ASSERTION</NAME>
+#define XMLSEC_ERRORS_R_ASSERTION 100
+</MACRO>
+<MACRO>
+<NAME>XMLSEC_ERRORS_R_DISABLED</NAME>
+#define XMLSEC_ERRORS_R_DISABLED 101
+</MACRO>
+<USER_FUNCTION>
+<NAME>xmlSecErrorsCallback</NAME>
+<RETURNS>void </RETURNS>
+const char* file, int line,
+ const char* func,
+ int reason, const char* msg
+</USER_FUNCTION>
+<FUNCTION>
+<NAME>xmlSecErrorsInit</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecErrorsShutdown</NAME>
+<RETURNS>void </RETURNS>
+void
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecErrorsSetCallback</NAME>
+<RETURNS>void </RETURNS>
+xmlSecErrorsCallback callback
+</FUNCTION>
+<VARIABLE>
+<NAME>xmlSecPrintErrorMessages</NAME>
+extern int xmlSecPrintErrorMessages;
+</VARIABLE>
+<MACRO>
+<NAME>XMLSEC_ERRORS_HERE</NAME>
+#define XMLSEC_ERRORS_HERE __FILE__,__LINE__,__FUNCTION__
+</MACRO>
+<FUNCTION>
+<NAME>xmlSecError</NAME>
+<RETURNS>void </RETURNS>
+const char* file, int line,const char* func,int reason, const char* msg,...
+</FUNCTION>
+<MACRO>
+<NAME>xmlSecAssert</NAME>
+#define xmlSecAssert( p ) \
+ if(!( p ) ) { \
+ xmlSecError(XMLSEC_ERRORS_HERE, \
+ XMLSEC_ERRORS_R_ASSERTION, \
+ "%s", #p); \
+ return; \
+ }
+</MACRO>
+<MACRO>
+<NAME>xmlSecAssert2</NAME>
+#define xmlSecAssert2( p, ret ) \
+ if(!( p ) ) { \
+ xmlSecError(XMLSEC_ERRORS_HERE, \
+ XMLSEC_ERRORS_R_ASSERTION, \
+ "%s", #p); \
+ return(ret); \
+ }
+</MACRO>
+<ENUM>
+<NAME>xmlSecNodeSetType</NAME>
+typedef enum {
+ xmlSecNodeSetNormal = 0,
+ xmlSecNodeSetInvert,
+ xmlSecNodeSetTree,
+ xmlSecNodeSetTreeWithoutComments,
+ xmlSecNodeSetTreeInvert,
+ xmlSecNodeSetTreeWithoutCommentsInvert,
+ xmlSecNodeSetList
+} xmlSecNodeSetType;
+</ENUM>
+<ENUM>
+<NAME>xmlSecNodeSetOp</NAME>
+typedef enum {
+ xmlSecNodeSetIntersection = 0,
+ xmlSecNodeSetSubtraction,
+ xmlSecNodeSetUnion
+} xmlSecNodeSetOp;
+</ENUM>
+<STRUCT>
+<NAME>xmlSecNodeSet</NAME>
+struct xmlSecNodeSet {
+ xmlNodeSetPtr nodes;
+ xmlDocPtr doc;
+ xmlSecNodeSetType type;
+ xmlSecNodeSetOp op;
+ xmlSecNodeSetPtr next;
+ xmlSecNodeSetPtr prev;
+ xmlSecNodeSetPtr children;
+};
+</STRUCT>
+<USER_FUNCTION>
+<NAME>xmlSecNodeSetWalkCallback</NAME>
+<RETURNS>int </RETURNS>
+xmlSecNodeSetPtr nset,
+ xmlNodePtr cur,
+ xmlNodePtr parent,
+ void* data
+</USER_FUNCTION>
+<FUNCTION>
+<NAME>xmlSecNodeSetCreate</NAME>
+<RETURNS>xmlSecNodeSetPtr </RETURNS>
+xmlDocPtr doc,xmlNodeSetPtr nodes,xmlSecNodeSetType type
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecNodeSetDestroy</NAME>
+<RETURNS>void </RETURNS>
+xmlSecNodeSetPtr nset
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecNodeSetContains</NAME>
+<RETURNS>int </RETURNS>
+xmlSecNodeSetPtr nset,xmlNodePtr node,xmlNodePtr parent
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecNodeSetAdd</NAME>
+<RETURNS>xmlSecNodeSetPtr </RETURNS>
+xmlSecNodeSetPtr nset,xmlSecNodeSetPtr newNSet,xmlSecNodeSetOp op
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecNodeSetAddList</NAME>
+<RETURNS>xmlSecNodeSetPtr </RETURNS>
+xmlSecNodeSetPtr nset,xmlSecNodeSetPtr newNSet,xmlSecNodeSetOp op
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecNodeSetGetChildren</NAME>
+<RETURNS>xmlSecNodeSetPtr </RETURNS>
+xmlDocPtr doc,const xmlNodePtr parent,int withComments,int invert
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecNodeSetWalk</NAME>
+<RETURNS>int </RETURNS>
+xmlSecNodeSetPtr nset,xmlSecNodeSetWalkCallback walkFunc,void* data
+</FUNCTION>
+<FUNCTION>
+<NAME>xmlSecNodeSetDebugDump</NAME>
+<RETURNS>void </RETURNS>
+xmlSecNodeSetPtr nset,FILE *output
+</FUNCTION>
diff --git a/docs/api-0.0.x/xmlsec-digests.html b/docs/api-0.0.x/xmlsec-digests.html
new file mode 100644
index 00000000..fc190b97
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-digests.html
@@ -0,0 +1,2208 @@
+<HTML
+><HEAD
+><TITLE
+>digests.h</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="XML Security Library Reference Manual"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="XML Security Library Internal Functions Reference"
+HREF="xmlsec-ref-int.html"><LINK
+REL="PREVIOUS"
+TITLE="ciphers.h"
+HREF="xmlsec-ciphers.html"><LINK
+REL="NEXT"
+TITLE="io.h"
+HREF="xmlsec-io.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="4"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="5"
+>XML Security Library Reference Manual</FONT
+></TH
+></TR
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-ciphers.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref-int.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-io.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+></TABLE
+></DIV
+><H1
+><A
+NAME="XMLSEC-DIGESTS"
+></A
+>digests.h</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN5902"
+></A
+><H2
+>Name</H2
+>digests.h&nbsp;--&nbsp;The digests transform.</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN5905"
+></A
+><H2
+>Synopsis</H2
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="SYNOPSIS"
+>&#13;
+
+struct <A
+HREF="xmlsec-digests.html#XMLSECDIGESTTRANSFORM"
+>xmlSecDigestTransform</A
+>;
+typedef <A
+HREF="xmlsec-digests.html#XMLSECDIGESTTRANSFORMID"
+>xmlSecDigestTransformId</A
+>;
+int (<A
+HREF="xmlsec-digests.html#XMLSECDIGESTUPDATEMETHOD"
+>*xmlSecDigestUpdateMethod</A
+>) (<GTKDOCLINK
+HREF="XMLSECDIGESTTRANSFORMPTR"
+>xmlSecDigestTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buffer,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);
+int (<A
+HREF="xmlsec-digests.html#XMLSECDIGESTSIGNMETHOD"
+>*xmlSecDigestSignMethod</A
+>) (<GTKDOCLINK
+HREF="XMLSECDIGESTTRANSFORMPTR"
+>xmlSecDigestTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char **buffer,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> *size);
+int (<A
+HREF="xmlsec-digests.html#XMLSECDIGESTVERIFYMETHOD"
+>*xmlSecDigestVerifyMethod</A
+>) (<GTKDOCLINK
+HREF="XMLSECDIGESTTRANSFORMPTR"
+>xmlSecDigestTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buffer,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);
+int <A
+HREF="xmlsec-digests.html#XMLSECDIGESTSIGNNODE"
+>xmlSecDigestSignNode</A
+> (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> valueNode,
+ int removeOldContent);
+int <A
+HREF="xmlsec-digests.html#XMLSECDIGESTVERIFYNODE"
+>xmlSecDigestVerifyNode</A
+> (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ const <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> valueNode);
+void <A
+HREF="xmlsec-digests.html#XMLSECDIGESTSETPUSHMODE"
+>xmlSecDigestSetPushMode</A
+> (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ int enabled);
+int <A
+HREF="xmlsec-digests.html#XMLSECDIGESTUPDATE"
+>xmlSecDigestUpdate</A
+> (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buffer,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);
+int <A
+HREF="xmlsec-digests.html#XMLSECDIGESTSIGN"
+>xmlSecDigestSign</A
+> (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char **buffer,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> *size);
+int <A
+HREF="xmlsec-digests.html#XMLSECDIGESTVERIFY"
+>xmlSecDigestVerify</A
+> (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buffer,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);
+int <A
+HREF="xmlsec-digests.html#XMLSECDIGESTTRANSFORMREAD"
+>xmlSecDigestTransformRead</A
+> (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);
+int <A
+HREF="xmlsec-digests.html#XMLSECDIGESTTRANSFORMWRITE"
+>xmlSecDigestTransformWrite</A
+> (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);
+int <A
+HREF="xmlsec-digests.html#XMLSECDIGESTTRANSFORMFLUSH"
+>xmlSecDigestTransformFlush</A
+> (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform);</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN5944"
+></A
+><H2
+>Description</H2
+><P
+></P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN5947"
+></A
+><H2
+>Details</H2
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN5949"
+></A
+><H3
+><A
+NAME="XMLSECDIGESTTRANSFORM"
+></A
+>struct xmlSecDigestTransform</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>struct xmlSecDigestTransform {
+ /* same as for xmlSecTransform but id type changed */
+ xmlSecDigestTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+
+ /* xmlSecBinTransform specific */
+ int encode;
+ xmlSecDigestTransformPtr next;
+ xmlSecDigestTransformPtr prev;
+ void *binData;
+
+ /* xmlSecDigestTransform specific */
+ int pushModeEnabled;
+ unsigned char *digest;
+ size_t digestSize;
+ unsigned char digestLastByteMask;
+ void *digestData;
+};</PRE
+></TD
+></TR
+></TABLE
+><P
+>The digests transform.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN5955"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFF0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-digests.html#XMLSECDIGESTTRANSFORMID"
+>xmlSecDigestTransformId</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>id</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform id (pointer to <A
+HREF="xmlsec-transformsinternal.html#XMLSECBINTRANSFORMID"
+>xmlSecBinTransformId</A
+>).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMSTATUS"
+>xmlSecTransformStatus</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>status</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform status (ok/fail/unknown).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>int <TT
+CLASS="STRUCTFIELD"
+><I
+>dontDestroy</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the don't automatically destroy flag.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>void *<TT
+CLASS="STRUCTFIELD"
+><I
+>data</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to transform specific data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>int <TT
+CLASS="STRUCTFIELD"
+><I
+>encode</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> encode/decode (encrypt/decrypt) flag.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECDIGESTTRANSFORMPTR"
+>xmlSecDigestTransformPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>next</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> next binary transform in the chain.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECDIGESTTRANSFORMPTR"
+>xmlSecDigestTransformPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>prev</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> previous binary transform in the chain.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>void *<TT
+CLASS="STRUCTFIELD"
+><I
+>binData</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to binary transform speific data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>int <TT
+CLASS="STRUCTFIELD"
+><I
+>pushModeEnabled</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> if 1 then the data are sent to next transform, otherwise
+ we are keeping data for sign or verify call.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>unsigned char *<TT
+CLASS="STRUCTFIELD"
+><I
+>digest</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the internal digest buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>digestSize</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the internal digest buffer size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>unsigned char <TT
+CLASS="STRUCTFIELD"
+><I
+>digestLastByteMask</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>void *<TT
+CLASS="STRUCTFIELD"
+><I
+>digestData</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to digest transform specific data.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6018"
+></A
+><H3
+><A
+NAME="XMLSECDIGESTTRANSFORMID"
+></A
+>xmlSecDigestTransformId</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>typedef const struct _xmlSecDigestTransformIdStruct *xmlSecDigestTransformId;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The digest transform id (<TT
+CLASS="LITERAL"
+>xmlSecTransformTypeBinary</TT
+> type).</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6025"
+></A
+><H3
+><A
+NAME="XMLSECDIGESTUPDATEMETHOD"
+></A
+>xmlSecDigestUpdateMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int (*xmlSecDigestUpdateMethod) (<GTKDOCLINK
+HREF="XMLSECDIGESTTRANSFORMPTR"
+>xmlSecDigestTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buffer,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Updates digest with new chunk of data.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6033"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to digests transform <A
+HREF="xmlsec-digests.html#XMLSECDIGESTTRANSFORM"
+>xmlSecDigestTransform</A
+>.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buffer</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input data size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6055"
+></A
+><H3
+><A
+NAME="XMLSECDIGESTSIGNMETHOD"
+></A
+>xmlSecDigestSignMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int (*xmlSecDigestSignMethod) (<GTKDOCLINK
+HREF="XMLSECDIGESTTRANSFORMPTR"
+>xmlSecDigestTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char **buffer,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> *size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Finalizes digest and returns result in allocated buffer (<TT
+CLASS="PARAMETER"
+><I
+>buffer</I
+></TT
+>, <TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>).
+The caller is responsible for freeing returned buffer with <GTKDOCLINK
+HREF="XMLFREE"
+>xmlFree</GTKDOCLINK
+>() function.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6066"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to digests transform <A
+HREF="xmlsec-digests.html#XMLSECDIGESTTRANSFORM"
+>xmlSecDigestTransform</A
+>.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buffer</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to pointer to the output data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to outut data size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6088"
+></A
+><H3
+><A
+NAME="XMLSECDIGESTVERIFYMETHOD"
+></A
+>xmlSecDigestVerifyMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int (*xmlSecDigestVerifyMethod) (<GTKDOCLINK
+HREF="XMLSECDIGESTTRANSFORMPTR"
+>xmlSecDigestTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buffer,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Verifies digest with new chunk of data. The actual verification
+status is set in <GTKDOCLINK
+HREF="STATUS"
+>status</GTKDOCLINK
+> member of <A
+HREF="xmlsec-digests.html#XMLSECDIGESTTRANSFORM"
+>xmlSecDigestTransform</A
+> structure.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6098"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to digests transform <A
+HREF="xmlsec-digests.html#XMLSECDIGESTTRANSFORM"
+>xmlSecDigestTransform</A
+>.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buffer</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input data size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>1 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6120"
+></A
+><H3
+><A
+NAME="XMLSECDIGESTSIGNNODE"
+></A
+>xmlSecDigestSignNode ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecDigestSignNode (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> valueNode,
+ int removeOldContent);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Finalizes the digest result, signs it (if necessary), base64 encodes and
+puts in the given node.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6128"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to a digest transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>valueNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:DigestValue&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>removeOldContent</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the flag that indicates whether the previous
+ node content will be removed or not.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6149"
+></A
+><H3
+><A
+NAME="XMLSECDIGESTVERIFYNODE"
+></A
+>xmlSecDigestVerifyNode ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecDigestVerifyNode (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ const <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> valueNode);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Reads the node content, base64 decodes it, finalizes the digest result and
+verifies that it does match with the content of the node.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6157"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to a digest transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>valueNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to a &lt;dsig:DigestValue&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6174"
+></A
+><H3
+><A
+NAME="XMLSECDIGESTSETPUSHMODE"
+></A
+>xmlSecDigestSetPushMode ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecDigestSetPushMode (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ int enabled);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Sets the push more flag. If push mode is enabled then the digest is
+finalized and send to next transform when
+1) read from previous transform returned 0
+2) flush called</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6181"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to a digests transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>enabled</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the new "push mode" flag.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6194"
+></A
+><H3
+><A
+NAME="XMLSECDIGESTUPDATE"
+></A
+>xmlSecDigestUpdate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecDigestUpdate (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buffer,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Updates data with the new chunk of data (wrapper for
+xmlSecDigestTransformId::digestUpdate method).</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6202"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to a digests transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buffer</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input data size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6223"
+></A
+><H3
+><A
+NAME="XMLSECDIGESTSIGN"
+></A
+>xmlSecDigestSign ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecDigestSign (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char **buffer,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> *size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Finalizes digest and writes the result into the allocated
+buffer (wrapper for xmlSecDigestTransformId::digestSign function).
+Caller is responsble for freeing allocated buffer with <GTKDOCLINK
+HREF="XMLFREE"
+>xmlFree</GTKDOCLINK
+>() function.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6232"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to a digests transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buffer</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the pointer to the output buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the output buffer size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6253"
+></A
+><H3
+><A
+NAME="XMLSECDIGESTVERIFY"
+></A
+>xmlSecDigestVerify ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecDigestVerify (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buffer,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Checks the computed digest and the data in the input buffer
+(wrapper for xmlSecDigestTransformId::digestVerify function).</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6261"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to a digests transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buffer</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input buffer size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6282"
+></A
+><H3
+><A
+NAME="XMLSECDIGESTTRANSFORMREAD"
+></A
+>xmlSecDigestTransformRead ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecDigestTransformRead (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Reads all data from previos transform and digests it. If the
+push mode enabled then the result is finalized and returned to the caller,
+otherwise we return 0</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6290"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to a digest transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the output buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the output buffer size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the number of bytes in the buffer or negative value
+if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6311"
+></A
+><H3
+><A
+NAME="XMLSECDIGESTTRANSFORMWRITE"
+></A
+>xmlSecDigestTransformWrite ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecDigestTransformWrite (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds new chunk of data to the digest.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6319"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the poiter to a digests transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input data buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input data size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 if success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6340"
+></A
+><H3
+><A
+NAME="XMLSECDIGESTTRANSFORMFLUSH"
+></A
+>xmlSecDigestTransformFlush ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecDigestTransformFlush (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform);</PRE
+></TD
+></TR
+></TABLE
+><P
+>If the push mode enabled then the function finalizes the result,
+writes it to the next transform and calls flush for it. Otherwise,
+it just calls flush for next transform</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6347"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to a digests transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 if success or negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-ciphers.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref-int.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-io.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>ciphers.h</B
+></FONT
+></TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>io.h</B
+></FONT
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/docs/api-0.0.x/xmlsec-docs.sgml b/docs/api-0.0.x/xmlsec-docs.sgml
new file mode 100644
index 00000000..284d78e9
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-docs.sgml
@@ -0,0 +1,55 @@
+<!doctype book PUBLIC "-//DavenPort//DTD DocBook V3.0//EN" [
+<!ENTITY xmlsec-base64 SYSTEM "sgml/base64.sgml">
+<!ENTITY xmlsec-bn SYSTEM "sgml/bn.sgml">
+<!ENTITY xmlsec-buffered SYSTEM "sgml/buffered.sgml">
+<!ENTITY xmlsec-ciphers SYSTEM "sgml/ciphers.sgml">
+<!ENTITY xmlsec-debug SYSTEM "sgml/debug.sgml">
+<!ENTITY xmlsec-digests SYSTEM "sgml/digests.sgml">
+<!ENTITY xmlsec-io SYSTEM "sgml/io.sgml">
+<!ENTITY xmlsec-keyinfo SYSTEM "sgml/keyinfo.sgml">
+<!ENTITY xmlsec-keys SYSTEM "sgml/keys.sgml">
+<!ENTITY xmlsec-keysInternal SYSTEM "sgml/keysInternal.sgml">
+<!ENTITY xmlsec-keysmngr SYSTEM "sgml/keysmngr.sgml">
+<!ENTITY xmlsec-membuf SYSTEM "sgml/membuf.sgml">
+<!ENTITY xmlsec-transforms SYSTEM "sgml/transforms.sgml">
+<!ENTITY xmlsec-transformsInternal SYSTEM "sgml/transformsInternal.sgml">
+<!ENTITY xmlsec-version SYSTEM "sgml/version.sgml">
+<!ENTITY xmlsec-x509 SYSTEM "sgml/x509.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-nodeset SYSTEM "sgml/nodeset.sgml">
+<!ENTITY xmlsec-errors SYSTEM "sgml/errors.sgml">
+]>
+<book id="index">
+ <bookinfo>
+ <title>[Insert name here] Reference Manual</title>
+ </bookinfo>
+
+ <chapter>
+ <title>[Insert title here]</title>
+ &xmlsec-base64;
+ &xmlsec-bn;
+ &xmlsec-buffered;
+ &xmlsec-ciphers;
+ &xmlsec-debug;
+ &xmlsec-digests;
+ &xmlsec-io;
+ &xmlsec-keyinfo;
+ &xmlsec-keys;
+ &xmlsec-keysInternal;
+ &xmlsec-keysmngr;
+ &xmlsec-membuf;
+ &xmlsec-transforms;
+ &xmlsec-transformsInternal;
+ &xmlsec-version;
+ &xmlsec-x509;
+ &xmlsec-xmldsig;
+ &xmlsec-xmlenc;
+ &xmlsec-xmlsec;
+ &xmlsec-xmltree;
+ &xmlsec-nodeset;
+ &xmlsec-errors;
+ </chapter>
+</book>
diff --git a/docs/api-0.0.x/xmlsec-errors.html b/docs/api-0.0.x/xmlsec-errors.html
new file mode 100644
index 00000000..576b0553
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-errors.html
@@ -0,0 +1,2085 @@
+<HTML
+><HEAD
+><TITLE
+>errors.h</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="XML Security Library Reference Manual"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="XML Security Library Reference"
+HREF="xmlsec-ref.html"><LINK
+REL="PREVIOUS"
+TITLE="xmlenc.h"
+HREF="xmlsec-xmlenc.html"><LINK
+REL="NEXT"
+TITLE="debug.h"
+HREF="xmlsec-debug.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="4"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="5"
+>XML Security Library Reference Manual</FONT
+></TH
+></TR
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-xmlenc.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-debug.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+></TABLE
+></DIV
+><H1
+><A
+NAME="XMLSEC-ERRORS"
+></A
+>errors.h</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN1698"
+></A
+><H2
+>Name</H2
+>errors.h&nbsp;--&nbsp;The errors reporting functions.</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN1701"
+></A
+><H2
+>Synopsis</H2
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="SYNOPSIS"
+>&#13;
+
+#define <A
+HREF="xmlsec-errors.html#XMLSEC-ERRORS-LIB-CAPS"
+>XMLSEC_ERRORS_LIB</A
+>
+#define <A
+HREF="xmlsec-errors.html#XMLSEC-ERRORS-FUNCTION-CAPS"
+>XMLSEC_ERRORS_FUNCTION</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-XMLSEC-FAILED-CAPS"
+>XMLSEC_ERRORS_R_XMLSEC_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-INVALID-TRANSFORM-CAPS"
+>XMLSEC_ERRORS_R_INVALID_TRANSFORM</A
+>
+#define <A
+HREF="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-TRANSFORM-DATA-CAPS"
+>XMLSEC_ERRORS_R_INVALID_TRANSFORM_DATA</A
+>
+#define <A
+HREF="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-TRANSFORM-OR-KEY-CAPS"
+>XMLSEC_ERRORS_R_INVALID_TRANSFORM_OR_KEY</A
+>
+#define <A
+HREF="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-KEY-CAPS"
+>XMLSEC_ERRORS_R_INVALID_KEY</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-INVALID-KEY-SIZE-CAPS"
+>XMLSEC_ERRORS_R_INVALID_KEY_SIZE</A
+>
+#define <A
+HREF="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-KEY-ORIGIN-CAPS"
+>XMLSEC_ERRORS_R_INVALID_KEY_ORIGIN</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-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-TYPE-CAPS"
+>XMLSEC_ERRORS_R_INVALID_TYPE</A
+>
+#define <A
+HREF="xmlsec-errors.html#XMLSEC-ERRORS-R-INVALID-USAGE-CAPS"
+>XMLSEC_ERRORS_R_INVALID_USAGE</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-NODESET-CAPS"
+>XMLSEC_ERRORS_R_INVALID_NODESET</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-NODE-ALREADY-PRESENT-CAPS"
+>XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT</A
+>
+#define <A
+HREF="xmlsec-errors.html#XMLSEC-ERRORS-R-SAME-DOCUMENT-REQUIRED-CAPS"
+>XMLSEC_ERRORS_R_SAME_DOCUMENT_REQUIRED</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-MAX-RETRIEVALS-LEVEL-CAPS"
+>XMLSEC_ERRORS_R_MAX_RETRIEVALS_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-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-R-DISABLED-CAPS"
+>XMLSEC_ERRORS_R_DISABLED</A
+>
+void (<A
+HREF="xmlsec-errors.html#XMLSECERRORSCALLBACK"
+>*xmlSecErrorsCallback</A
+>) (const char *file,
+ int line,
+ const char *func,
+ int reason,
+ const char *msg);
+void <A
+HREF="xmlsec-errors.html#XMLSECERRORSINIT"
+>xmlSecErrorsInit</A
+> (void);
+void <A
+HREF="xmlsec-errors.html#XMLSECERRORSSHUTDOWN"
+>xmlSecErrorsShutdown</A
+> (void);
+void <A
+HREF="xmlsec-errors.html#XMLSECERRORSSETCALLBACK"
+>xmlSecErrorsSetCallback</A
+> (<A
+HREF="xmlsec-errors.html#XMLSECERRORSCALLBACK"
+>xmlSecErrorsCallback</A
+> callback);
+extern int <A
+HREF="xmlsec-errors.html#XMLSECPRINTERRORMESSAGES"
+>xmlSecPrintErrorMessages</A
+>;
+#define <A
+HREF="xmlsec-errors.html#XMLSEC-ERRORS-HERE-CAPS"
+>XMLSEC_ERRORS_HERE</A
+>
+void <A
+HREF="xmlsec-errors.html#XMLSECERROR"
+>xmlSecError</A
+> (const char *file,
+ int line,
+ const char *func,
+ int reason,
+ const char *msg,
+ ...);
+#define <A
+HREF="xmlsec-errors.html#XMLSECASSERT"
+>xmlSecAssert</A
+> ( p )
+#define <A
+HREF="xmlsec-errors.html#XMLSECASSERT2"
+>xmlSecAssert2</A
+> ( p, ret )</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN1748"
+></A
+><H2
+>Description</H2
+><P
+>All errors are reported to application provided callback function.
+The default callback function reports an error to OpenSSL using
+<GTKDOCLINK
+HREF="ERR-PUT-ERROR"
+>ERR_put_error</GTKDOCLINK
+>() function and to LibXML using <GTKDOCLINK
+HREF="XMLGENERICERROR"
+>xmlGenericError</GTKDOCLINK
+>()
+function.</P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN1753"
+></A
+><H2
+>Details</H2
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1755"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-LIB-CAPS"
+></A
+>XMLSEC_ERRORS_LIB</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_LIB (ERR_LIB_USER + 57)</PRE
+></TD
+></TR
+></TABLE
+><P
+>Macro. The XMLSec library id for OpenSSL errors reporting functions.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1761"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-FUNCTION-CAPS"
+></A
+>XMLSEC_ERRORS_FUNCTION</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_FUNCTION 0</PRE
+></TD
+></TR
+></TABLE
+><P
+>Macro. The XMLSec library functions OpenSSL errors reporting functions.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1767"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-MALLOC-FAILED-CAPS"
+></A
+>XMLSEC_ERRORS_R_MALLOC_FAILED</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_MALLOC_FAILED 1 </PRE
+></TD
+></TR
+></TABLE
+><P
+>Failed to allocate memory error.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1773"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-XMLSEC-FAILED-CAPS"
+></A
+>XMLSEC_ERRORS_R_XMLSEC_FAILED</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_XMLSEC_FAILED 2</PRE
+></TD
+></TR
+></TABLE
+><P
+>An XMLSec function failed.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1779"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-CRYPTO-FAILED-CAPS"
+></A
+>XMLSEC_ERRORS_R_CRYPTO_FAILED</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_CRYPTO_FAILED 3</PRE
+></TD
+></TR
+></TABLE
+><P
+>Crypto (OpenSSL) function failed.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1785"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-XML-FAILED-CAPS"
+></A
+>XMLSEC_ERRORS_R_XML_FAILED</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_XML_FAILED 4</PRE
+></TD
+></TR
+></TABLE
+><P
+>LibXML function failed.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1791"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-XSLT-FAILED-CAPS"
+></A
+>XMLSEC_ERRORS_R_XSLT_FAILED</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_XSLT_FAILED 5</PRE
+></TD
+></TR
+></TABLE
+><P
+>LibXSLT function failed.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1797"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-IO-FAILED-CAPS"
+></A
+>XMLSEC_ERRORS_R_IO_FAILED</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_IO_FAILED 6</PRE
+></TD
+></TR
+></TABLE
+><P
+>IO operation failed.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1803"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-INVALID-TRANSFORM-CAPS"
+></A
+>XMLSEC_ERRORS_R_INVALID_TRANSFORM</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_INVALID_TRANSFORM 10</PRE
+></TD
+></TR
+></TABLE
+><P
+>Invlaid transform.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1809"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-INVALID-TRANSFORM-DATA-CAPS"
+></A
+>XMLSEC_ERRORS_R_INVALID_TRANSFORM_DATA</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_INVALID_TRANSFORM_DATA 11</PRE
+></TD
+></TR
+></TABLE
+><P
+>Invlaid transform data.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1815"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-INVALID-TRANSFORM-OR-KEY-CAPS"
+></A
+>XMLSEC_ERRORS_R_INVALID_TRANSFORM_OR_KEY</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_INVALID_TRANSFORM_OR_KEY 12</PRE
+></TD
+></TR
+></TABLE
+><P
+>Invalid transform or key.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1821"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-INVALID-KEY-CAPS"
+></A
+>XMLSEC_ERRORS_R_INVALID_KEY</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_INVALID_KEY 13</PRE
+></TD
+></TR
+></TABLE
+><P
+>Key is invalid.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1827"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-INVALID-KEY-DATA-CAPS"
+></A
+>XMLSEC_ERRORS_R_INVALID_KEY_DATA</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_INVALID_KEY_DATA 14</PRE
+></TD
+></TR
+></TABLE
+><P
+>Key data is invalid.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1833"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-INVALID-KEY-SIZE-CAPS"
+></A
+>XMLSEC_ERRORS_R_INVALID_KEY_SIZE</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_INVALID_KEY_SIZE 15</PRE
+></TD
+></TR
+></TABLE
+><P
+>Invalid key size.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1839"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-INVALID-KEY-ORIGIN-CAPS"
+></A
+>XMLSEC_ERRORS_R_INVALID_KEY_ORIGIN</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_INVALID_KEY_ORIGIN 16</PRE
+></TD
+></TR
+></TABLE
+><P
+>Invalid key origin.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1845"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-KEY-NOT-FOUND-CAPS"
+></A
+>XMLSEC_ERRORS_R_KEY_NOT_FOUND</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_KEY_NOT_FOUND 17</PRE
+></TD
+></TR
+></TABLE
+><P
+>Key not found.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1851"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-INVALID-SIZE-CAPS"
+></A
+>XMLSEC_ERRORS_R_INVALID_SIZE</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_INVALID_SIZE 18</PRE
+></TD
+></TR
+></TABLE
+><P
+>Invalid size.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1857"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-INVALID-DATA-CAPS"
+></A
+>XMLSEC_ERRORS_R_INVALID_DATA</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_INVALID_DATA 19</PRE
+></TD
+></TR
+></TABLE
+><P
+>Invalid data.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1863"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-INVALID-TYPE-CAPS"
+></A
+>XMLSEC_ERRORS_R_INVALID_TYPE</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_INVALID_TYPE 21</PRE
+></TD
+></TR
+></TABLE
+><P
+>Invalid type.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1869"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-INVALID-USAGE-CAPS"
+></A
+>XMLSEC_ERRORS_R_INVALID_USAGE</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_INVALID_USAGE 22</PRE
+></TD
+></TR
+></TABLE
+><P
+>Invalid usage.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1875"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-INVALID-NODE-CAPS"
+></A
+>XMLSEC_ERRORS_R_INVALID_NODE</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_INVALID_NODE 23</PRE
+></TD
+></TR
+></TABLE
+><P
+>Invalid node,</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1881"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-INVALID-NODESET-CAPS"
+></A
+>XMLSEC_ERRORS_R_INVALID_NODESET</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_INVALID_NODESET 24</PRE
+></TD
+></TR
+></TABLE
+><P
+>Invalid nodes set,</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1887"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-INVALID-NODE-CONTENT-CAPS"
+></A
+>XMLSEC_ERRORS_R_INVALID_NODE_CONTENT</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_INVALID_NODE_CONTENT 25</PRE
+></TD
+></TR
+></TABLE
+><P
+>Invalid node content.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1893"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-INVALID-NODE-ATTRIBUTE-CAPS"
+></A
+>XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE 26</PRE
+></TD
+></TR
+></TABLE
+><P
+>Invalid node attribute.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1899"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-NODE-ALREADY-PRESENT-CAPS"
+></A
+>XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT 27</PRE
+></TD
+></TR
+></TABLE
+><P
+>Node already present,</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1905"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-SAME-DOCUMENT-REQUIRED-CAPS"
+></A
+>XMLSEC_ERRORS_R_SAME_DOCUMENT_REQUIRED</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_SAME_DOCUMENT_REQUIRED 28</PRE
+></TD
+></TR
+></TABLE
+><P
+>The transform requires the same document.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1911"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-NODE-NOT-FOUND-CAPS"
+></A
+>XMLSEC_ERRORS_R_NODE_NOT_FOUND</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_NODE_NOT_FOUND 29</PRE
+></TD
+></TR
+></TABLE
+><P
+>Node not found.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1917"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-MAX-RETRIEVALS-LEVEL-CAPS"
+></A
+>XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL 30</PRE
+></TD
+></TR
+></TABLE
+><P
+>Max allowed retrievals level reached.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1923"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-CERT-VERIFY-FAILED-CAPS"
+></A
+>XMLSEC_ERRORS_R_CERT_VERIFY_FAILED</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_CERT_VERIFY_FAILED 41</PRE
+></TD
+></TR
+></TABLE
+><P
+>Certificate verification failed.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1929"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-CERT-NOT-FOUND-CAPS"
+></A
+>XMLSEC_ERRORS_R_CERT_NOT_FOUND</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_CERT_NOT_FOUND 42</PRE
+></TD
+></TR
+></TABLE
+><P
+>Requested certificate is not found.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1935"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-CERT-REVOKED-CAPS"
+></A
+>XMLSEC_ERRORS_R_CERT_REVOKED</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_CERT_REVOKED 43</PRE
+></TD
+></TR
+></TABLE
+><P
+>The certificate is revoked.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1941"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-DSIG-INVALID-REFERENCE-CAPS"
+></A
+>XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE 51</PRE
+></TD
+></TR
+></TABLE
+><P
+>The &lt;dsig:Reference&gt; validation failed.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1947"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-ASSERTION-CAPS"
+></A
+>XMLSEC_ERRORS_R_ASSERTION</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_ASSERTION 100</PRE
+></TD
+></TR
+></TABLE
+><P
+>Invalid assertion.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1953"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-R-DISABLED-CAPS"
+></A
+>XMLSEC_ERRORS_R_DISABLED</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_R_DISABLED 101</PRE
+></TD
+></TR
+></TABLE
+><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="AEN1959"
+></A
+><H3
+><A
+NAME="XMLSECERRORSCALLBACK"
+></A
+>xmlSecErrorsCallback ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void (*xmlSecErrorsCallback) (const char *file,
+ int line,
+ const char *func,
+ int reason,
+ const char *msg);</PRE
+></TD
+></TR
+></TABLE
+><P
+>The errors reporting callback function typedef.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN1965"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>file</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the error origin filename (__FILE__).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>line</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the error origin line number (__LINE__).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>func</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the error origin function (__FUNCTIION__).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>reason</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the error code.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>msg</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the error message.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1990"
+></A
+><H3
+><A
+NAME="XMLSECERRORSINIT"
+></A
+>xmlSecErrorsInit ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecErrorsInit (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Initializes the errors reporting. It is called from <A
+HREF="xmlsec-xmlsec.html#XMLSECINIT"
+>xmlSecInit</A
+>() function.
+and applications must not call this function directly.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1997"
+></A
+><H3
+><A
+NAME="XMLSECERRORSSHUTDOWN"
+></A
+>xmlSecErrorsShutdown ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecErrorsShutdown (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Cleanups the errors reporting. It is called from <A
+HREF="xmlsec-xmlsec.html#XMLSECSHUTDOWN"
+>xmlSecShutdown</A
+>() function.
+and applications must not call this function directly.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2004"
+></A
+><H3
+><A
+NAME="XMLSECERRORSSETCALLBACK"
+></A
+>xmlSecErrorsSetCallback ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecErrorsSetCallback (<A
+HREF="xmlsec-errors.html#XMLSECERRORSCALLBACK"
+>xmlSecErrorsCallback</A
+> callback);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Sets the errors callback function <TT
+CLASS="PARAMETER"
+><I
+>callback</I
+></TT
+> that will be called
+every time an error occurs.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN2012"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>callback</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the errors callback function.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2021"
+></A
+><H3
+><A
+NAME="XMLSECPRINTERRORMESSAGES"
+></A
+>xmlSecPrintErrorMessages</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern int xmlSecPrintErrorMessages;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The flag that determines whether the error message will be printed
+out immidiatelly. For default errors reporting callback, this flag
+determines whether the error is reported to LibXML library or not.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2027"
+></A
+><H3
+><A
+NAME="XMLSEC-ERRORS-HERE-CAPS"
+></A
+>XMLSEC_ERRORS_HERE</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_ERRORS_HERE __FILE__,__LINE__,__FUNCTION__</PRE
+></TD
+></TR
+></TABLE
+><P
+>The macro that specifies the location (file, line and function)
+for the <A
+HREF="xmlsec-errors.html#XMLSECERROR"
+>xmlSecError</A
+>() function.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2034"
+></A
+><H3
+><A
+NAME="XMLSECERROR"
+></A
+>xmlSecError ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecError (const char *file,
+ int line,
+ const char *func,
+ int reason,
+ const char *msg,
+ ...);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Reports an error.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN2040"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>file</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the error origin filename (__FILE__).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>line</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the error origin line number (__LINE__).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>func</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the error origin function (__FUNCTIION__).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>reason</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the error code.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>msg</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the error message in printf format.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>...</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the parameters for the <TT
+CLASS="PARAMETER"
+><I
+>msg</I
+></TT
+>.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2070"
+></A
+><H3
+><A
+NAME="XMLSECASSERT"
+></A
+>xmlSecAssert()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecAssert( p )</PRE
+></TD
+></TR
+></TABLE
+><P
+>Macro. Verifies that <TT
+CLASS="PARAMETER"
+><I
+>p</I
+></TT
+> is true and calls <GTKDOCLINK
+HREF="RETURN"
+>return</GTKDOCLINK
+>() otherwise.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN2078"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>p</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the expression.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2087"
+></A
+><H3
+><A
+NAME="XMLSECASSERT2"
+></A
+>xmlSecAssert2()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecAssert2( p, ret )</PRE
+></TD
+></TR
+></TABLE
+><P
+>Macro. Verifies that <TT
+CLASS="PARAMETER"
+><I
+>p</I
+></TT
+> is true and calls return(<TT
+CLASS="PARAMETER"
+><I
+>ret</I
+></TT
+>) otherwise.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN2095"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>p</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the expression.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ret</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the return value.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-xmlenc.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-debug.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>xmlenc.h</B
+></FONT
+></TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>debug.h</B
+></FONT
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/docs/api-0.0.x/xmlsec-io.html b/docs/api-0.0.x/xmlsec-io.html
new file mode 100644
index 00000000..33b3777c
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-io.html
@@ -0,0 +1,733 @@
+<HTML
+><HEAD
+><TITLE
+>io.h</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="XML Security Library Reference Manual"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="XML Security Library Internal Functions Reference"
+HREF="xmlsec-ref-int.html"><LINK
+REL="PREVIOUS"
+TITLE="digests.h"
+HREF="xmlsec-digests.html"><LINK
+REL="NEXT"
+TITLE="keysInternal.h"
+HREF="xmlsec-keysinternal.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="4"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="5"
+>XML Security Library Reference Manual</FONT
+></TH
+></TR
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-digests.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref-int.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-keysinternal.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+></TABLE
+></DIV
+><H1
+><A
+NAME="XMLSEC-IO"
+></A
+>io.h</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN6365"
+></A
+><H2
+>Name</H2
+>io.h&nbsp;--&nbsp;The IO transforms.</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN6368"
+></A
+><H2
+>Synopsis</H2
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="SYNOPSIS"
+>&#13;
+
+void <A
+HREF="xmlsec-io.html#XMLSECIOINIT"
+>xmlSecIOInit</A
+> (void);
+void <A
+HREF="xmlsec-io.html#XMLSECIOSHUTDOWN"
+>xmlSecIOShutdown</A
+> (void);
+extern xmlSecTransformId <A
+HREF="xmlsec-io.html#XMLSECINPUTURI"
+>xmlSecInputUri</A
+>;
+int <A
+HREF="xmlsec-io.html#XMLSECINPUTURITRANSFORMOPEN"
+>xmlSecInputUriTransformOpen</A
+> (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ const char *uri);
+void <A
+HREF="xmlsec-io.html#XMLSECCLEANUPINPUTCALLBACKS"
+>xmlSecCleanupInputCallbacks</A
+> (void);
+void <A
+HREF="xmlsec-io.html#XMLSECREGISTERDEFAULTINPUTCALLBACKS"
+>xmlSecRegisterDefaultInputCallbacks</A
+>
+ (void);
+int <A
+HREF="xmlsec-io.html#XMLSECREGISTERINPUTCALLBACKS"
+>xmlSecRegisterInputCallbacks</A
+> (<GTKDOCLINK
+HREF="XMLINPUTMATCHCALLBACK"
+>xmlInputMatchCallback</GTKDOCLINK
+> matchFunc,
+ <GTKDOCLINK
+HREF="XMLINPUTOPENCALLBACK"
+>xmlInputOpenCallback</GTKDOCLINK
+> openFunc,
+ <GTKDOCLINK
+HREF="XMLINPUTREADCALLBACK"
+>xmlInputReadCallback</GTKDOCLINK
+> readFunc,
+ <GTKDOCLINK
+HREF="XMLINPUTCLOSECALLBACK"
+>xmlInputCloseCallback</GTKDOCLINK
+> closeFunc);</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN6383"
+></A
+><H2
+>Description</H2
+><P
+></P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN6386"
+></A
+><H2
+>Details</H2
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6388"
+></A
+><H3
+><A
+NAME="XMLSECIOINIT"
+></A
+>xmlSecIOInit ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecIOInit (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+>The IO initialization (called from <A
+HREF="xmlsec-xmlsec.html#XMLSECINIT"
+>xmlSecInit</A
+>() function).
+Applications should not call this function directly.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6395"
+></A
+><H3
+><A
+NAME="XMLSECIOSHUTDOWN"
+></A
+>xmlSecIOShutdown ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecIOShutdown (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+>The IO clenaup (called from <A
+HREF="xmlsec-xmlsec.html#XMLSECSHUTDOWN"
+>xmlSecShutdown</A
+>() function).
+Applications should not call this function directly.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6402"
+></A
+><H3
+><A
+NAME="XMLSECINPUTURI"
+></A
+>xmlSecInputUri</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecInputUri;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The input URI transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6408"
+></A
+><H3
+><A
+NAME="XMLSECINPUTURITRANSFORMOPEN"
+></A
+>xmlSecInputUriTransformOpen ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecInputUriTransformOpen (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ const char *uri);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Opens the given <TT
+CLASS="PARAMETER"
+><I
+>uri</I
+></TT
+> for reading.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6416"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to IO transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>uri</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the URL to open.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6433"
+></A
+><H3
+><A
+NAME="XMLSECCLEANUPINPUTCALLBACKS"
+></A
+>xmlSecCleanupInputCallbacks ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecCleanupInputCallbacks (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Clears the entire input callback table. this includes the
+compiled-in I/O.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6439"
+></A
+><H3
+><A
+NAME="XMLSECREGISTERDEFAULTINPUTCALLBACKS"
+></A
+>xmlSecRegisterDefaultInputCallbacks ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecRegisterDefaultInputCallbacks
+ (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Registers the default compiled-in I/O handlers.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6445"
+></A
+><H3
+><A
+NAME="XMLSECREGISTERINPUTCALLBACKS"
+></A
+>xmlSecRegisterInputCallbacks ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecRegisterInputCallbacks (<GTKDOCLINK
+HREF="XMLINPUTMATCHCALLBACK"
+>xmlInputMatchCallback</GTKDOCLINK
+> matchFunc,
+ <GTKDOCLINK
+HREF="XMLINPUTOPENCALLBACK"
+>xmlInputOpenCallback</GTKDOCLINK
+> openFunc,
+ <GTKDOCLINK
+HREF="XMLINPUTREADCALLBACK"
+>xmlInputReadCallback</GTKDOCLINK
+> readFunc,
+ <GTKDOCLINK
+HREF="XMLINPUTCLOSECALLBACK"
+>xmlInputCloseCallback</GTKDOCLINK
+> closeFunc);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Register a new set of I/O callback for handling parser input.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6455"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>matchFunc</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the xmlInputMatchCallback.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>openFunc</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the xmlInputOpenCallback.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>readFunc</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the xmlInputReadCallback.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>closeFunc</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the xmlInputCloseCallback.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the registered handler number or a negative value if
+an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-digests.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref-int.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-keysinternal.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>digests.h</B
+></FONT
+></TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>keysInternal.h</B
+></FONT
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/docs/api-0.0.x/xmlsec-keyinfo.html b/docs/api-0.0.x/xmlsec-keyinfo.html
new file mode 100644
index 00000000..5ad78c9c
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-keyinfo.html
@@ -0,0 +1,1508 @@
+<HTML
+><HEAD
+><TITLE
+>keyinfo.h</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="XML Security Library Reference Manual"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="XML Security Library Reference"
+HREF="xmlsec-ref.html"><LINK
+REL="PREVIOUS"
+TITLE="debug.h"
+HREF="xmlsec-debug.html"><LINK
+REL="NEXT"
+TITLE="keys.h"
+HREF="xmlsec-keys.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="4"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="5"
+>XML Security Library Reference Manual</FONT
+></TH
+></TR
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-debug.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-keys.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+></TABLE
+></DIV
+><H1
+><A
+NAME="XMLSEC-KEYINFO"
+></A
+>keyinfo.h</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN2169"
+></A
+><H2
+>Name</H2
+>keyinfo.h&nbsp;--&nbsp;The &lt;dsig:KeyInfo&gt; element manipulation functions.</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN2172"
+></A
+><H2
+>Synopsis</H2
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="SYNOPSIS"
+>&#13;
+
+<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-keyinfo.html#XMLSECKEYINFONODEREAD"
+>xmlSecKeyInfoNodeRead</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> keyInfoNode,
+ <GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> keysMngr,
+ void *context,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYID"
+>xmlSecKeyId</A
+> keyId,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYTYPE"
+>xmlSecKeyType</A
+> keyType,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYUSAGE"
+>xmlSecKeyUsage</A
+> keyUsage,
+ <GTKDOCLINK
+HREF="TIME-T"
+>time_t</GTKDOCLINK
+> certsVerificationTime);
+int <A
+HREF="xmlsec-keyinfo.html#XMLSECKEYINFONODEWRITE"
+>xmlSecKeyInfoNodeWrite</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> keyInfoNode,
+ <GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> keysMngr,
+ void *context,
+ <GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYTYPE"
+>xmlSecKeyType</A
+> type);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-keyinfo.html#XMLSECKEYINFOADDKEYNAME"
+>xmlSecKeyInfoAddKeyName</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> keyInfoNode);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-keyinfo.html#XMLSECKEYINFOADDKEYVALUE"
+>xmlSecKeyInfoAddKeyValue</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> keyInfoNode);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-keyinfo.html#XMLSECKEYINFOADDX509DATA"
+>xmlSecKeyInfoAddX509Data</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> keyInfoNode);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-keyinfo.html#XMLSECKEYINFOADDRETRIEVALMETHOD"
+>xmlSecKeyInfoAddRetrievalMethod</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> keyInfoNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *uri,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *type);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-keyinfo.html#XMLSECRETRIEVALMETHODADDTRANSFORM"
+>xmlSecRetrievalMethodAddTransform</A
+>
+ (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> retrMethod,
+ <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> transform);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-keyinfo.html#XMLSECKEYINFOADDENCRYPTEDKEY"
+>xmlSecKeyInfoAddEncryptedKey</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> keyInfoNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *id,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *type,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *recipient);</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN2212"
+></A
+><H2
+>Description</H2
+><P
+></P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN2215"
+></A
+><H2
+>Details</H2
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2217"
+></A
+><H3
+><A
+NAME="XMLSECKEYINFONODEREAD"
+></A
+>xmlSecKeyInfoNodeRead ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> xmlSecKeyInfoNodeRead (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> keyInfoNode,
+ <GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> keysMngr,
+ void *context,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYID"
+>xmlSecKeyId</A
+> keyId,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYTYPE"
+>xmlSecKeyType</A
+> keyType,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYUSAGE"
+>xmlSecKeyUsage</A
+> keyUsage,
+ <GTKDOCLINK
+HREF="TIME-T"
+>time_t</GTKDOCLINK
+> certsVerificationTime);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Parses the &lt;dsig:KeyInfo&gt; element and extracts the key (with required
+id, type and usage).</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN2230"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>keyInfoNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:KeyInfo&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>keysMngr</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-keys.html#XMLSECKEYSMNGR"
+>xmlSecKeysMngr</A
+> struvture.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>context</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to application specific data that will be
+ passed to all callback functions.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>keyId</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the required key id or NULL.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>keyType</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the required key type (may be "any").</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>keyUsage</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the desired key usage. </TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>certsVerificationTime</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to extracted key or NULL if an error occurs or
+required key is not found.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2268"
+></A
+><H3
+><A
+NAME="XMLSECKEYINFONODEWRITE"
+></A
+>xmlSecKeyInfoNodeWrite ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecKeyInfoNodeWrite (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> keyInfoNode,
+ <GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> keysMngr,
+ void *context,
+ <GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYTYPE"
+>xmlSecKeyType</A
+> type);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Writes the key into the &lt;dsig:KeyInfo&gt; template <TT
+CLASS="PARAMETER"
+><I
+>keyInfoNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN2279"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>keyInfoNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:KeyInfo&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>keysMngr</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-keys.html#XMLSECKEYSMNGR"
+>xmlSecKeysMngr</A
+> struvture.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>context</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to application specific data that will be
+ passed to all callback functions.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the <A
+HREF="xmlsec-keys.html#XMLSECKEY"
+>xmlSecKey</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>type</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key type (public/private).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or -1 if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2310"
+></A
+><H3
+><A
+NAME="XMLSECKEYINFOADDKEYNAME"
+></A
+>xmlSecKeyInfoAddKeyName ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecKeyInfoAddKeyName (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> keyInfoNode);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds &lt;dsig:KeyName&gt; node to the &lt;dsig:KeyInfo&gt; node <TT
+CLASS="PARAMETER"
+><I
+>keyInfoNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN2319"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>keyInfoNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:KeyInfo&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to the newly created &lt;dsig:KeyName&gt; node or
+NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2332"
+></A
+><H3
+><A
+NAME="XMLSECKEYINFOADDKEYVALUE"
+></A
+>xmlSecKeyInfoAddKeyValue ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecKeyInfoAddKeyValue (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> keyInfoNode);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds &lt;dsig:KeyValue&gt; node to the &lt;dsig:KeyInfo&gt; node <TT
+CLASS="PARAMETER"
+><I
+>keyInfoNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN2341"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>keyInfoNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:KeyInfo&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to the newly created &lt;dsig:KeyValue&gt; node or
+NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2354"
+></A
+><H3
+><A
+NAME="XMLSECKEYINFOADDX509DATA"
+></A
+>xmlSecKeyInfoAddX509Data ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecKeyInfoAddX509Data (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> keyInfoNode);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds &lt;dsig:X509Data&gt; node to the &lt;dsig:KeyInfo&gt; node <TT
+CLASS="PARAMETER"
+><I
+>keyInfoNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN2363"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>keyInfoNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:KeyInfo&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to the newly created &lt;dsig:X509Data&gt; node or
+NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2376"
+></A
+><H3
+><A
+NAME="XMLSECKEYINFOADDRETRIEVALMETHOD"
+></A
+>xmlSecKeyInfoAddRetrievalMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecKeyInfoAddRetrievalMethod (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> keyInfoNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *uri,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *type);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds &lt;dsig:RetrievalMethod&gt; node to the &lt;dsig:KeyInfo&gt; node <TT
+CLASS="PARAMETER"
+><I
+>keyInfoNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN2387"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>keyInfoNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:KeyInfo&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>uri</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the URI attribute (optional).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>type</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the Type attribute(optional).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to the newly created &lt;dsig:RetrievalMethod&gt; node or
+NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2408"
+></A
+><H3
+><A
+NAME="XMLSECRETRIEVALMETHODADDTRANSFORM"
+></A
+>xmlSecRetrievalMethodAddTransform ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecRetrievalMethodAddTransform
+ (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> retrMethod,
+ <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> transform);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds &lt;dsig:Transform&gt; node (and the parent &lt;dsig:Transforms&gt; node
+if required) to the &lt;dsig:RetrievalMethod&gt; node <TT
+CLASS="PARAMETER"
+><I
+>retrMethod</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN2418"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>retrMethod</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:RetrievalMethod&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform id.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to the newly created &lt;dsig:dsig:Transforms&gt; node or
+NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2435"
+></A
+><H3
+><A
+NAME="XMLSECKEYINFOADDENCRYPTEDKEY"
+></A
+>xmlSecKeyInfoAddEncryptedKey ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecKeyInfoAddEncryptedKey (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> keyInfoNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *id,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *type,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *recipient);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds &lt;enc:EncryptedKey&gt; node with given attributes to
+the &lt;dsig:KeyInfo&gt; node <TT
+CLASS="PARAMETER"
+><I
+>keyInfoNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN2447"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>keyInfoNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:KeyInfo&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the Id attribute (optional).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>type</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the Type attribute (optional). </TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>recipient</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the Recipient attribute (optional). </TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to the newly created &lt;enc:EncryptedKey&gt; node or
+NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-debug.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-keys.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>debug.h</B
+></FONT
+></TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>keys.h</B
+></FONT
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/docs/api-0.0.x/xmlsec-keys.html b/docs/api-0.0.x/xmlsec-keys.html
new file mode 100644
index 00000000..b96efb75
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-keys.html
@@ -0,0 +1,3236 @@
+<HTML
+><HEAD
+><TITLE
+>keys.h</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="XML Security Library Reference Manual"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="XML Security Library Reference"
+HREF="xmlsec-ref.html"><LINK
+REL="PREVIOUS"
+TITLE="keyinfo.h"
+HREF="xmlsec-keyinfo.html"><LINK
+REL="NEXT"
+TITLE="keysmngr.h"
+HREF="xmlsec-keysmngr.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="4"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="5"
+>XML Security Library Reference Manual</FONT
+></TH
+></TR
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-keyinfo.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-keysmngr.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+></TABLE
+></DIV
+><H1
+><A
+NAME="XMLSEC-KEYS"
+></A
+>keys.h</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN2477"
+></A
+><H2
+>Name</H2
+>keys.h&nbsp;--&nbsp;The keys helper functions.</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN2480"
+></A
+><H2
+>Synopsis</H2
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="SYNOPSIS"
+>&#13;
+
+typedef <A
+HREF="xmlsec-keys.html#XMLSECKEYID"
+>xmlSecKeyId</A
+>;
+enum <A
+HREF="xmlsec-keys.html#XMLSECKEYTYPE"
+>xmlSecKeyType</A
+>;
+enum <A
+HREF="xmlsec-keys.html#XMLSECKEYUSAGE"
+>xmlSecKeyUsage</A
+>;
+typedef <A
+HREF="xmlsec-keys.html#XMLSECKEYORIGIN"
+>xmlSecKeyOrigin</A
+>;
+#define <A
+HREF="xmlsec-keys.html#XMLSECKEYORIGINDEFAULT"
+>xmlSecKeyOriginDefault</A
+>
+#define <A
+HREF="xmlsec-keys.html#XMLSECKEYORIGINKEYMANAGER"
+>xmlSecKeyOriginKeyManager</A
+>
+#define <A
+HREF="xmlsec-keys.html#XMLSECKEYORIGINKEYNAME"
+>xmlSecKeyOriginKeyName</A
+>
+#define <A
+HREF="xmlsec-keys.html#XMLSECKEYORIGINKEYVALUE"
+>xmlSecKeyOriginKeyValue</A
+>
+#define <A
+HREF="xmlsec-keys.html#XMLSECKEYORIGINRETRIEVALDOCUMENT"
+>xmlSecKeyOriginRetrievalDocument</A
+>
+#define <A
+HREF="xmlsec-keys.html#XMLSECKEYORIGINRETRIEVALREMOTE"
+>xmlSecKeyOriginRetrievalRemote</A
+>
+#define <A
+HREF="xmlsec-keys.html#XMLSECKEYORIGINX509"
+>xmlSecKeyOriginX509</A
+>
+#define <A
+HREF="xmlsec-keys.html#XMLSECKEYORIGINPGP"
+>xmlSecKeyOriginPGP</A
+>
+#define <A
+HREF="xmlsec-keys.html#XMLSECKEYORIGINENCRYPTEDKEY"
+>xmlSecKeyOriginEncryptedKey</A
+>
+#define <A
+HREF="xmlsec-keys.html#XMLSECKEYORIGINALL"
+>xmlSecKeyOriginAll</A
+>
+#define <A
+HREF="xmlsec-keys.html#XMLSECKEYIDUNKNOWN"
+>xmlSecKeyIdUnknown</A
+>
+struct <A
+HREF="xmlsec-keys.html#XMLSECKEY"
+>xmlSecKey</A
+>;
+<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-keys.html#XMLSECKEYCREATE"
+>xmlSecKeyCreate</A
+> (<A
+HREF="xmlsec-keys.html#XMLSECKEYID"
+>xmlSecKeyId</A
+> id,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYORIGIN"
+>xmlSecKeyOrigin</A
+> origin);
+void <A
+HREF="xmlsec-keys.html#XMLSECKEYDESTROY"
+>xmlSecKeyDestroy</A
+> (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key);
+<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-keys.html#XMLSECKEYDUPLICATE"
+>xmlSecKeyDuplicate</A
+> (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYORIGIN"
+>xmlSecKeyOrigin</A
+> origin);
+int <A
+HREF="xmlsec-keys.html#XMLSECVERIFYKEY"
+>xmlSecVerifyKey</A
+> (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *name,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYID"
+>xmlSecKeyId</A
+> id,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYTYPE"
+>xmlSecKeyType</A
+> type);
+void <A
+HREF="xmlsec-keys.html#XMLSECKEYDEBUGDUMP"
+>xmlSecKeyDebugDump</A
+> (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <GTKDOCLINK
+HREF="FILE-CAPS"
+>FILE</GTKDOCLINK
+> *output);
+int <A
+HREF="xmlsec-keys.html#XMLSECKEYREADPEMCERT"
+>xmlSecKeyReadPemCert</A
+> (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ const char *filename);
+struct <A
+HREF="xmlsec-keys.html#XMLSECKEYSMNGR"
+>xmlSecKeysMngr</A
+>;
+<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> (<A
+HREF="xmlsec-keys.html#XMLSECGETKEYCALLBACK"
+>*xmlSecGetKeyCallback</A
+>) (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> keyInfoNode,
+ <GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ void *context,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYID"
+>xmlSecKeyId</A
+> keyId,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYTYPE"
+>xmlSecKeyType</A
+> type,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYUSAGE"
+>xmlSecKeyUsage</A
+> usage,
+ <GTKDOCLINK
+HREF="TIME-T"
+>time_t</GTKDOCLINK
+> certsVerificationTime);
+<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> (<A
+HREF="xmlsec-keys.html#XMLSECFINDKEYCALLBACK"
+>*xmlSecFindKeyCallback</A
+>) (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ void *context,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *name,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYID"
+>xmlSecKeyId</A
+> id,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYTYPE"
+>xmlSecKeyType</A
+> type,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYUSAGE"
+>xmlSecKeyUsage</A
+> usage);
+<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> (<A
+HREF="xmlsec-keys.html#XMLSECX509FINDCALLBACK"
+>*xmlSecX509FindCallback</A
+>) (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ void *context,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *subjectName,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *issuerName,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *issuerSerial,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *ski,
+ <GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> cert);
+int (<A
+HREF="xmlsec-keys.html#XMLSECX509VERIFYCALLBACK"
+>*xmlSecX509VerifyCallback</A
+>) (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ void *context,
+ <GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> cert);
+<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-keys.html#XMLSECKEYSMNGRGETKEY"
+>xmlSecKeysMngrGetKey</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> keyInfoNode,
+ <GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ void *context,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYID"
+>xmlSecKeyId</A
+> keyId,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYTYPE"
+>xmlSecKeyType</A
+> keyType,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYUSAGE"
+>xmlSecKeyUsage</A
+> keyUsage,
+ <GTKDOCLINK
+HREF="TIME-T"
+>time_t</GTKDOCLINK
+> certsVerificationTime);</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN2554"
+></A
+><H2
+>Description</H2
+><P
+></P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN2557"
+></A
+><H2
+>Details</H2
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2559"
+></A
+><H3
+><A
+NAME="XMLSECKEYID"
+></A
+>xmlSecKeyId</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>typedef const struct _xmlSecKeyIdStruct *xmlSecKeyId; </PRE
+></TD
+></TR
+></TABLE
+><P
+>The key id (key type information).</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2565"
+></A
+><H3
+><A
+NAME="XMLSECKEYTYPE"
+></A
+>enum xmlSecKeyType</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>typedef enum {
+ xmlSecKeyTypePublic = 0,
+ xmlSecKeyTypePrivate,
+ xmlSecKeyTypeAny
+} xmlSecKeyType;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The key type (public/private).</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN2571"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#F0F0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecKeyTypePublic</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the public key.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecKeyTypePrivate</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the private key.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecKeyTypeAny</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> any key.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2588"
+></A
+><H3
+><A
+NAME="XMLSECKEYUSAGE"
+></A
+>enum xmlSecKeyUsage</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>typedef enum {
+ xmlSecKeyUsageAny = 0,
+ xmlSecKeyUsageSign,
+ xmlSecKeyUsageVerify,
+ xmlSecKeyUsageEncrypt,
+ xmlSecKeyUsageDecrypt
+} xmlSecKeyUsage;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The key usage.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN2594"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#F0F0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecKeyUsageAny</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key can be used in any way.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecKeyUsageSign</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key for signing.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecKeyUsageVerify</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key for signature verification.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecKeyUsageEncrypt</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the encryption key.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecKeyUsageDecrypt</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the decryption key.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2619"
+></A
+><H3
+><A
+NAME="XMLSECKEYORIGIN"
+></A
+>xmlSecKeyOrigin</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>typedef long xmlSecKeyOrigin;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The key origin (keys manager, remote document, cert, etc.).</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2625"
+></A
+><H3
+><A
+NAME="XMLSECKEYORIGINDEFAULT"
+></A
+>xmlSecKeyOriginDefault</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecKeyOriginDefault 0</PRE
+></TD
+></TR
+></TABLE
+><P
+>Default origin (unknown).</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2631"
+></A
+><H3
+><A
+NAME="XMLSECKEYORIGINKEYMANAGER"
+></A
+>xmlSecKeyOriginKeyManager</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecKeyOriginKeyManager 1</PRE
+></TD
+></TR
+></TABLE
+><P
+>The key was found in the keys manager.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2637"
+></A
+><H3
+><A
+NAME="XMLSECKEYORIGINKEYNAME"
+></A
+>xmlSecKeyOriginKeyName</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecKeyOriginKeyName 2 </PRE
+></TD
+></TR
+></TABLE
+><P
+>The key was found in the keys manager via key name
+specified in the &lt;dsig:KeyName&gt; node. (useless w/o
+<A
+HREF="xmlsec-keys.html#XMLSECKEYORIGINKEYMANAGER"
+>xmlSecKeyOriginKeyManager</A
+>).</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2644"
+></A
+><H3
+><A
+NAME="XMLSECKEYORIGINKEYVALUE"
+></A
+>xmlSecKeyOriginKeyValue</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecKeyOriginKeyValue 4</PRE
+></TD
+></TR
+></TABLE
+><P
+>The key was extracted from &lt;dsig:KeyValue&gt; node.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2650"
+></A
+><H3
+><A
+NAME="XMLSECKEYORIGINRETRIEVALDOCUMENT"
+></A
+>xmlSecKeyOriginRetrievalDocument</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecKeyOriginRetrievalDocument 8</PRE
+></TD
+></TR
+></TABLE
+><P
+>The key was extracted thru &lt;dsig:RetrievalMethod&gt;
+pointing in the same document.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2656"
+></A
+><H3
+><A
+NAME="XMLSECKEYORIGINRETRIEVALREMOTE"
+></A
+>xmlSecKeyOriginRetrievalRemote</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecKeyOriginRetrievalRemote 16</PRE
+></TD
+></TR
+></TABLE
+><P
+>The key was extracted thru &lt;dsig:RetrievalMethod&gt;
+pointing to another document.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2662"
+></A
+><H3
+><A
+NAME="XMLSECKEYORIGINX509"
+></A
+>xmlSecKeyOriginX509</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecKeyOriginX509 32</PRE
+></TD
+></TR
+></TABLE
+><P
+>The key was extracted from X509 certificate
+in the &lt;dsig:X509Data&gt; node.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2668"
+></A
+><H3
+><A
+NAME="XMLSECKEYORIGINPGP"
+></A
+>xmlSecKeyOriginPGP</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecKeyOriginPGP 64</PRE
+></TD
+></TR
+></TABLE
+><P
+>The PGP key from &lt;dsig:PGPData&gt; node. Not used.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2674"
+></A
+><H3
+><A
+NAME="XMLSECKEYORIGINENCRYPTEDKEY"
+></A
+>xmlSecKeyOriginEncryptedKey</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecKeyOriginEncryptedKey 128</PRE
+></TD
+></TR
+></TABLE
+><P
+>The key was extracted from &lt;enc:EncryptedKey&gt; node.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2680"
+></A
+><H3
+><A
+NAME="XMLSECKEYORIGINALL"
+></A
+>xmlSecKeyOriginAll</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecKeyOriginAll</PRE
+></TD
+></TR
+></TABLE
+><P
+>All of the above.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2686"
+></A
+><H3
+><A
+NAME="XMLSECKEYIDUNKNOWN"
+></A
+>xmlSecKeyIdUnknown</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecKeyIdUnknown NULL</PRE
+></TD
+></TR
+></TABLE
+><P
+>The "unknown" id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2692"
+></A
+><H3
+><A
+NAME="XMLSECKEY"
+></A
+>struct xmlSecKey</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>struct xmlSecKey {
+ xmlSecKeyId id;
+ xmlSecKeyType type;
+ xmlChar *name;
+ xmlSecKeyOrigin origin;
+ xmlSecX509DataPtr x509Data;
+ void *keyData;
+};</PRE
+></TD
+></TR
+></TABLE
+><P
+>The key.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN2698"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFF0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-keys.html#XMLSECKEYID"
+>xmlSecKeyId</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>id</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key id (<A
+HREF="xmlsec-keys.html#XMLSECKEYID"
+>xmlSecKeyId</A
+>).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-keys.html#XMLSECKEYTYPE"
+>xmlSecKeyType</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>type</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key type (private/public).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *<TT
+CLASS="STRUCTFIELD"
+><I
+>name</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key name (may be NULL).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-keys.html#XMLSECKEYORIGIN"
+>xmlSecKeyOrigin</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>origin</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key origin.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>x509Data</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to X509 cert data (if key was extracted from a cert).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>void *<TT
+CLASS="STRUCTFIELD"
+><I
+>keyData</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> key specific data.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2733"
+></A
+><H3
+><A
+NAME="XMLSECKEYCREATE"
+></A
+>xmlSecKeyCreate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> xmlSecKeyCreate (<A
+HREF="xmlsec-keys.html#XMLSECKEYID"
+>xmlSecKeyId</A
+> id,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYORIGIN"
+>xmlSecKeyOrigin</A
+> origin);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Creates new key of the specified type <TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN2743"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key id.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>origin</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key origins.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly allocated <A
+HREF="xmlsec-keys.html#XMLSECKEY"
+>xmlSecKey</A
+> structure
+or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2761"
+></A
+><H3
+><A
+NAME="XMLSECKEYDESTROY"
+></A
+>xmlSecKeyDestroy ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecKeyDestroy (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Destroys the key and frees all allocated memory.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN2768"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the <A
+HREF="xmlsec-keys.html#XMLSECKEY"
+>xmlSecKey</A
+> structure.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2778"
+></A
+><H3
+><A
+NAME="XMLSECKEYDUPLICATE"
+></A
+>xmlSecKeyDuplicate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> xmlSecKeyDuplicate (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYORIGIN"
+>xmlSecKeyOrigin</A
+> origin);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Creates a duplicate of the given <TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN2788"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the <A
+HREF="xmlsec-keys.html#XMLSECKEY"
+>xmlSecKey</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>origin</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key origins.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly allocated <A
+HREF="xmlsec-keys.html#XMLSECKEY"
+>xmlSecKey</A
+> structure
+or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2807"
+></A
+><H3
+><A
+NAME="XMLSECVERIFYKEY"
+></A
+>xmlSecVerifyKey ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecVerifyKey (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *name,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYID"
+>xmlSecKeyId</A
+> id,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYTYPE"
+>xmlSecKeyType</A
+> type);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Checks whether the <TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+> matches the given criteria
+(key name is equal to <TT
+CLASS="PARAMETER"
+><I
+>name</I
+></TT
+>, key id is equal to <TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>,
+key type is <TT
+CLASS="PARAMETER"
+><I
+>type</I
+></TT
+>).</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN2821"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the <A
+HREF="xmlsec-keys.html#XMLSECKEY"
+>xmlSecKey</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>name</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to key name (may be NULL).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key id (may be "any").</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>type</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key type to write (public/private).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>1 if the key satisfies the given criteria or 0 otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2847"
+></A
+><H3
+><A
+NAME="XMLSECKEYDEBUGDUMP"
+></A
+>xmlSecKeyDebugDump ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecKeyDebugDump (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <GTKDOCLINK
+HREF="FILE-CAPS"
+>FILE</GTKDOCLINK
+> *output);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Prints the information about the <TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+> to the <TT
+CLASS="PARAMETER"
+><I
+>output</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN2857"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the <A
+HREF="xmlsec-keys.html#XMLSECKEY"
+>xmlSecKey</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>output</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the destination <GTKDOCLINK
+HREF="FILE-CAPS"
+>FILE</GTKDOCLINK
+> pointer.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2872"
+></A
+><H3
+><A
+NAME="XMLSECKEYREADPEMCERT"
+></A
+>xmlSecKeyReadPemCert ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecKeyReadPemCert (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ const char *filename);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Reads the cert from a PEM file and assigns the cert
+to the key.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN2879"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the <A
+HREF="xmlsec-keys.html#XMLSECKEY"
+>xmlSecKey</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>filename</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the PEM cert file name.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2897"
+></A
+><H3
+><A
+NAME="XMLSECKEYSMNGR"
+></A
+>struct xmlSecKeysMngr</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>struct xmlSecKeysMngr {
+ xmlSecGetKeyCallback getKey;
+ xmlSecKeyOrigin allowedOrigins;
+ int maxRetrievalsLevel;
+ int maxEncKeysLevel;
+
+ /* low level keys */
+ xmlSecFindKeyCallback findKey;
+ void *keysData;
+
+ /* x509 certs */
+ int failIfCertNotFound;
+ xmlSecX509FindCallback findX509;
+ xmlSecX509VerifyCallback verifyX509;
+ void *x509Data;
+};</PRE
+></TD
+></TR
+></TABLE
+><P
+>The keys manager structure.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN2903"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFF0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-keys.html#XMLSECGETKEYCALLBACK"
+>xmlSecGetKeyCallback</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>getKey</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the callback used to read &lt;dsig:KeyInfo&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-keys.html#XMLSECKEYORIGIN"
+>xmlSecKeyOrigin</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>allowedOrigins</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the allowed origins bits mask.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>int <TT
+CLASS="STRUCTFIELD"
+><I
+>maxRetrievalsLevel</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the max allowed &lt;dsig:RetrievalMethod&gt; level to prevent DOS attack.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>int <TT
+CLASS="STRUCTFIELD"
+><I
+>maxEncKeysLevel</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the max allowed &lt;enc:EncryptedKey&gt; level to prevent DOS attack.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-keys.html#XMLSECFINDKEYCALLBACK"
+>xmlSecFindKeyCallback</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>findKey</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the callback used to serach for key in the keys manager.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>void *<TT
+CLASS="STRUCTFIELD"
+><I
+>keysData</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the keys manager data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>int <TT
+CLASS="STRUCTFIELD"
+><I
+>failIfCertNotFound</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the flag.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-keys.html#XMLSECX509FINDCALLBACK"
+>xmlSecX509FindCallback</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>findX509</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the callback used to search for a cert.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-keys.html#XMLSECX509VERIFYCALLBACK"
+>xmlSecX509VerifyCallback</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>verifyX509</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the callback used to verify a cert.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>void *<TT
+CLASS="STRUCTFIELD"
+><I
+>x509Data</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the X509 certificates manager specific data.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2953"
+></A
+><H3
+><A
+NAME="XMLSECGETKEYCALLBACK"
+></A
+>xmlSecGetKeyCallback ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> (*xmlSecGetKeyCallback) (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> keyInfoNode,
+ <GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ void *context,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYID"
+>xmlSecKeyId</A
+> keyId,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYTYPE"
+>xmlSecKeyType</A
+> type,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYUSAGE"
+>xmlSecKeyUsage</A
+> usage,
+ <GTKDOCLINK
+HREF="TIME-T"
+>time_t</GTKDOCLINK
+> certsVerificationTime);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Reads the &lt;dsig:KeyInfo&gt; node <TT
+CLASS="PARAMETER"
+><I
+>keyInfoNode</I
+></TT
+> and extracts the key.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN2967"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>keyInfoNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:KeyInfo&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>mngr</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the keys manager.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>context</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to application specific data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>keyId</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the required key Id (or NULL for "any").</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>type</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the required key (may be "any").</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>usage</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the required key usage.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>certsVerificationTime</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to key or NULL if the key is not found or
+an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3004"
+></A
+><H3
+><A
+NAME="XMLSECFINDKEYCALLBACK"
+></A
+>xmlSecFindKeyCallback ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> (*xmlSecFindKeyCallback) (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ void *context,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *name,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYID"
+>xmlSecKeyId</A
+> id,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYTYPE"
+>xmlSecKeyType</A
+> type,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYUSAGE"
+>xmlSecKeyUsage</A
+> usage);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Searches the keys manager for specified key.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN3016"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>mngr</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the keys manager.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>context</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to application specific data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>name</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the required key name (or NULL for "any").</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the required key Id (or NULL for "any").</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>type</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the required key (may be "any").</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>usage</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the required key usage.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to key or NULL if the key is not found or
+an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3049"
+></A
+><H3
+><A
+NAME="XMLSECX509FINDCALLBACK"
+></A
+>xmlSecX509FindCallback ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> (*xmlSecX509FindCallback) (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ void *context,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *subjectName,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *issuerName,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *issuerSerial,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *ski,
+ <GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> cert);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Searches for matching certificate in the keys manager.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN3062"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>mngr</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the keys manager.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>context</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer application specific data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>subjectName</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the subject name string.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>issuerName</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the issuer name string.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>issuerSerial</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the issuer serial.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ski</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the SKI string.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>cert</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the current X509 certs data (may be NULL). </TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to certificate that matches given criteria or NULL
+if an error occurs or certificate not found.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3099"
+></A
+><H3
+><A
+NAME="XMLSECX509VERIFYCALLBACK"
+></A
+>xmlSecX509VerifyCallback ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int (*xmlSecX509VerifyCallback) (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ void *context,
+ <GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> cert);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Validates certificate.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN3107"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>mngr</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the keys manager.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>context</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to application specific data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>cert</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the cert to verify.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>1 if the cert is trusted, 0 if it is not trusted
+and -1 if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3128"
+></A
+><H3
+><A
+NAME="XMLSECKEYSMNGRGETKEY"
+></A
+>xmlSecKeysMngrGetKey ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> xmlSecKeysMngrGetKey (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> keyInfoNode,
+ <GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ void *context,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYID"
+>xmlSecKeyId</A
+> keyId,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYTYPE"
+>xmlSecKeyType</A
+> keyType,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYUSAGE"
+>xmlSecKeyUsage</A
+> keyUsage,
+ <GTKDOCLINK
+HREF="TIME-T"
+>time_t</GTKDOCLINK
+> certsVerificationTime);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Reads the &lt;dsig:KeyInfo&gt; node <TT
+CLASS="PARAMETER"
+><I
+>keyInfoNode</I
+></TT
+> and extracts the key.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN3142"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>keyInfoNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:KeyInfo&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>mngr</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the keys manager.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>context</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to application specific data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>keyId</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the required key Id (or NULL for "any").</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>keyType</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the required key (may be "any").</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>keyUsage</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the required key usage.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>certsVerificationTime</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to key or NULL if the key is not found or
+an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-keyinfo.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-keysmngr.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>keyinfo.h</B
+></FONT
+></TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>keysmngr.h</B
+></FONT
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/docs/api-0.0.x/xmlsec-keysinternal.html b/docs/api-0.0.x/xmlsec-keysinternal.html
new file mode 100644
index 00000000..94805f36
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-keysinternal.html
@@ -0,0 +1,2067 @@
+<HTML
+><HEAD
+><TITLE
+>keysInternal.h</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="XML Security Library Reference Manual"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="XML Security Library Internal Functions Reference"
+HREF="xmlsec-ref-int.html"><LINK
+REL="PREVIOUS"
+TITLE="io.h"
+HREF="xmlsec-io.html"><LINK
+REL="NEXT"
+TITLE="membuf.h"
+HREF="xmlsec-membuf.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="4"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="5"
+>XML Security Library Reference Manual</FONT
+></TH
+></TR
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-io.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref-int.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-membuf.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+></TABLE
+></DIV
+><H1
+><A
+NAME="XMLSEC-KEYSINTERNAL"
+></A
+>keysInternal.h</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN6485"
+></A
+><H2
+>Name</H2
+>keysInternal.h&nbsp;--&nbsp;The internal keys functions.</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN6488"
+></A
+><H2
+>Synopsis</H2
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="SYNOPSIS"
+>&#13;
+
+#define <A
+HREF="xmlsec-keysinternal.html#XMLSECKEYINIFITERETRIVALS"
+>xmlSecKeyInifiteRetrivals</A
+>
+<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> (<A
+HREF="xmlsec-keysinternal.html#XMLSECKEYCREATEMETHOD"
+>*xmlSecKeyCreateMethod</A
+>) (<A
+HREF="xmlsec-keys.html#XMLSECKEYID"
+>xmlSecKeyId</A
+> id);
+<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> (<A
+HREF="xmlsec-keysinternal.html#XMLSECKEYDUPLICATEMETHOD"
+>*xmlSecKeyDuplicateMethod</A
+>) (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key);
+void (<A
+HREF="xmlsec-keysinternal.html#XMLSECKEYDESTROYMETHOD"
+>*xmlSecKeyDestroyMethod</A
+>) (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key);
+int (<A
+HREF="xmlsec-keysinternal.html#XMLSECKEYREADXMLMETHOD"
+>*xmlSecKeyReadXmlMethod</A
+>) (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> node);
+int (<A
+HREF="xmlsec-keysinternal.html#XMLSECKEYWRITEXMLMETHOD"
+>*xmlSecKeyWriteXmlMethod</A
+>) (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYTYPE"
+>xmlSecKeyType</A
+> type,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> parent);
+int (<A
+HREF="xmlsec-keysinternal.html#XMLSECKEYREADBINARYMETHOD"
+>*xmlSecKeyReadBinaryMethod</A
+>) (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);
+int (<A
+HREF="xmlsec-keysinternal.html#XMLSECKEYWRITEBINARYMETHOD"
+>*xmlSecKeyWriteBinaryMethod</A
+>) (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYTYPE"
+>xmlSecKeyType</A
+> type,
+ unsigned char **buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> *size);
+void <A
+HREF="xmlsec-keysinternal.html#XMLSECKEYSINIT"
+>xmlSecKeysInit</A
+> (void);
+#define <A
+HREF="xmlsec-keysinternal.html#XMLSECKEYISVALID"
+>xmlSecKeyIsValid</A
+> (key)
+#define <A
+HREF="xmlsec-keysinternal.html#XMLSECKEYCHECKID"
+>xmlSecKeyCheckId</A
+> (key, keyId)
+#define <A
+HREF="xmlsec-keysinternal.html#XMLSECKEYCHECKTRANSFORM"
+>xmlSecKeyCheckTransform</A
+> (key, tr)
+<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-keysinternal.html#XMLSECKEYREADXML"
+>xmlSecKeyReadXml</A
+> (<A
+HREF="xmlsec-keys.html#XMLSECKEYID"
+>xmlSecKeyId</A
+> id,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> node);
+int <A
+HREF="xmlsec-keysinternal.html#XMLSECKEYWRITEXML"
+>xmlSecKeyWriteXml</A
+> (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYTYPE"
+>xmlSecKeyType</A
+> type,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> node);
+<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-keysinternal.html#XMLSECKEYREADBIN"
+>xmlSecKeyReadBin</A
+> (<A
+HREF="xmlsec-keys.html#XMLSECKEYID"
+>xmlSecKeyId</A
+> id,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);
+int <A
+HREF="xmlsec-keysinternal.html#XMLSECKEYWRITEBIN"
+>xmlSecKeyWriteBin</A
+> (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYTYPE"
+>xmlSecKeyType</A
+> type,
+ unsigned char **buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> *size);</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN6534"
+></A
+><H2
+>Description</H2
+><P
+></P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN6537"
+></A
+><H2
+>Details</H2
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6539"
+></A
+><H3
+><A
+NAME="XMLSECKEYINIFITERETRIVALS"
+></A
+>xmlSecKeyInifiteRetrivals</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecKeyInifiteRetrivals 99999</PRE
+></TD
+></TR
+></TABLE
+><P
+>Macro. Inifinite number of retrievals (really big number :) )</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6545"
+></A
+><H3
+><A
+NAME="XMLSECKEYCREATEMETHOD"
+></A
+>xmlSecKeyCreateMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> (*xmlSecKeyCreateMethod) (<A
+HREF="xmlsec-keys.html#XMLSECKEYID"
+>xmlSecKeyId</A
+> id);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Key specific creation method.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6553"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key id.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly created <A
+HREF="xmlsec-keys.html#XMLSECKEY"
+>xmlSecKey</A
+> structure
+or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6567"
+></A
+><H3
+><A
+NAME="XMLSECKEYDUPLICATEMETHOD"
+></A
+>xmlSecKeyDuplicateMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> (*xmlSecKeyDuplicateMethod) (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Key specific duplication method.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6575"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly created <A
+HREF="xmlsec-keys.html#XMLSECKEY"
+>xmlSecKey</A
+> structure
+or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6589"
+></A
+><H3
+><A
+NAME="XMLSECKEYDESTROYMETHOD"
+></A
+>xmlSecKeyDestroyMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void (*xmlSecKeyDestroyMethod) (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Key specific destroy method.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6596"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6605"
+></A
+><H3
+><A
+NAME="XMLSECKEYREADXMLMETHOD"
+></A
+>xmlSecKeyReadXmlMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int (*xmlSecKeyReadXmlMethod) (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> node);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Key specific reading from XML node method.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6613"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>node</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to key's value XML node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6630"
+></A
+><H3
+><A
+NAME="XMLSECKEYWRITEXMLMETHOD"
+></A
+>xmlSecKeyWriteXmlMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int (*xmlSecKeyWriteXmlMethod) (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYTYPE"
+>xmlSecKeyType</A
+> type,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> parent);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Key specific writing to XML node method.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6639"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>type</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key type to write (public/private).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>parent</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to key's value XML node parent node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6660"
+></A
+><H3
+><A
+NAME="XMLSECKEYREADBINARYMETHOD"
+></A
+>xmlSecKeyReadBinaryMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int (*xmlSecKeyReadBinaryMethod) (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Key specific reading binary data method.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6668"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input data buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input data buffer size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6689"
+></A
+><H3
+><A
+NAME="XMLSECKEYWRITEBINARYMETHOD"
+></A
+>xmlSecKeyWriteBinaryMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int (*xmlSecKeyWriteBinaryMethod) (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYTYPE"
+>xmlSecKeyType</A
+> type,
+ unsigned char **buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> *size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Key specific writing binary data method. The data are returned
+in an allocated <TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+> and caller is responsible for freeing
+it using <GTKDOCLINK
+HREF="XMLFREE"
+>xmlFree</GTKDOCLINK
+>() function.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6700"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>type</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key type to write (public/private).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to pointer to the output buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to output buffer size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6725"
+></A
+><H3
+><A
+NAME="XMLSECKEYSINIT"
+></A
+>xmlSecKeysInit ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecKeysInit (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Initializes the key ids list (called from <A
+HREF="xmlsec-xmlsec.html#XMLSECINIT"
+>xmlSecInit</A
+>() function).
+This function should not be called directly by applications.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6732"
+></A
+><H3
+><A
+NAME="XMLSECKEYISVALID"
+></A
+>xmlSecKeyIsValid()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecKeyIsValid(key)</PRE
+></TD
+></TR
+></TABLE
+><P
+>Macro. Returns 1 if <TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+> is not NULL and <TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>-&gt;id is not NULL
+or 0 otherwise.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6740"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to key.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6749"
+></A
+><H3
+><A
+NAME="XMLSECKEYCHECKID"
+></A
+>xmlSecKeyCheckId()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecKeyCheckId(key, keyId)</PRE
+></TD
+></TR
+></TABLE
+><P
+>Macro. Returns 1 if <TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+> is valid and <TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>'s id is equal to <TT
+CLASS="PARAMETER"
+><I
+>keyId</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6758"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to key.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>keyId</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key Id.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6771"
+></A
+><H3
+><A
+NAME="XMLSECKEYCHECKTRANSFORM"
+></A
+>xmlSecKeyCheckTransform()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecKeyCheckTransform(key, tr)</PRE
+></TD
+></TR
+></TABLE
+><P
+>Macro. Returns 1 if <TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+> is valid and could be used for transform <TT
+CLASS="PARAMETER"
+><I
+>tr</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6779"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to key.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>tr</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to transform.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6792"
+></A
+><H3
+><A
+NAME="XMLSECKEYREADXML"
+></A
+>xmlSecKeyReadXml ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> xmlSecKeyReadXml (<A
+HREF="xmlsec-keys.html#XMLSECKEYID"
+>xmlSecKeyId</A
+> id,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> node);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Reads the key from XML node.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6801"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key id.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>node</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to key value node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly allocated <A
+HREF="xmlsec-keys.html#XMLSECKEY"
+>xmlSecKey</A
+> structure
+or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6819"
+></A
+><H3
+><A
+NAME="XMLSECKEYWRITEXML"
+></A
+>xmlSecKeyWriteXml ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecKeyWriteXml (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYTYPE"
+>xmlSecKeyType</A
+> type,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> node);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Writes the key in the XML node.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6828"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the <A
+HREF="xmlsec-keys.html#XMLSECKEY"
+>xmlSecKey</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>type</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key type to write (public/private).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>node</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the parent XML node. </TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6850"
+></A
+><H3
+><A
+NAME="XMLSECKEYREADBIN"
+></A
+>xmlSecKeyReadBin ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> xmlSecKeyReadBin (<A
+HREF="xmlsec-keys.html#XMLSECKEYID"
+>xmlSecKeyId</A
+> id,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Reads the key from binary data.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6859"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key id.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to key binary data buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the size of the binary key data <TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly allocated <A
+HREF="xmlsec-keys.html#XMLSECKEY"
+>xmlSecKey</A
+> structure
+or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6882"
+></A
+><H3
+><A
+NAME="XMLSECKEYWRITEBIN"
+></A
+>xmlSecKeyWriteBin ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecKeyWriteBin (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYTYPE"
+>xmlSecKeyType</A
+> type,
+ unsigned char **buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> *size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Writes the key in the binary buffer. The caller is responsible
+for freeing the returned buffer using <GTKDOCLINK
+HREF="XMLFREE"
+>xmlFree</GTKDOCLINK
+>() function.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6892"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the <A
+HREF="xmlsec-keys.html#XMLSECKEY"
+>xmlSecKey</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>type</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key type to write (public/private).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to pointer to the binary data buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the returned buffer size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-io.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref-int.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-membuf.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>io.h</B
+></FONT
+></TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>membuf.h</B
+></FONT
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/docs/api-0.0.x/xmlsec-keysmngr.html b/docs/api-0.0.x/xmlsec-keysmngr.html
new file mode 100644
index 00000000..c475e2c0
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-keysmngr.html
@@ -0,0 +1,2056 @@
+<HTML
+><HEAD
+><TITLE
+>keysmngr.h</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="XML Security Library Reference Manual"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="XML Security Library Reference"
+HREF="xmlsec-ref.html"><LINK
+REL="PREVIOUS"
+TITLE="keys.h"
+HREF="xmlsec-keys.html"><LINK
+REL="NEXT"
+TITLE="transforms.h"
+HREF="xmlsec-transforms.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="4"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="5"
+>XML Security Library Reference Manual</FONT
+></TH
+></TR
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-keys.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-transforms.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+></TABLE
+></DIV
+><H1
+><A
+NAME="XMLSEC-KEYSMNGR"
+></A
+>keysmngr.h</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN3184"
+></A
+><H2
+>Name</H2
+>keysmngr.h&nbsp;--&nbsp;The simple keys manager implementation.</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN3187"
+></A
+><H2
+>Synopsis</H2
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="SYNOPSIS"
+>&#13;
+
+<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSMNGRCREATE"
+>xmlSecSimpleKeysMngrCreate</A
+>
+ (void);
+void <A
+HREF="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSMNGRDESTROY"
+>xmlSecSimpleKeysMngrDestroy</A
+> (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr);
+<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSMNGRFINDKEY"
+>xmlSecSimpleKeysMngrFindKey</A
+> (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ void *context,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *name,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYID"
+>xmlSecKeyId</A
+> id,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYTYPE"
+>xmlSecKeyType</A
+> type,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYUSAGE"
+>xmlSecKeyUsage</A
+> usage);
+int <A
+HREF="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSMNGRADDKEY"
+>xmlSecSimpleKeysMngrAddKey</A
+> (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ <GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key);
+int <A
+HREF="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSMNGRLOAD"
+>xmlSecSimpleKeysMngrLoad</A
+> (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ const char *uri,
+ int strict);
+int <A
+HREF="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSMNGRSAVE"
+>xmlSecSimpleKeysMngrSave</A
+> (const <GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ const char *filename,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYTYPE"
+>xmlSecKeyType</A
+> type);
+<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSMNGRLOADPEMKEY"
+>xmlSecSimpleKeysMngrLoadPemKey</A
+> (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ const char *keyfile,
+ const char *keyPwd,
+ <GTKDOCLINK
+HREF="PEM-PASSWORD-CB"
+>pem_password_cb</GTKDOCLINK
+> *keyPwdCallback,
+ int privateKey);
+<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSMNGRX509FIND"
+>xmlSecSimpleKeysMngrX509Find</A
+>
+ (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ void *context,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *subjectName,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *issuerName,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *issuerSerial,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *ski,
+ <GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> cert);
+int <A
+HREF="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSMNGRX509VERIFY"
+>xmlSecSimpleKeysMngrX509Verify</A
+> (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ void *context,
+ <GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> cert);
+int <A
+HREF="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSMNGRLOADPEMCERT"
+>xmlSecSimpleKeysMngrLoadPemCert</A
+> (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ const char *filename,
+ int trusted);
+int <A
+HREF="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSMNGRADDCERTSDIR"
+>xmlSecSimpleKeysMngrAddCertsDir</A
+> (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ const char *path);
+int <A
+HREF="xmlsec-keysmngr.html#XMLSECSIMPLEKEYSMNGRLOADPKCS12"
+>xmlSecSimpleKeysMngrLoadPkcs12</A
+> (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ const char *name,
+ const char *filename,
+ const char *pwd);</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN3230"
+></A
+><H2
+>Description</H2
+><P
+></P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN3233"
+></A
+><H2
+>Details</H2
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3235"
+></A
+><H3
+><A
+NAME="XMLSECSIMPLEKEYSMNGRCREATE"
+></A
+>xmlSecSimpleKeysMngrCreate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> xmlSecSimpleKeysMngrCreate
+ (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Creates new simple keys manager.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN3242"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>a pointer to newly allocated <A
+HREF="xmlsec-keys.html#XMLSECKEYSMNGR"
+>xmlSecKeysMngr</A
+> structure or
+NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3252"
+></A
+><H3
+><A
+NAME="XMLSECSIMPLEKEYSMNGRDESTROY"
+></A
+>xmlSecSimpleKeysMngrDestroy ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecSimpleKeysMngrDestroy (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Destroys the simple keys manager.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN3259"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>mngr</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to a simple keys manager.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3268"
+></A
+><H3
+><A
+NAME="XMLSECSIMPLEKEYSMNGRFINDKEY"
+></A
+>xmlSecSimpleKeysMngrFindKey ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> xmlSecSimpleKeysMngrFindKey (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ void *context,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *name,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYID"
+>xmlSecKeyId</A
+> id,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYTYPE"
+>xmlSecKeyType</A
+> type,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYUSAGE"
+>xmlSecKeyUsage</A
+> usage);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Searches the simple keys manager for specified key. This is an
+implementation of the <A
+HREF="xmlsec-keys.html#XMLSECFINDKEYCALLBACK"
+>xmlSecFindKeyCallback</A
+> for the simple keys
+manager.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN3281"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>mngr</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the keys manager.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>context</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to application specific data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>name</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the required key name (or NULL for "any").</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the required key Id (or NULL for "any").</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>type</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the required key (may be "any").</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>usage</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the required key usage.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to key or NULL if the key is not found or
+an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3314"
+></A
+><H3
+><A
+NAME="XMLSECSIMPLEKEYSMNGRADDKEY"
+></A
+>xmlSecSimpleKeysMngrAddKey ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecSimpleKeysMngrAddKey (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ <GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds new key to the key manager</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN3322"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>mngr</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the simple keys manager.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the <A
+HREF="xmlsec-keys.html#XMLSECKEY"
+>xmlSecKey</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3340"
+></A
+><H3
+><A
+NAME="XMLSECSIMPLEKEYSMNGRLOAD"
+></A
+>xmlSecSimpleKeysMngrLoad ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecSimpleKeysMngrLoad (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ const char *uri,
+ int strict);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Reads the XML keys files into simple keys manager.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN3347"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>mngr</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the simple keys manager.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>uri</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the keys file uri.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>strict</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the flag which determines whether we stop after first error or not.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3368"
+></A
+><H3
+><A
+NAME="XMLSECSIMPLEKEYSMNGRSAVE"
+></A
+>xmlSecSimpleKeysMngrSave ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecSimpleKeysMngrSave (const <GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ const char *filename,
+ <A
+HREF="xmlsec-keys.html#XMLSECKEYTYPE"
+>xmlSecKeyType</A
+> type);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Writes all the keys from the simple keys manager to
+an XML file <TT
+CLASS="PARAMETER"
+><I
+>filename</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN3377"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>mngr</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the simple keys manager.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>filename</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the destination filename.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>type</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the keys type (private/public).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3398"
+></A
+><H3
+><A
+NAME="XMLSECSIMPLEKEYSMNGRLOADPEMKEY"
+></A
+>xmlSecSimpleKeysMngrLoadPemKey ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> xmlSecSimpleKeysMngrLoadPemKey (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ const char *keyfile,
+ const char *keyPwd,
+ <GTKDOCLINK
+HREF="PEM-PASSWORD-CB"
+>pem_password_cb</GTKDOCLINK
+> *keyPwdCallback,
+ int privateKey);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Reads the key from a PEM file <TT
+CLASS="PARAMETER"
+><I
+>keyfile</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN3408"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>mngr</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the simple keys manager.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>keyfile</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the PEM key file name.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>keyPwd</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key file password.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>keyPwdCallback</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the "ask password" callback.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>privateKey</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the private/public flag.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to a newly allocated <A
+HREF="xmlsec-keys.html#XMLSECKEY"
+>xmlSecKey</A
+> structure or NULL
+if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3438"
+></A
+><H3
+><A
+NAME="XMLSECSIMPLEKEYSMNGRX509FIND"
+></A
+>xmlSecSimpleKeysMngrX509Find ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> xmlSecSimpleKeysMngrX509Find
+ (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ void *context,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *subjectName,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *issuerName,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *issuerSerial,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *ski,
+ <GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> cert);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Searches for matching certificate in the keys manager. This is
+the implementation of the <A
+HREF="xmlsec-keys.html#XMLSECX509FINDCALLBACK"
+>xmlSecX509FindCallback</A
+> for the
+simple keys manager.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN3452"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>mngr</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the keys manager.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>context</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer application specific data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>subjectName</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the subject name string.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>issuerName</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the issuer name string.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>issuerSerial</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the issuer serial.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ski</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the SKI string.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>cert</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the current X509 certs data (may be NULL). </TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to certificate that matches given criteria or NULL
+if an error occurs or certificate not found.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3489"
+></A
+><H3
+><A
+NAME="XMLSECSIMPLEKEYSMNGRX509VERIFY"
+></A
+>xmlSecSimpleKeysMngrX509Verify ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecSimpleKeysMngrX509Verify (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ void *context,
+ <GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> cert);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Validates certificate. This is the implementation of the
+<A
+HREF="xmlsec-keys.html#XMLSECX509VERIFYCALLBACK"
+>xmlSecX509VerifyCallback</A
+> callback for the simple keys manager.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN3498"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>mngr</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the keys manager.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>context</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to application specific data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>cert</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the cert to verify.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>1 if the cert is trusted, 0 if it is not trusted
+and -1 if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3519"
+></A
+><H3
+><A
+NAME="XMLSECSIMPLEKEYSMNGRLOADPEMCERT"
+></A
+>xmlSecSimpleKeysMngrLoadPemCert ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecSimpleKeysMngrLoadPemCert (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ const char *filename,
+ int trusted);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Reads PEM certificate from the file <TT
+CLASS="PARAMETER"
+><I
+>filename</I
+></TT
+> and adds to the keys manager
+<TT
+CLASS="PARAMETER"
+><I
+>mngr</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN3528"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>mngr</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the simple keys manager.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>filename</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the PEM cert file name.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>trusted</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the trusted/not-trusted cert flag.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3549"
+></A
+><H3
+><A
+NAME="XMLSECSIMPLEKEYSMNGRADDCERTSDIR"
+></A
+>xmlSecSimpleKeysMngrAddCertsDir ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecSimpleKeysMngrAddCertsDir (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ const char *path);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds the certificates from the folder <TT
+CLASS="PARAMETER"
+><I
+>path</I
+></TT
+> to the list of
+trusted certificates.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN3557"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>mngr</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the simple keys manager.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>path</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the certs dir path.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3574"
+></A
+><H3
+><A
+NAME="XMLSECSIMPLEKEYSMNGRLOADPKCS12"
+></A
+>xmlSecSimpleKeysMngrLoadPkcs12 ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecSimpleKeysMngrLoadPkcs12 (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> mngr,
+ const char *name,
+ const char *filename,
+ const char *pwd);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Reads the key from pkcs12 file <TT
+CLASS="PARAMETER"
+><I
+>filename</I
+></TT
+> (along with all certs)
+and adds to the simple keys manager <TT
+CLASS="PARAMETER"
+><I
+>mngr</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN3583"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>mngr</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the simple keys manager.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>name</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key name (may by NULL).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>filename</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pkcs12 file name.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>pwd</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pkcs12 password.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-keys.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-transforms.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>keys.h</B
+></FONT
+></TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>transforms.h</B
+></FONT
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/docs/api-0.0.x/xmlsec-membuf.html b/docs/api-0.0.x/xmlsec-membuf.html
new file mode 100644
index 00000000..562c88af
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-membuf.html
@@ -0,0 +1,433 @@
+<HTML
+><HEAD
+><TITLE
+>membuf.h</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="XML Security Library Reference Manual"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="XML Security Library Internal Functions Reference"
+HREF="xmlsec-ref-int.html"><LINK
+REL="PREVIOUS"
+TITLE="keysInternal.h"
+HREF="xmlsec-keysinternal.html"><LINK
+REL="NEXT"
+TITLE="nodeset.h"
+HREF="xmlsec-nodeset.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="4"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="5"
+>XML Security Library Reference Manual</FONT
+></TH
+></TR
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-keysinternal.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref-int.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-nodeset.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+></TABLE
+></DIV
+><H1
+><A
+NAME="XMLSEC-MEMBUF"
+></A
+>membuf.h</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN6923"
+></A
+><H2
+>Name</H2
+>membuf.h&nbsp;--&nbsp;The memory buffer transform.</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN6926"
+></A
+><H2
+>Synopsis</H2
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="SYNOPSIS"
+>&#13;
+
+extern xmlSecTransformId <A
+HREF="xmlsec-membuf.html#XMLSECMEMBUF"
+>xmlSecMemBuf</A
+>;
+<GTKDOCLINK
+HREF="XMLBUFFERPTR"
+>xmlBufferPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-membuf.html#XMLSECMEMBUFTRANSFORMGETBUFFER"
+>xmlSecMemBufTransformGetBuffer</A
+> (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ int removeBuffer);</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN6933"
+></A
+><H2
+>Description</H2
+><P
+></P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN6936"
+></A
+><H2
+>Details</H2
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6938"
+></A
+><H3
+><A
+NAME="XMLSECMEMBUF"
+></A
+>xmlSecMemBuf</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecMemBuf;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The memory buffer transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN6944"
+></A
+><H3
+><A
+NAME="XMLSECMEMBUFTRANSFORMGETBUFFER"
+></A
+>xmlSecMemBufTransformGetBuffer ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLBUFFERPTR"
+>xmlBufferPtr</GTKDOCLINK
+> xmlSecMemBufTransformGetBuffer (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ int removeBuffer);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Gets the memory transform buffer.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN6952"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to memory buffer transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>removeBuffer</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the flag that indicates whether the buffer
+ will be removed from the transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the xmlBufferPtr. If <TT
+CLASS="PARAMETER"
+><I
+>removeBuffer</I
+></TT
+> is set to 1 then the buffer
+is removed from transform and the caller is responsible for freeing it</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-keysinternal.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref-int.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-nodeset.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>keysInternal.h</B
+></FONT
+></TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>nodeset.h</B
+></FONT
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/docs/api-0.0.x/xmlsec-nodeset.html b/docs/api-0.0.x/xmlsec-nodeset.html
new file mode 100644
index 00000000..4669f098
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-nodeset.html
@@ -0,0 +1,2167 @@
+<HTML
+><HEAD
+><TITLE
+>nodeset.h</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="XML Security Library Reference Manual"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="XML Security Library Internal Functions Reference"
+HREF="xmlsec-ref-int.html"><LINK
+REL="PREVIOUS"
+TITLE="membuf.h"
+HREF="xmlsec-membuf.html"><LINK
+REL="NEXT"
+TITLE="transformsInternal.h"
+HREF="xmlsec-transformsinternal.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="4"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="5"
+>XML Security Library Reference Manual</FONT
+></TH
+></TR
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-membuf.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref-int.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-transformsinternal.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+></TABLE
+></DIV
+><H1
+><A
+NAME="XMLSEC-NODESET"
+></A
+>nodeset.h</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN6975"
+></A
+><H2
+>Name</H2
+>nodeset.h&nbsp;--&nbsp;The enchanced nodes set imlmentation.</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN6978"
+></A
+><H2
+>Synopsis</H2
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="SYNOPSIS"
+>&#13;
+
+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
+>;
+int (<A
+HREF="xmlsec-nodeset.html#XMLSECNODESETWALKCALLBACK"
+>*xmlSecNodeSetWalkCallback</A
+>) (<GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> nset,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> cur,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> parent,
+ void *data);
+<GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-nodeset.html#XMLSECNODESETCREATE"
+>xmlSecNodeSetCreate</A
+> (<GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> doc,
+ <GTKDOCLINK
+HREF="XMLNODESETPTR"
+>xmlNodeSetPtr</GTKDOCLINK
+> nodes,
+ <A
+HREF="xmlsec-nodeset.html#XMLSECNODESETTYPE"
+>xmlSecNodeSetType</A
+> type);
+void <A
+HREF="xmlsec-nodeset.html#XMLSECNODESETDESTROY"
+>xmlSecNodeSetDestroy</A
+> (<GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> nset);
+int <A
+HREF="xmlsec-nodeset.html#XMLSECNODESETCONTAINS"
+>xmlSecNodeSetContains</A
+> (<GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> nset,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> node,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> parent);
+<GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-nodeset.html#XMLSECNODESETADD"
+>xmlSecNodeSetAdd</A
+> (<GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> nset,
+ <GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> newNSet,
+ <A
+HREF="xmlsec-nodeset.html#XMLSECNODESETOP"
+>xmlSecNodeSetOp</A
+> op);
+<GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-nodeset.html#XMLSECNODESETADDLIST"
+>xmlSecNodeSetAddList</A
+> (<GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> nset,
+ <GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> newNSet,
+ <A
+HREF="xmlsec-nodeset.html#XMLSECNODESETOP"
+>xmlSecNodeSetOp</A
+> op);
+<GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-nodeset.html#XMLSECNODESETGETCHILDREN"
+>xmlSecNodeSetGetChildren</A
+> (<GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> doc,
+ const <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> parent,
+ int withComments,
+ int invert);
+int <A
+HREF="xmlsec-nodeset.html#XMLSECNODESETWALK"
+>xmlSecNodeSetWalk</A
+> (<GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> nset,
+ <A
+HREF="xmlsec-nodeset.html#XMLSECNODESETWALKCALLBACK"
+>xmlSecNodeSetWalkCallback</A
+> walkFunc,
+ void *data);
+void <A
+HREF="xmlsec-nodeset.html#XMLSECNODESETDEBUGDUMP"
+>xmlSecNodeSetDebugDump</A
+> (<GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> nset,
+ <GTKDOCLINK
+HREF="FILE-CAPS"
+>FILE</GTKDOCLINK
+> *output);</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN7019"
+></A
+><H2
+>Description</H2
+><P
+></P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN7022"
+></A
+><H2
+>Details</H2
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7024"
+></A
+><H3
+><A
+NAME="XMLSECNODESETTYPE"
+></A
+>enum xmlSecNodeSetType</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>typedef enum {
+ xmlSecNodeSetNormal = 0,
+ xmlSecNodeSetInvert,
+ xmlSecNodeSetTree,
+ xmlSecNodeSetTreeWithoutComments,
+ xmlSecNodeSetTreeInvert,
+ xmlSecNodeSetTreeWithoutCommentsInvert,
+ xmlSecNodeSetList
+} xmlSecNodeSetType;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The simple nodes sets types.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7030"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#F0F0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecNodeSetNormal</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> nodes set = nodes in the list.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecNodeSetInvert</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> nodes set = all document nodes minus nodes in the list.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecNodeSetTree</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> nodes set = nodes in the list and all their subtress.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecNodeSetTreeWithoutComments</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> nodes set = nodes in the list and
+all their subtress but no comment nodes.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecNodeSetTreeInvert</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> nodes set = all document nodes minus nodes in the
+ list and all their subtress.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecNodeSetTreeWithoutCommentsInvert</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> nodes set = all document nodes
+ minus (nodes in the list and all their subtress plus all comment nodes).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecNodeSetList</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> nodes set = all nodes in the chidren list of nodes sets.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7063"
+></A
+><H3
+><A
+NAME="XMLSECNODESETOP"
+></A
+>enum xmlSecNodeSetOp</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>typedef enum {
+ xmlSecNodeSetIntersection = 0,
+ xmlSecNodeSetSubtraction,
+ xmlSecNodeSetUnion
+} xmlSecNodeSetOp;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The simple nodes sets operations.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7069"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#F0F0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecNodeSetIntersection</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> intersection.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecNodeSetSubtraction</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> subtraction.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecNodeSetUnion</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> union.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7086"
+></A
+><H3
+><A
+NAME="XMLSECNODESET"
+></A
+>struct xmlSecNodeSet</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>struct xmlSecNodeSet {
+ xmlNodeSetPtr nodes;
+ xmlDocPtr doc;
+ xmlSecNodeSetType type;
+ xmlSecNodeSetOp op;
+ xmlSecNodeSetPtr next;
+ xmlSecNodeSetPtr prev;
+ xmlSecNodeSetPtr children;
+};</PRE
+></TD
+></TR
+></TABLE
+><P
+>The enchanced nodes set.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7092"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFF0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLNODESETPTR"
+>xmlNodeSetPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>nodes</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the nodes list.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>doc</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the parent XML document.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-nodeset.html#XMLSECNODESETTYPE"
+>xmlSecNodeSetType</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>type</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the nodes set type.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-nodeset.html#XMLSECNODESETOP"
+>xmlSecNodeSetOp</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>op</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the operation type.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>next</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the next nodes set.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>prev</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the previous nodes set.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>children</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the children list (valid only if type equal to <GTKDOCLINK
+HREF="XMLSECNODESETLIST"
+>xmlSecNodeSetList</GTKDOCLINK
+>).</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7133"
+></A
+><H3
+><A
+NAME="XMLSECNODESETWALKCALLBACK"
+></A
+>xmlSecNodeSetWalkCallback ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int (*xmlSecNodeSetWalkCallback) (<GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> nset,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> cur,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> parent,
+ void *data);</PRE
+></TD
+></TR
+></TABLE
+><P
+>The callback function called once per each node in the nodes set.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7142"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>nset</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-nodeset.html#XMLSECNODESET"
+>xmlSecNodeSet</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>cur</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer current XML node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>parent</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the <TT
+CLASS="PARAMETER"
+><I
+>cur</I
+></TT
+> parent node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>data</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to application specific data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value if an error occurs
+an walk procedure should be interrupted.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7169"
+></A
+><H3
+><A
+NAME="XMLSECNODESETCREATE"
+></A
+>xmlSecNodeSetCreate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> xmlSecNodeSetCreate (<GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> doc,
+ <GTKDOCLINK
+HREF="XMLNODESETPTR"
+>xmlNodeSetPtr</GTKDOCLINK
+> nodes,
+ <A
+HREF="xmlsec-nodeset.html#XMLSECNODESETTYPE"
+>xmlSecNodeSetType</A
+> type);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Creates new nodes set.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7179"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>doc</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to parent XML document.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>nodes</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the list of nodes.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>type</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the nodes set type.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>pointer to newly allocated <A
+HREF="xmlsec-nodeset.html#XMLSECNODESET"
+>xmlSecNodeSet</A
+> structure
+or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7201"
+></A
+><H3
+><A
+NAME="XMLSECNODESETDESTROY"
+></A
+>xmlSecNodeSetDestroy ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecNodeSetDestroy (<GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> nset);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Destroys the nodes set.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7208"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>nset</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-nodeset.html#XMLSECNODESET"
+>xmlSecNodeSet</A
+> structure.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7218"
+></A
+><H3
+><A
+NAME="XMLSECNODESETCONTAINS"
+></A
+>xmlSecNodeSetContains ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecNodeSetContains (<GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> nset,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> node,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> parent);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Checks whether the <TT
+CLASS="PARAMETER"
+><I
+>node</I
+></TT
+> is in the nodes set or not.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7228"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>nset</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-nodeset.html#XMLSECNODESET"
+>xmlSecNodeSet</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>node</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to XML node to check.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>parent</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <TT
+CLASS="PARAMETER"
+><I
+>node</I
+></TT
+> parent node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>1 if the <TT
+CLASS="PARAMETER"
+><I
+>node</I
+></TT
+> is in the nodes set <TT
+CLASS="PARAMETER"
+><I
+>nset</I
+></TT
+>, 0 if it is not
+and a negative value if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7253"
+></A
+><H3
+><A
+NAME="XMLSECNODESETADD"
+></A
+>xmlSecNodeSetAdd ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> xmlSecNodeSetAdd (<GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> nset,
+ <GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> newNSet,
+ <A
+HREF="xmlsec-nodeset.html#XMLSECNODESETOP"
+>xmlSecNodeSetOp</A
+> op);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds <TT
+CLASS="PARAMETER"
+><I
+>newNSet</I
+></TT
+> to the <TT
+CLASS="PARAMETER"
+><I
+>nset</I
+></TT
+> using operation <TT
+CLASS="PARAMETER"
+><I
+>op</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7266"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>nset</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to currrent nodes set (or NULL).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>newNSet</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to new nodes set.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>op</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the operation type.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to combined nodes set or NULL if an error
+occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7287"
+></A
+><H3
+><A
+NAME="XMLSECNODESETADDLIST"
+></A
+>xmlSecNodeSetAddList ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> xmlSecNodeSetAddList (<GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> nset,
+ <GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> newNSet,
+ <A
+HREF="xmlsec-nodeset.html#XMLSECNODESETOP"
+>xmlSecNodeSetOp</A
+> op);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds <TT
+CLASS="PARAMETER"
+><I
+>newNSet</I
+></TT
+> to the <TT
+CLASS="PARAMETER"
+><I
+>nset</I
+></TT
+> as child using operation <TT
+CLASS="PARAMETER"
+><I
+>op</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7300"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>nset</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to currrent nodes set (or NULL).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>newNSet</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to new nodes set.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>op</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the operation type.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to combined nodes set or NULL if an error
+occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7321"
+></A
+><H3
+><A
+NAME="XMLSECNODESETGETCHILDREN"
+></A
+>xmlSecNodeSetGetChildren ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> xmlSecNodeSetGetChildren (<GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> doc,
+ const <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> parent,
+ int withComments,
+ int invert);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Creates a new nodes set that contains:
+ - if <TT
+CLASS="PARAMETER"
+><I
+>withComments</I
+></TT
+> is not 0 and <TT
+CLASS="PARAMETER"
+><I
+>invert</I
+></TT
+> is 0:
+ all nodes in the <TT
+CLASS="PARAMETER"
+><I
+>parent</I
+></TT
+> subtree;
+ - if <TT
+CLASS="PARAMETER"
+><I
+>withComments</I
+></TT
+> is 0 and <TT
+CLASS="PARAMETER"
+><I
+>invert</I
+></TT
+> is 0:
+ all nodes in the <TT
+CLASS="PARAMETER"
+><I
+>parent</I
+></TT
+> subtree except comment nodes;
+ - if <TT
+CLASS="PARAMETER"
+><I
+>withComments</I
+></TT
+> is not 0 and <TT
+CLASS="PARAMETER"
+><I
+>invert</I
+></TT
+> not is 0:
+ all nodes in the <TT
+CLASS="PARAMETER"
+><I
+>doc</I
+></TT
+> except nodes in the <TT
+CLASS="PARAMETER"
+><I
+>parent</I
+></TT
+> subtree;
+ - if <TT
+CLASS="PARAMETER"
+><I
+>withComments</I
+></TT
+> is 0 and <TT
+CLASS="PARAMETER"
+><I
+>invert</I
+></TT
+> is 0:
+ all nodes in the <TT
+CLASS="PARAMETER"
+><I
+>doc</I
+></TT
+> except nodes in the <TT
+CLASS="PARAMETER"
+><I
+>parent</I
+></TT
+> subtree
+ and comment nodes.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7344"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>doc</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to an XML document.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>parent</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to parent XML node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>withComments</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the flag include comments or not.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>invert</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the "invert" flag.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>pointer to the newly created <A
+HREF="xmlsec-nodeset.html#XMLSECNODESET"
+>xmlSecNodeSet</A
+> structure
+or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7370"
+></A
+><H3
+><A
+NAME="XMLSECNODESETWALK"
+></A
+>xmlSecNodeSetWalk ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecNodeSetWalk (<GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> nset,
+ <A
+HREF="xmlsec-nodeset.html#XMLSECNODESETWALKCALLBACK"
+>xmlSecNodeSetWalkCallback</A
+> walkFunc,
+ void *data);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Calls the function <TT
+CLASS="PARAMETER"
+><I
+>walkFunc</I
+></TT
+> once per each node in the nodes set <TT
+CLASS="PARAMETER"
+><I
+>nset</I
+></TT
+>.
+If the <TT
+CLASS="PARAMETER"
+><I
+>walkFunc</I
+></TT
+> returns a negative value, then the walk procedure
+is interrupted.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7381"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>nset</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-nodeset.html#XMLSECNODESET"
+>xmlSecNodeSet</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>walkFunc</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the callback functions.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>data</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the application specific data passed to the <TT
+CLASS="PARAMETER"
+><I
+>walkFunc</I
+></TT
+>.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7404"
+></A
+><H3
+><A
+NAME="XMLSECNODESETDEBUGDUMP"
+></A
+>xmlSecNodeSetDebugDump ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecNodeSetDebugDump (<GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> nset,
+ <GTKDOCLINK
+HREF="FILE-CAPS"
+>FILE</GTKDOCLINK
+> *output);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Prints information about <TT
+CLASS="PARAMETER"
+><I
+>nset</I
+></TT
+> to the <TT
+CLASS="PARAMETER"
+><I
+>output</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7414"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>nset</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-nodeset.html#XMLSECNODESET"
+>xmlSecNodeSet</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>output</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to FILE.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-membuf.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref-int.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-transformsinternal.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>membuf.h</B
+></FONT
+></TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>transformsInternal.h</B
+></FONT
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/docs/api-0.0.x/xmlsec-notes.html b/docs/api-0.0.x/xmlsec-notes.html
new file mode 100644
index 00000000..d7ad9d22
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-notes.html
@@ -0,0 +1,236 @@
+<HTML
+><HEAD
+><TITLE
+>XML Security Library Programming Notes</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><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="XML Security Library Reference"
+HREF="xmlsec-ref.html"></HEAD
+><BODY
+CLASS="CHAPTER"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="4"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="5"
+>XML Security Library Reference Manual</FONT
+></TH
+></TR
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&nbsp;</B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-ref.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="CHAPTER"
+><H1
+><A
+NAME="XMLSEC-NOTES"
+></A
+>XML Security Library Programming Notes</H1
+><P
+>XML Security Library combines the power of
+ <A
+HREF="http://www.openssl.org"
+TARGET="_top"
+>OpenSSL</A
+> and
+ <A
+HREF="http://www.xmlsoft.org"
+TARGET="_top"
+>LibXML2</A
+>
+ libraries and provides implementation for major XML Security
+ standards:
+ <A
+HREF="http://www.w3.org/Signature/"
+TARGET="_top"
+>XML Digital Signature</A
+>
+ and
+ <A
+HREF="http://www.w3.org/Encryption/"
+TARGET="_top"
+>XML Encrytpion</A
+>.
+ </P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&nbsp;</B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-ref.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>XML Security Library Reference Manual</B
+></FONT
+></TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>XML Security Library Reference</B
+></FONT
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/docs/api-0.0.x/xmlsec-ref-int.html b/docs/api-0.0.x/xmlsec-ref-int.html
new file mode 100644
index 00000000..42c45fa8
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-ref-int.html
@@ -0,0 +1,278 @@
+<HTML
+><HEAD
+><TITLE
+>XML Security Library Internal Functions Reference</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="XML Security Library Reference Manual"
+HREF="index.html"><LINK
+REL="PREVIOUS"
+TITLE="x509.h"
+HREF="xmlsec-x509.html"><LINK
+REL="NEXT"
+TITLE="base64.h"
+HREF="xmlsec-base64.html"></HEAD
+><BODY
+CLASS="CHAPTER"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="4"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="5"
+>XML Security Library Reference Manual</FONT
+></TH
+></TR
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-x509.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&nbsp;</B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-base64.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="CHAPTER"
+><H1
+><A
+NAME="XMLSEC-REF-INT"
+></A
+>XML Security Library Internal Functions Reference</H1
+><DIV
+CLASS="TOC"
+><DL
+><DT
+><B
+>Table of Contents</B
+></DT
+><DT
+><A
+HREF="xmlsec-base64.html"
+>base64.h</A
+>&nbsp;--&nbsp;The BASE64 encode/decode functions.</DT
+><DT
+><A
+HREF="xmlsec-bn.html"
+>bn.h</A
+>&nbsp;--&nbsp;The big numbers helper functions.</DT
+><DT
+><A
+HREF="xmlsec-buffered.html"
+>buffered.h</A
+>&nbsp;--&nbsp;The buffered transform.</DT
+><DT
+><A
+HREF="xmlsec-ciphers.html"
+>ciphers.h</A
+>&nbsp;--&nbsp;The ciphers transform.</DT
+><DT
+><A
+HREF="xmlsec-digests.html"
+>digests.h</A
+>&nbsp;--&nbsp;The digests transform.</DT
+><DT
+><A
+HREF="xmlsec-io.html"
+>io.h</A
+>&nbsp;--&nbsp;The IO transforms.</DT
+><DT
+><A
+HREF="xmlsec-keysinternal.html"
+>keysInternal.h</A
+>&nbsp;--&nbsp;The internal keys functions.</DT
+><DT
+><A
+HREF="xmlsec-membuf.html"
+>membuf.h</A
+>&nbsp;--&nbsp;The memory buffer transform.</DT
+><DT
+><A
+HREF="xmlsec-nodeset.html"
+>nodeset.h</A
+>&nbsp;--&nbsp;The enchanced nodes set imlmentation.</DT
+><DT
+><A
+HREF="xmlsec-transformsinternal.html"
+>transformsInternal.h</A
+>&nbsp;--&nbsp;The internal transform's functions.</DT
+><DT
+><A
+HREF="xmlsec-xmltree.html"
+>xmltree.h</A
+>&nbsp;--&nbsp;The XML tree helper functions.</DT
+></DL
+></DIV
+><P
+>This section contains the internal API reference for xmlsec
+ developers. This reference guide is build by extracting comments
+ from the code sources. </P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-x509.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&nbsp;</B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-base64.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>x509.h</B
+></FONT
+></TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>base64.h</B
+></FONT
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/docs/api-0.0.x/xmlsec-ref.html b/docs/api-0.0.x/xmlsec-ref.html
new file mode 100644
index 00000000..1a5d80a3
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-ref.html
@@ -0,0 +1,288 @@
+<HTML
+><HEAD
+><TITLE
+>XML Security Library Reference</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="XML Security Library Reference Manual"
+HREF="index.html"><LINK
+REL="PREVIOUS"
+TITLE="XML Security Library Programming Notes"
+HREF="xmlsec-notes.html"><LINK
+REL="NEXT"
+TITLE="xmlsec.h"
+HREF="xmlsec-xmlsec.html"></HEAD
+><BODY
+CLASS="CHAPTER"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="4"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="5"
+>XML Security Library Reference Manual</FONT
+></TH
+></TR
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-notes.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&nbsp;</B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-xmlsec.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="CHAPTER"
+><H1
+><A
+NAME="XMLSEC-REF"
+></A
+>XML Security Library Reference</H1
+><DIV
+CLASS="TOC"
+><DL
+><DT
+><B
+>Table of Contents</B
+></DT
+><DT
+><A
+HREF="xmlsec-xmlsec.html"
+>xmlsec.h</A
+>&nbsp;--&nbsp;The library initialization/cleanup functions.</DT
+><DT
+><A
+HREF="xmlsec-xmldsig.html"
+>xmldsig.h</A
+>&nbsp;--&nbsp;The <A
+HREF="http://www.w3.org/Signature/"
+TARGET="_top"
+>XML Digital Signature</A
+>
+standard implementation.</DT
+><DT
+><A
+HREF="xmlsec-xmlenc.html"
+>xmlenc.h</A
+>&nbsp;--&nbsp;The <A
+HREF="http://www.w3.org/Encryption/"
+TARGET="_top"
+>XML Encrypiton</A
+>
+standard implementation.</DT
+><DT
+><A
+HREF="xmlsec-errors.html"
+>errors.h</A
+>&nbsp;--&nbsp;The errors reporting functions.</DT
+><DT
+><A
+HREF="xmlsec-debug.html"
+>debug.h</A
+>&nbsp;--&nbsp;The usefull debugging functions.</DT
+><DT
+><A
+HREF="xmlsec-keyinfo.html"
+>keyinfo.h</A
+>&nbsp;--&nbsp;The &lt;dsig:KeyInfo&gt; element manipulation functions.</DT
+><DT
+><A
+HREF="xmlsec-keys.html"
+>keys.h</A
+>&nbsp;--&nbsp;The keys helper functions.</DT
+><DT
+><A
+HREF="xmlsec-keysmngr.html"
+>keysmngr.h</A
+>&nbsp;--&nbsp;The simple keys manager implementation.</DT
+><DT
+><A
+HREF="xmlsec-transforms.html"
+>transforms.h</A
+>&nbsp;--&nbsp;The transforms functions.</DT
+><DT
+><A
+HREF="xmlsec-version.html"
+>version.h</A
+>&nbsp;--&nbsp;The library version infromation.</DT
+><DT
+><A
+HREF="xmlsec-x509.html"
+>x509.h</A
+>&nbsp;--&nbsp;The X509 certificates functions.</DT
+></DL
+></DIV
+><P
+>This section contains the API reference for xmlsec. All
+ the public interfaces are documented here. This reference guide is
+ build by extracting comments from the code sources. </P
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-notes.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&nbsp;</B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-xmlsec.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>XML Security Library Programming Notes</B
+></FONT
+></TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>xmlsec.h</B
+></FONT
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/docs/api-0.0.x/xmlsec-sections.txt b/docs/api-0.0.x/xmlsec-sections.txt
new file mode 100644
index 00000000..8e8e7277
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-sections.txt
@@ -0,0 +1,479 @@
+<SECTION>
+<FILE>base64</FILE>
+xmlSecBase64CtxCreate
+xmlSecBase64CtxDestroy
+xmlSecBase64CtxUpdate
+xmlSecBase64CtxFinal
+xmlSecBase64Encode
+xmlSecBase64Decode
+</SECTION>
+
+<SECTION>
+<FILE>bn</FILE>
+xmlSecCryptoBinary2BN
+xmlSecBN2CryptoBinary
+xmlSecNodeGetBNValue
+xmlSecNodeSetBNValue
+</SECTION>
+
+<SECTION>
+<FILE>buffered</FILE>
+xmlSecBufferedTransform
+xmlSecBufferedTransformId
+xmlSecBufferedProcessMethod
+xmlSecBufferedTransformRead
+xmlSecBufferedTransformWrite
+xmlSecBufferedTransformFlush
+xmlSecBufferedDestroy
+xmlSecBufferedProcess
+</SECTION>
+
+<SECTION>
+<FILE>ciphers</FILE>
+xmlSecCipherTransform
+xmlSecCipherTransformId
+xmlSecCipherUpdateMethod
+xmlSecCipherFinalMethod
+xmlSecCipherTransformRead
+xmlSecCipherTransformWrite
+xmlSecCipherTransformFlush
+xmlSecEvpCipherUpdate
+xmlSecEvpCipherFinal
+xmlSecCipherUpdate
+xmlSecCipherFinal
+</SECTION>
+
+<SECTION>
+<FILE>debug</FILE>
+xmlSecTimerInit
+xmlSecTimerStart
+xmlSecTimerEnd
+xmlSecTimerGet
+</SECTION>
+
+<SECTION>
+<FILE>digests</FILE>
+xmlSecDigestTransform
+xmlSecDigestTransformId
+xmlSecDigestUpdateMethod
+xmlSecDigestSignMethod
+xmlSecDigestVerifyMethod
+xmlSecDigestSignNode
+xmlSecDigestVerifyNode
+xmlSecDigestSetPushMode
+xmlSecDigestUpdate
+xmlSecDigestSign
+xmlSecDigestVerify
+xmlSecDigestTransformRead
+xmlSecDigestTransformWrite
+xmlSecDigestTransformFlush
+</SECTION>
+
+<SECTION>
+<FILE>io</FILE>
+xmlSecIOInit
+xmlSecIOShutdown
+xmlSecInputUri
+xmlSecInputUriTransformOpen
+xmlSecCleanupInputCallbacks
+xmlSecRegisterDefaultInputCallbacks
+xmlSecRegisterInputCallbacks
+</SECTION>
+
+<SECTION>
+<FILE>keyinfo</FILE>
+xmlSecKeyInfoNodeRead
+xmlSecKeyInfoNodeWrite
+xmlSecKeyInfoAddKeyName
+xmlSecKeyInfoAddKeyValue
+xmlSecKeyInfoAddX509Data
+xmlSecKeyInfoAddRetrievalMethod
+xmlSecRetrievalMethodAddTransform
+xmlSecKeyInfoAddEncryptedKey
+</SECTION>
+
+<SECTION>
+<FILE>keys</FILE>
+xmlSecKeyId
+xmlSecKeyType
+xmlSecKeyUsage
+xmlSecKeyOrigin
+xmlSecKeyOriginDefault
+xmlSecKeyOriginKeyManager
+xmlSecKeyOriginKeyName
+xmlSecKeyOriginKeyValue
+xmlSecKeyOriginRetrievalDocument
+xmlSecKeyOriginRetrievalRemote
+xmlSecKeyOriginX509
+xmlSecKeyOriginPGP
+xmlSecKeyOriginEncryptedKey
+xmlSecKeyOriginAll
+xmlSecKeyIdUnknown
+xmlSecKey
+xmlSecKeyCreate
+xmlSecKeyDestroy
+xmlSecKeyDuplicate
+xmlSecVerifyKey
+xmlSecKeyDebugDump
+xmlSecKeyReadPemCert
+
+xmlSecKeysMngr
+xmlSecGetKeyCallback
+xmlSecFindKeyCallback
+xmlSecX509FindCallback
+xmlSecX509VerifyCallback
+xmlSecKeysMngrGetKey
+</SECTION>
+
+<SECTION>
+<FILE>keysInternal</FILE>
+xmlSecKeyInifiteRetrivals
+xmlSecKeyCreateMethod
+xmlSecKeyDuplicateMethod
+xmlSecKeyDestroyMethod
+xmlSecKeyReadXmlMethod
+xmlSecKeyWriteXmlMethod
+xmlSecKeyReadBinaryMethod
+xmlSecKeyWriteBinaryMethod
+xmlSecKeysInit
+xmlSecKeyIsValid
+xmlSecKeyCheckId
+xmlSecKeyCheckTransform
+xmlSecKeyReadXml
+xmlSecKeyWriteXml
+xmlSecKeyReadBin
+xmlSecKeyWriteBin
+</SECTION>
+
+<SECTION>
+<FILE>keysmngr</FILE>
+xmlSecSimpleKeysMngrCreate
+xmlSecSimpleKeysMngrDestroy
+xmlSecSimpleKeysMngrFindKey
+xmlSecSimpleKeysMngrAddKey
+xmlSecSimpleKeysMngrLoad
+xmlSecSimpleKeysMngrSave
+xmlSecSimpleKeysMngrLoadPemKey
+xmlSecSimpleKeysMngrX509Find
+xmlSecSimpleKeysMngrX509Verify
+xmlSecSimpleKeysMngrLoadPemCert
+xmlSecSimpleKeysMngrAddCertsDir
+xmlSecSimpleKeysMngrLoadPkcs12
+</SECTION>
+
+<SECTION>
+<FILE>membuf</FILE>
+xmlSecMemBuf
+xmlSecMemBufTransformGetBuffer
+</SECTION>
+
+<SECTION>
+<FILE>transforms</FILE>
+xmlSecTransformStatus
+
+xmlSecTransformId
+xmlSecTransformUnknown
+xmlSecEncAes128Cbc
+xmlSecEncAes192Cbc
+xmlSecEncAes256Cbc
+xmlSecKWAes128
+xmlSecKWAes192
+xmlSecKWAes256
+xmlSecEncBase64Encode
+xmlSecEncBase64Decode
+xmlSecC14NInclusive
+xmlSecC14NInclusiveWithComments
+xmlSecC14NExclusive
+xmlSecC14NExclusiveWithComments
+xmlSecEncDes3Cbc
+xmlSecKWDes3Cbc
+xmlSecSignDsaSha1
+xmlSecTransformEnveloped
+xmlSecMacHmacSha1
+xmlSecMacHmacRipeMd160
+xmlSecMacHmacMd5
+xmlSecDigestRipemd160
+xmlSecSignRsaSha1
+xmlSecEncRsaPkcs1
+xmlSecEncRsaOaep
+xmlSecDigestSha1
+xmlSecTransformXPath
+xmlSecTransformXPath2
+xmlSecTransformXPointer
+xmlSecTransformXslt
+
+xmlSecC14NExclAddInclNamespaces
+xmlSecHmacAddOutputLength
+xmlSecEncRsaOaepAddParam
+xmlSecTransformXPathAdd
+xmlSecXPath2TransformType
+xmlSecTransformXPath2Add
+xmlSecTransformXPointerAdd
+xmlSecTransformXsltAdd
+
+xmlSecAesKey
+xmlSecDesKey
+xmlSecDsaKey
+xmlSecHmacKey
+xmlSecRsaKey
+
+xmlSecAesKeyGenerate
+xmlSecDesKeyGenerate
+xmlSecDsaKeyGenerate
+xmlSecHmacKeyGenerate
+xmlSecRsaKeyGenerate
+
+XMLSEC_BASE64_LINESIZE
+xmlSecBase64EncodeSetLineSize
+</SECTION>
+
+<SECTION>
+<FILE>transformsInternal</FILE>
+xmlSecTransformType
+
+xmlSecTransformUsage
+xmlSecUsageAny
+xmlSecUsageDSigC14N
+xmlSecUsageDSigTransform
+xmlSecUsageDSigDigest
+xmlSecUsageDSigSignature
+xmlSecUsageEncryptionMethod
+
+
+xmlSecTransformResult
+
+xmlSecTransform
+xmlSecTransformsInit
+xmlSecTransformsNodeRead
+xmlSecTransformFind
+xmlSecTransformNodeRead
+xmlSecTransformNodeWrite
+xmlSecTransformIsValid
+xmlSecTransformCheckType
+xmlSecTransformCheckId
+xmlSecTransformCreate
+xmlSecTransformDestroy
+xmlSecTransformRead
+xmlSecTransformCreateMethod
+xmlSecTransformDestroyMethod
+xmlSecTransformReadNodeMethod
+
+xmlSecBinTransformId
+xmlSecBinTransform
+xmlSecBinTransformSubType
+xmlSecBinTransformIdCheckKeyId
+xmlSecBinTransformIdGetKeyId
+xmlSecBinTransformCheckSubType
+xmlSecBinTransformIdGetEncKeyType
+xmlSecBinTransformIdGetDecKeyType
+xmlSecBinTransformAddKey
+xmlSecBinTransformRead
+xmlSecBinTransformWrite
+xmlSecBinTransformFlush
+xmlSecBinTransformAddAfter
+xmlSecBinTransformAddBefore
+xmlSecBinTransformRemove
+xmlSecBinTransformDestroyAll
+xmlSecBinTransformSetEncrypt
+xmlSecBinTransformAddKeyMethod
+xmlSecBinTransformReadMethod
+xmlSecBinTransformWriteMethod
+xmlSecBinTransformFlushMethod
+
+xmlSecXmlTransformId
+xmlSecXmlTransform
+xmlSecXmlTransformExecuteMethod
+xmlSecXmlTransformExecute
+
+xmlSecC14NTransformId
+xmlSecC14NTransform
+xmlSecC14NTransformExecuteMethod
+xmlSecC14NTransformExecute
+
+xmlSecTransformState
+xmlSecTransformStateCreate
+xmlSecTransformStateDestroy
+xmlSecTransformStateUpdate
+xmlSecTransformStateFinal
+</SECTION>
+
+<SECTION>
+<FILE>version</FILE>
+XMLSEC_VERSION
+XMLSEC_VERSION_MAJOR
+XMLSEC_VERSION_MINOR
+XMLSEC_VERSION_SUBMINOR
+XMLSEC_VERSION_INFO
+</SECTION>
+
+<SECTION>
+<FILE>x509</FILE>
+xmlSecX509DataCreate
+xmlSecX509DataDestroy
+xmlSecX509DataGetCertsNumber
+xmlSecX509DataGetCrlsNumber
+xmlSecX509DataReadDerCert
+xmlSecX509DataWriteDerCert
+xmlSecX509DataReadDerCrl
+xmlSecX509DataWriteDerCrl
+xmlSecX509DataReadPemCert
+xmlSecX509DataDup
+xmlSecX509DataCreateKey
+xmlSecX509DataDebugDump
+xmlSecX509StoreCreate
+xmlSecX509StoreDestroy
+xmlSecX509StoreFind
+xmlSecX509StoreVerify
+xmlSecX509StoreLoadPemCert
+xmlSecX509StoreAddCertsDir
+xmlSecPKCS12ReadKey
+</SECTION>
+
+<SECTION>
+<FILE>xmldsig</FILE>
+xmlSecDSigCtx
+xmlSecDSigCtxCreate
+xmlSecDSigCtxDestroy
+
+xmlSecDSigValidate
+xmlSecDSigGenerate
+
+xmlSecDSigResult
+xmlSecReferenceResult
+xmlSecReferenceType
+xmlSecDSigResultCreate
+xmlSecDSigResultDestroy
+xmlSecDSigResultDebugDump
+
+xmlSecSignatureCreate
+xmlSecSignatureDestroy
+xmlSecSignatureAddSignedInfo
+xmlSecSignatureAddKeyInfo
+xmlSecSignatureAddObject
+xmlSecSignedInfoAddC14NMethod
+xmlSecSignedInfoAddSignMethod
+xmlSecSignedInfoAddReference
+xmlSecReferenceAddDigestMethod
+xmlSecReferenceAddTransform
+xmlSecObjectAddSignProperties
+xmlSecObjectAddManifest
+xmlSecManifestAddReference
+</SECTION>
+
+<SECTION>
+<FILE>xmlenc</FILE>
+xmlSecEncCtx
+xmlSecEncCtxCreate
+xmlSecEncCtxDestroy
+
+xmlSecEncryptMemory
+xmlSecEncryptUri
+xmlSecEncryptXmlNode
+xmlSecDecrypt
+
+xmlSecEncResult
+xmlSecEncResultCreate
+xmlSecEncResultDestroy
+xmlSecEncResultDebugDump
+
+xmlSecEncDataCreate
+xmlSecEncDataDestroy
+xmlSecEncDataAddEncMethod
+xmlSecEncDataAddKeyInfo
+xmlSecEncDataAddEncProperties
+xmlSecEncDataAddEncProperty
+xmlSecEncDataAddCipherValue
+xmlSecEncDataAddCipherReference
+xmlSecCipherReferenceAddTransform
+</SECTION>
+
+<SECTION>
+<FILE>xmlsec</FILE>
+xmlSecInit
+xmlSecShutdown
+</SECTION>
+
+<SECTION>
+<FILE>xmltree</FILE>
+xmlSecParseFile
+xmlSecParseMemory
+xmlSecParseMemoryExt
+xmlSecCheckNodeName
+xmlSecGetNextElementNode
+xmlSecFindChild
+xmlSecFindParent
+xmlSecFindNode
+xmlSecAddChild
+xmlSecAddNextSibling
+xmlSecAddPrevSibling
+xmlSecReplaceNode
+xmlSecReplaceContent
+xmlSecReplaceNodeBuffer
+xmlSecAddIDs
+xmlSecGetHex
+xmlSecIsHex
+</SECTION>
+
+<SECTION>
+<FILE>nodeset</FILE>
+xmlSecNodeSetType
+xmlSecNodeSetOp
+xmlSecNodeSet
+xmlSecNodeSetWalkCallback
+xmlSecNodeSetCreate
+xmlSecNodeSetDestroy
+xmlSecNodeSetContains
+xmlSecNodeSetAdd
+xmlSecNodeSetAddList
+xmlSecNodeSetGetChildren
+xmlSecNodeSetWalk
+xmlSecNodeSetDebugDump
+</SECTION>
+
+<SECTION>
+<FILE>errors</FILE>
+XMLSEC_ERRORS_LIB
+XMLSEC_ERRORS_FUNCTION
+XMLSEC_ERRORS_R_MALLOC_FAILED
+XMLSEC_ERRORS_R_XMLSEC_FAILED
+XMLSEC_ERRORS_R_CRYPTO_FAILED
+XMLSEC_ERRORS_R_XML_FAILED
+XMLSEC_ERRORS_R_XSLT_FAILED
+XMLSEC_ERRORS_R_IO_FAILED
+XMLSEC_ERRORS_R_INVALID_TRANSFORM
+XMLSEC_ERRORS_R_INVALID_TRANSFORM_DATA
+XMLSEC_ERRORS_R_INVALID_TRANSFORM_OR_KEY
+XMLSEC_ERRORS_R_INVALID_KEY
+XMLSEC_ERRORS_R_INVALID_KEY_DATA
+XMLSEC_ERRORS_R_INVALID_KEY_SIZE
+XMLSEC_ERRORS_R_INVALID_KEY_ORIGIN
+XMLSEC_ERRORS_R_KEY_NOT_FOUND
+XMLSEC_ERRORS_R_INVALID_SIZE
+XMLSEC_ERRORS_R_INVALID_DATA
+XMLSEC_ERRORS_R_INVALID_TYPE
+XMLSEC_ERRORS_R_INVALID_USAGE
+XMLSEC_ERRORS_R_INVALID_NODE
+XMLSEC_ERRORS_R_INVALID_NODESET
+XMLSEC_ERRORS_R_INVALID_NODE_CONTENT
+XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE
+XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT
+XMLSEC_ERRORS_R_SAME_DOCUMENT_REQUIRED
+XMLSEC_ERRORS_R_NODE_NOT_FOUND
+XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL
+XMLSEC_ERRORS_R_CERT_VERIFY_FAILED
+XMLSEC_ERRORS_R_CERT_NOT_FOUND
+XMLSEC_ERRORS_R_CERT_REVOKED
+XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE
+XMLSEC_ERRORS_R_ASSERTION
+XMLSEC_ERRORS_R_DISABLED
+xmlSecErrorsCallback
+xmlSecErrorsInit
+xmlSecErrorsShutdown
+xmlSecErrorsSetCallback
+xmlSecPrintErrorMessages
+XMLSEC_ERRORS_HERE
+xmlSecError
+xmlSecAssert
+xmlSecAssert2
+</SECTION>
+
diff --git a/docs/api-0.0.x/xmlsec-transforms.html b/docs/api-0.0.x/xmlsec-transforms.html
new file mode 100644
index 00000000..dc248275
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-transforms.html
@@ -0,0 +1,3407 @@
+<HTML
+><HEAD
+><TITLE
+>transforms.h</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="XML Security Library Reference Manual"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="XML Security Library Reference"
+HREF="xmlsec-ref.html"><LINK
+REL="PREVIOUS"
+TITLE="keysmngr.h"
+HREF="xmlsec-keysmngr.html"><LINK
+REL="NEXT"
+TITLE="version.h"
+HREF="xmlsec-version.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="4"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="5"
+>XML Security Library Reference Manual</FONT
+></TH
+></TR
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-keysmngr.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-version.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+></TABLE
+></DIV
+><H1
+><A
+NAME="XMLSEC-TRANSFORMS"
+></A
+>transforms.h</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN3613"
+></A
+><H2
+>Name</H2
+>transforms.h&nbsp;--&nbsp;The transforms functions.</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN3616"
+></A
+><H2
+>Synopsis</H2
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="SYNOPSIS"
+>&#13;
+
+enum <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMSTATUS"
+>xmlSecTransformStatus</A
+>;
+typedef <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+>;
+#define <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMUNKNOWN"
+>xmlSecTransformUnknown</A
+>
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECENCAES128CBC"
+>xmlSecEncAes128Cbc</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECENCAES192CBC"
+>xmlSecEncAes192Cbc</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECENCAES256CBC"
+>xmlSecEncAes256Cbc</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECKWAES128"
+>xmlSecKWAes128</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECKWAES192"
+>xmlSecKWAes192</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECKWAES256"
+>xmlSecKWAes256</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECENCBASE64ENCODE"
+>xmlSecEncBase64Encode</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECENCBASE64DECODE"
+>xmlSecEncBase64Decode</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECC14NINCLUSIVE"
+>xmlSecC14NInclusive</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECC14NINCLUSIVEWITHCOMMENTS"
+>xmlSecC14NInclusiveWithComments</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECC14NEXCLUSIVE"
+>xmlSecC14NExclusive</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECC14NEXCLUSIVEWITHCOMMENTS"
+>xmlSecC14NExclusiveWithComments</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECENCDES3CBC"
+>xmlSecEncDes3Cbc</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECKWDES3CBC"
+>xmlSecKWDes3Cbc</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECSIGNDSASHA1"
+>xmlSecSignDsaSha1</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMENVELOPED"
+>xmlSecTransformEnveloped</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECMACHMACSHA1"
+>xmlSecMacHmacSha1</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECMACHMACRIPEMD160"
+>xmlSecMacHmacRipeMd160</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECMACHMACMD5"
+>xmlSecMacHmacMd5</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECDIGESTRIPEMD160"
+>xmlSecDigestRipemd160</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECSIGNRSASHA1"
+>xmlSecSignRsaSha1</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECENCRSAPKCS1"
+>xmlSecEncRsaPkcs1</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECENCRSAOAEP"
+>xmlSecEncRsaOaep</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECDIGESTSHA1"
+>xmlSecDigestSha1</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMXPATH"
+>xmlSecTransformXPath</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMXPATH2"
+>xmlSecTransformXPath2</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMXPOINTER"
+>xmlSecTransformXPointer</A
+>;
+extern xmlSecTransformId <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMXSLT"
+>xmlSecTransformXslt</A
+>;
+int <A
+HREF="xmlsec-transforms.html#XMLSECC14NEXCLADDINCLNAMESPACES"
+>xmlSecC14NExclAddInclNamespaces</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> transformNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *prefixList);
+int <A
+HREF="xmlsec-transforms.html#XMLSECHMACADDOUTPUTLENGTH"
+>xmlSecHmacAddOutputLength</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> transformNode,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> bitsLen);
+int <A
+HREF="xmlsec-transforms.html#XMLSECENCRSAOAEPADDPARAM"
+>xmlSecEncRsaOaepAddParam</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> transformNode,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);
+int <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMXPATHADD"
+>xmlSecTransformXPathAdd</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> transformNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *expression,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> **namespaces);
+enum <A
+HREF="xmlsec-transforms.html#XMLSECXPATH2TRANSFORMTYPE"
+>xmlSecXPath2TransformType</A
+>;
+int <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMXPATH2ADD"
+>xmlSecTransformXPath2Add</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> transformNode,
+ <A
+HREF="xmlsec-transforms.html#XMLSECXPATH2TRANSFORMTYPE"
+>xmlSecXPath2TransformType</A
+> type,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *expression,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> **namespaces);
+int <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMXPOINTERADD"
+>xmlSecTransformXPointerAdd</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> transformNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *expression,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> **namespaces);
+int <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMXSLTADD"
+>xmlSecTransformXsltAdd</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> transformNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *xslt);
+extern xmlSecKeyId <A
+HREF="xmlsec-transforms.html#XMLSECAESKEY"
+>xmlSecAesKey</A
+>;
+extern xmlSecKeyId <A
+HREF="xmlsec-transforms.html#XMLSECDESKEY"
+>xmlSecDesKey</A
+>;
+extern xmlSecKeyId <A
+HREF="xmlsec-transforms.html#XMLSECDSAKEY"
+>xmlSecDsaKey</A
+>;
+extern xmlSecKeyId <A
+HREF="xmlsec-transforms.html#XMLSECHMACKEY"
+>xmlSecHmacKey</A
+>;
+extern xmlSecKeyId <A
+HREF="xmlsec-transforms.html#XMLSECRSAKEY"
+>xmlSecRsaKey</A
+>;
+int <A
+HREF="xmlsec-transforms.html#XMLSECAESKEYGENERATE"
+>xmlSecAesKeyGenerate</A
+> (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);
+int <A
+HREF="xmlsec-transforms.html#XMLSECDESKEYGENERATE"
+>xmlSecDesKeyGenerate</A
+> (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);
+int <A
+HREF="xmlsec-transforms.html#XMLSECDSAKEYGENERATE"
+>xmlSecDsaKeyGenerate</A
+> (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <GTKDOCLINK
+HREF="DSA-CAPS"
+>DSA</GTKDOCLINK
+> *dsa);
+int <A
+HREF="xmlsec-transforms.html#XMLSECHMACKEYGENERATE"
+>xmlSecHmacKeyGenerate</A
+> (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);
+int <A
+HREF="xmlsec-transforms.html#XMLSECRSAKEYGENERATE"
+>xmlSecRsaKeyGenerate</A
+> (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <GTKDOCLINK
+HREF="RSA-CAPS"
+>RSA</GTKDOCLINK
+> *rsa);
+#define <A
+HREF="xmlsec-transforms.html#XMLSEC-BASE64-LINESIZE-CAPS"
+>XMLSEC_BASE64_LINESIZE</A
+>
+void <A
+HREF="xmlsec-transforms.html#XMLSECBASE64ENCODESETLINESIZE"
+>xmlSecBase64EncodeSetLineSize</A
+> (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> lineSize);</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN3700"
+></A
+><H2
+>Description</H2
+><P
+></P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN3703"
+></A
+><H2
+>Details</H2
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3705"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMSTATUS"
+></A
+>enum xmlSecTransformStatus</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>typedef enum {
+ xmlSecTransformStatusNone = 0,
+ xmlSecTransformStatusOk,
+ xmlSecTransformStatusFail
+} xmlSecTransformStatus;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The transform execution result.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN3711"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#F0F0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecTransformStatusNone</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the status unknown.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecTransformStatusOk</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> success.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecTransformStatusFail</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> an error occur.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3728"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMID"
+></A
+>xmlSecTransformId</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>typedef const struct _xmlSecTransformIdStruct xmlSecTransformIdStruct, *xmlSecTransformId;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The transform id structure.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3734"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMUNKNOWN"
+></A
+>xmlSecTransformUnknown</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecTransformUnknown NULL</PRE
+></TD
+></TR
+></TABLE
+><P
+>The "unknown" transform id (NULL).</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3740"
+></A
+><H3
+><A
+NAME="XMLSECENCAES128CBC"
+></A
+>xmlSecEncAes128Cbc</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecEncAes128Cbc;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The AES-CBC with 128 bits key encryption transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3746"
+></A
+><H3
+><A
+NAME="XMLSECENCAES192CBC"
+></A
+>xmlSecEncAes192Cbc</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecEncAes192Cbc;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The AES-CBC with 192 bits key encryption transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3752"
+></A
+><H3
+><A
+NAME="XMLSECENCAES256CBC"
+></A
+>xmlSecEncAes256Cbc</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecEncAes256Cbc;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The AES-CBC with 256 bits key encryption transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3758"
+></A
+><H3
+><A
+NAME="XMLSECKWAES128"
+></A
+>xmlSecKWAes128</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecKWAes128;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The AES with 128 bits key wrap transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3764"
+></A
+><H3
+><A
+NAME="XMLSECKWAES192"
+></A
+>xmlSecKWAes192</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecKWAes192;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The AES with 192 bits key wrap transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3770"
+></A
+><H3
+><A
+NAME="XMLSECKWAES256"
+></A
+>xmlSecKWAes256</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecKWAes256;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The AES with 256 bits key wrap transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3776"
+></A
+><H3
+><A
+NAME="XMLSECENCBASE64ENCODE"
+></A
+>xmlSecEncBase64Encode</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecEncBase64Encode;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The base64 encode transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3782"
+></A
+><H3
+><A
+NAME="XMLSECENCBASE64DECODE"
+></A
+>xmlSecEncBase64Decode</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecEncBase64Decode;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The base64 decode transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3788"
+></A
+><H3
+><A
+NAME="XMLSECC14NINCLUSIVE"
+></A
+>xmlSecC14NInclusive</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecC14NInclusive;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The regular (inclusive) C14N without comments transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3794"
+></A
+><H3
+><A
+NAME="XMLSECC14NINCLUSIVEWITHCOMMENTS"
+></A
+>xmlSecC14NInclusiveWithComments</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecC14NInclusiveWithComments;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The regular (inclusive) C14N with comments transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3800"
+></A
+><H3
+><A
+NAME="XMLSECC14NEXCLUSIVE"
+></A
+>xmlSecC14NExclusive</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecC14NExclusive;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The exclusive C14N without comments transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3806"
+></A
+><H3
+><A
+NAME="XMLSECC14NEXCLUSIVEWITHCOMMENTS"
+></A
+>xmlSecC14NExclusiveWithComments</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecC14NExclusiveWithComments;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The exclusive C14N with comments transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3812"
+></A
+><H3
+><A
+NAME="XMLSECENCDES3CBC"
+></A
+>xmlSecEncDes3Cbc</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecEncDes3Cbc;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The DES3-CBC encryption transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3818"
+></A
+><H3
+><A
+NAME="XMLSECKWDES3CBC"
+></A
+>xmlSecKWDes3Cbc</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecKWDes3Cbc;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The DES3-CBC key wrap transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3824"
+></A
+><H3
+><A
+NAME="XMLSECSIGNDSASHA1"
+></A
+>xmlSecSignDsaSha1</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecSignDsaSha1;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The DSA with SHA1 signature transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3830"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMENVELOPED"
+></A
+>xmlSecTransformEnveloped</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecTransformEnveloped;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The "enveloped" transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3836"
+></A
+><H3
+><A
+NAME="XMLSECMACHMACSHA1"
+></A
+>xmlSecMacHmacSha1</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecMacHmacSha1;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The HMAC with SHA1 signature transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3842"
+></A
+><H3
+><A
+NAME="XMLSECMACHMACRIPEMD160"
+></A
+>xmlSecMacHmacRipeMd160</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecMacHmacRipeMd160;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The HMAC with RipeMD160 signature transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3848"
+></A
+><H3
+><A
+NAME="XMLSECMACHMACMD5"
+></A
+>xmlSecMacHmacMd5</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecMacHmacMd5;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The HMAC with MD5 signature transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3854"
+></A
+><H3
+><A
+NAME="XMLSECDIGESTRIPEMD160"
+></A
+>xmlSecDigestRipemd160</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecDigestRipemd160;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The RIPEMD160 digest transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3860"
+></A
+><H3
+><A
+NAME="XMLSECSIGNRSASHA1"
+></A
+>xmlSecSignRsaSha1</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecSignRsaSha1;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The RSA with SHA1 signature transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3866"
+></A
+><H3
+><A
+NAME="XMLSECENCRSAPKCS1"
+></A
+>xmlSecEncRsaPkcs1</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecEncRsaPkcs1;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The RSA-PKCS1 key transport transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3872"
+></A
+><H3
+><A
+NAME="XMLSECENCRSAOAEP"
+></A
+>xmlSecEncRsaOaep</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecEncRsaOaep;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The RSA-OAEP key transport transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3878"
+></A
+><H3
+><A
+NAME="XMLSECDIGESTSHA1"
+></A
+>xmlSecDigestSha1</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecDigestSha1;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The SHA1 digest transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3884"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMXPATH"
+></A
+>xmlSecTransformXPath</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecTransformXPath;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The XPath transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3890"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMXPATH2"
+></A
+>xmlSecTransformXPath2</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecTransformXPath2;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The XPath2 transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3896"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMXPOINTER"
+></A
+>xmlSecTransformXPointer</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecTransformXPointer;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The XPointer transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3902"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMXSLT"
+></A
+>xmlSecTransformXslt</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecTransformId xmlSecTransformXslt;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The XSLT transform id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3908"
+></A
+><H3
+><A
+NAME="XMLSECC14NEXCLADDINCLNAMESPACES"
+></A
+>xmlSecC14NExclAddInclNamespaces ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecC14NExclAddInclNamespaces (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> transformNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *prefixList);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds "inclusive" namespaces to the ExcC14N transform node <TT
+CLASS="PARAMETER"
+><I
+>transformNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN3917"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transformNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:Transform&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>prefixList</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the white space delimited list of namespace prefixes,
+ where "<GTKDOCLINK
+HREF="DEFAULT"
+>default</GTKDOCLINK
+>" indicates the default namespace</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 if success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3935"
+></A
+><H3
+><A
+NAME="XMLSECHMACADDOUTPUTLENGTH"
+></A
+>xmlSecHmacAddOutputLength ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecHmacAddOutputLength (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> transformNode,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> bitsLen);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Creates &lt;dsig:HMACOutputLength&gt;child for the HMAC transform
+node <TT
+CLASS="PARAMETER"
+><I
+>transformNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN3944"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transformNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:Transform&gt; node</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>bitsLen</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the required length in bits</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success and a negatie value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3961"
+></A
+><H3
+><A
+NAME="XMLSECENCRSAOAEPADDPARAM"
+></A
+>xmlSecEncRsaOaepAddParam ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecEncRsaOaepAddParam (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> transformNode,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Creates &lt;enc:OAEPParam&gt; child node in the <TT
+CLASS="PARAMETER"
+><I
+>transformNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN3970"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transformNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:Transform&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the OAEP param buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the OAEP param buffer size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN3991"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMXPATHADD"
+></A
+>xmlSecTransformXPathAdd ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecTransformXPathAdd (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> transformNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *expression,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> **namespaces);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Writes XPath transform infromation to the &lt;dsig:Transform&gt; node
+<TT
+CLASS="PARAMETER"
+><I
+>transformNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4001"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transformNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the &lt;dsig:Transform&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>expression</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the XPath expression.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>namespaces</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> NULL terminated list of namespace prefix/href pairs.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 for success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4022"
+></A
+><H3
+><A
+NAME="XMLSECXPATH2TRANSFORMTYPE"
+></A
+>enum xmlSecXPath2TransformType</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>typedef enum {
+ xmlSecXPathTransformIntersect = 0,
+ xmlSecXPathTransformSubtract,
+ xmlSecXPathTransformUnion
+} xmlSecXPath2TransformType;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The XPath2 transform types.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4028"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#F0F0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecXPathTransformIntersect</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> intersect.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecXPathTransformSubtract</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> subtract.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecXPathTransformUnion</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> union.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4045"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMXPATH2ADD"
+></A
+>xmlSecTransformXPath2Add ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecTransformXPath2Add (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> transformNode,
+ <A
+HREF="xmlsec-transforms.html#XMLSECXPATH2TRANSFORMTYPE"
+>xmlSecXPath2TransformType</A
+> type,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *expression,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> **namespaces);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Writes XPath2 transform infromation to the &lt;dsig:Transform&gt; node
+<TT
+CLASS="PARAMETER"
+><I
+>transformNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4056"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transformNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the &lt;dsig:Transform&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>type</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> XPath2 transform type ("union", "intersect" or "subtract").</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>expression</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the XPath expression.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>namespaces</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> NULL terminated list of namespace prefix/href pairs.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 for success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4081"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMXPOINTERADD"
+></A
+>xmlSecTransformXPointerAdd ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecTransformXPointerAdd (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> transformNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *expression,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> **namespaces);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Writes XPoniter transform infromation to the &lt;dsig:Transform&gt; node
+<TT
+CLASS="PARAMETER"
+><I
+>transformNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4091"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transformNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the &lt;dsig:Transform&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>expression</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the XPath expression.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>namespaces</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> NULL terminated list of namespace prefix/href pairs.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 for success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4112"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMXSLTADD"
+></A
+>xmlSecTransformXsltAdd ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecTransformXsltAdd (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> transformNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *xslt);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Writes the XSLT transform expression to the <TT
+CLASS="PARAMETER"
+><I
+>transformNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4121"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transformNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:Transform&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>xslt</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the XSLT transform exspression.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4138"
+></A
+><H3
+><A
+NAME="XMLSECAESKEY"
+></A
+>xmlSecAesKey</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecKeyId xmlSecAesKey;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The AES key id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4144"
+></A
+><H3
+><A
+NAME="XMLSECDESKEY"
+></A
+>xmlSecDesKey</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecKeyId xmlSecDesKey;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The DES key id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4150"
+></A
+><H3
+><A
+NAME="XMLSECDSAKEY"
+></A
+>xmlSecDsaKey</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecKeyId xmlSecDsaKey;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The DSA signature key id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4156"
+></A
+><H3
+><A
+NAME="XMLSECHMACKEY"
+></A
+>xmlSecHmacKey</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecKeyId xmlSecHmacKey;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The HMAC key id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4162"
+></A
+><H3
+><A
+NAME="XMLSECRSAKEY"
+></A
+>xmlSecRsaKey</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>extern xmlSecKeyId xmlSecRsaKey;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The RSA key id.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4168"
+></A
+><H3
+><A
+NAME="XMLSECAESKEYGENERATE"
+></A
+>xmlSecAesKeyGenerate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecAesKeyGenerate (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Sets the AES key to the given data or generates a new random key.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4176"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to AES key.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to AES key data or NULL if new key should be generated.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the AES key data size or 0 if new key should be generated.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 for success or a negative value otherwise. </TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4197"
+></A
+><H3
+><A
+NAME="XMLSECDESKEYGENERATE"
+></A
+>xmlSecDesKeyGenerate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecDesKeyGenerate (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Reads the DES key from the input buffer or generates a new one.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4205"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to DES key.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input key data (or NULL if new key should be generated).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input biffer size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4226"
+></A
+><H3
+><A
+NAME="XMLSECDSAKEYGENERATE"
+></A
+>xmlSecDsaKeyGenerate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecDsaKeyGenerate (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <GTKDOCLINK
+HREF="DSA-CAPS"
+>DSA</GTKDOCLINK
+> *dsa);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Sets the DSA key to geven value or generates a new one if <TT
+CLASS="PARAMETER"
+><I
+>dsa</I
+></TT
+> is NULL.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4235"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to a DSA key.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>dsa</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to OpenSSL DSA key structure or NULL.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4252"
+></A
+><H3
+><A
+NAME="XMLSECHMACKEYGENERATE"
+></A
+>xmlSecHmacKeyGenerate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecHmacKeyGenerate (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Sets the HMAC key <TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+> to data in <TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+> or generates a new HMAC key
+if <TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+> is NULL.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4263"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to HMAC key.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the HMAC key binary data or NULL.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the binary data size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4284"
+></A
+><H3
+><A
+NAME="XMLSECRSAKEYGENERATE"
+></A
+>xmlSecRsaKeyGenerate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecRsaKeyGenerate (<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <GTKDOCLINK
+HREF="RSA-CAPS"
+>RSA</GTKDOCLINK
+> *rsa);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Sets the <TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+> to the value of <TT
+CLASS="PARAMETER"
+><I
+>rsa</I
+></TT
+> or generates a new RSA key
+if <TT
+CLASS="PARAMETER"
+><I
+>rsa</I
+></TT
+> is NULL.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4295"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to RSA key.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>rsa</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to OpenSSL RSA key or NULL.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4312"
+></A
+><H3
+><A
+NAME="XMLSEC-BASE64-LINESIZE-CAPS"
+></A
+>XMLSEC_BASE64_LINESIZE</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_BASE64_LINESIZE 64</PRE
+></TD
+></TR
+></TABLE
+><P
+>The default max line size for base64 encoding</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4318"
+></A
+><H3
+><A
+NAME="XMLSECBASE64ENCODESETLINESIZE"
+></A
+>xmlSecBase64EncodeSetLineSize ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecBase64EncodeSetLineSize (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> lineSize);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Sets the max line size to <TT
+CLASS="PARAMETER"
+><I
+>lineSize</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4327"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to BASE64 encode transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>lineSize</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the new max line size.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-keysmngr.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-version.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>keysmngr.h</B
+></FONT
+></TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>version.h</B
+></FONT
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/docs/api-0.0.x/xmlsec-transformsinternal.html b/docs/api-0.0.x/xmlsec-transformsinternal.html
new file mode 100644
index 00000000..e5e5e355
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-transformsinternal.html
@@ -0,0 +1,6514 @@
+<HTML
+><HEAD
+><TITLE
+>transformsInternal.h</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="XML Security Library Reference Manual"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="XML Security Library Internal Functions Reference"
+HREF="xmlsec-ref-int.html"><LINK
+REL="PREVIOUS"
+TITLE="nodeset.h"
+HREF="xmlsec-nodeset.html"><LINK
+REL="NEXT"
+TITLE="xmltree.h"
+HREF="xmlsec-xmltree.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="4"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="5"
+>XML Security Library Reference Manual</FONT
+></TH
+></TR
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-nodeset.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref-int.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-xmltree.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+></TABLE
+></DIV
+><H1
+><A
+NAME="XMLSEC-TRANSFORMSINTERNAL"
+></A
+>transformsInternal.h</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN7433"
+></A
+><H2
+>Name</H2
+>transformsInternal.h&nbsp;--&nbsp;The internal transform's functions.</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN7436"
+></A
+><H2
+>Synopsis</H2
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="SYNOPSIS"
+>&#13;
+
+enum <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMTYPE"
+>xmlSecTransformType</A
+>;
+typedef <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMUSAGE"
+>xmlSecTransformUsage</A
+>;
+#define <A
+HREF="xmlsec-transformsinternal.html#XMLSECUSAGEANY"
+>xmlSecUsageAny</A
+>
+#define <A
+HREF="xmlsec-transformsinternal.html#XMLSECUSAGEDSIGC14N"
+>xmlSecUsageDSigC14N</A
+>
+#define <A
+HREF="xmlsec-transformsinternal.html#XMLSECUSAGEDSIGTRANSFORM"
+>xmlSecUsageDSigTransform</A
+>
+#define <A
+HREF="xmlsec-transformsinternal.html#XMLSECUSAGEDSIGDIGEST"
+>xmlSecUsageDSigDigest</A
+>
+#define <A
+HREF="xmlsec-transformsinternal.html#XMLSECUSAGEDSIGSIGNATURE"
+>xmlSecUsageDSigSignature</A
+>
+#define <A
+HREF="xmlsec-transformsinternal.html#XMLSECUSAGEENCRYPTIONMETHOD"
+>xmlSecUsageEncryptionMethod</A
+>
+enum <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMRESULT"
+>xmlSecTransformResult</A
+>;
+struct <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORM"
+>xmlSecTransform</A
+>;
+void <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMSINIT"
+>xmlSecTransformsInit</A
+> (void);
+int <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMSNODEREAD"
+>xmlSecTransformsNodeRead</A
+> (<GTKDOCLINK
+HREF="XMLSECTRANSFORMSTATEPTR"
+>xmlSecTransformStatePtr</GTKDOCLINK
+> state,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> transformsNode);
+<A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMFIND"
+>xmlSecTransformFind</A
+> (const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *href);
+<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMNODEREAD"
+>xmlSecTransformNodeRead</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> transformNode,
+ <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMUSAGE"
+>xmlSecTransformUsage</A
+> usage,
+ int dontDestroy);
+int <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMNODEWRITE"
+>xmlSecTransformNodeWrite</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> transformNode,
+ <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> id);
+#define <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMISVALID"
+>xmlSecTransformIsValid</A
+> (transform)
+#define <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMCHECKTYPE"
+>xmlSecTransformCheckType</A
+> (transform, t)
+#define <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMCHECKID"
+>xmlSecTransformCheckId</A
+> (transform, i)
+<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMCREATE"
+>xmlSecTransformCreate</A
+> (<A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> id,
+ <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMUSAGE"
+>xmlSecTransformUsage</A
+> usage,
+ int dontDestroy);
+void <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMDESTROY"
+>xmlSecTransformDestroy</A
+> (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ int forceDestroy);
+int <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMREAD"
+>xmlSecTransformRead</A
+> (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> transformNode);
+<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> (<A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMCREATEMETHOD"
+>*xmlSecTransformCreateMethod</A
+>)
+ (<A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> id);
+void (<A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMDESTROYMETHOD"
+>*xmlSecTransformDestroyMethod</A
+>) (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform);
+int (<A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMREADNODEMETHOD"
+>*xmlSecTransformReadNodeMethod</A
+>)
+ (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> transformNode);
+typedef <A
+HREF="xmlsec-transformsinternal.html#XMLSECBINTRANSFORMID"
+>xmlSecBinTransformId</A
+>;
+struct <A
+HREF="xmlsec-transformsinternal.html#XMLSECBINTRANSFORM"
+>xmlSecBinTransform</A
+>;
+enum <A
+HREF="xmlsec-transformsinternal.html#XMLSECBINTRANSFORMSUBTYPE"
+>xmlSecBinTransformSubType</A
+>;
+#define <A
+HREF="xmlsec-transformsinternal.html#XMLSECBINTRANSFORMIDCHECKKEYID"
+>xmlSecBinTransformIdCheckKeyId</A
+> (id, kId)
+#define <A
+HREF="xmlsec-transformsinternal.html#XMLSECBINTRANSFORMIDGETKEYID"
+>xmlSecBinTransformIdGetKeyId</A
+> (id)
+#define <A
+HREF="xmlsec-transformsinternal.html#XMLSECBINTRANSFORMCHECKSUBTYPE"
+>xmlSecBinTransformCheckSubType</A
+> (transform, t)
+#define <A
+HREF="xmlsec-transformsinternal.html#XMLSECBINTRANSFORMIDGETENCKEYTYPE"
+>xmlSecBinTransformIdGetEncKeyType</A
+>(id)
+#define <A
+HREF="xmlsec-transformsinternal.html#XMLSECBINTRANSFORMIDGETDECKEYTYPE"
+>xmlSecBinTransformIdGetDecKeyType</A
+>(id)
+int <A
+HREF="xmlsec-transformsinternal.html#XMLSECBINTRANSFORMADDKEY"
+>xmlSecBinTransformAddKey</A
+> (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ <GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key);
+int <A
+HREF="xmlsec-transformsinternal.html#XMLSECBINTRANSFORMREAD"
+>xmlSecBinTransformRead</A
+> (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);
+int <A
+HREF="xmlsec-transformsinternal.html#XMLSECBINTRANSFORMWRITE"
+>xmlSecBinTransformWrite</A
+> (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);
+int <A
+HREF="xmlsec-transformsinternal.html#XMLSECBINTRANSFORMFLUSH"
+>xmlSecBinTransformFlush</A
+> (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform);
+<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-transformsinternal.html#XMLSECBINTRANSFORMADDAFTER"
+>xmlSecBinTransformAddAfter</A
+>
+ (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> curTransform,
+ <GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> newTransform);
+<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-transformsinternal.html#XMLSECBINTRANSFORMADDBEFORE"
+>xmlSecBinTransformAddBefore</A
+>
+ (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> curTransform,
+ <GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> newTransform);
+void <A
+HREF="xmlsec-transformsinternal.html#XMLSECBINTRANSFORMREMOVE"
+>xmlSecBinTransformRemove</A
+> (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform);
+void <A
+HREF="xmlsec-transformsinternal.html#XMLSECBINTRANSFORMDESTROYALL"
+>xmlSecBinTransformDestroyAll</A
+> (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform);
+void <A
+HREF="xmlsec-transformsinternal.html#XMLSECBINTRANSFORMSETENCRYPT"
+>xmlSecBinTransformSetEncrypt</A
+> (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ int encrypt);
+int (<A
+HREF="xmlsec-transformsinternal.html#XMLSECBINTRANSFORMADDKEYMETHOD"
+>*xmlSecBinTransformAddKeyMethod</A
+>)
+ (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform,
+ <GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key);
+int (<A
+HREF="xmlsec-transformsinternal.html#XMLSECBINTRANSFORMREADMETHOD"
+>*xmlSecBinTransformReadMethod</A
+>) (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);
+int (<A
+HREF="xmlsec-transformsinternal.html#XMLSECBINTRANSFORMWRITEMETHOD"
+>*xmlSecBinTransformWriteMethod</A
+>)
+ (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);
+int (<A
+HREF="xmlsec-transformsinternal.html#XMLSECBINTRANSFORMFLUSHMETHOD"
+>*xmlSecBinTransformFlushMethod</A
+>)
+ (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform);
+typedef <A
+HREF="xmlsec-transformsinternal.html#XMLSECXMLTRANSFORMID"
+>xmlSecXmlTransformId</A
+>;
+struct <A
+HREF="xmlsec-transformsinternal.html#XMLSECXMLTRANSFORM"
+>xmlSecXmlTransform</A
+>;
+int (<A
+HREF="xmlsec-transformsinternal.html#XMLSECXMLTRANSFORMEXECUTEMETHOD"
+>*xmlSecXmlTransformExecuteMethod</A
+>)
+ (<GTKDOCLINK
+HREF="XMLSECXMLTRANSFORMPTR"
+>xmlSecXmlTransformPtr</GTKDOCLINK
+> transform,
+ <GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> ctxDoc,
+ <GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> *doc,
+ <GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> *nodes);
+int <A
+HREF="xmlsec-transformsinternal.html#XMLSECXMLTRANSFORMEXECUTE"
+>xmlSecXmlTransformExecute</A
+> (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ <GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> ctxDoc,
+ <GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> *doc,
+ <GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> *nodes);
+typedef <A
+HREF="xmlsec-transformsinternal.html#XMLSECC14NTRANSFORMID"
+>xmlSecC14NTransformId</A
+>;
+struct <A
+HREF="xmlsec-transformsinternal.html#XMLSECC14NTRANSFORM"
+>xmlSecC14NTransform</A
+>;
+int (<A
+HREF="xmlsec-transformsinternal.html#XMLSECC14NTRANSFORMEXECUTEMETHOD"
+>*xmlSecC14NTransformExecuteMethod</A
+>)
+ (<GTKDOCLINK
+HREF="XMLSECC14NTRANSFORMPTR"
+>xmlSecC14NTransformPtr</GTKDOCLINK
+> transform,
+ <GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> doc,
+ <GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> nodes,
+ <GTKDOCLINK
+HREF="XMLOUTPUTBUFFERPTR"
+>xmlOutputBufferPtr</GTKDOCLINK
+> buffer);
+int <A
+HREF="xmlsec-transformsinternal.html#XMLSECC14NTRANSFORMEXECUTE"
+>xmlSecC14NTransformExecute</A
+> (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ <GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> doc,
+ <GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> nodes,
+ <GTKDOCLINK
+HREF="XMLOUTPUTBUFFERPTR"
+>xmlOutputBufferPtr</GTKDOCLINK
+> buffer);
+struct <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMSTATE"
+>xmlSecTransformState</A
+>;
+<GTKDOCLINK
+HREF="XMLSECTRANSFORMSTATEPTR"
+>xmlSecTransformStatePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMSTATECREATE"
+>xmlSecTransformStateCreate</A
+>
+ (<GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> doc,
+ <GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> nodeSet,
+ const char *uri);
+void <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMSTATEDESTROY"
+>xmlSecTransformStateDestroy</A
+> (<GTKDOCLINK
+HREF="XMLSECTRANSFORMSTATEPTR"
+>xmlSecTransformStatePtr</GTKDOCLINK
+> state);
+int <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMSTATEUPDATE"
+>xmlSecTransformStateUpdate</A
+> (<GTKDOCLINK
+HREF="XMLSECTRANSFORMSTATEPTR"
+>xmlSecTransformStatePtr</GTKDOCLINK
+> state,
+ <GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform);
+int <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMSTATEFINAL"
+>xmlSecTransformStateFinal</A
+> (<GTKDOCLINK
+HREF="XMLSECTRANSFORMSTATEPTR"
+>xmlSecTransformStatePtr</GTKDOCLINK
+> state,
+ <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMRESULT"
+>xmlSecTransformResult</A
+> type);</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN7564"
+></A
+><H2
+>Description</H2
+><P
+></P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN7567"
+></A
+><H2
+>Details</H2
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7569"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMTYPE"
+></A
+>enum xmlSecTransformType</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>typedef enum {
+ xmlSecTransformTypeBinary,
+ xmlSecTransformTypeXml,
+ xmlSecTransformTypeC14N
+} xmlSecTransformType;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The transform input/output types.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7575"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#F0F0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecTransformTypeBinary</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> input - binary; output - binary.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecTransformTypeXml</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> input - XML; output - XML.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecTransformTypeC14N</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> input - XML; output - binary.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7592"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMUSAGE"
+></A
+>xmlSecTransformUsage</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>typedef unsigned long xmlSecTransformUsage;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The transform usage bits mask.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7598"
+></A
+><H3
+><A
+NAME="XMLSECUSAGEANY"
+></A
+>xmlSecUsageAny</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecUsageAny 0</PRE
+></TD
+></TR
+></TABLE
+><P
+>Transform could be used for operation.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7604"
+></A
+><H3
+><A
+NAME="XMLSECUSAGEDSIGC14N"
+></A
+>xmlSecUsageDSigC14N</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecUsageDSigC14N 1</PRE
+></TD
+></TR
+></TABLE
+><P
+>Transform could be used for C14N.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7610"
+></A
+><H3
+><A
+NAME="XMLSECUSAGEDSIGTRANSFORM"
+></A
+>xmlSecUsageDSigTransform</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecUsageDSigTransform 2</PRE
+></TD
+></TR
+></TABLE
+><P
+>Transform could be used as a transform in XML DSig.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7616"
+></A
+><H3
+><A
+NAME="XMLSECUSAGEDSIGDIGEST"
+></A
+>xmlSecUsageDSigDigest</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecUsageDSigDigest 4</PRE
+></TD
+></TR
+></TABLE
+><P
+>Transform could be used for digests.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7622"
+></A
+><H3
+><A
+NAME="XMLSECUSAGEDSIGSIGNATURE"
+></A
+>xmlSecUsageDSigSignature</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecUsageDSigSignature 8</PRE
+></TD
+></TR
+></TABLE
+><P
+>Transform could be used for generating signatures.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7628"
+></A
+><H3
+><A
+NAME="XMLSECUSAGEENCRYPTIONMETHOD"
+></A
+>xmlSecUsageEncryptionMethod</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecUsageEncryptionMethod 16</PRE
+></TD
+></TR
+></TABLE
+><P
+>Transform could be used for encryption.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7634"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMRESULT"
+></A
+>enum xmlSecTransformResult</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>typedef enum {
+ xmlSecTransformResultBinary,
+ xmlSecTransformResultXml
+} xmlSecTransformResult;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The transform result types.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7640"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#F0F0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecTransformResultBinary</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> binary data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecTransformResultXml</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> XML document plus nodes set.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7653"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORM"
+></A
+>struct xmlSecTransform</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>struct xmlSecTransform {
+ xmlSecTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+};</PRE
+></TD
+></TR
+></TABLE
+><P
+>The transform structure.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7659"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFF0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>id</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform id (pointer to <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+>).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMSTATUS"
+>xmlSecTransformStatus</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>status</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform status (ok/fail/unknown).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>int <TT
+CLASS="STRUCTFIELD"
+><I
+>dontDestroy</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the don't automatically destroy flag.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>void *<TT
+CLASS="STRUCTFIELD"
+><I
+>data</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to transform specific data.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7683"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMSINIT"
+></A
+>xmlSecTransformsInit ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecTransformsInit (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Trnasforms engine initialization (called from <A
+HREF="xmlsec-xmlsec.html#XMLSECINIT"
+>xmlSecInit</A
+>() function).
+The applications should not call this function directly.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7690"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMSNODEREAD"
+></A
+>xmlSecTransformsNodeRead ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecTransformsNodeRead (<GTKDOCLINK
+HREF="XMLSECTRANSFORMSTATEPTR"
+>xmlSecTransformStatePtr</GTKDOCLINK
+> state,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> transformsNode);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Reads the transform node and updates <TT
+CLASS="PARAMETER"
+><I
+>state</I
+></TT
+>,</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7699"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>state</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to current transform state.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transformsNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the &lt;dsig:Transform&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7716"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMFIND"
+></A
+>xmlSecTransformFind ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> xmlSecTransformFind (const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *href);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Searches the list of known transforms for transform with given href</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7724"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>href</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform href.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the id of the found transform or NULL if an error occurs
+or transform is not found.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7737"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMNODEREAD"
+></A
+>xmlSecTransformNodeRead ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> xmlSecTransformNodeRead (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> transformNode,
+ <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMUSAGE"
+>xmlSecTransformUsage</A
+> usage,
+ int dontDestroy);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Reads transform from the <TT
+CLASS="PARAMETER"
+><I
+>transformNode</I
+></TT
+> as follows:
+ 1) reads "Algorithm" attribute;
+ 2) checks the list of known algorithms;
+ 3) calls transform create method;
+ 4) calls transform read transform node method.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7747"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transformNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:Transform&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>usage</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the usage of the transfomr (signature, encryption, etc.).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>dontDestroy</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the flag whether we need to destroy the transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly allocated <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORM"
+>xmlSecTransform</A
+> structure
+or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7769"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMNODEWRITE"
+></A
+>xmlSecTransformNodeWrite ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecTransformNodeWrite (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> transformNode,
+ <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> id);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Writes Agorithm attribute in the transform node.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7777"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transformNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:Transform&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform id.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7794"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMISVALID"
+></A
+>xmlSecTransformIsValid()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecTransformIsValid(transform)</PRE
+></TD
+></TR
+></TABLE
+><P
+>Macro. Returns 1 if the <TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+> is valid or 0 otherwise.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7801"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to transform.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7810"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMCHECKTYPE"
+></A
+>xmlSecTransformCheckType()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecTransformCheckType(transform, t)</PRE
+></TD
+></TR
+></TABLE
+><P
+>Macro. Returns 1 if the <TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+> is valid and has specified type <TT
+CLASS="PARAMETER"
+><I
+>t</I
+></TT
+>
+or 0 otherwise.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7818"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>t</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform type.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7831"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMCHECKID"
+></A
+>xmlSecTransformCheckId()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecTransformCheckId(transform, i)</PRE
+></TD
+></TR
+></TABLE
+><P
+>Macro. Returns 1 if the <TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+> is valid and has specified id <TT
+CLASS="PARAMETER"
+><I
+>i</I
+></TT
+>
+or 0 otherwise.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7839"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>i</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform id.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7852"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMCREATE"
+></A
+>xmlSecTransformCreate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> xmlSecTransformCreate (<A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> id,
+ <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMUSAGE"
+>xmlSecTransformUsage</A
+> usage,
+ int dontDestroy);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Creates new transform from the transform id object.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7861"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform id to create.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>usage</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the proposed transform usage.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>dontDestroy</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the flag that controls wherther the transforms
+ can destroy the transforms automatically</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly created <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORM"
+>xmlSecTransform</A
+> structure
+or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7883"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMDESTROY"
+></A
+>xmlSecTransformDestroy ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecTransformDestroy (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ int forceDestroy);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Destroys transform by calling appropriate transform specific function.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7890"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORM"
+>xmlSecTransform</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>forceDestroy</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the flag whether the transform destruction will be
+ forced.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7904"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMREAD"
+></A
+>xmlSecTransformRead ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecTransformRead (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> transformNode);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Reads transform information from the <TT
+CLASS="PARAMETER"
+><I
+>transformNode</I
+></TT
+> using
+transform specific function.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7913"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORM"
+>xmlSecTransform</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transformNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the &lt;dsig:Transform&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7931"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMCREATEMETHOD"
+></A
+>xmlSecTransformCreateMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> (*xmlSecTransformCreateMethod)
+ (<A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> id);</PRE
+></TD
+></TR
+></TABLE
+><P
+>The transform specific creation method.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7939"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform id to create.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>pointer to the newly created transform or NULL if an
+error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7952"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMDESTROYMETHOD"
+></A
+>xmlSecTransformDestroyMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void (*xmlSecTransformDestroyMethod) (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform);</PRE
+></TD
+></TR
+></TABLE
+><P
+>The transform specific destroy method.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7959"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORM"
+>xmlSecTransform</A
+> structure.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7969"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMREADNODEMETHOD"
+></A
+>xmlSecTransformReadNodeMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int (*xmlSecTransformReadNodeMethod)
+ (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> transformNode);</PRE
+></TD
+></TR
+></TABLE
+><P
+>The transfomr specific method to read the transform data from
+the <TT
+CLASS="PARAMETER"
+><I
+>transformNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN7978"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORM"
+>xmlSecTransform</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transformNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the &lt;dsig:Transform&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN7996"
+></A
+><H3
+><A
+NAME="XMLSECBINTRANSFORMID"
+></A
+>xmlSecBinTransformId</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>typedef const struct _xmlSecBinTransformIdStruct *xmlSecBinTransformId;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The binary transform id (<TT
+CLASS="LITERAL"
+>xmlSecTransformTypeBinary</TT
+> type).</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8003"
+></A
+><H3
+><A
+NAME="XMLSECBINTRANSFORM"
+></A
+>struct xmlSecBinTransform</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>struct xmlSecBinTransform {
+ /* same as for xmlSecTransform but id type changed */
+ xmlSecBinTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+
+ /* xmlSecBinTransform specific */
+ int encode;
+ xmlSecBinTransformPtr next;
+ xmlSecBinTransformPtr prev;
+ void *binData;
+};</PRE
+></TD
+></TR
+></TABLE
+><P
+>Binary transforms are very similar to BIO from OpenSSL.
+However,there is one big difference. In OpenSSL BIO writing
+operation *always* encrypts data and read operation *always*
+decrypts data. We do not want to have this restriction.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8009"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFF0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-transformsinternal.html#XMLSECBINTRANSFORMID"
+>xmlSecBinTransformId</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>id</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform id (pointer to <A
+HREF="xmlsec-transformsinternal.html#XMLSECBINTRANSFORMID"
+>xmlSecBinTransformId</A
+>).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMSTATUS"
+>xmlSecTransformStatus</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>status</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform status (ok/fail/unknown).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>int <TT
+CLASS="STRUCTFIELD"
+><I
+>dontDestroy</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the don't automatically destroy flag.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>void *<TT
+CLASS="STRUCTFIELD"
+><I
+>data</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to transform specific data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>int <TT
+CLASS="STRUCTFIELD"
+><I
+>encode</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> encode/decode (encrypt/decrypt) flag.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>next</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> next binary transform in the chain.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>prev</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> previous binary transform in the chain.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>void *<TT
+CLASS="STRUCTFIELD"
+><I
+>binData</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to binary transform speific data.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8051"
+></A
+><H3
+><A
+NAME="XMLSECBINTRANSFORMSUBTYPE"
+></A
+>enum xmlSecBinTransformSubType</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>typedef enum {
+ xmlSecBinTransformSubTypeNone = 0,
+ xmlSecBinTransformSubTypeDigest,
+ xmlSecBinTransformSubTypeCipher,
+ xmlSecBinTransformSubTypeBuffered
+} xmlSecBinTransformSubType;</PRE
+></TD
+></TR
+></TABLE
+><P
+>Binary transform sub-types.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8057"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#F0F0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecBinTransformSubTypeNone</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> unknown.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecBinTransformSubTypeDigest</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> digest.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecBinTransformSubTypeCipher</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> cipher.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecBinTransformSubTypeBuffered</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> buffered transform.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8078"
+></A
+><H3
+><A
+NAME="XMLSECBINTRANSFORMIDCHECKKEYID"
+></A
+>xmlSecBinTransformIdCheckKeyId()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecBinTransformIdCheckKeyId(id, kId)</PRE
+></TD
+></TR
+></TABLE
+><P
+>Macro. Returns 1 if the transform <TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+> has <GTKDOCLINK
+HREF="XMLSECTRANSFORMTYPEBINARY"
+>xmlSecTransformTypeBinary</GTKDOCLINK
+> type
+and the transform's keyId matches specified <TT
+CLASS="PARAMETER"
+><I
+>kId</I
+></TT
+> or 0 otherwise.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8087"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform id.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>kId</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key id.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8100"
+></A
+><H3
+><A
+NAME="XMLSECBINTRANSFORMIDGETKEYID"
+></A
+>xmlSecBinTransformIdGetKeyId()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecBinTransformIdGetKeyId(id)</PRE
+></TD
+></TR
+></TABLE
+><P
+>Macro. Returns the key id required by the transform or NULL if an error
+occurs.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8106"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform id.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8115"
+></A
+><H3
+><A
+NAME="XMLSECBINTRANSFORMCHECKSUBTYPE"
+></A
+>xmlSecBinTransformCheckSubType()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecBinTransformCheckSubType(transform, t)</PRE
+></TD
+></TR
+></TABLE
+><P
+>Macro. Returns 1 if the <TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+> is valid, has
+<GTKDOCLINK
+HREF="XMLSECTRANSFORMTYPEBINARY"
+>xmlSecTransformTypeBinary</GTKDOCLINK
+> type and has specified subtype <TT
+CLASS="PARAMETER"
+><I
+>t</I
+></TT
+>
+or 0 otherwise.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8124"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>t</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform's subtype.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8137"
+></A
+><H3
+><A
+NAME="XMLSECBINTRANSFORMIDGETENCKEYTYPE"
+></A
+>xmlSecBinTransformIdGetEncKeyType()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecBinTransformIdGetEncKeyType(id)</PRE
+></TD
+></TR
+></TABLE
+><P
+>Macro. Returns the encryption key type by the transform or NULL if
+an error occurs.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8143"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform id.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8152"
+></A
+><H3
+><A
+NAME="XMLSECBINTRANSFORMIDGETDECKEYTYPE"
+></A
+>xmlSecBinTransformIdGetDecKeyType()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecBinTransformIdGetDecKeyType(id)</PRE
+></TD
+></TR
+></TABLE
+><P
+>Macro. Returns the decryption key type by the transform or NULL if
+an error occurs.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8158"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform id.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8167"
+></A
+><H3
+><A
+NAME="XMLSECBINTRANSFORMADDKEY"
+></A
+>xmlSecBinTransformAddKey ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecBinTransformAddKey (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ <GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Sets the key for binary transform (wrapper for transform specific
+<GTKDOCLINK
+HREF="ADDBINKEY"
+>addBinKey</GTKDOCLINK
+>() method).</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8176"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORM"
+>xmlSecTransform</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-keys.html#XMLSECKEY"
+>xmlSecKey</A
+> structure. </TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8195"
+></A
+><H3
+><A
+NAME="XMLSECBINTRANSFORMREAD"
+></A
+>xmlSecBinTransformRead ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecBinTransformRead (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Reads chunk of data from the transform (wrapper transform specific
+<GTKDOCLINK
+HREF="READBIN"
+>readBin</GTKDOCLINK
+>() function).</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8204"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORM"
+>xmlSecTransform</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the output buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the output buffer size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the number of bytes in the buffer or negative value
+if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8226"
+></A
+><H3
+><A
+NAME="XMLSECBINTRANSFORMWRITE"
+></A
+>xmlSecBinTransformWrite ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecBinTransformWrite (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Writes data to the transform (wrapper to the transform specific
+<GTKDOCLINK
+HREF="WRITEBIN"
+>writeBin</GTKDOCLINK
+>() function).</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8235"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORM"
+>xmlSecTransform</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input data buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input data size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 if success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8257"
+></A
+><H3
+><A
+NAME="XMLSECBINTRANSFORMFLUSH"
+></A
+>xmlSecBinTransformFlush ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecBinTransformFlush (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Finalizes writing (wrapper for transform specific <GTKDOCLINK
+HREF="FLUSHBIN"
+>flushBin</GTKDOCLINK
+>() method).</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8265"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORM"
+>xmlSecTransform</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 if success or negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8279"
+></A
+><H3
+><A
+NAME="XMLSECBINTRANSFORMADDAFTER"
+></A
+>xmlSecBinTransformAddAfter ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> xmlSecBinTransformAddAfter
+ (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> curTransform,
+ <GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> newTransform);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds <TT
+CLASS="PARAMETER"
+><I
+>newTransform</I
+></TT
+> after the <TT
+CLASS="PARAMETER"
+><I
+>curTransform</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8290"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>curTransform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to current transform (may be NULL).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>newTransform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to new transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>pointer to the new transforms chain or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8307"
+></A
+><H3
+><A
+NAME="XMLSECBINTRANSFORMADDBEFORE"
+></A
+>xmlSecBinTransformAddBefore ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> xmlSecBinTransformAddBefore
+ (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> curTransform,
+ <GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> newTransform);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds <TT
+CLASS="PARAMETER"
+><I
+>newTransform</I
+></TT
+> before the <TT
+CLASS="PARAMETER"
+><I
+>curTransform</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8318"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>curTransform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to current transform (may be NULL).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>newTransform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to new transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>pointer to the new transforms chain or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8335"
+></A
+><H3
+><A
+NAME="XMLSECBINTRANSFORMREMOVE"
+></A
+>xmlSecBinTransformRemove ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecBinTransformRemove (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Removes <TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+> from the chain. This method MUST be called by any
+bin transform id destructor.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8343"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORM"
+>xmlSecTransform</A
+> structure.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8353"
+></A
+><H3
+><A
+NAME="XMLSECBINTRANSFORMDESTROYALL"
+></A
+>xmlSecBinTransformDestroyAll ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecBinTransformDestroyAll (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Destroys all transforms in the chain.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8360"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORM"
+>xmlSecTransform</A
+> structure.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8370"
+></A
+><H3
+><A
+NAME="XMLSECBINTRANSFORMSETENCRYPT"
+></A
+>xmlSecBinTransformSetEncrypt ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecBinTransformSetEncrypt (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ int encrypt);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Sets the <TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+> direction - encrypt/decrypt (or encode/decode).</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8378"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORM"
+>xmlSecTransform</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>encrypt</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the encrypt/decrypt (or encode/decode) flag.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8392"
+></A
+><H3
+><A
+NAME="XMLSECBINTRANSFORMADDKEYMETHOD"
+></A
+>xmlSecBinTransformAddKeyMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int (*xmlSecBinTransformAddKeyMethod)
+ (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform,
+ <GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key);</PRE
+></TD
+></TR
+></TABLE
+><P
+>The transform specific method to set key for use.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8400"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to binary transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to key.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8417"
+></A
+><H3
+><A
+NAME="XMLSECBINTRANSFORMREADMETHOD"
+></A
+>xmlSecBinTransformReadMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int (*xmlSecBinTransformReadMethod) (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>The transform specific method to read next chunk of binary data into <TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8426"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORM"
+>xmlSecTransform</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the output buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the output buffer size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the number of bytes in the buffer or negative value
+if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8448"
+></A
+><H3
+><A
+NAME="XMLSECBINTRANSFORMWRITEMETHOD"
+></A
+>xmlSecBinTransformWriteMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int (*xmlSecBinTransformWriteMethod)
+ (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>The transform specific method to write next chunk of binary data from <TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8457"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORM"
+>xmlSecTransform</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input data buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input data size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 if success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8479"
+></A
+><H3
+><A
+NAME="XMLSECBINTRANSFORMFLUSHMETHOD"
+></A
+>xmlSecBinTransformFlushMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int (*xmlSecBinTransformFlushMethod)
+ (<GTKDOCLINK
+HREF="XMLSECBINTRANSFORMPTR"
+>xmlSecBinTransformPtr</GTKDOCLINK
+> transform);</PRE
+></TD
+></TR
+></TABLE
+><P
+>The transform specific method to finalize writing.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8486"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORM"
+>xmlSecTransform</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 if success or negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8500"
+></A
+><H3
+><A
+NAME="XMLSECXMLTRANSFORMID"
+></A
+>xmlSecXmlTransformId</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>typedef const struct _xmlSecXmlTransformIdStruct *xmlSecXmlTransformId;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The xml transform id (<TT
+CLASS="LITERAL"
+>xmlSecTransformTypeXml</TT
+> type).</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8507"
+></A
+><H3
+><A
+NAME="XMLSECXMLTRANSFORM"
+></A
+>struct xmlSecXmlTransform</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>struct xmlSecXmlTransform {
+ /* same as for xmlSecTransform but id type changed */
+ xmlSecXmlTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+
+ /* xmlSecXmlTransform specific */
+ xmlNodePtr here;
+ void *xmlData;
+};</PRE
+></TD
+></TR
+></TABLE
+><P
+>The XML transform structure.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8513"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFF0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-transformsinternal.html#XMLSECXMLTRANSFORMID"
+>xmlSecXmlTransformId</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>id</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform id (pointer to <A
+HREF="xmlsec-transformsinternal.html#XMLSECXMLTRANSFORMID"
+>xmlSecXmlTransformId</A
+>).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMSTATUS"
+>xmlSecTransformStatus</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>status</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform status (ok/fail/unknown).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>int <TT
+CLASS="STRUCTFIELD"
+><I
+>dontDestroy</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the don't automatically destroy flag.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>void *<TT
+CLASS="STRUCTFIELD"
+><I
+>data</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to transform specific data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>here</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to transform's &lt;dsig:Transform&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>void *<TT
+CLASS="STRUCTFIELD"
+><I
+>xmlData</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to xml transform specific data.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8546"
+></A
+><H3
+><A
+NAME="XMLSECXMLTRANSFORMEXECUTEMETHOD"
+></A
+>xmlSecXmlTransformExecuteMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int (*xmlSecXmlTransformExecuteMethod)
+ (<GTKDOCLINK
+HREF="XMLSECXMLTRANSFORMPTR"
+>xmlSecXmlTransformPtr</GTKDOCLINK
+> transform,
+ <GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> ctxDoc,
+ <GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> *doc,
+ <GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> *nodes);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Transform specific execute method. Returns result nodes set in <TT
+CLASS="PARAMETER"
+><I
+>nodes</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8557"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to XML transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ctxDoc</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the document containing the transform's
+ &lt;dsig:Transform&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>doc</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the pointer to current document.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>nodes</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the pointer to current and result nodes set.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8582"
+></A
+><H3
+><A
+NAME="XMLSECXMLTRANSFORMEXECUTE"
+></A
+>xmlSecXmlTransformExecute ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecXmlTransformExecute (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ <GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> ctxDoc,
+ <GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> *doc,
+ <GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> *nodes);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Executes the XML <TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+> and returns result nodes set in <TT
+CLASS="PARAMETER"
+><I
+>nodes</I
+></TT
+>
+(wrapper for transform specific <GTKDOCLINK
+HREF="EXECUTEXML"
+>executeXml</GTKDOCLINK
+>() method).</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8595"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to XML transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ctxDoc</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the document containing the transform's
+ &lt;dsig:Transform&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>doc</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the pointer to current document.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>nodes</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the pointer to current and result nodes set.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8620"
+></A
+><H3
+><A
+NAME="XMLSECC14NTRANSFORMID"
+></A
+>xmlSecC14NTransformId</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>typedef const struct _xmlSecC14NTransformIdStruct *xmlSecC14NTransformId;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The C14N transform id structure (<TT
+CLASS="LITERAL"
+>xmlSecTransformTypeC14N</TT
+> type).</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8627"
+></A
+><H3
+><A
+NAME="XMLSECC14NTRANSFORM"
+></A
+>struct xmlSecC14NTransform</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>struct xmlSecC14NTransform {
+ /* same as for xmlSecTransform but id type changed */
+ xmlSecC14NTransformId id;
+ xmlSecTransformStatus status;
+ int dontDestroy;
+ void *data;
+
+ /* xmlSecC14NTransform specific */
+ void *c14nData;
+};</PRE
+></TD
+></TR
+></TABLE
+><P
+>The C14N transform structure.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8633"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFF0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-transformsinternal.html#XMLSECC14NTRANSFORMID"
+>xmlSecC14NTransformId</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>id</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform id (pointer to <A
+HREF="xmlsec-transformsinternal.html#XMLSECC14NTRANSFORMID"
+>xmlSecC14NTransformId</A
+>).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMSTATUS"
+>xmlSecTransformStatus</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>status</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform status (ok/fail/unknown).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>int <TT
+CLASS="STRUCTFIELD"
+><I
+>dontDestroy</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the don't automatically destroy flag.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>void *<TT
+CLASS="STRUCTFIELD"
+><I
+>data</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to transform specific data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>void *<TT
+CLASS="STRUCTFIELD"
+><I
+>c14nData</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to transform specific data.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8661"
+></A
+><H3
+><A
+NAME="XMLSECC14NTRANSFORMEXECUTEMETHOD"
+></A
+>xmlSecC14NTransformExecuteMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int (*xmlSecC14NTransformExecuteMethod)
+ (<GTKDOCLINK
+HREF="XMLSECC14NTRANSFORMPTR"
+>xmlSecC14NTransformPtr</GTKDOCLINK
+> transform,
+ <GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> doc,
+ <GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> nodes,
+ <GTKDOCLINK
+HREF="XMLOUTPUTBUFFERPTR"
+>xmlOutputBufferPtr</GTKDOCLINK
+> buffer);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Transform specific execute method. returns result in the <TT
+CLASS="PARAMETER"
+><I
+>buffer</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8672"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to C14N transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>doc</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to current document.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>nodes</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to current nodes set.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buffer</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the result buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8697"
+></A
+><H3
+><A
+NAME="XMLSECC14NTRANSFORMEXECUTE"
+></A
+>xmlSecC14NTransformExecute ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecC14NTransformExecute (<GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform,
+ <GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> doc,
+ <GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> nodes,
+ <GTKDOCLINK
+HREF="XMLOUTPUTBUFFERPTR"
+>xmlOutputBufferPtr</GTKDOCLINK
+> buffer);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Executes the C14N <TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+> and returns result in the <TT
+CLASS="PARAMETER"
+><I
+>buffer</I
+></TT
+>
+(wrapper for transform specific <GTKDOCLINK
+HREF="EXECUTEC14N"
+>executeC14n</GTKDOCLINK
+>() method). If the
+<TT
+CLASS="PARAMETER"
+><I
+>trnaform</I
+></TT
+> is NULL then the default <A
+HREF="xmlsec-transforms.html#XMLSECC14NINCLUSIVE"
+>xmlSecC14NInclusive</A
+>
+transform is executed.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8712"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to C14N transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>doc</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to current document.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>nodes</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to current nodes set.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buffer</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the result buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8737"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMSTATE"
+></A
+>struct xmlSecTransformState</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>struct xmlSecTransformState {
+ /* initial state */
+ xmlDocPtr initDoc;
+ xmlSecNodeSetPtr initNodeSet;
+ char *initUri;
+
+ /* current state: xml */
+ xmlDocPtr curDoc;
+ xmlSecNodeSetPtr curNodeSet;
+
+ /* current state: binary */
+ xmlBufferPtr curBuf;
+ xmlSecTransformPtr curFirstBinTransform;
+ xmlSecTransformPtr curLastBinTransform;
+
+ /* optimization: special case for c14n transforms */
+ xmlSecTransformPtr curC14NTransform;
+};</PRE
+></TD
+></TR
+></TABLE
+><P
+>The current transforms state.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8743"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFF0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>initDoc</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the original xml document.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>initNodeSet</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the original nodes set.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>char *<TT
+CLASS="STRUCTFIELD"
+><I
+>initUri</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the original uri.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>curDoc</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the current doc.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>curNodeSet</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the current nodes set.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLBUFFERPTR"
+>xmlBufferPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>curBuf</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the current binary data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>curFirstBinTransform</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the first pending binary transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>curLastBinTransform</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the last pending binary transform.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>curC14NTransform</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the current pending c14n transform.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8792"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMSTATECREATE"
+></A
+>xmlSecTransformStateCreate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECTRANSFORMSTATEPTR"
+>xmlSecTransformStatePtr</GTKDOCLINK
+> xmlSecTransformStateCreate
+ (<GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> doc,
+ <GTKDOCLINK
+HREF="XMLSECNODESETPTR"
+>xmlSecNodeSetPtr</GTKDOCLINK
+> nodeSet,
+ const char *uri);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Creates new transform state.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8801"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>doc</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to XML document that contains &lt;dsig:Signature&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>nodeSet</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the original nodes set.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>uri</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the original uri.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>pointer to newly allocated <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMSTATE"
+>xmlSecTransformState</A
+> structure
+or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8823"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMSTATEDESTROY"
+></A
+>xmlSecTransformStateDestroy ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecTransformStateDestroy (<GTKDOCLINK
+HREF="XMLSECTRANSFORMSTATEPTR"
+>xmlSecTransformStatePtr</GTKDOCLINK
+> state);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Destroys the transform state.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8830"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>state</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMSTATE"
+>xmlSecTransformState</A
+> structure.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8840"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMSTATEUPDATE"
+></A
+>xmlSecTransformStateUpdate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecTransformStateUpdate (<GTKDOCLINK
+HREF="XMLSECTRANSFORMSTATEPTR"
+>xmlSecTransformStatePtr</GTKDOCLINK
+> state,
+ <GTKDOCLINK
+HREF="XMLSECTRANSFORMPTR"
+>xmlSecTransformPtr</GTKDOCLINK
+> transform);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Updates the current <TT
+CLASS="PARAMETER"
+><I
+>state</I
+></TT
+> with <TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>. Note all transforms are
+applied immidiatelly.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8850"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>state</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMSTATE"
+>xmlSecTransformState</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORM"
+>xmlSecTransform</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8869"
+></A
+><H3
+><A
+NAME="XMLSECTRANSFORMSTATEFINAL"
+></A
+>xmlSecTransformStateFinal ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecTransformStateFinal (<GTKDOCLINK
+HREF="XMLSECTRANSFORMSTATEPTR"
+>xmlSecTransformStatePtr</GTKDOCLINK
+> state,
+ <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMRESULT"
+>xmlSecTransformResult</A
+> type);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Finalazies transforms <TT
+CLASS="PARAMETER"
+><I
+>state</I
+></TT
+> (applies all pending transforms) and
+creates a result of the desired <TT
+CLASS="PARAMETER"
+><I
+>type</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8879"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>state</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-transformsinternal.html#XMLSECTRANSFORMSTATE"
+>xmlSecTransformState</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>type</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the desired final type.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-nodeset.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref-int.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-xmltree.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>nodeset.h</B
+></FONT
+></TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>xmltree.h</B
+></FONT
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/docs/api-0.0.x/xmlsec-undocumented.txt b/docs/api-0.0.x/xmlsec-undocumented.txt
new file mode 100644
index 00000000..ee2cc1cb
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-undocumented.txt
@@ -0,0 +1,5 @@
+100% function docs coverage.
+271 functions documented.
+0 not documented.
+
+
diff --git a/docs/api-0.0.x/xmlsec-unused.txt b/docs/api-0.0.x/xmlsec-unused.txt
new file mode 100644
index 00000000..18b254cc
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-unused.txt
@@ -0,0 +1,23 @@
+ATTRIBUTE_UNUSED
+xmlSecX509StorePtr
+XMLSEC_ERRORS_R_CERT_NOT_YET_VALID
+xmlSecSimpleKeysMngrSetCertsFlags
+xmlSecX509Data
+xmlSecX509Store
+xmlSecC14NTransformIdStruct
+xmlSecKeyIdStruct
+xmlSecBufferedTransformIdStruct
+extern
+xmlSecDSigResultDebugXmlDump
+XMLSEC_ERRORS_R_CERT_ISSUER_FAILED
+xmlSecDigestTransformIdStruct
+xmlSecSimpleKeysMngrSetVerifyDepth
+xmlSecBinTransformIdStruct
+xmlSecX509DataPtr
+xmlSecEncResultDebugXmlDump
+xmlSecX509DataDebugXmlDump
+xmlSecCipherTransformIdStruct
+xmlSecKeyDebugXmlDump
+XMLSEC_ERRORS_R_CERT_HAS_EXPIRED
+xmlSecXmlTransformIdStruct
+xmlSecTransformIdStruct
diff --git a/docs/api-0.0.x/xmlsec-version.html b/docs/api-0.0.x/xmlsec-version.html
new file mode 100644
index 00000000..3794f49d
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-version.html
@@ -0,0 +1,438 @@
+<HTML
+><HEAD
+><TITLE
+>version.h</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="XML Security Library Reference Manual"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="XML Security Library Reference"
+HREF="xmlsec-ref.html"><LINK
+REL="PREVIOUS"
+TITLE="transforms.h"
+HREF="xmlsec-transforms.html"><LINK
+REL="NEXT"
+TITLE="x509.h"
+HREF="xmlsec-x509.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="4"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="5"
+>XML Security Library Reference Manual</FONT
+></TH
+></TR
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-transforms.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-x509.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+></TABLE
+></DIV
+><H1
+><A
+NAME="XMLSEC-VERSION"
+></A
+>version.h</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN4345"
+></A
+><H2
+>Name</H2
+>version.h&nbsp;--&nbsp;The library version infromation.</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN4348"
+></A
+><H2
+>Synopsis</H2
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="SYNOPSIS"
+>&#13;
+
+#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
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN4356"
+></A
+><H2
+>Description</H2
+><P
+></P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN4359"
+></A
+><H2
+>Details</H2
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4361"
+></A
+><H3
+><A
+NAME="XMLSEC-VERSION-CAPS"
+></A
+>XMLSEC_VERSION</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_VERSION "0.0.12"</PRE
+></TD
+></TR
+></TABLE
+><P
+>The library version string in the format
+"&lt;major-number&gt;.&lt;minor-number&gt;.&lt;sub-minor-number&gt;".</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4367"
+></A
+><H3
+><A
+NAME="XMLSEC-VERSION-MAJOR-CAPS"
+></A
+>XMLSEC_VERSION_MAJOR</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_VERSION_MAJOR 0</PRE
+></TD
+></TR
+></TABLE
+><P
+>The library major version number.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4373"
+></A
+><H3
+><A
+NAME="XMLSEC-VERSION-MINOR-CAPS"
+></A
+>XMLSEC_VERSION_MINOR</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_VERSION_MINOR 0</PRE
+></TD
+></TR
+></TABLE
+><P
+>The library minor version number.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4379"
+></A
+><H3
+><A
+NAME="XMLSEC-VERSION-SUBMINOR-CAPS"
+></A
+>XMLSEC_VERSION_SUBMINOR</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_VERSION_SUBMINOR 12</PRE
+></TD
+></TR
+></TABLE
+><P
+>The library sub-minor version number.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4385"
+></A
+><H3
+><A
+NAME="XMLSEC-VERSION-INFO-CAPS"
+></A
+>XMLSEC_VERSION_INFO</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define XMLSEC_VERSION_INFO "0:12:0"</PRE
+></TD
+></TR
+></TABLE
+><P
+>The library version info string in the format
+"&lt;major-number&gt;+&lt;minor-number&gt;:&lt;sub-minor-number&gt;:&lt;minor-number&gt;".</P
+><P
+></P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-transforms.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-x509.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>transforms.h</B
+></FONT
+></TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>x509.h</B
+></FONT
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/docs/api-0.0.x/xmlsec-x509.html b/docs/api-0.0.x/xmlsec-x509.html
new file mode 100644
index 00000000..5155ae4a
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-x509.html
@@ -0,0 +1,2656 @@
+<HTML
+><HEAD
+><TITLE
+>x509.h</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="XML Security Library Reference Manual"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="XML Security Library Reference"
+HREF="xmlsec-ref.html"><LINK
+REL="PREVIOUS"
+TITLE="version.h"
+HREF="xmlsec-version.html"><LINK
+REL="NEXT"
+TITLE="XML Security Library Internal Functions Reference"
+HREF="xmlsec-ref-int.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="4"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="5"
+>XML Security Library Reference Manual</FONT
+></TH
+></TR
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-version.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-ref-int.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+></TABLE
+></DIV
+><H1
+><A
+NAME="XMLSEC-X509"
+></A
+>x509.h</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN4396"
+></A
+><H2
+>Name</H2
+>x509.h&nbsp;--&nbsp;The X509 certificates functions.</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN4399"
+></A
+><H2
+>Synopsis</H2
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="SYNOPSIS"
+>&#13;
+
+<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-x509.html#XMLSECX509DATACREATE"
+>xmlSecX509DataCreate</A
+> (void);
+void <A
+HREF="xmlsec-x509.html#XMLSECX509DATADESTROY"
+>xmlSecX509DataDestroy</A
+> (<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> x509Data);
+<GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> <A
+HREF="xmlsec-x509.html#XMLSECX509DATAGETCERTSNUMBER"
+>xmlSecX509DataGetCertsNumber</A
+> (<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> x509Data);
+<GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> <A
+HREF="xmlsec-x509.html#XMLSECX509DATAGETCRLSNUMBER"
+>xmlSecX509DataGetCrlsNumber</A
+> (<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> x509Data);
+int <A
+HREF="xmlsec-x509.html#XMLSECX509DATAREADDERCERT"
+>xmlSecX509DataReadDerCert</A
+> (<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> x509Data,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size,
+ int base64);
+<GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+>* <A
+HREF="xmlsec-x509.html#XMLSECX509DATAWRITEDERCERT"
+>xmlSecX509DataWriteDerCert</A
+> (<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> x509Data,
+ int pos);
+int <A
+HREF="xmlsec-x509.html#XMLSECX509DATAREADDERCRL"
+>xmlSecX509DataReadDerCrl</A
+> (<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> x509Data,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size,
+ int base64);
+<GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+>* <A
+HREF="xmlsec-x509.html#XMLSECX509DATAWRITEDERCRL"
+>xmlSecX509DataWriteDerCrl</A
+> (<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> x509Data,
+ int pos);
+int <A
+HREF="xmlsec-x509.html#XMLSECX509DATAREADPEMCERT"
+>xmlSecX509DataReadPemCert</A
+> (<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> x509Data,
+ const char *filename);
+<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-x509.html#XMLSECX509DATADUP"
+>xmlSecX509DataDup</A
+> (<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> x509Data);
+<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-x509.html#XMLSECX509DATACREATEKEY"
+>xmlSecX509DataCreateKey</A
+> (<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> x509Data);
+void <A
+HREF="xmlsec-x509.html#XMLSECX509DATADEBUGDUMP"
+>xmlSecX509DataDebugDump</A
+> (<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> x509Data,
+ <GTKDOCLINK
+HREF="FILE-CAPS"
+>FILE</GTKDOCLINK
+> *output);
+<GTKDOCLINK
+HREF="XMLSECX509STOREPTR"
+>xmlSecX509StorePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-x509.html#XMLSECX509STORECREATE"
+>xmlSecX509StoreCreate</A
+> (void);
+void <A
+HREF="xmlsec-x509.html#XMLSECX509STOREDESTROY"
+>xmlSecX509StoreDestroy</A
+> (<GTKDOCLINK
+HREF="XMLSECX509STOREPTR"
+>xmlSecX509StorePtr</GTKDOCLINK
+> store);
+<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-x509.html#XMLSECX509STOREFIND"
+>xmlSecX509StoreFind</A
+> (<GTKDOCLINK
+HREF="XMLSECX509STOREPTR"
+>xmlSecX509StorePtr</GTKDOCLINK
+> store,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *subjectName,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *issuerName,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *issuerSerial,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *ski,
+ <GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> x509Data);
+int <A
+HREF="xmlsec-x509.html#XMLSECX509STOREVERIFY"
+>xmlSecX509StoreVerify</A
+> (<GTKDOCLINK
+HREF="XMLSECX509STOREPTR"
+>xmlSecX509StorePtr</GTKDOCLINK
+> store,
+ <GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> x509Data);
+int <A
+HREF="xmlsec-x509.html#XMLSECX509STORELOADPEMCERT"
+>xmlSecX509StoreLoadPemCert</A
+> (<GTKDOCLINK
+HREF="XMLSECX509STOREPTR"
+>xmlSecX509StorePtr</GTKDOCLINK
+> store,
+ const char *filename,
+ int trusted);
+int <A
+HREF="xmlsec-x509.html#XMLSECX509STOREADDCERTSDIR"
+>xmlSecX509StoreAddCertsDir</A
+> (<GTKDOCLINK
+HREF="XMLSECX509STOREPTR"
+>xmlSecX509StorePtr</GTKDOCLINK
+> store,
+ const char *path);
+<GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-x509.html#XMLSECPKCS12READKEY"
+>xmlSecPKCS12ReadKey</A
+> (const char *filename,
+ const char *pwd);</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN4458"
+></A
+><H2
+>Description</H2
+><P
+></P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN4461"
+></A
+><H2
+>Details</H2
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4463"
+></A
+><H3
+><A
+NAME="XMLSECX509DATACREATE"
+></A
+>xmlSecX509DataCreate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> xmlSecX509DataCreate (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Creates new x509 data.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4470"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly created <GTKDOCLINK
+HREF="XMLSECX509DATA"
+>xmlSecX509Data</GTKDOCLINK
+> structure
+or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4480"
+></A
+><H3
+><A
+NAME="XMLSECX509DATADESTROY"
+></A
+>xmlSecX509DataDestroy ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecX509DataDestroy (<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> x509Data);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Destroys x509 data.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4487"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>x509Data</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <GTKDOCLINK
+HREF="XMLSECX509DATA"
+>xmlSecX509Data</GTKDOCLINK
+> structure.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4497"
+></A
+><H3
+><A
+NAME="XMLSECX509DATAGETCERTSNUMBER"
+></A
+>xmlSecX509DataGetCertsNumber ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> xmlSecX509DataGetCertsNumber (<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> x509Data);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Gets the number of certs in <TT
+CLASS="PARAMETER"
+><I
+>x509Data</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4506"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>x509Data</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <GTKDOCLINK
+HREF="XMLSECX509DATA"
+>xmlSecX509Data</GTKDOCLINK
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the number of certs in <TT
+CLASS="PARAMETER"
+><I
+>x509Data</I
+></TT
+>.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4521"
+></A
+><H3
+><A
+NAME="XMLSECX509DATAGETCRLSNUMBER"
+></A
+>xmlSecX509DataGetCrlsNumber ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> xmlSecX509DataGetCrlsNumber (<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> x509Data);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Gets the number of crls in <TT
+CLASS="PARAMETER"
+><I
+>x509Data</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4530"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>x509Data</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <GTKDOCLINK
+HREF="XMLSECX509DATA"
+>xmlSecX509Data</GTKDOCLINK
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the number of crls in <TT
+CLASS="PARAMETER"
+><I
+>x509Data</I
+></TT
+>.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4545"
+></A
+><H3
+><A
+NAME="XMLSECX509DATAREADDERCERT"
+></A
+>xmlSecX509DataReadDerCert ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecX509DataReadDerCert (<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> x509Data,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size,
+ int base64);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Reads certificates the from a DER binary data in <TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4555"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>x509Data</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <GTKDOCLINK
+HREF="XMLSECX509DATA"
+>xmlSecX509Data</GTKDOCLINK
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to binary data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the size of binary data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>base64</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the flag that indicate whether the <TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+> is base64 encoded or not.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4582"
+></A
+><H3
+><A
+NAME="XMLSECX509DATAWRITEDERCERT"
+></A
+>xmlSecX509DataWriteDerCert ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+>* xmlSecX509DataWriteDerCert (<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> x509Data,
+ int pos);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Writes <TT
+CLASS="PARAMETER"
+><I
+>pos</I
+></TT
+> certificate from <TT
+CLASS="PARAMETER"
+><I
+>x509Data</I
+></TT
+> into allocated buffer
+in DER + base64 encode format. The caller is responsible for freeing
+the returned buffer using <GTKDOCLINK
+HREF="XMLFREE"
+>xmlFree</GTKDOCLINK
+>() function.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4593"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>x509Data</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <GTKDOCLINK
+HREF="XMLSECX509DATA"
+>xmlSecX509Data</GTKDOCLINK
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>pos</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the cert number.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to allocated result buffer or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4611"
+></A
+><H3
+><A
+NAME="XMLSECX509DATAREADDERCRL"
+></A
+>xmlSecX509DataReadDerCrl ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecX509DataReadDerCrl (<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> x509Data,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size,
+ int base64);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Reads crls the from a DER binary data in <TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4621"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>x509Data</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <GTKDOCLINK
+HREF="XMLSECX509DATA"
+>xmlSecX509Data</GTKDOCLINK
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to binary data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the size of binary data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>base64</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the flag that indicate whether the <TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+> is base64 encoded or not.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4648"
+></A
+><H3
+><A
+NAME="XMLSECX509DATAWRITEDERCRL"
+></A
+>xmlSecX509DataWriteDerCrl ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+>* xmlSecX509DataWriteDerCrl (<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> x509Data,
+ int pos);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Writes <TT
+CLASS="PARAMETER"
+><I
+>pos</I
+></TT
+> crl from <TT
+CLASS="PARAMETER"
+><I
+>x509Data</I
+></TT
+> into allocated buffer
+in DER + base64 encode format. The caller is responsible for freeing
+the returned buffer using <GTKDOCLINK
+HREF="XMLFREE"
+>xmlFree</GTKDOCLINK
+>() function.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4659"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>x509Data</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <GTKDOCLINK
+HREF="XMLSECX509DATA"
+>xmlSecX509Data</GTKDOCLINK
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>pos</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the cert number.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to allocated result buffer or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4677"
+></A
+><H3
+><A
+NAME="XMLSECX509DATAREADPEMCERT"
+></A
+>xmlSecX509DataReadPemCert ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecX509DataReadPemCert (<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> x509Data,
+ const char *filename);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Reads cert from PEM file <TT
+CLASS="PARAMETER"
+><I
+>filename</I
+></TT
+> into <TT
+CLASS="PARAMETER"
+><I
+>x509Data</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4686"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>x509Data</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <GTKDOCLINK
+HREF="XMLSECX509DATA"
+>xmlSecX509Data</GTKDOCLINK
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>filename</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the PEM file name.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4704"
+></A
+><H3
+><A
+NAME="XMLSECX509DATADUP"
+></A
+>xmlSecX509DataDup ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> xmlSecX509DataDup (<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> x509Data);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Duplicates the <TT
+CLASS="PARAMETER"
+><I
+>x509Data</I
+></TT
+> structure.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4713"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>x509Data</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <GTKDOCLINK
+HREF="XMLSECX509DATA"
+>xmlSecX509Data</GTKDOCLINK
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly created <GTKDOCLINK
+HREF="XMLSECX509DATA"
+>xmlSecX509Data</GTKDOCLINK
+> structure
+or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4728"
+></A
+><H3
+><A
+NAME="XMLSECX509DATACREATEKEY"
+></A
+>xmlSecX509DataCreateKey ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> xmlSecX509DataCreateKey (<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> x509Data);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Creates the key from <TT
+CLASS="PARAMETER"
+><I
+>x509Data</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4737"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>x509Data</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <GTKDOCLINK
+HREF="XMLSECX509DATA"
+>xmlSecX509Data</GTKDOCLINK
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly allocated key or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4751"
+></A
+><H3
+><A
+NAME="XMLSECX509DATADEBUGDUMP"
+></A
+>xmlSecX509DataDebugDump ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecX509DataDebugDump (<GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> x509Data,
+ <GTKDOCLINK
+HREF="FILE-CAPS"
+>FILE</GTKDOCLINK
+> *output);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Prints the information about <TT
+CLASS="PARAMETER"
+><I
+>x509Data</I
+></TT
+> to <TT
+CLASS="PARAMETER"
+><I
+>output</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4761"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>x509Data</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <GTKDOCLINK
+HREF="XMLSECX509DATA"
+>xmlSecX509Data</GTKDOCLINK
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>output</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <GTKDOCLINK
+HREF="FILE-CAPS"
+>FILE</GTKDOCLINK
+> structure.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4776"
+></A
+><H3
+><A
+NAME="XMLSECX509STORECREATE"
+></A
+>xmlSecX509StoreCreate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECX509STOREPTR"
+>xmlSecX509StorePtr</GTKDOCLINK
+> xmlSecX509StoreCreate (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Creates new x509 store.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4783"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly allocated <GTKDOCLINK
+HREF="XMLSECX509STORE"
+>xmlSecX509Store</GTKDOCLINK
+> structure.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4793"
+></A
+><H3
+><A
+NAME="XMLSECX509STOREDESTROY"
+></A
+>xmlSecX509StoreDestroy ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecX509StoreDestroy (<GTKDOCLINK
+HREF="XMLSECX509STOREPTR"
+>xmlSecX509StorePtr</GTKDOCLINK
+> store);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Destroys the <GTKDOCLINK
+HREF="XMLSECX509STORE"
+>xmlSecX509Store</GTKDOCLINK
+> structure.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4801"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>store</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <GTKDOCLINK
+HREF="XMLSECX509STORE"
+>xmlSecX509Store</GTKDOCLINK
+> structure.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4811"
+></A
+><H3
+><A
+NAME="XMLSECX509STOREFIND"
+></A
+>xmlSecX509StoreFind ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> xmlSecX509StoreFind (<GTKDOCLINK
+HREF="XMLSECX509STOREPTR"
+>xmlSecX509StorePtr</GTKDOCLINK
+> store,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *subjectName,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *issuerName,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *issuerSerial,
+ <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *ski,
+ <GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> x509Data);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Searches for matching certificate in the keys manager.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4824"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>store</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <GTKDOCLINK
+HREF="XMLSECX509STORE"
+>xmlSecX509Store</GTKDOCLINK
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>subjectName</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the subject name string.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>issuerName</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the issuer name string.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>issuerSerial</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the issuer serial.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ski</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the SKI string.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>x509Data</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the current X509 certs data (may be NULL). </TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to certificate that matches given criteria or NULL
+if an error occurs or certificate not found.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4858"
+></A
+><H3
+><A
+NAME="XMLSECX509STOREVERIFY"
+></A
+>xmlSecX509StoreVerify ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecX509StoreVerify (<GTKDOCLINK
+HREF="XMLSECX509STOREPTR"
+>xmlSecX509StorePtr</GTKDOCLINK
+> store,
+ <GTKDOCLINK
+HREF="XMLSECX509DATAPTR"
+>xmlSecX509DataPtr</GTKDOCLINK
+> x509Data);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Verifies the cert(s) from <TT
+CLASS="PARAMETER"
+><I
+>x509Data</I
+></TT
+> against <TT
+CLASS="PARAMETER"
+><I
+>store</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4868"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>store</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <GTKDOCLINK
+HREF="XMLSECX509STORE"
+>xmlSecX509Store</GTKDOCLINK
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>x509Data</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <GTKDOCLINK
+HREF="XMLSECX509DATA"
+>xmlSecX509Data</GTKDOCLINK
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>1 if verification succeeded, 0 if not and a negative
+value if a processing error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4887"
+></A
+><H3
+><A
+NAME="XMLSECX509STORELOADPEMCERT"
+></A
+>xmlSecX509StoreLoadPemCert ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecX509StoreLoadPemCert (<GTKDOCLINK
+HREF="XMLSECX509STOREPTR"
+>xmlSecX509StorePtr</GTKDOCLINK
+> store,
+ const char *filename,
+ int trusted);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Reads cert from PEM <TT
+CLASS="PARAMETER"
+><I
+>filename</I
+></TT
+> and adds to the list of trusted or known
+untrusted certs in <TT
+CLASS="PARAMETER"
+><I
+>store</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4896"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>store</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <GTKDOCLINK
+HREF="XMLSECX509STORE"
+>xmlSecX509Store</GTKDOCLINK
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>filename</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the PEM file.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>trusted</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the flag that indicates is the certificate in <TT
+CLASS="PARAMETER"
+><I
+>filename</I
+></TT
+>
+ trusted or not.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4919"
+></A
+><H3
+><A
+NAME="XMLSECX509STOREADDCERTSDIR"
+></A
+>xmlSecX509StoreAddCertsDir ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecX509StoreAddCertsDir (<GTKDOCLINK
+HREF="XMLSECX509STOREPTR"
+>xmlSecX509StorePtr</GTKDOCLINK
+> store,
+ const char *path);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds all certs in the <TT
+CLASS="PARAMETER"
+><I
+>path</I
+></TT
+> to the list of trusted certs
+in <TT
+CLASS="PARAMETER"
+><I
+>store</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4928"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>store</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <GTKDOCLINK
+HREF="XMLSECX509STORE"
+>xmlSecX509Store</GTKDOCLINK
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>path</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the path to the certs dir.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN4946"
+></A
+><H3
+><A
+NAME="XMLSECPKCS12READKEY"
+></A
+>xmlSecPKCS12ReadKey ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> xmlSecPKCS12ReadKey (const char *filename,
+ const char *pwd);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Reads the key from pkcs12 file <TT
+CLASS="PARAMETER"
+><I
+>filename</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN4954"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>filename</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pkcs12 file name.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>pwd</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the password for the pkcs12 file.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly allocated key or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-version.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-ref-int.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>version.h</B
+></FONT
+></TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>XML Security Library Internal Functions Reference</B
+></FONT
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/docs/api-0.0.x/xmlsec-xmldsig.html b/docs/api-0.0.x/xmlsec-xmldsig.html
new file mode 100644
index 00000000..4dc5f68a
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-xmldsig.html
@@ -0,0 +1,4001 @@
+<HTML
+><HEAD
+><TITLE
+>xmldsig.h</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="XML Security Library Reference Manual"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="XML Security Library Reference"
+HREF="xmlsec-ref.html"><LINK
+REL="PREVIOUS"
+TITLE="xmlsec.h"
+HREF="xmlsec-xmlsec.html"><LINK
+REL="NEXT"
+TITLE="xmlenc.h"
+HREF="xmlsec-xmlenc.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="4"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="5"
+>XML Security Library Reference Manual</FONT
+></TH
+></TR
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-xmlsec.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-xmlenc.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+></TABLE
+></DIV
+><H1
+><A
+NAME="XMLSEC-XMLDSIG"
+></A
+>xmldsig.h</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN65"
+></A
+><H2
+>Name</H2
+>xmldsig.h&nbsp;--&nbsp;The <A
+HREF="http://www.w3.org/Signature/"
+TARGET="_top"
+>XML Digital Signature</A
+>
+standard implementation.</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN69"
+></A
+><H2
+>Synopsis</H2
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="SYNOPSIS"
+>&#13;
+
+struct <A
+HREF="xmlsec-xmldsig.html#XMLSECDSIGCTX"
+>xmlSecDSigCtx</A
+>;
+<GTKDOCLINK
+HREF="XMLSECDSIGCTXPTR"
+>xmlSecDSigCtxPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmldsig.html#XMLSECDSIGCTXCREATE"
+>xmlSecDSigCtxCreate</A
+> (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> keysMngr);
+void <A
+HREF="xmlsec-xmldsig.html#XMLSECDSIGCTXDESTROY"
+>xmlSecDSigCtxDestroy</A
+> (<GTKDOCLINK
+HREF="XMLSECDSIGCTXPTR"
+>xmlSecDSigCtxPtr</GTKDOCLINK
+> ctx);
+int <A
+HREF="xmlsec-xmldsig.html#XMLSECDSIGVALIDATE"
+>xmlSecDSigValidate</A
+> (<GTKDOCLINK
+HREF="XMLSECDSIGCTXPTR"
+>xmlSecDSigCtxPtr</GTKDOCLINK
+> ctx,
+ void *context,
+ <GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> signNode,
+ <GTKDOCLINK
+HREF="XMLSECDSIGRESULTPTR"
+>xmlSecDSigResultPtr</GTKDOCLINK
+> *result);
+int <A
+HREF="xmlsec-xmldsig.html#XMLSECDSIGGENERATE"
+>xmlSecDSigGenerate</A
+> (<GTKDOCLINK
+HREF="XMLSECDSIGCTXPTR"
+>xmlSecDSigCtxPtr</GTKDOCLINK
+> ctx,
+ void *context,
+ <GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> signNode,
+ <GTKDOCLINK
+HREF="XMLSECDSIGRESULTPTR"
+>xmlSecDSigResultPtr</GTKDOCLINK
+> *result);
+struct <A
+HREF="xmlsec-xmldsig.html#XMLSECDSIGRESULT"
+>xmlSecDSigResult</A
+>;
+struct <A
+HREF="xmlsec-xmldsig.html#XMLSECREFERENCERESULT"
+>xmlSecReferenceResult</A
+>;
+enum <A
+HREF="xmlsec-xmldsig.html#XMLSECREFERENCETYPE"
+>xmlSecReferenceType</A
+>;
+<GTKDOCLINK
+HREF="XMLSECDSIGRESULTPTR"
+>xmlSecDSigResultPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmldsig.html#XMLSECDSIGRESULTCREATE"
+>xmlSecDSigResultCreate</A
+> (<GTKDOCLINK
+HREF="XMLSECDSIGCTXPTR"
+>xmlSecDSigCtxPtr</GTKDOCLINK
+> ctx,
+ void *context,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> signNode,
+ int sign);
+void <A
+HREF="xmlsec-xmldsig.html#XMLSECDSIGRESULTDESTROY"
+>xmlSecDSigResultDestroy</A
+> (<GTKDOCLINK
+HREF="XMLSECDSIGRESULTPTR"
+>xmlSecDSigResultPtr</GTKDOCLINK
+> result);
+void <A
+HREF="xmlsec-xmldsig.html#XMLSECDSIGRESULTDEBUGDUMP"
+>xmlSecDSigResultDebugDump</A
+> (<GTKDOCLINK
+HREF="XMLSECDSIGRESULTPTR"
+>xmlSecDSigResultPtr</GTKDOCLINK
+> result,
+ <GTKDOCLINK
+HREF="FILE-CAPS"
+>FILE</GTKDOCLINK
+> *output);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmldsig.html#XMLSECSIGNATURECREATE"
+>xmlSecSignatureCreate</A
+> (const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *id);
+void <A
+HREF="xmlsec-xmldsig.html#XMLSECSIGNATUREDESTROY"
+>xmlSecSignatureDestroy</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> signNode);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmldsig.html#XMLSECSIGNATUREADDSIGNEDINFO"
+>xmlSecSignatureAddSignedInfo</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> signNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *id);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmldsig.html#XMLSECSIGNATUREADDKEYINFO"
+>xmlSecSignatureAddKeyInfo</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> signNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *id);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmldsig.html#XMLSECSIGNATUREADDOBJECT"
+>xmlSecSignatureAddObject</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> signNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *id,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *mimeType,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *encoding);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmldsig.html#XMLSECSIGNEDINFOADDC14NMETHOD"
+>xmlSecSignedInfoAddC14NMethod</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> signedInfoNode,
+ <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> c14nMethod);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmldsig.html#XMLSECSIGNEDINFOADDSIGNMETHOD"
+>xmlSecSignedInfoAddSignMethod</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> signedInfoNode,
+ <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> signMethod);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmldsig.html#XMLSECSIGNEDINFOADDREFERENCE"
+>xmlSecSignedInfoAddReference</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> signedInfoNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *id,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *uri,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *type);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmldsig.html#XMLSECREFERENCEADDDIGESTMETHOD"
+>xmlSecReferenceAddDigestMethod</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> refNode,
+ <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> digestMethod);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmldsig.html#XMLSECREFERENCEADDTRANSFORM"
+>xmlSecReferenceAddTransform</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> refNode,
+ <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> transform);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmldsig.html#XMLSECOBJECTADDSIGNPROPERTIES"
+>xmlSecObjectAddSignProperties</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> objectNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *id,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *target);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmldsig.html#XMLSECOBJECTADDMANIFEST"
+>xmlSecObjectAddManifest</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> objectNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *id);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmldsig.html#XMLSECMANIFESTADDREFERENCE"
+>xmlSecManifestAddReference</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> manifestNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *id,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *uri,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *type);</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN156"
+></A
+><H2
+>Description</H2
+><P
+></P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN159"
+></A
+><H2
+>Details</H2
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN161"
+></A
+><H3
+><A
+NAME="XMLSECDSIGCTX"
+></A
+>struct xmlSecDSigCtx</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>struct xmlSecDSigCtx {
+ xmlSecKeysMngrPtr keysMngr;
+ int processManifests;
+ int storeSignatures;
+ int storeReferences;
+ int storeManifests;
+ int fakeSignatures;
+ time_t certsVerificationTime;
+};</PRE
+></TD
+></TR
+></TABLE
+><P
+>XML DSig context.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN167"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFF0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>keysMngr</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the keys manager <A
+HREF="xmlsec-keys.html#XMLSECKEYSMNGR"
+>xmlSecKeysMngr</A
+>.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>int <TT
+CLASS="STRUCTFIELD"
+><I
+>processManifests</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> if 0 then &lt;dsig:Manifests&gt; nodes are not processed.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>int <TT
+CLASS="STRUCTFIELD"
+><I
+>storeSignatures</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> store the signed content just (&lt;dsig:SignedInfo&gt; element)
+before applying signature.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>int <TT
+CLASS="STRUCTFIELD"
+><I
+>storeReferences</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> store the result of processing &lt;dsig:Reference&gt; nodes in
+ &lt;dsig:SignedInfo&gt; nodes just before digesting.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>int <TT
+CLASS="STRUCTFIELD"
+><I
+>storeManifests</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> store the result of processing &lt;dsig:Reference&gt; nodes in
+&lt;dsig:Manifest&gt; nodes just before digesting (ignored if <TT
+CLASS="PARAMETER"
+><I
+>processManifest</I
+></TT
+> is 0).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>int <TT
+CLASS="STRUCTFIELD"
+><I
+>fakeSignatures</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> for performance testing only.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="TIME-T"
+>time_t</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>certsVerificationTime</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN204"
+></A
+><H3
+><A
+NAME="XMLSECDSIGCTXCREATE"
+></A
+>xmlSecDSigCtxCreate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECDSIGCTXPTR"
+>xmlSecDSigCtxPtr</GTKDOCLINK
+> xmlSecDSigCtxCreate (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> keysMngr);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Creates new <A
+HREF="xmlsec-xmldsig.html#XMLSECDSIGCTX"
+>xmlSecDSigCtx</A
+> structure.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN213"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>keysMngr</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-keys.html#XMLSECKEYSMNGR"
+>xmlSecKeysMngr</A
+> structure</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>pointer to newly allocated <A
+HREF="xmlsec-xmldsig.html#XMLSECDSIGCTX"
+>xmlSecDSigCtx</A
+> structure or NULL
+if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN228"
+></A
+><H3
+><A
+NAME="XMLSECDSIGCTXDESTROY"
+></A
+>xmlSecDSigCtxDestroy ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecDSigCtxDestroy (<GTKDOCLINK
+HREF="XMLSECDSIGCTXPTR"
+>xmlSecDSigCtxPtr</GTKDOCLINK
+> ctx);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Destroys <A
+HREF="xmlsec-xmldsig.html#XMLSECDSIGCTX"
+>xmlSecDSigCtx</A
+> structure <TT
+CLASS="PARAMETER"
+><I
+>ctx</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN237"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ctx</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-xmldsig.html#XMLSECDSIGCTX"
+>xmlSecDSigCtx</A
+> structure.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN247"
+></A
+><H3
+><A
+NAME="XMLSECDSIGVALIDATE"
+></A
+>xmlSecDSigValidate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecDSigValidate (<GTKDOCLINK
+HREF="XMLSECDSIGCTXPTR"
+>xmlSecDSigCtxPtr</GTKDOCLINK
+> ctx,
+ void *context,
+ <GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> signNode,
+ <GTKDOCLINK
+HREF="XMLSECDSIGRESULTPTR"
+>xmlSecDSigResultPtr</GTKDOCLINK
+> *result);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Validates the signature in <TT
+CLASS="PARAMETER"
+><I
+>signNode</I
+></TT
+> and stores the pointer to validation
+result structure <A
+HREF="xmlsec-xmldsig.html#XMLSECDSIGRESULT"
+>xmlSecDSigResult</A
+> in the <TT
+CLASS="PARAMETER"
+><I
+>result</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN260"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ctx</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-xmldsig.html#XMLSECDSIGCTX"
+>xmlSecDSigCtx</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>context</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to application specific data that will be
+ passed to all callback functions.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key to use (if NULL then the key specified in &lt;dsig:KeyInfo&gt;
+ will be used). </TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>signNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:Signature&gt; node that will be validated.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>result</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer where to store validation results.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 if there were no processing errors during validation or a negative
+value otherwise. The return value equal to 0 DOES NOT mean that the signature
+is valid: check the <GTKDOCLINK
+HREF="RESULT"
+>result</GTKDOCLINK
+> member of <A
+HREF="xmlsec-xmldsig.html#XMLSECDSIGRESULT"
+>xmlSecDSigResult</A
+> structure instead.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN292"
+></A
+><H3
+><A
+NAME="XMLSECDSIGGENERATE"
+></A
+>xmlSecDSigGenerate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecDSigGenerate (<GTKDOCLINK
+HREF="XMLSECDSIGCTXPTR"
+>xmlSecDSigCtxPtr</GTKDOCLINK
+> ctx,
+ void *context,
+ <GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> signNode,
+ <GTKDOCLINK
+HREF="XMLSECDSIGRESULTPTR"
+>xmlSecDSigResultPtr</GTKDOCLINK
+> *result);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Signs the data according to the template in <TT
+CLASS="PARAMETER"
+><I
+>signNode</I
+></TT
+> node.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN303"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ctx</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-xmldsig.html#XMLSECDSIGCTX"
+>xmlSecDSigCtx</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>context</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to application specific data that will be
+ passed to all callback functions.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key to use (if NULL then the key specified in &lt;dsig:KeyInfo&gt;
+ will be used). </TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>signNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:Signature&gt; node template.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>result</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer where to store signature results.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success and a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN333"
+></A
+><H3
+><A
+NAME="XMLSECDSIGRESULT"
+></A
+>struct xmlSecDSigResult</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>struct xmlSecDSigResult {
+ xmlSecDSigCtxPtr ctx;
+ void *context;
+ xmlNodePtr self;
+ int sign;
+ xmlSecTransformStatus result;
+ xmlSecTransformId signMethod;
+ xmlSecKeyPtr key;
+ xmlSecReferenceResultPtr firstSignRef;
+ xmlSecReferenceResultPtr lastSignRef;
+ xmlSecReferenceResultPtr firstManifestRef;
+ xmlSecReferenceResultPtr lastManifestRef;
+ xmlBufferPtr buffer;
+};</PRE
+></TD
+></TR
+></TABLE
+><P
+>XML DSig Result.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN339"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFF0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECDSIGCTXPTR"
+>xmlSecDSigCtxPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>ctx</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the DSig context <A
+HREF="xmlsec-xmldsig.html#XMLSECDSIGCTX"
+>xmlSecDSigCtx</A
+>.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>void *<TT
+CLASS="STRUCTFIELD"
+><I
+>context</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to application specific data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>self</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:Signature&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>int <TT
+CLASS="STRUCTFIELD"
+><I
+>sign</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the sign/verify flag.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMSTATUS"
+>xmlSecTransformStatus</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>result</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the signature verification/generation status.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>signMethod</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the signature algorithm .</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>key</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to signature key.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECREFERENCERESULTPTR"
+>xmlSecReferenceResultPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>firstSignRef</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the first &lt;dsig:SignedInfo&gt; reference result.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECREFERENCERESULTPTR"
+>xmlSecReferenceResultPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>lastSignRef</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the last &lt;dsig:SignedInfo&gt; reference result.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECREFERENCERESULTPTR"
+>xmlSecReferenceResultPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>firstManifestRef</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the first &lt;dsig:Manifest&gt; reference result
+ (valid only if the <GTKDOCLINK
+HREF="PROCESSMANIFESTS"
+>processManifests</GTKDOCLINK
+> flag in <TT
+CLASS="PARAMETER"
+><I
+>ctx</I
+></TT
+> is set to 1). </TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECREFERENCERESULTPTR"
+>xmlSecReferenceResultPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>lastManifestRef</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the last &lt;dsig:Manifest&gt; reference result
+ (valid only if the <GTKDOCLINK
+HREF="PROCESSMANIFESTS"
+>processManifests</GTKDOCLINK
+> flag in <TT
+CLASS="PARAMETER"
+><I
+>ctx</I
+></TT
+> is set to 1). </TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLBUFFERPTR"
+>xmlBufferPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>buffer</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to the signed content - the canonicalization of
+ &lt;dsig:SignedInfo&gt; node (valid only if the <GTKDOCLINK
+HREF="STORESIGNATURES"
+>storeSignatures</GTKDOCLINK
+> flag
+ in <GTKDOCLINK
+HREF="CTX"
+>ctx</GTKDOCLINK
+> structure is set to 1).</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN409"
+></A
+><H3
+><A
+NAME="XMLSECREFERENCERESULT"
+></A
+>struct xmlSecReferenceResult</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>struct xmlSecReferenceResult {
+ xmlSecDSigCtxPtr ctx;
+ xmlNodePtr self;
+ xmlSecReferenceType refType;
+ xmlSecTransformStatus result;
+ xmlSecReferenceResultPtr next;
+ xmlSecReferenceResultPtr prev;
+ xmlChar *uri;
+ xmlChar *id;
+ xmlChar *type;
+ xmlSecTransformId digestMethod;
+ xmlBufferPtr buffer;
+}; </PRE
+></TD
+></TR
+></TABLE
+><P
+>The result of &lt;dsig:Reference&gt; processing.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN415"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFF0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECDSIGCTXPTR"
+>xmlSecDSigCtxPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>ctx</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to DSig context.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>self</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:Reference&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-xmldsig.html#XMLSECREFERENCETYPE"
+>xmlSecReferenceType</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>refType</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the &lt;dsig:Reference&gt; node location.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMSTATUS"
+>xmlSecTransformStatus</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>result</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the verification/generation result.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECREFERENCERESULTPTR"
+>xmlSecReferenceResultPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>next</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the next reference result.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECREFERENCERESULTPTR"
+>xmlSecReferenceResultPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>prev</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the prev reference result.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *<TT
+CLASS="STRUCTFIELD"
+><I
+>uri</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the &lt;dsig:Reference&gt; node URI attribute.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *<TT
+CLASS="STRUCTFIELD"
+><I
+>id</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the &lt;dsig:Reference&gt; node Id attribute.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *<TT
+CLASS="STRUCTFIELD"
+><I
+>type</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the &lt;dsig:Reference&gt; node Type attribute.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>digestMethod</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the used digest algorithm id.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLBUFFERPTR"
+>xmlBufferPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>buffer</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to digested content (valid only if
+ the <GTKDOCLINK
+HREF="STOREREFERENCES"
+>storeReferences</GTKDOCLINK
+> or <GTKDOCLINK
+HREF="STOREMANIFESTS"
+>storeManifests</GTKDOCLINK
+> flags in <A
+HREF="xmlsec-xmldsig.html#XMLSECDSIGCTX"
+>xmlSecDSigCtx</A
+>).</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN478"
+></A
+><H3
+><A
+NAME="XMLSECREFERENCETYPE"
+></A
+>enum xmlSecReferenceType</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>typedef enum {
+ xmlSecSignedInfoReference,
+ xmlSecManifestReference
+} xmlSecReferenceType;</PRE
+></TD
+></TR
+></TABLE
+><P
+>The possible &lt;dsig:Reference&gt; node locations:
+in the &lt;dsig:SignedInfo&gt; node or in the &lt;dsig:Manifest&gt; node.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN484"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#F0F0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecSignedInfoReference</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> reference in &lt;dsig:SignedInfo&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><TT
+CLASS="LITERAL"
+>xmlSecManifestReference</TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> reference &lt;dsig:Manifest&gt; node.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN497"
+></A
+><H3
+><A
+NAME="XMLSECDSIGRESULTCREATE"
+></A
+>xmlSecDSigResultCreate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECDSIGRESULTPTR"
+>xmlSecDSigResultPtr</GTKDOCLINK
+> xmlSecDSigResultCreate (<GTKDOCLINK
+HREF="XMLSECDSIGCTXPTR"
+>xmlSecDSigCtxPtr</GTKDOCLINK
+> ctx,
+ void *context,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> signNode,
+ int sign);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Creates new <A
+HREF="xmlsec-xmldsig.html#XMLSECDSIGRESULT"
+>xmlSecDSigResult</A
+> structure.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN507"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ctx</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-xmldsig.html#XMLSECDSIGCTX"
+>xmlSecDSigCtx</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>context</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to application specific data that will be
+ passed to all callback functions.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>signNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:Signature&gt; node that will be validated.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>sign</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the sign or verify flag.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>newly created <A
+HREF="xmlsec-xmldsig.html#XMLSECDSIGRESULT"
+>xmlSecDSigResult</A
+> structure or NULL
+if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN534"
+></A
+><H3
+><A
+NAME="XMLSECDSIGRESULTDESTROY"
+></A
+>xmlSecDSigResultDestroy ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecDSigResultDestroy (<GTKDOCLINK
+HREF="XMLSECDSIGRESULTPTR"
+>xmlSecDSigResultPtr</GTKDOCLINK
+> result);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Destroys the <A
+HREF="xmlsec-xmldsig.html#XMLSECDSIGRESULT"
+>xmlSecDSigResult</A
+> structure <TT
+CLASS="PARAMETER"
+><I
+>result</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN543"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>result</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-xmldsig.html#XMLSECDSIGRESULT"
+>xmlSecDSigResult</A
+> structure.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN553"
+></A
+><H3
+><A
+NAME="XMLSECDSIGRESULTDEBUGDUMP"
+></A
+>xmlSecDSigResultDebugDump ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecDSigResultDebugDump (<GTKDOCLINK
+HREF="XMLSECDSIGRESULTPTR"
+>xmlSecDSigResultPtr</GTKDOCLINK
+> result,
+ <GTKDOCLINK
+HREF="FILE-CAPS"
+>FILE</GTKDOCLINK
+> *output);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Prints the <A
+HREF="xmlsec-xmldsig.html#XMLSECDSIGRESULT"
+>xmlSecDSigResult</A
+> structure <TT
+CLASS="PARAMETER"
+><I
+>result</I
+></TT
+> to file <TT
+CLASS="PARAMETER"
+><I
+>output</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN564"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>result</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-xmldsig.html#XMLSECDSIGRESULT"
+>xmlSecDSigResult</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>output</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to destination FILE.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN578"
+></A
+><H3
+><A
+NAME="XMLSECSIGNATURECREATE"
+></A
+>xmlSecSignatureCreate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecSignatureCreate (const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *id);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Creates new &lt;dsig:Signature&gt; node with the mandatory &lt;dsig:SignatureValue&gt;
+child. The application is responsible for inserting the returned node
+in the XML document.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN586"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the node id (may be NULL).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly created &lt;dsig:Signature&gt; node or NULL if an
+error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN599"
+></A
+><H3
+><A
+NAME="XMLSECSIGNATUREDESTROY"
+></A
+>xmlSecSignatureDestroy ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecSignatureDestroy (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> signNode);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Destroys standalone &lt;dsig:Signature&gt; node. You MUST not call this function
+if the &lt;dsig:Signature&gt; node was inserted in the XML document.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN606"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>signNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:Signature&gt; node.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN615"
+></A
+><H3
+><A
+NAME="XMLSECSIGNATUREADDSIGNEDINFO"
+></A
+>xmlSecSignatureAddSignedInfo ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecSignatureAddSignedInfo (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> signNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *id);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds &lt;dsig:SignedInfo&gt; node to the &lt;dsig:Signature&gt; node <TT
+CLASS="PARAMETER"
+><I
+>signNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN625"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>signNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:Signature&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the node id (may be NULL).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly created &lt;dsig:SignedInfo&gt; node or NULL if
+an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN642"
+></A
+><H3
+><A
+NAME="XMLSECSIGNATUREADDKEYINFO"
+></A
+>xmlSecSignatureAddKeyInfo ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecSignatureAddKeyInfo (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> signNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *id);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds &lt;dsig:KeyInfo&gt; node to the &lt;dsig:Signature&gt; node <TT
+CLASS="PARAMETER"
+><I
+>signNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN652"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>signNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:Signature&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the node id (may be NULL).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly created &lt;dsig:KeyInfo&gt; node or NULL if an
+error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN669"
+></A
+><H3
+><A
+NAME="XMLSECSIGNATUREADDOBJECT"
+></A
+>xmlSecSignatureAddObject ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecSignatureAddObject (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> signNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *id,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *mimeType,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *encoding);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds &lt;dsig:Object&gt; node to the &lt;dsig:Signature&gt; node <TT
+CLASS="PARAMETER"
+><I
+>signNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN681"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>signNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:Signature&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the node id (may be NULL).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>mimeType</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the object mime type (may be NULL).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>encoding</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the object encoding (may be NULL).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly created &lt;dsig:Object&gt; node or NULL
+if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN706"
+></A
+><H3
+><A
+NAME="XMLSECSIGNEDINFOADDC14NMETHOD"
+></A
+>xmlSecSignedInfoAddC14NMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecSignedInfoAddC14NMethod (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> signedInfoNode,
+ <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> c14nMethod);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds &lt;dsig:CanonicalizationMethod&gt; node with specified C14N algorithm
+<TT
+CLASS="PARAMETER"
+><I
+>c14nMethod</I
+></TT
+> to the &lt;dsig:SignedInfo&gt; node <TT
+CLASS="PARAMETER"
+><I
+>signedInfoNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN717"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>signedInfoNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:SignedInfo&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>c14nMethod</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the c14n method id.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly created &lt;dsig:CanonicalizationMethod&gt; node or
+NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN734"
+></A
+><H3
+><A
+NAME="XMLSECSIGNEDINFOADDSIGNMETHOD"
+></A
+>xmlSecSignedInfoAddSignMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecSignedInfoAddSignMethod (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> signedInfoNode,
+ <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> signMethod);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds &lt;dsig:SignatureMethod&gt; node with given signature algorithm
+<TT
+CLASS="PARAMETER"
+><I
+>signMethod</I
+></TT
+> to the &lt;dsig:SignedInfo&gt; node <TT
+CLASS="PARAMETER"
+><I
+>signedInfoNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN745"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>signedInfoNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:SignedInfo&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>signMethod</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the result method id. </TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly created &lt;dsig:SignatureMethod&gt; node or NULL
+if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN762"
+></A
+><H3
+><A
+NAME="XMLSECSIGNEDINFOADDREFERENCE"
+></A
+>xmlSecSignedInfoAddReference ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecSignedInfoAddReference (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> signedInfoNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *id,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *uri,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *type);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds &lt;dsig:Reference&gt; node with given URI (<TT
+CLASS="PARAMETER"
+><I
+>uri</I
+></TT
+>), Id (<TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>) and
+Type (<TT
+CLASS="PARAMETER"
+><I
+>type</I
+></TT
+>) attributes and the required child node &lt;dsig:DigestValue&gt;
+to the &lt;dsig:SignedInfo&gt; node <TT
+CLASS="PARAMETER"
+><I
+>signedInfoNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN777"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>signedInfoNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:SignedInfo&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the node id (may be NULL).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>uri</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the reference node uri (may be NULL).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>type</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the reference node type (may be NULL).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly created &lt;dsig:Reference&gt; node or NULL
+if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN802"
+></A
+><H3
+><A
+NAME="XMLSECREFERENCEADDDIGESTMETHOD"
+></A
+>xmlSecReferenceAddDigestMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecReferenceAddDigestMethod (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> refNode,
+ <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> digestMethod);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds &lt;dsig:DigestMethod&gt; node with given digest algorithm
+(<TT
+CLASS="PARAMETER"
+><I
+>digestMethod</I
+></TT
+>) to the &lt;dsig:Reference&gt; node <TT
+CLASS="PARAMETER"
+><I
+>refNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN813"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>refNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:Reference&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>digestMethod</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the digest method id.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly created &lt;dsig:DigestMethod&gt; node or NULL
+if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN830"
+></A
+><H3
+><A
+NAME="XMLSECREFERENCEADDTRANSFORM"
+></A
+>xmlSecReferenceAddTransform ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecReferenceAddTransform (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> refNode,
+ <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> transform);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds &lt;dsig:Transform&gt; node to the &lt;dsig:Reference&gt; node <TT
+CLASS="PARAMETER"
+><I
+>refNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN840"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>refNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:Reference&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform method id.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly created &lt;dsig:Transform&gt; node or NULL if an
+error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN857"
+></A
+><H3
+><A
+NAME="XMLSECOBJECTADDSIGNPROPERTIES"
+></A
+>xmlSecObjectAddSignProperties ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecObjectAddSignProperties (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> objectNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *id,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *target);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds &lt;dsig:SignatureProperties&gt; node to the &lt;dsig:Object&gt; node <TT
+CLASS="PARAMETER"
+><I
+>objectNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN868"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>objectNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:Object&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the node id (may be NULL).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>target</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the Target (may be NULL).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly created &lt;dsig:SignatureProperties&gt; node or NULL
+if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN889"
+></A
+><H3
+><A
+NAME="XMLSECOBJECTADDMANIFEST"
+></A
+>xmlSecObjectAddManifest ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecObjectAddManifest (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> objectNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *id);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds &lt;dsig:Manifest&gt; node to the &lt;dsig:Object&gt; node <TT
+CLASS="PARAMETER"
+><I
+>objectNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN899"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>objectNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:Object&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the node id (may be NULL).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly created &lt;dsig:Manifest&gt; node or NULL
+if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN916"
+></A
+><H3
+><A
+NAME="XMLSECMANIFESTADDREFERENCE"
+></A
+>xmlSecManifestAddReference ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecManifestAddReference (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> manifestNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *id,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *uri,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *type);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds &lt;dsig:Reference&gt; node with specified URI (<TT
+CLASS="PARAMETER"
+><I
+>uri</I
+></TT
+>), Id (<TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>) and
+Type (<TT
+CLASS="PARAMETER"
+><I
+>type</I
+></TT
+>) attributes and the required child node &lt;dsig:DigestValue&gt;
+to the &lt;dsig:Manifest&gt; node <TT
+CLASS="PARAMETER"
+><I
+>manifestNode</I
+></TT
+>:.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN931"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>manifestNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;dsig:Manifest&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the node id (may be NULL).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>uri</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the reference node uri (may be NULL).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>type</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the reference node type (may be NULL).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly created &lt;dsig:Reference&gt; node or NULL
+if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-xmlsec.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-xmlenc.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>xmlsec.h</B
+></FONT
+></TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>xmlenc.h</B
+></FONT
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/docs/api-0.0.x/xmlsec-xmlenc.html b/docs/api-0.0.x/xmlsec-xmlenc.html
new file mode 100644
index 00000000..b530c2c5
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-xmlenc.html
@@ -0,0 +1,3340 @@
+<HTML
+><HEAD
+><TITLE
+>xmlenc.h</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="XML Security Library Reference Manual"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="XML Security Library Reference"
+HREF="xmlsec-ref.html"><LINK
+REL="PREVIOUS"
+TITLE="xmldsig.h"
+HREF="xmlsec-xmldsig.html"><LINK
+REL="NEXT"
+TITLE="errors.h"
+HREF="xmlsec-errors.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="4"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="5"
+>XML Security Library Reference Manual</FONT
+></TH
+></TR
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-xmldsig.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-errors.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+></TABLE
+></DIV
+><H1
+><A
+NAME="XMLSEC-XMLENC"
+></A
+>xmlenc.h</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN961"
+></A
+><H2
+>Name</H2
+>xmlenc.h&nbsp;--&nbsp;The <A
+HREF="http://www.w3.org/Encryption/"
+TARGET="_top"
+>XML Encrypiton</A
+>
+standard implementation.</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN965"
+></A
+><H2
+>Synopsis</H2
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="SYNOPSIS"
+>&#13;
+
+struct <A
+HREF="xmlsec-xmlenc.html#XMLSECENCCTX"
+>xmlSecEncCtx</A
+>;
+<GTKDOCLINK
+HREF="XMLSECENCCTXPTR"
+>xmlSecEncCtxPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmlenc.html#XMLSECENCCTXCREATE"
+>xmlSecEncCtxCreate</A
+> (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> keysMngr);
+void <A
+HREF="xmlsec-xmlenc.html#XMLSECENCCTXDESTROY"
+>xmlSecEncCtxDestroy</A
+> (<GTKDOCLINK
+HREF="XMLSECENCCTXPTR"
+>xmlSecEncCtxPtr</GTKDOCLINK
+> ctx);
+int <A
+HREF="xmlsec-xmlenc.html#XMLSECENCRYPTMEMORY"
+>xmlSecEncryptMemory</A
+> (<GTKDOCLINK
+HREF="XMLSECENCCTXPTR"
+>xmlSecEncCtxPtr</GTKDOCLINK
+> ctx,
+ void *context,
+ <GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> encNode,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size,
+ <GTKDOCLINK
+HREF="XMLSECENCRESULTPTR"
+>xmlSecEncResultPtr</GTKDOCLINK
+> *result);
+int <A
+HREF="xmlsec-xmlenc.html#XMLSECENCRYPTURI"
+>xmlSecEncryptUri</A
+> (<GTKDOCLINK
+HREF="XMLSECENCCTXPTR"
+>xmlSecEncCtxPtr</GTKDOCLINK
+> ctx,
+ void *context,
+ <GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> encNode,
+ const char *uri,
+ <GTKDOCLINK
+HREF="XMLSECENCRESULTPTR"
+>xmlSecEncResultPtr</GTKDOCLINK
+> *result);
+int <A
+HREF="xmlsec-xmlenc.html#XMLSECENCRYPTXMLNODE"
+>xmlSecEncryptXmlNode</A
+> (<GTKDOCLINK
+HREF="XMLSECENCCTXPTR"
+>xmlSecEncCtxPtr</GTKDOCLINK
+> ctx,
+ void *context,
+ <GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> encNode,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> src,
+ <GTKDOCLINK
+HREF="XMLSECENCRESULTPTR"
+>xmlSecEncResultPtr</GTKDOCLINK
+> *result);
+int <A
+HREF="xmlsec-xmlenc.html#XMLSECDECRYPT"
+>xmlSecDecrypt</A
+> (<GTKDOCLINK
+HREF="XMLSECENCCTXPTR"
+>xmlSecEncCtxPtr</GTKDOCLINK
+> ctx,
+ void *context,
+ <GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> encNode,
+ <GTKDOCLINK
+HREF="XMLSECENCRESULTPTR"
+>xmlSecEncResultPtr</GTKDOCLINK
+> *result);
+struct <A
+HREF="xmlsec-xmlenc.html#XMLSECENCRESULT"
+>xmlSecEncResult</A
+>;
+<GTKDOCLINK
+HREF="XMLSECENCRESULTPTR"
+>xmlSecEncResultPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmlenc.html#XMLSECENCRESULTCREATE"
+>xmlSecEncResultCreate</A
+> (<GTKDOCLINK
+HREF="XMLSECENCCTXPTR"
+>xmlSecEncCtxPtr</GTKDOCLINK
+> ctx,
+ void *context,
+ int encrypt,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> node);
+void <A
+HREF="xmlsec-xmlenc.html#XMLSECENCRESULTDESTROY"
+>xmlSecEncResultDestroy</A
+> (<GTKDOCLINK
+HREF="XMLSECENCRESULTPTR"
+>xmlSecEncResultPtr</GTKDOCLINK
+> result);
+void <A
+HREF="xmlsec-xmlenc.html#XMLSECENCRESULTDEBUGDUMP"
+>xmlSecEncResultDebugDump</A
+> (<GTKDOCLINK
+HREF="XMLSECENCRESULTPTR"
+>xmlSecEncResultPtr</GTKDOCLINK
+> result,
+ <GTKDOCLINK
+HREF="FILE-CAPS"
+>FILE</GTKDOCLINK
+> *output);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmlenc.html#XMLSECENCDATACREATE"
+>xmlSecEncDataCreate</A
+> (const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *id,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *type,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *mimeType,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *encoding);
+void <A
+HREF="xmlsec-xmlenc.html#XMLSECENCDATADESTROY"
+>xmlSecEncDataDestroy</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> encNode);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmlenc.html#XMLSECENCDATAADDENCMETHOD"
+>xmlSecEncDataAddEncMethod</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> encNode,
+ <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> encMethod);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmlenc.html#XMLSECENCDATAADDKEYINFO"
+>xmlSecEncDataAddKeyInfo</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> encNode);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmlenc.html#XMLSECENCDATAADDENCPROPERTIES"
+>xmlSecEncDataAddEncProperties</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> encNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *id);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmlenc.html#XMLSECENCDATAADDENCPROPERTY"
+>xmlSecEncDataAddEncProperty</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> encNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *id,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *target);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmlenc.html#XMLSECENCDATAADDCIPHERVALUE"
+>xmlSecEncDataAddCipherValue</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> encNode);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmlenc.html#XMLSECENCDATAADDCIPHERREFERENCE"
+>xmlSecEncDataAddCipherReference</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> encNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *uri);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmlenc.html#XMLSECCIPHERREFERENCEADDTRANSFORM"
+>xmlSecCipherReferenceAddTransform</A
+>
+ (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> encNode,
+ <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> transform);</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN1041"
+></A
+><H2
+>Description</H2
+><P
+></P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN1044"
+></A
+><H2
+>Details</H2
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1046"
+></A
+><H3
+><A
+NAME="XMLSECENCCTX"
+></A
+>struct xmlSecEncCtx</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>struct xmlSecEncCtx {
+ xmlSecKeysMngrPtr keysMngr;
+ xmlSecTransformId encryptionMethod;
+ int ignoreType;
+ time_t certsVerificationTime;
+};</PRE
+></TD
+></TR
+></TABLE
+><P
+>XML Encrypiton context.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN1052"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFF0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>keysMngr</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to keys manager <A
+HREF="xmlsec-keys.html#XMLSECKEYSMNGR"
+>xmlSecKeysMngr</A
+>.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>encryptionMethod</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the default encryption algorithm id.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>int <TT
+CLASS="STRUCTFIELD"
+><I
+>ignoreType</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the flag to ignore Type attribute in the &lt;enc:EncryptedData&gt;
+ node</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="TIME-T"
+>time_t</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>certsVerificationTime</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>&nbsp;</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1077"
+></A
+><H3
+><A
+NAME="XMLSECENCCTXCREATE"
+></A
+>xmlSecEncCtxCreate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECENCCTXPTR"
+>xmlSecEncCtxPtr</GTKDOCLINK
+> xmlSecEncCtxCreate (<GTKDOCLINK
+HREF="XMLSECKEYSMNGRPTR"
+>xmlSecKeysMngrPtr</GTKDOCLINK
+> keysMngr);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Creates new encryption context.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN1085"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>keysMngr</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-keys.html#XMLSECKEYSMNGR"
+>xmlSecKeysMngr</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>newly allocated <A
+HREF="xmlsec-xmlenc.html#XMLSECENCCTX"
+>xmlSecEncCtx</A
+> structure or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1100"
+></A
+><H3
+><A
+NAME="XMLSECENCCTXDESTROY"
+></A
+>xmlSecEncCtxDestroy ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecEncCtxDestroy (<GTKDOCLINK
+HREF="XMLSECENCCTXPTR"
+>xmlSecEncCtxPtr</GTKDOCLINK
+> ctx);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Destroys the <A
+HREF="xmlsec-xmlenc.html#XMLSECENCCTX"
+>xmlSecEncCtx</A
+> structure.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN1108"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ctx</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-xmlenc.html#XMLSECENCCTX"
+>xmlSecEncCtx</A
+> structure.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1118"
+></A
+><H3
+><A
+NAME="XMLSECENCRYPTMEMORY"
+></A
+>xmlSecEncryptMemory ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecEncryptMemory (<GTKDOCLINK
+HREF="XMLSECENCCTXPTR"
+>xmlSecEncCtxPtr</GTKDOCLINK
+> ctx,
+ void *context,
+ <GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> encNode,
+ unsigned char *buf,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size,
+ <GTKDOCLINK
+HREF="XMLSECENCRESULTPTR"
+>xmlSecEncResultPtr</GTKDOCLINK
+> *result);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Encrypts binary data from the <TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+> according to the template in the
+&lt;enc:EncryptionData&gt; node. After the encrytion the result XML is in
+the <TT
+CLASS="PARAMETER"
+><I
+>encNode</I
+></TT
+> node.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN1131"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ctx</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-xmlenc.html#XMLSECENCCTX"
+>xmlSecEncCtx</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>context</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to application specific data that will be
+ passed to all callback functions.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key to use (if NULL then the key specified in &lt;dsig:KeyInfo&gt;
+ will be used). </TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>encNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to encryption template (&lt;enc:EncryptionData&gt; node).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to data to encrypt.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the size of the data in <TT
+CLASS="PARAMETER"
+><I
+>buf</I
+></TT
+>.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>result</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer where to store encryption results.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1170"
+></A
+><H3
+><A
+NAME="XMLSECENCRYPTURI"
+></A
+>xmlSecEncryptUri ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecEncryptUri (<GTKDOCLINK
+HREF="XMLSECENCCTXPTR"
+>xmlSecEncCtxPtr</GTKDOCLINK
+> ctx,
+ void *context,
+ <GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> encNode,
+ const char *uri,
+ <GTKDOCLINK
+HREF="XMLSECENCRESULTPTR"
+>xmlSecEncResultPtr</GTKDOCLINK
+> *result);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Encrypts binary data from the <TT
+CLASS="PARAMETER"
+><I
+>uri</I
+></TT
+> according to the template in the
+&lt;enc:EncryptionData&gt; node. After the encrytion the result XML is in
+the <TT
+CLASS="PARAMETER"
+><I
+>encNode</I
+></TT
+> node.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN1182"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ctx</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-xmlenc.html#XMLSECENCCTX"
+>xmlSecEncCtx</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>context</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to application specific data that will be
+ passed to all callback functions.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key to use (if NULL then the key specified in &lt;dsig:KeyInfo&gt;
+ will be used). </TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>encNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to encryption template (&lt;enc:EncryptionData&gt; node).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>uri</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the URI to data to encrypt.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>result</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer where to store encryption results.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1216"
+></A
+><H3
+><A
+NAME="XMLSECENCRYPTXMLNODE"
+></A
+>xmlSecEncryptXmlNode ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecEncryptXmlNode (<GTKDOCLINK
+HREF="XMLSECENCCTXPTR"
+>xmlSecEncCtxPtr</GTKDOCLINK
+> ctx,
+ void *context,
+ <GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> encNode,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> src,
+ <GTKDOCLINK
+HREF="XMLSECENCRESULTPTR"
+>xmlSecEncResultPtr</GTKDOCLINK
+> *result);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Encrypts XML data from the <TT
+CLASS="PARAMETER"
+><I
+>encNode</I
+></TT
+> according to the template in the
+&lt;enc:EncryptionData&gt; node. After the encrytion the result XML is in
+the <TT
+CLASS="PARAMETER"
+><I
+>src</I
+></TT
+> node.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN1229"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ctx</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-xmlenc.html#XMLSECENCCTX"
+>xmlSecEncCtx</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>context</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to application specific data that will be
+ passed to all callback functions.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key to use (if NULL then the key specified in &lt;dsig:KeyInfo&gt;
+ will be used). </TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>encNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to encryption template (&lt;enc:EncryptionData&gt; node).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>src</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to XML node to encrypt.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>result</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer where to store encryption results.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1263"
+></A
+><H3
+><A
+NAME="XMLSECDECRYPT"
+></A
+>xmlSecDecrypt ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecDecrypt (<GTKDOCLINK
+HREF="XMLSECENCCTXPTR"
+>xmlSecEncCtxPtr</GTKDOCLINK
+> ctx,
+ void *context,
+ <GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> key,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> encNode,
+ <GTKDOCLINK
+HREF="XMLSECENCRESULTPTR"
+>xmlSecEncResultPtr</GTKDOCLINK
+> *result);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Decrypts data from the &lt;enc:EncryptionData&gt; node.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN1273"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ctx</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-xmlenc.html#XMLSECENCCTX"
+>xmlSecEncCtx</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>context</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to application specific data that will be
+ passed to all callback functions.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>key</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the key to use (if NULL then the key specified in &lt;dsig:KeyInfo&gt;
+ will be used). </TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>encNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to encryption template (&lt;enc:EncryptionData&gt; node).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>result</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer where to store encryption results.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1303"
+></A
+><H3
+><A
+NAME="XMLSECENCRESULT"
+></A
+>struct xmlSecEncResult</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>struct xmlSecEncResult {
+ xmlSecEncCtxPtr ctx;
+ void *context;
+ xmlNodePtr self;
+ int encrypt;
+ xmlChar *id;
+ xmlChar *type;
+ xmlChar *mimeType;
+ xmlChar *encoding;
+ xmlSecTransformId encryptionMethod;
+ xmlSecKeyPtr key;
+ xmlBufferPtr buffer;
+ int replaced;
+};</PRE
+></TD
+></TR
+></TABLE
+><P
+>The XML Encrypiton results.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN1309"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFF0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECENCCTXPTR"
+>xmlSecEncCtxPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>ctx</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-xmlenc.html#XMLSECENCCTX"
+>xmlSecEncCtx</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>void *<TT
+CLASS="STRUCTFIELD"
+><I
+>context</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to application specific data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>self</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;enc:EncryptedData&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>int <TT
+CLASS="STRUCTFIELD"
+><I
+>encrypt</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the encrypt/decrypt flag.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *<TT
+CLASS="STRUCTFIELD"
+><I
+>id</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the Id attribute of the &lt;enc:EncryptedData&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *<TT
+CLASS="STRUCTFIELD"
+><I
+>type</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the Type attribute of the &lt;enc:EncryptedData&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *<TT
+CLASS="STRUCTFIELD"
+><I
+>mimeType</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the MimeType attribute of the &lt;enc:EncryptedData&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *<TT
+CLASS="STRUCTFIELD"
+><I
+>encoding</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the Encoding attribute of the &lt;enc:EncryptedData&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>encryptionMethod</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the used encryption algorithm id.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLSECKEYPTR"
+>xmlSecKeyPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>key</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the used encryption key.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+><GTKDOCLINK
+HREF="XMLBUFFERPTR"
+>xmlBufferPtr</GTKDOCLINK
+> <TT
+CLASS="STRUCTFIELD"
+><I
+>buffer</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the decrypted data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>int <TT
+CLASS="STRUCTFIELD"
+><I
+>replaced</I
+></TT
+></TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> if set then the decrypted data were put back into the original document.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1372"
+></A
+><H3
+><A
+NAME="XMLSECENCRESULTCREATE"
+></A
+>xmlSecEncResultCreate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLSECENCRESULTPTR"
+>xmlSecEncResultPtr</GTKDOCLINK
+> xmlSecEncResultCreate (<GTKDOCLINK
+HREF="XMLSECENCCTXPTR"
+>xmlSecEncCtxPtr</GTKDOCLINK
+> ctx,
+ void *context,
+ int encrypt,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> node);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Creates new <A
+HREF="xmlsec-xmlenc.html#XMLSECENCRESULT"
+>xmlSecEncResult</A
+> structure.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN1382"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ctx</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-xmlenc.html#XMLSECENCCTX"
+>xmlSecEncCtx</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>context</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to application specific data that will be
+ passed to all callback functions.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>encrypt</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the encrypt/decrypt flag.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>node</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;enc:EncryptedData&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>newly created <A
+HREF="xmlsec-xmlenc.html#XMLSECENCRESULT"
+>xmlSecEncResult</A
+> structure or NULL
+if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1409"
+></A
+><H3
+><A
+NAME="XMLSECENCRESULTDESTROY"
+></A
+>xmlSecEncResultDestroy ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecEncResultDestroy (<GTKDOCLINK
+HREF="XMLSECENCRESULTPTR"
+>xmlSecEncResultPtr</GTKDOCLINK
+> result);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Destroys <A
+HREF="xmlsec-xmlenc.html#XMLSECENCRESULT"
+>xmlSecEncResult</A
+> structure <TT
+CLASS="PARAMETER"
+><I
+>result</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN1418"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>result</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-xmlenc.html#XMLSECENCRESULT"
+>xmlSecEncResult</A
+> structure.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1428"
+></A
+><H3
+><A
+NAME="XMLSECENCRESULTDEBUGDUMP"
+></A
+>xmlSecEncResultDebugDump ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecEncResultDebugDump (<GTKDOCLINK
+HREF="XMLSECENCRESULTPTR"
+>xmlSecEncResultPtr</GTKDOCLINK
+> result,
+ <GTKDOCLINK
+HREF="FILE-CAPS"
+>FILE</GTKDOCLINK
+> *output);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Prints the <A
+HREF="xmlsec-xmlenc.html#XMLSECENCRESULT"
+>xmlSecEncResult</A
+> structure <TT
+CLASS="PARAMETER"
+><I
+>result</I
+></TT
+> to file <TT
+CLASS="PARAMETER"
+><I
+>output</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN1439"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>result</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to <A
+HREF="xmlsec-xmlenc.html#XMLSECENCRESULT"
+>xmlSecEncResult</A
+> structure.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>output</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to destination FILE.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1453"
+></A
+><H3
+><A
+NAME="XMLSECENCDATACREATE"
+></A
+>xmlSecEncDataCreate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecEncDataCreate (const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *id,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *type,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *mimeType,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *encoding);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Creates new &lt;enc:EncryptedData&gt; node for encryption template.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN1464"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the Id attribute (optional).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>type</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the Type attribute (optional)</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>mimeType</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the MimeType attribute (optional)</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>encoding</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the Encoding attribute (optional)</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer newly created &lt;enc:EncryptedData&gt; node or NULL
+if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1489"
+></A
+><H3
+><A
+NAME="XMLSECENCDATADESTROY"
+></A
+>xmlSecEncDataDestroy ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecEncDataDestroy (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> encNode);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Destroys the &lt;enc:EncryptedData&gt; node <TT
+CLASS="PARAMETER"
+><I
+>encNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN1497"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>encNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;enc:EncryptedData&gt; node.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1506"
+></A
+><H3
+><A
+NAME="XMLSECENCDATAADDENCMETHOD"
+></A
+>xmlSecEncDataAddEncMethod ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecEncDataAddEncMethod (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> encNode,
+ <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> encMethod);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds &lt;enc:EncryptionMethod&gt; node with specified encryption
+algorithm (<TT
+CLASS="PARAMETER"
+><I
+>encMethodId</I
+></TT
+>) to the &lt;enc:EncryptedData&gt; node <TT
+CLASS="PARAMETER"
+><I
+>encNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN1517"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>encNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;enc:EncryptedData&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>encMethod</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the encryption method id.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly created &lt;enc:EncryptionMethod&gt; node or
+NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1534"
+></A
+><H3
+><A
+NAME="XMLSECENCDATAADDKEYINFO"
+></A
+>xmlSecEncDataAddKeyInfo ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecEncDataAddKeyInfo (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> encNode);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds &lt;dsig:KeyInfo&gt; to the &lt;enc:EncryptedData&gt; node <TT
+CLASS="PARAMETER"
+><I
+>encNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN1543"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>encNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;enc:EncryptedData&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly created &lt;dsig:KeyInfo&gt; node or
+NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1556"
+></A
+><H3
+><A
+NAME="XMLSECENCDATAADDENCPROPERTIES"
+></A
+>xmlSecEncDataAddEncProperties ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecEncDataAddEncProperties (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> encNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *id);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds &lt;enc:EncryptionProperties&gt; node to the &lt;enc:EncryptedData&gt;
+node <TT
+CLASS="PARAMETER"
+><I
+>encNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN1566"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>encNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;enc:EncryptedData&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the Id attribute (optional).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly created &lt;enc:EncryptionProperties&gt; node or
+NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1583"
+></A
+><H3
+><A
+NAME="XMLSECENCDATAADDENCPROPERTY"
+></A
+>xmlSecEncDataAddEncProperty ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecEncDataAddEncProperty (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> encNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *id,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *target);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds &lt;enc:EncryptionProperty&gt; node (and the parent
+&lt;enc:EncryptionProperties&gt; node if required) to the
+&lt;enc:EncryptedData&gt; node <TT
+CLASS="PARAMETER"
+><I
+>encNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN1594"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>encNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;enc:EncryptedData&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>id</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the Id attribute (optional).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>target</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the Target attribute (optional).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly created &lt;enc:EncryptionProperty&gt; node or
+NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1615"
+></A
+><H3
+><A
+NAME="XMLSECENCDATAADDCIPHERVALUE"
+></A
+>xmlSecEncDataAddCipherValue ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecEncDataAddCipherValue (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> encNode);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds &lt;enc:CipherValue&gt; to the &lt;enc:EncryptedData&gt; node <TT
+CLASS="PARAMETER"
+><I
+>encNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN1624"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>encNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;enc:EncryptedData&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly created &lt;enc:CipherValue&gt; node or
+NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1637"
+></A
+><H3
+><A
+NAME="XMLSECENCDATAADDCIPHERREFERENCE"
+></A
+>xmlSecEncDataAddCipherReference ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecEncDataAddCipherReference (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> encNode,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *uri);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds &lt;enc:CipherReference&gt; node with specified URI attribute <TT
+CLASS="PARAMETER"
+><I
+>uri</I
+></TT
+>
+to the &lt;enc:EncryptedData&gt; node <TT
+CLASS="PARAMETER"
+><I
+>encNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN1648"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>encNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;enc:EncryptedData&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>uri</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the URI attribute (may be NULL).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly created &lt;enc:CipherReference&gt; node or
+NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN1665"
+></A
+><H3
+><A
+NAME="XMLSECCIPHERREFERENCEADDTRANSFORM"
+></A
+>xmlSecCipherReferenceAddTransform ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecCipherReferenceAddTransform
+ (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> encNode,
+ <A
+HREF="xmlsec-transforms.html#XMLSECTRANSFORMID"
+>xmlSecTransformId</A
+> transform);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds &lt;dsig:Transform&gt; node (and the parent &lt;dsig:Transforms&gt; node)
+with specified transform methods <TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+> to the &lt;enc:CipherReference&gt;
+child node of the &lt;enc:EncryptedData&gt; node <TT
+CLASS="PARAMETER"
+><I
+>encNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN1676"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>encNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to &lt;enc:EncryptedData&gt; node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>transform</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the transform id.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to newly created &lt;dsig:Transform&gt; node or
+NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-xmldsig.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-errors.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>xmldsig.h</B
+></FONT
+></TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>errors.h</B
+></FONT
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/docs/api-0.0.x/xmlsec-xmlsec.html b/docs/api-0.0.x/xmlsec-xmlsec.html
new file mode 100644
index 00000000..c7cbd74b
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-xmlsec.html
@@ -0,0 +1,341 @@
+<HTML
+><HEAD
+><TITLE
+>xmlsec.h</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="XML Security Library Reference Manual"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="XML Security Library Reference"
+HREF="xmlsec-ref.html"><LINK
+REL="PREVIOUS"
+TITLE="XML Security Library Reference"
+HREF="xmlsec-ref.html"><LINK
+REL="NEXT"
+TITLE="xmldsig.h"
+HREF="xmlsec-xmldsig.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="4"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="5"
+>XML Security Library Reference Manual</FONT
+></TH
+></TR
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-ref.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-xmldsig.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+></TABLE
+></DIV
+><H1
+><A
+NAME="XMLSEC-XMLSEC"
+></A
+>xmlsec.h</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN35"
+></A
+><H2
+>Name</H2
+>xmlsec.h&nbsp;--&nbsp;The library initialization/cleanup functions.</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN38"
+></A
+><H2
+>Synopsis</H2
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="SYNOPSIS"
+>&#13;
+
+void <A
+HREF="xmlsec-xmlsec.html#XMLSECINIT"
+>xmlSecInit</A
+> (void);
+void <A
+HREF="xmlsec-xmlsec.html#XMLSECSHUTDOWN"
+>xmlSecShutdown</A
+> (void);</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN43"
+></A
+><H2
+>Description</H2
+><P
+></P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN46"
+></A
+><H2
+>Details</H2
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN48"
+></A
+><H3
+><A
+NAME="XMLSECINIT"
+></A
+>xmlSecInit ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecInit (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Initializes XML Security Library. The depended libraries
+(LibXML, LibXSLT and OpenSSL) must be initialized before.</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN54"
+></A
+><H3
+><A
+NAME="XMLSECSHUTDOWN"
+></A
+>xmlSecShutdown ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecShutdown (void);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Clean ups the XML Security Library.</P
+><P
+></P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-ref.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+><A
+HREF="xmlsec-xmldsig.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Next Page &#62;&#62;&#62;</B
+></FONT
+></A
+></TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>XML Security Library Reference</B
+></FONT
+></TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>xmldsig.h</B
+></FONT
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/docs/api-0.0.x/xmlsec-xmltree.html b/docs/api-0.0.x/xmlsec-xmltree.html
new file mode 100644
index 00000000..8f7625dd
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec-xmltree.html
@@ -0,0 +1,2607 @@
+<HTML
+><HEAD
+><TITLE
+>xmltree.h</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="XML Security Library Reference Manual"
+HREF="index.html"><LINK
+REL="UP"
+TITLE="XML Security Library Internal Functions Reference"
+HREF="xmlsec-ref-int.html"><LINK
+REL="PREVIOUS"
+TITLE="transformsInternal.h"
+HREF="xmlsec-transformsinternal.html"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="4"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="5"
+>XML Security Library Reference Manual</FONT
+></TH
+></TR
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-transformsinternal.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref-int.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+>&nbsp;</TD
+></TR
+></TABLE
+></DIV
+><H1
+><A
+NAME="XMLSEC-XMLTREE"
+></A
+>xmltree.h</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN8902"
+></A
+><H2
+>Name</H2
+>xmltree.h&nbsp;--&nbsp;The XML tree helper functions.</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN8905"
+></A
+><H2
+>Synopsis</H2
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="SYNOPSIS"
+>&#13;
+
+<GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmltree.html#XMLSECPARSEFILE"
+>xmlSecParseFile</A
+> (const char *filename);
+<GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmltree.html#XMLSECPARSEMEMORY"
+>xmlSecParseMemory</A
+> (unsigned char *buffer,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size,
+ int recovery);
+<GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmltree.html#XMLSECPARSEMEMORYEXT"
+>xmlSecParseMemoryExt</A
+> (unsigned char *prefix,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> prefixSize,
+ unsigned char *buffer,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> bufferSize,
+ unsigned char *postfix,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> postfixSize);
+int <A
+HREF="xmlsec-xmltree.html#XMLSECCHECKNODENAME"
+>xmlSecCheckNodeName</A
+> (const <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> cur,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *name,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *ns);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmltree.html#XMLSECGETNEXTELEMENTNODE"
+>xmlSecGetNextElementNode</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> cur);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmltree.html#XMLSECFINDCHILD"
+>xmlSecFindChild</A
+> (const <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> parent,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *name,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *ns);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmltree.html#XMLSECFINDPARENT"
+>xmlSecFindParent</A
+> (const <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> cur,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *name,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *ns);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmltree.html#XMLSECFINDNODE"
+>xmlSecFindNode</A
+> (const <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> parent,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *name,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *ns);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmltree.html#XMLSECADDCHILD"
+>xmlSecAddChild</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> parent,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *name,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *ns);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmltree.html#XMLSECADDNEXTSIBLING"
+>xmlSecAddNextSibling</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> node,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *name,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *ns);
+<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> <A
+HREF="xmlsec-xmltree.html#XMLSECADDPREVSIBLING"
+>xmlSecAddPrevSibling</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> node,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *name,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *ns);
+int <A
+HREF="xmlsec-xmltree.html#XMLSECREPLACENODE"
+>xmlSecReplaceNode</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> node,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> newNode);
+int <A
+HREF="xmlsec-xmltree.html#XMLSECREPLACECONTENT"
+>xmlSecReplaceContent</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> node,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> newNode);
+int <A
+HREF="xmlsec-xmltree.html#XMLSECREPLACENODEBUFFER"
+>xmlSecReplaceNodeBuffer</A
+> (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> node,
+ unsigned char *buffer,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);
+void <A
+HREF="xmlsec-xmltree.html#XMLSECADDIDS"
+>xmlSecAddIDs</A
+> (<GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> doc,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> cur,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> **ids);
+#define <A
+HREF="xmlsec-xmltree.html#XMLSECGETHEX"
+>xmlSecGetHex</A
+> (c)
+#define <A
+HREF="xmlsec-xmltree.html#XMLSECISHEX"
+>xmlSecIsHex</A
+> (c)</PRE
+></TD
+></TR
+></TABLE
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN8970"
+></A
+><H2
+>Description</H2
+><P
+></P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN8973"
+></A
+><H2
+>Details</H2
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8975"
+></A
+><H3
+><A
+NAME="XMLSECPARSEFILE"
+></A
+>xmlSecParseFile ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> xmlSecParseFile (const char *filename);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Loads XML Doc from file <TT
+CLASS="PARAMETER"
+><I
+>filename</I
+></TT
+>. We need a special version because of
+c14n issue. The code is copied from <GTKDOCLINK
+HREF="XMLSAXPARSEFILEWITHDATA"
+>xmlSAXParseFileWithData</GTKDOCLINK
+>() function.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN8984"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>filename</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the filename.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>pointer to the loaded XML document or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN8997"
+></A
+><H3
+><A
+NAME="XMLSECPARSEMEMORY"
+></A
+>xmlSecParseMemory ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> xmlSecParseMemory (unsigned char *buffer,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size,
+ int recovery);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Loads XML Doc from memory. We need a special version because of
+c14n issue. The code is copied from <GTKDOCLINK
+HREF="XMLSAXPARSEMEMORY"
+>xmlSAXParseMemory</GTKDOCLINK
+>() function.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN9006"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buffer</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input buffer.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the input buffer size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>recovery</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the flag.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>pointer to the loaded XML document or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN9027"
+></A
+><H3
+><A
+NAME="XMLSECPARSEMEMORYEXT"
+></A
+>xmlSecParseMemoryExt ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> xmlSecParseMemoryExt (unsigned char *prefix,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> prefixSize,
+ unsigned char *buffer,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> bufferSize,
+ unsigned char *postfix,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> postfixSize);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Loads XML Doc from 3 chunks of memory: <TT
+CLASS="PARAMETER"
+><I
+>prefix</I
+></TT
+>, <TT
+CLASS="PARAMETER"
+><I
+>buffer</I
+></TT
+> and <TT
+CLASS="PARAMETER"
+><I
+>postfix</I
+></TT
+>. '</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN9040"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>prefix</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the first part of the input.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>prefixSize</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the size of the first part of the input.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buffer</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the second part of the input.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>bufferSize</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the size of the second part of the input.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>postfix</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the third part of the input.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>postfixSize</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the size of the third part of the input.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>pointer to the loaded XML document or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN9073"
+></A
+><H3
+><A
+NAME="XMLSECCHECKNODENAME"
+></A
+>xmlSecCheckNodeName ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecCheckNodeName (const <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> cur,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *name,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *ns);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Checks that the node has a given name and a given namespace href.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN9082"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>cur</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to an XML node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>name</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the name,</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ns</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the namespace href.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>1 if the node matches or 0 otherwise.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN9103"
+></A
+><H3
+><A
+NAME="XMLSECGETNEXTELEMENTNODE"
+></A
+>xmlSecGetNextElementNode ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecGetNextElementNode (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> cur);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Seraches for the next element node.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN9111"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>cur</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to an XML node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to next element node or NULL if it is not found.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN9124"
+></A
+><H3
+><A
+NAME="XMLSECFINDCHILD"
+></A
+>xmlSecFindChild ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecFindChild (const <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> parent,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *name,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *ns);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Searches a direct child of the <TT
+CLASS="PARAMETER"
+><I
+>parent</I
+></TT
+> node having given name and
+namespace href.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN9135"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>parent</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to XML node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>name</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the name.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ns</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the namespace href (may be NULL).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to the found node or NULL if an error occurs or
+node is not found.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN9156"
+></A
+><H3
+><A
+NAME="XMLSECFINDPARENT"
+></A
+>xmlSecFindParent ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecFindParent (const <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> cur,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *name,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *ns);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Searches the ancestors axis of the <TT
+CLASS="PARAMETER"
+><I
+>cur</I
+></TT
+> node for a node having given name
+and namespace href.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN9167"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>cur</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to an XML node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>name</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the name.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ns</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the namespace href (may be NULL).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to the found node or NULL if an error occurs or
+node is not found.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN9188"
+></A
+><H3
+><A
+NAME="XMLSECFINDNODE"
+></A
+>xmlSecFindNode ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecFindNode (const <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> parent,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *name,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *ns);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Searches all children of the <TT
+CLASS="PARAMETER"
+><I
+>parent</I
+></TT
+> node having given name and
+namespace href.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN9199"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>parent</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to XML node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>name</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the name.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ns</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the namespace href (may be NULL).</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the pointer to the found node or NULL if an error occurs or
+node is not found.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN9220"
+></A
+><H3
+><A
+NAME="XMLSECADDCHILD"
+></A
+>xmlSecAddChild ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecAddChild (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> parent,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *name,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *ns);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds a child to the node <TT
+CLASS="PARAMETER"
+><I
+>parent</I
+></TT
+> with given <TT
+CLASS="PARAMETER"
+><I
+>name</I
+></TT
+> and namespace <TT
+CLASS="PARAMETER"
+><I
+>ns</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN9233"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>parent</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to an XML node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>name</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the new node name.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ns</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the new node namespace.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>pointer to the new node or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN9254"
+></A
+><H3
+><A
+NAME="XMLSECADDNEXTSIBLING"
+></A
+>xmlSecAddNextSibling ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecAddNextSibling (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> node,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *name,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *ns);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds next sibling to the node <TT
+CLASS="PARAMETER"
+><I
+>node</I
+></TT
+> with given <TT
+CLASS="PARAMETER"
+><I
+>name</I
+></TT
+> and namespace <TT
+CLASS="PARAMETER"
+><I
+>ns</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN9267"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>node</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to an XML node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>name</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the new node name.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ns</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the new node namespace.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>pointer to the new node or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN9288"
+></A
+><H3
+><A
+NAME="XMLSECADDPREVSIBLING"
+></A
+>xmlSecAddPrevSibling ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> xmlSecAddPrevSibling (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> node,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *name,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> *ns);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Adds prev sibling to the node <TT
+CLASS="PARAMETER"
+><I
+>node</I
+></TT
+> with given <TT
+CLASS="PARAMETER"
+><I
+>name</I
+></TT
+> and namespace <TT
+CLASS="PARAMETER"
+><I
+>ns</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN9301"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>node</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to an XML node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>name</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the new node name.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ns</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the new node namespace.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>pointer to the new node or NULL if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN9322"
+></A
+><H3
+><A
+NAME="XMLSECREPLACENODE"
+></A
+>xmlSecReplaceNode ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecReplaceNode (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> node,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> newNode);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Swaps the <TT
+CLASS="PARAMETER"
+><I
+>node</I
+></TT
+> and <TT
+CLASS="PARAMETER"
+><I
+>newNode</I
+></TT
+> in the XML tree.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN9332"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>node</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the current node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>newNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the new node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN9349"
+></A
+><H3
+><A
+NAME="XMLSECREPLACECONTENT"
+></A
+>xmlSecReplaceContent ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecReplaceContent (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> node,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> newNode);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Swaps the content of <TT
+CLASS="PARAMETER"
+><I
+>node</I
+></TT
+> and <TT
+CLASS="PARAMETER"
+><I
+>newNode</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN9359"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>node</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the current node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>newNode</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the new node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN9376"
+></A
+><H3
+><A
+NAME="XMLSECREPLACENODEBUFFER"
+></A
+>xmlSecReplaceNodeBuffer ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlSecReplaceNodeBuffer (<GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> node,
+ unsigned char *buffer,
+ <GTKDOCLINK
+HREF="SIZE-T"
+>size_t</GTKDOCLINK
+> size);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Swaps the <TT
+CLASS="PARAMETER"
+><I
+>node</I
+></TT
+> and the parsed XML data from the <TT
+CLASS="PARAMETER"
+><I
+>buffer</I
+></TT
+> in the XML tree.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN9386"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>node</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the current node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>buffer</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the XML data.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>size</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the XML data size.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+></SPAN
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 on success or a negative value if an error occurs.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN9407"
+></A
+><H3
+><A
+NAME="XMLSECADDIDS"
+></A
+>xmlSecAddIDs ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlSecAddIDs (<GTKDOCLINK
+HREF="XMLDOCPTR"
+>xmlDocPtr</GTKDOCLINK
+> doc,
+ <GTKDOCLINK
+HREF="XMLNODEPTR"
+>xmlNodePtr</GTKDOCLINK
+> cur,
+ const <GTKDOCLINK
+HREF="XMLCHAR"
+>xmlChar</GTKDOCLINK
+> **ids);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Walks thru all children of the <TT
+CLASS="PARAMETER"
+><I
+>cur</I
+></TT
+> node and adds all attributes
+from the <TT
+CLASS="PARAMETER"
+><I
+>ids</I
+></TT
+> list to the <TT
+CLASS="PARAMETER"
+><I
+>doc</I
+></TT
+> document IDs attributes hash.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN9419"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>doc</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to an XML document.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>cur</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to an XML node.</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ids</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the pointer to a NULL terminated list of ID attributes.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN9436"
+></A
+><H3
+><A
+NAME="XMLSECGETHEX"
+></A
+>xmlSecGetHex()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecGetHex(c)</PRE
+></TD
+></TR
+></TABLE
+><P
+>Macro. Returns the hex value of the <TT
+CLASS="PARAMETER"
+><I
+>c</I
+></TT
+>.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN9443"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>c</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the character,</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN9452"
+></A
+><H3
+><A
+NAME="XMLSECISHEX"
+></A
+>xmlSecIsHex()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>#define xmlSecIsHex(c)</PRE
+></TD
+></TR
+></TABLE
+><P
+>Macro. Returns 1 if <TT
+CLASS="PARAMETER"
+><I
+>c</I
+></TT
+> is a hex digit or 0 other wise.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><A
+NAME="AEN9459"
+></A
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TBODY
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>c</I
+></TT
+>&nbsp;:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the character.</TD
+></TR
+></TBODY
+></TABLE
+><P
+></P
+></DIV
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><BR
+CLEAR="all"><BR><TABLE
+WIDTH="100%"
+BORDER="0"
+BGCOLOR="#000000"
+CELLPADDING="1"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="left"
+><A
+HREF="xmlsec-transformsinternal.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>&#60;&#60;&#60; Previous Page</B
+></FONT
+></A
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#0000C0"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="index.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Home</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#00C000"
+ALIGN="center"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+><A
+HREF="xmlsec-ref-int.html"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>Up</B
+></FONT
+></A
+></B
+></FONT
+></TD
+><TD
+WIDTH="25%"
+BGCOLOR="#C00000"
+ALIGN="right"
+>&nbsp;</TD
+></TR
+><TR
+><TD
+COLSPAN="2"
+ALIGN="left"
+><FONT
+COLOR="#FFFFFF"
+SIZE="3"
+><B
+>transformsInternal.h</B
+></FONT
+></TD
+><TD
+COLSPAN="2"
+ALIGN="right"
+>&nbsp;</TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file
diff --git a/docs/api-0.0.x/xmlsec.sgml b/docs/api-0.0.x/xmlsec.sgml
new file mode 100644
index 00000000..9c62698b
--- /dev/null
+++ b/docs/api-0.0.x/xmlsec.sgml
@@ -0,0 +1,119 @@
+<!doctype book PUBLIC "-//Davenport//DTD DocBook V3.0//EN" [
+<!ENTITY xmlsec-base64 SYSTEM "sgml/base64.sgml">
+<!ENTITY xmlsec-bn SYSTEM "sgml/bn.sgml">
+<!ENTITY xmlsec-buffered SYSTEM "sgml/buffered.sgml">
+<!ENTITY xmlsec-ciphers SYSTEM "sgml/ciphers.sgml">
+<!ENTITY xmlsec-debug SYSTEM "sgml/debug.sgml">
+<!ENTITY xmlsec-digests SYSTEM "sgml/digests.sgml">
+<!ENTITY xmlsec-io SYSTEM "sgml/io.sgml">
+<!ENTITY xmlsec-errors SYSTEM "sgml/errors.sgml">
+<!ENTITY xmlsec-keyinfo SYSTEM "sgml/keyinfo.sgml">
+<!ENTITY xmlsec-keys SYSTEM "sgml/keys.sgml">
+<!ENTITY xmlsec-keysInternal SYSTEM "sgml/keysInternal.sgml">
+<!ENTITY xmlsec-keysmngr SYSTEM "sgml/keysmngr.sgml">
+<!ENTITY xmlsec-membuf SYSTEM "sgml/membuf.sgml">
+<!ENTITY xmlsec-nodeset SYSTEM "sgml/nodeset.sgml">
+<!ENTITY xmlsec-transforms SYSTEM "sgml/transforms.sgml">
+<!ENTITY xmlsec-transformsInternal SYSTEM "sgml/transformsInternal.sgml">
+<!ENTITY xmlsec-version SYSTEM "sgml/version.sgml">
+<!ENTITY xmlsec-x509 SYSTEM "sgml/x509.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">
+]>
+<book id="index">
+ <bookinfo>
+ <title>XML Security Library Reference Manual</title>
+ <authorgroup>
+ <author>
+ <firstname>Aleksey</firstname>
+ <surname>Sanin</surname>
+ <affiliation>
+ <address>
+ <email>aleksey@aleksey.com</email>
+ </address>
+ </affiliation>
+ </author>
+ </authorgroup>
+ <copyright>
+ <year>2002</year>
+ <holder>Aleksey Sanin</holder>
+ </copyright>
+ <legalnotice>
+ <para>Permission is granted to make and distribute verbatim
+ copies of this manual provided the copyright notice and this
+ permission notice are preserved on all copies.</para>
+
+ <para>Permission is granted to copy and distribute modified
+ versions of this manual under the conditions for verbatim
+ copying, provided also that the entire resulting derived work is
+ distributed under the terms of a permission notice identical to
+ this one.</para>
+
+ <para>Permission is granted to copy and distribute translations
+ of this manual into another language, under the above conditions
+ for modified versions.</para>
+ </legalnotice>
+
+ <abstract>
+ <para>This manual documents the interfaces of the xmlsec
+ library and has some short notes to help get you up to speed
+ with using the library.</para>
+ </abstract>
+
+ </bookinfo>
+
+ <chapter id="xmlsec-notes">
+ <title>XML Security Library Programming Notes</title>
+
+ <para>XML Security Library combines the power of
+ <ulink url="http://www.openssl.org">OpenSSL</ulink> and
+ <ulink url="http://www.xmlsoft.org">LibXML2</ulink>
+ libraries and provides implementation for major XML Security
+ standards:
+ <ulink url="http://www.w3.org/Signature/">XML Digital Signature</ulink>
+ and
+ <ulink url="http://www.w3.org/Encryption/">XML Encrytpion</ulink>.
+ </para>
+ </chapter>
+
+ <chapter id="xmlsec-ref">
+ <title>XML Security Library Reference</title>
+ <para>This section contains the API reference for xmlsec. All
+ the public interfaces are documented here. This reference guide is
+ build by extracting comments from the code sources. </para>
+ &xmlsec-xmlsec;
+ &xmlsec-xmldsig;
+ &xmlsec-xmlenc;
+ &xmlsec-errors;
+ &xmlsec-debug;
+ &xmlsec-keyinfo;
+ &xmlsec-keys;
+ &xmlsec-keysmngr;
+ &xmlsec-transforms;
+ &xmlsec-version;
+ &xmlsec-x509;
+ </chapter>
+ <chapter id="xmlsec-ref-int">
+ <title>XML Security Library Internal Functions Reference</title>
+ <para>This section contains the internal API reference for xmlsec
+ developers. This reference guide is build by extracting comments
+ from the code sources. </para>
+ &xmlsec-base64;
+ &xmlsec-bn;
+ &xmlsec-buffered;
+ &xmlsec-ciphers;
+ &xmlsec-digests;
+ &xmlsec-io;
+ &xmlsec-keysInternal;
+ &xmlsec-membuf;
+ &xmlsec-nodeset;
+ &xmlsec-transformsInternal;
+ &xmlsec-xmltree;
+ </chapter>
+
+</book>
+
+
+
diff --git a/docs/download.html b/docs/download.html
index b942d8b1..83b622ad 100644
--- a/docs/download.html
+++ b/docs/download.html
@@ -44,11 +44,11 @@
<h2>Download</h2>
- <div align="Left">The latest XML Security Library version is <b>0.0.12</b>:
+ <div align="Left">The latest XML Security Library version is <b>0.0.13</b>:
<br>
<ul>
- <li><a href="download/xmlsec-0.0.12.tar.gz">Sources</a>
+ <li><a href="download/xmlsec-0.0.13.tar.gz">Sources</a>
(<a href="ftp://ftp.xmlsoft.org/xmlsec/releases">XMLSoft.org</a> and
<a href="ftp://ftp.rpmfind.net/pub/XML/xmlsec/releases">RPMFind.net</a> mirrors).
</li>
@@ -75,9 +75,9 @@
I am doing some
<a href="http://www.aleksey.com/pipermail/xmlsec/2002/000305.html">major
code refactoring</a> these days. The snapshot builds most likely are
- broken. Please, use <b>0.0.12</b> version instead.<br>
+ broken. Please, use <b>0.0.13</b> version instead.<br>
If you want to use sources from GNOME CVS <b>do not</b> check out the tip.
- It is broken and most likely does not compile. The stable 0.0.12+ branch
+ It is broken and most likely does not compile. The stable 0.0.13+ branch
is <b>XMLSEC_0_0_X_BRANCH</b>.
diff --git a/docs/index.html b/docs/index.html
index 30b27a5c..727d5bf2 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -64,6 +64,13 @@ MIT Licence</a>
<b>News</b> (<a href="news.html">all news</a>)<br>
<ul>
+ <li>February 21 2003<br>
+ <a href="download.html">XML Security Library 0.0.13</a> release
+ fixes incorrect processing of signatures with more than 3 binary
+ transforms in a row, improved pkcs12 files support and minor
+ documentation update.
+ </li><br>
+
<li>January 26 2003<br>
Two major fixes in <a href="http://www.aleksey.com/pipermail/xmlsec/2003/000507.html">HMAC</a> and
<a href="http://www.aleksey.com/pipermail/xmlsec/2003/000516.html">DES/AES</a>
diff --git a/docs/news.html b/docs/news.html
index c3d21ea7..3001ca70 100644
--- a/docs/news.html
+++ b/docs/news.html
@@ -44,6 +44,13 @@
<ul>
+ <li>February 21 2003<br>
+ <a href="download.html">XML Security Library 0.0.13</a> release
+ fixes incorrect processing of signatures with more than 3 binary
+ transforms in a row, improved pkcs12 files support and minor
+ documentation update.
+ </li><br>
+
<li>January 26 2003<br>
Two major fixes in <a href="http://www.aleksey.com/pipermail/xmlsec/2003/000507.html">HMAC</a> and
<a href="http://www.aleksey.com/pipermail/xmlsec/2003/000516.html">DES/AES</a>