From: Anas Nashif Date: Thu, 22 Nov 2012 18:31:06 +0000 (-0800) Subject: Imported Upstream version 1.2.14 X-Git-Tag: upstream/1.2.14^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=07bb297329b9e9754d09dcb6d70417272a626619;p=platform%2Fupstream%2Fxmlsec1.git Imported Upstream version 1.2.14 --- diff --git a/COPYING b/COPYING index 23e4372..fb94427 100644 --- a/COPYING +++ b/COPYING @@ -1,7 +1,7 @@ -xmlsec, xmlsec-openssl, xmlsec-gnutls, xmlsec-gcrypt libraries +xmlsec, xmlsec-openssl, xmlsec-gnutls libraries ------------------------------------------------------------------------------ -Copyright (C) 2002-2010 Aleksey Sanin. All Rights Reserved. +Copyright (C) 2002-2003 Aleksey Sanin. All Rights Reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -27,7 +27,7 @@ ings in this Software without prior written authorization from him. xmlsec-nss library ------------------------------------------------------------------------------ -Copyright (C) 2002-2010 Aleksey Sanin. All Rights Reserved. +Copyright (C) 2002-2003 Aleksey Sanin. All Rights Reserved. Copyright (c) 2003 America Online, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy @@ -57,49 +57,3 @@ Except as contained in this notice, the name of Aleksey Sanin shall not be used in advertising or otherwise to promote the sale, use or other deal- ings in this Software without prior written authorization from him. - -xmlsec-mscrypto library ------------------------------------------------------------------------------- - -Copyright (C) 2002-2010 Aleksey Sanin. All Rights Reserved. -Copyright (C) 2003 Cordys R&D BV, All rights reserved. -Copyright (C) 2007 Roumen Petrov. -Copyright (c) 2005-2006 Cryptocom LTD (http://www.cryptocom.ru). - - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is fur- -nished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- -NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -ALEKSEY SANIN BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON- -NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of Aleksey Sanin shall not -be used in advertising or otherwise to promote the sale, use or other deal- -ings in this Software without prior written authorization from him. - - - -References ------------------------------------------------------------------------------- - -* AOL -http://www.aleksey.com/pipermail/xmlsec/2003/005488.html -http://www.aleksey.com/pipermail/xmlsec/attachments/20030729/0e25648e/attachment.htm - -* Cordys R&D BV -http://www.aleksey.com/pipermail/xmlsec/2003/005581.html - -* Cryptocom LTD -http://www.aleksey.com/pipermail/xmlsec/2006/007410.html - diff --git a/ChangeLog b/ChangeLog index 7941b6b..b63503c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,129 +1,3 @@ -2011-05-11 Aleksey Sanin - * 1.2.18 release - -2011-05-01 Aleksey Sanin - * Fixed crasher in 64 bit (reported by Roumen) - -2011-03-31 Aleksey Sanin - * 1.2.17 release - -2011-03-30 Aleksey Sanin - * Preparations for 1.2.17 release - -2011-03-29 Aleksey Sanin - * Fixed security issue with libxslt (CVE-2011-1425, reported by Nicolas Gregoire) - -2011-02-05 Aleksey Sanin - * Fixed pkcs12 file loading (based on patch from Andre de Souza Pinto) - -2010-11-23 Aleksey Sanin - * Fixed comments (based on patch from Wolfgang Woehl) - -2010-11-09 Aleksey Sanin - * Fixed extra quotes in configure (bug #631258) - -2010-07-19 Aleksey Sanin - * Fixed configure issue with empty --with-libxml/libxsl and config scripts in /bin directory - -2010-06-27 Aleksey Sanin - * Fixed gcrypt init/shutdown (patch from Roumen) - -2010-04-25 Aleksey Sanin - * 1.2.16 release - -2010-04-24 Aleksey Sanin - * Preparation for 1.2.16 release - -2010-05-23 Aleksey Sanin - * Added X509Data support to xmlsec-gnutls - -2010-05-12 Aleksey Sanin - * Several patches from Roumen: support NSS/NSPR from seamonkey - package; reorder libxmlsec as dep. lib for mingw; fix gcrypt/src/asn1.h - include; fix Unicode build for mingw - * Added RSA/SHA1/SHA256/SHA384/SHA512/MD5/RIPEMD160 for xmlsec-gnutls - * Added DSA/SHA1 for xmlsec-gnutls - -2010-05-10 Aleksey Sanin - * Added RSA/SHA1/SHA256/SHA384/SHA512/MD5/RIPEMD160 for xmlsec-gcrypt - * Added DSA/SHA1 for xmlsec-gcrypt - -2010-05-09 Aleksey Sanin - * Added DES KW support for xmlsec-mscrypto - * Added DES KW support for xmlsec-gnutls - * Separated xmlsec-gnutls and xmlsec-gcrypt libraries - -2010-05-08 Aleksey Sanin - * Added AES KW support for xmlsec-mscrypto - * Added AES KW support for xmlsec-gnutls - -2010-04-30 Aleksey Sanin - * Added RSA/OAEP support for xmlsec-mscrypto - -2010-04-29 Aleksey Sanin - * 1.2.15 release - -2010-04-28 Aleksey Sanin - * Preparation for 1.2.15 release - -2010-04-27 Aleksey Sanin - * Converted xmlsec-mscrypto to unicode and provided a compile time - option to switch between unicode/non-unicode builds - * Deleted support for old gnutls, new required version 2.8.0 - * Added SHA256/384/512 support for xmlsec-gnutls - -2010-04-26 Aleksey Sanin - * Added support for HMAC with MD5, SHA1, SHA256/384/512 in xmlsec-mscrypto - * Added support for MD5 RSA/MD5 in xmlsec-mscrypto - -2010-04-25 Aleksey Sanin - * Added support for SHA256/384/512 for digest, HMAC and RSA in xmlsec-nss - (requires nss 3.8 + nspr 4.3 or greater) - * Added support for MD5 for digest and RSA in xmlsec-nss - * Minor fixes to xmlsec-nss (xmlsec bug #118630), bumping nss min - version to 3.9 + nspr 4.4.1 or greater - Other minor fixes for xmlsec-nss - -2010-04-24 Aleksey Sanin - * Fix PK_CONFIG problem (reported by Roumen) - * Enable --crypto for transform checks - -2010-04-23 Aleksey Sanin - * Enable RSA/SHA2 support in xmlsec-mscrypto - * Misc. cleanups in xmlsec-mscrypto - * Fix PK_CONFIG problem (reported by Roumen) - * Fix DSA support in xmlsec-nss (https://bugzilla.mozilla.org/show_bug.cgi?id=561598) - -2010-04-23 Aleksey Sanin - * Fix search for certificates with UTF-8 subject on Windows in xmlsec-mscrypto - * Remove spaces at the end of lines - -2010-04-22 Aleksey Sanin - * Fix search for certificates with Unicode subject on Windows in xmlsec-mscrypto - * Copy *.manifest files to installation for Windows builds - * Convert tabs to spaces - -2010-04-21 Aleksey Sanin - * Fix key name conversion to unicode problem in xmlsec-mscrypto - -2010-04-20 Aleksey Sanin - * Fix compile warnings in xmlsec-openssl - * Fix linking order issue (based on patch from Roumen) - -2010-03-30 Aleksey Sanin - * Fix typo Copyrigth -> Copyright - * Add xmlsec-mscrypto to the top level copyright file - * Refresh the copyright date to 2010 - * Add references to licenses - -2010-03-18 Aleksey Sanin - * Ensure we have only one copy of key's cert after reading pkcs12 - from openssl - -2010-01-13 Aleksey Sanin - * Fix valgrind's invalid read with chained XPath transforms (based - on patch from Frank Gross). - 2009-09-05 Aleksey Sanin * preparation for 1.2.14 release diff --git a/Copyright b/Copyright index 23e4372..fb94427 100644 --- a/Copyright +++ b/Copyright @@ -1,7 +1,7 @@ -xmlsec, xmlsec-openssl, xmlsec-gnutls, xmlsec-gcrypt libraries +xmlsec, xmlsec-openssl, xmlsec-gnutls libraries ------------------------------------------------------------------------------ -Copyright (C) 2002-2010 Aleksey Sanin. All Rights Reserved. +Copyright (C) 2002-2003 Aleksey Sanin. All Rights Reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -27,7 +27,7 @@ ings in this Software without prior written authorization from him. xmlsec-nss library ------------------------------------------------------------------------------ -Copyright (C) 2002-2010 Aleksey Sanin. All Rights Reserved. +Copyright (C) 2002-2003 Aleksey Sanin. All Rights Reserved. Copyright (c) 2003 America Online, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy @@ -57,49 +57,3 @@ Except as contained in this notice, the name of Aleksey Sanin shall not be used in advertising or otherwise to promote the sale, use or other deal- ings in this Software without prior written authorization from him. - -xmlsec-mscrypto library ------------------------------------------------------------------------------- - -Copyright (C) 2002-2010 Aleksey Sanin. All Rights Reserved. -Copyright (C) 2003 Cordys R&D BV, All rights reserved. -Copyright (C) 2007 Roumen Petrov. -Copyright (c) 2005-2006 Cryptocom LTD (http://www.cryptocom.ru). - - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is fur- -nished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- -NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -ALEKSEY SANIN BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON- -NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of Aleksey Sanin shall not -be used in advertising or otherwise to promote the sale, use or other deal- -ings in this Software without prior written authorization from him. - - - -References ------------------------------------------------------------------------------- - -* AOL -http://www.aleksey.com/pipermail/xmlsec/2003/005488.html -http://www.aleksey.com/pipermail/xmlsec/attachments/20030729/0e25648e/attachment.htm - -* Cordys R&D BV -http://www.aleksey.com/pipermail/xmlsec/2003/005581.html - -* Cryptocom LTD -http://www.aleksey.com/pipermail/xmlsec/2006/007410.html - diff --git a/HACKING b/HACKING index 851d162..0b51ddf 100644 --- a/HACKING +++ b/HACKING @@ -153,45 +153,6 @@ If you want to submit a patch please do following: (http://www.aleksey.com/xmlsec/bugs.html) for the record. Do not forget to put link or bug number in your message if the bug is in bugzilla. -4) Building a release -- Cleanup, make sure no other changes are pending - - make distclean - - git status -- Update Changelog -- Write about release changes in the release - - docs/index.html and docs/news.html -- Update release number in - - configure.in (2 places at the top) - - docs/download.html -- Create build - - ./autogen.sh - - make -- Build docs (watch for errors!) - - make docs -- Commit the "prepare for X.Y.Z" release - - git commit -m"prepare for X.Y.Z release" -a -- Run tests, make sure everything is OK - - make check -- Build release - - sudo ./scripts/build_release.sh -- Extract tar file, make sure it works - - cd /tmp - - tar xvfz /usr/src/redhat/SOURCE/xmlsec1-X.Y.z.tar.gz - - cd xmlsec1-X.Y.z - - ./configure - - make - - make check -- Copy tar file to FTP/Web Download -- Copy docs/ folder to Web folder -- Write an announcement email to xmlsec@aleksey.com -- Update freshmeat.net -- Relax - - - - - - diff --git a/Makefile.am b/Makefile.am index 669f996..3fce548 100644 --- a/Makefile.am +++ b/Makefile.am @@ -17,11 +17,7 @@ ACLOCAL_AMFLAGS = -I m4 DISTCLEANFILES = \ xmlsec1Conf.sh \ - xmlsec1.pc \ - xmlsec1-openssl.pc \ - xmlsec1-nss.pc \ - xmlsec1-gnutls.pc \ - xmlsec1-gcrypt.pc \ + xmlsec1.pc xmlsec1-openssl.pc xmlsec1-gnutls.pc xmlsec1-nss.pc \ xmlsec1-config \ xmlsec1.spec \ stamp-h2 \ @@ -40,10 +36,7 @@ EXTRA_DIST = \ ChangeLog \ Copyright \ HACKING \ - xmlsec-openssl.pc.in \ - xmlsec-nss.pc.in\ - xmlsec-gnutls.pc.in \ - xmlsec-gcrypt.pc.in \ + xmlsec-openssl.pc.in xmlsec-gnutls.pc.in xmlsec-nss.pc.in\ xmlsec-config.in \ xmlsecConf.sh.in \ xmlsec.spec.in \ @@ -64,6 +57,9 @@ if XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING PRECHECK_COMMANDS = \ cd $(ABS_SRCDIR) \ $(NULL) +CHECK_CRYPTO_LIST = \ + "default" \ + $(NULL) else PRECHECK_COMMANDS= \ for i in $(XMLSEC_CRYPTO_LIST) ; do \ @@ -71,10 +67,10 @@ PRECHECK_COMMANDS= \ done && \ cd $(ABS_SRCDIR) \ $(NULL) -endif CHECK_CRYPTO_LIST = \ $(XMLSEC_CRYPTO_LIST) \ $(NULL) +endif docs: docs-man @(cd docs && $(MAKE) docs) @@ -85,85 +81,47 @@ docs-clean: docs-man: @(cd man && $(MAKE) docs) -check: check-all check-info +check: check-all check-info check-all: $(TEST_APP) @($(PRECHECK_COMMANDS) && \ - for crypto in $(CHECK_CRYPTO_LIST) ; do \ - echo "=================== Checking xmlsec-$$crypto =================================" && \ - $(SHELL) ./tests/testrun.sh \ - $(ABS_SRCDIR)/tests/testKeys.sh \ - $$crypto \ - $(ABS_SRCDIR)/tests \ - $(ABS_BUILDDIR)/$(TEST_APP) der \ - && \ - $(SHELL) ./tests/testrun.sh \ - $(ABS_SRCDIR)/tests/testDSig.sh \ - $$crypto \ - $(ABS_SRCDIR)/tests \ - $(ABS_BUILDDIR)/$(TEST_APP) \ - der \ - && \ - $(SHELL) ./tests/testrun.sh \ - $(ABS_SRCDIR)/tests/testEnc.sh \ - $$crypto \ - $(ABS_SRCDIR)/tests \ - $(ABS_BUILDDIR)/$(TEST_APP) \ - der \ - ; \ + for i in $(CHECK_CRYPTO_LIST) ; do \ + echo "=================== Checking xmlsec-$$i =================================" && \ + $(SHELL) ./tests/testKeys.sh $$i $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der && \ + $(SHELL) ./tests/testDSig.sh $$i $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der && \ + $(SHELL) ./tests/testEnc.sh $$i $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der ; \ done; ) check-info: - @echo "---------------------------- ATTENTION -----------------------------------" - @echo "--- Some of the tests use resources located on external HTTP servers. ---" - @echo "--- If you have no Internet connection or the external resource is not ---" - @echo "--- responding then the test will fail. ---" - @echo "---------------------------- ATTENTION -----------------------------------" - -check-keys: $(TEST_APP) + @echo "-------------------------- ATTENTION -----------------------------------" + @echo "--- 1) Some of the following tests use resources located on external ---" + @echo "--- HTTP servers. If you have no Internet connection or the external ---" + @echo "--- resource is not responding then the test will fail. ---" + @echo "--- 2) The test fails if corresponding feature(s) is disabled. ---" + @echo "--- Please, don't be surprised that many XML Encryption tests fails ---" + @echo "--- when you use OpenSSL 0.9.6 (see the FAQ for details) ---" + @echo "-------------------------- ATTENTION -----------------------------------" + +check-km: $(TEST_APP) @($(PRECHECK_COMMANDS) && \ - $(SHELL) ./tests/testrun.sh \ - $(ABS_SRCDIR)/tests/testKeys.sh \ - $(DEFAULT_CRYPTO) \ - $(ABS_SRCDIR)/tests \ - $(ABS_BUILDDIR)/$(TEST_APP) \ - der \ - ) + $(SHELL) ./tests/testKeys.sh default $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der) check-dsig: $(TEST_APP) @($(PRECHECK_COMMANDS) && \ - $(SHELL) ./tests/testrun.sh \ - $(ABS_SRCDIR)/tests/testDSig.sh \ - $(DEFAULT_CRYPTO) \ - $(ABS_SRCDIR)/tests \ - $(ABS_BUILDDIR)/$(TEST_APP) \ - der \ - ) + $(SHELL) ./tests/testDSig.sh default $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der) -check-enc: $(TEST_APP) +check-xkms: $(TEST_APP) @($(PRECHECK_COMMANDS) && \ - $(SHELL) ./tests/testrun.sh \ - $(ABS_SRCDIR)/tests/testEnc.sh \ - $(DEFAULT_CRYPTO) \ - $(ABS_SRCDIR)/tests \ - $(ABS_BUILDDIR)/$(TEST_APP) \ - der \ - ) + $(SHELL) ./tests/testXKMS.sh default $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der) -check-xkms: $(TEST_APP) +check-enc: $(TEST_APP) @($(PRECHECK_COMMANDS) && \ - $(SHELL) ./tests/testrun.sh \ - $(ABS_SRCDIR)/tests/testXKMS.sh \ - $(DEFAULT_CRYPTO) \ - $(ABS_SRCDIR)/tests \ - $(ABS_BUILDDIR)/$(TEST_APP) \ - der \ - ) + $(SHELL) ./tests/testEnc.sh default $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der) memcheck-res: - @grep -i 'ERROR SUMMARY' /tmp/*.log | sed 's/.*==.*== *//' | sort -u - @grep -i 'in use at exit' /tmp/*.log | sed 's/.*==.*== *//' | sort -u - @grep -i 'total heap usage' /tmp/*.log | sed 's/.*==.*== *//' | sort -u + @grep -i lost /tmp/*.log | sed 's/==.*== *//' | sort -u + @grep -i leak /tmp/*.log | sed 's/==.*== *//' | sort -u + @grep -i 'in use' /tmp/*.log | sed 's/==.*== *//' | sort -u memcheck: $(TEST_APP) @(export DEBUG_MEMORY=1 && $(MAKE) check && $(MAKE) memcheck-res) @@ -176,11 +134,9 @@ dist-hook: cleantar: @($(RM) -f xmlsec*.tar.gz COPYING.LIB) -tar-release: clean cleantar - @(unset CDPATH && $(MAKE) dist) +rpm: cleantar + @(unset CDPATH && $(MAKE) dist && rpmbuild -ta $(distdir).tar.gz) -rpm: cleantar tar-release - @(unset CDPATH && rpmbuild -ta $(distdir).tar.gz) - -rpm-release: clean cleantar rpm +rpm-release: clean cleantar rpm + diff --git a/Makefile.in b/Makefile.in index 759a10b..45e5a16 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -38,27 +38,23 @@ host_triplet = @host@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ - $(srcdir)/xmlsec-config.in $(srcdir)/xmlsec-gcrypt.pc.in \ - $(srcdir)/xmlsec-gnutls.pc.in $(srcdir)/xmlsec-nss.pc.in \ - $(srcdir)/xmlsec-openssl.pc.in $(srcdir)/xmlsec.pc.in \ - $(srcdir)/xmlsec.spec.in $(srcdir)/xmlsecConf.sh.in \ - $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ - TODO config.guess config.sub depcomp install-sh ltmain.sh \ - missing + $(srcdir)/xmlsec-config.in $(srcdir)/xmlsec-gnutls.pc.in \ + $(srcdir)/xmlsec-nss.pc.in $(srcdir)/xmlsec-openssl.pc.in \ + $(srcdir)/xmlsec.pc.in $(srcdir)/xmlsec.spec.in \ + $(srcdir)/xmlsecConf.sh.in $(top_srcdir)/configure AUTHORS \ + COPYING ChangeLog INSTALL NEWS TODO config.guess config.sub \ + depcomp install-sh ltmain.sh missing mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno -mkinstalldirs = $(install_sh) -d +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = xmlsec1.pc xmlsec1Conf.sh xmlsec1-config \ - xmlsec1-openssl.pc xmlsec1-gnutls.pc xmlsec1-gcrypt.pc \ - xmlsec1-nss.pc xmlsec1.spec + xmlsec1-openssl.pc xmlsec1-gnutls.pc xmlsec1-nss.pc \ + xmlsec1.spec CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ @@ -162,10 +158,6 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ -GCRYPT_CFLAGS = @GCRYPT_CFLAGS@ -GCRYPT_CRYPTO_LIB = @GCRYPT_CRYPTO_LIB@ -GCRYPT_LIBS = @GCRYPT_LIBS@ -GCRYPT_MIN_VERSION = @GCRYPT_MIN_VERSION@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@ GNUTLS_CRYPTO_LIB = @GNUTLS_CRYPTO_LIB@ GNUTLS_LIBS = @GNUTLS_LIBS@ @@ -227,10 +219,8 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKGCONFIG_PRESENT = @PKGCONFIG_PRESENT@ PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PKG_CONFIG_ENABLED = @PKG_CONFIG_ENABLED@ RANLIB = @RANLIB@ RM = @RM@ SED = @SED@ @@ -257,8 +247,6 @@ XMLSEC_DL_INCLUDES = @XMLSEC_DL_INCLUDES@ XMLSEC_DL_LIBS = @XMLSEC_DL_LIBS@ XMLSEC_DOCDIR = @XMLSEC_DOCDIR@ XMLSEC_EXTRA_LDFLAGS = @XMLSEC_EXTRA_LDFLAGS@ -XMLSEC_GCRYPT_CFLAGS = @XMLSEC_GCRYPT_CFLAGS@ -XMLSEC_GCRYPT_LIBS = @XMLSEC_GCRYPT_LIBS@ XMLSEC_GNUTLS_CFLAGS = @XMLSEC_GNUTLS_CFLAGS@ XMLSEC_GNUTLS_LIBS = @XMLSEC_GNUTLS_LIBS@ XMLSEC_LIBDIR = @XMLSEC_LIBDIR@ @@ -268,7 +256,6 @@ XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING = @XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING@ XMLSEC_NO_CRYPTO_DYNAMIC_LOADING = @XMLSEC_NO_CRYPTO_DYNAMIC_LOADING@ XMLSEC_NO_DES = @XMLSEC_NO_DES@ XMLSEC_NO_DSA = @XMLSEC_NO_DSA@ -XMLSEC_NO_GCRYPT = @XMLSEC_NO_GCRYPT@ XMLSEC_NO_GNUTLS = @XMLSEC_NO_GNUTLS@ XMLSEC_NO_GOST = @XMLSEC_NO_GOST@ XMLSEC_NO_HMAC = @XMLSEC_NO_HMAC@ @@ -367,11 +354,7 @@ m4data_DATA = xmlsec1.m4 ACLOCAL_AMFLAGS = -I m4 DISTCLEANFILES = \ xmlsec1Conf.sh \ - xmlsec1.pc \ - xmlsec1-openssl.pc \ - xmlsec1-nss.pc \ - xmlsec1-gnutls.pc \ - xmlsec1-gcrypt.pc \ + xmlsec1.pc xmlsec1-openssl.pc xmlsec1-gnutls.pc xmlsec1-nss.pc \ xmlsec1-config \ xmlsec1.spec \ stamp-h2 \ @@ -390,10 +373,7 @@ EXTRA_DIST = \ ChangeLog \ Copyright \ HACKING \ - xmlsec-openssl.pc.in \ - xmlsec-nss.pc.in\ - xmlsec-gnutls.pc.in \ - xmlsec-gcrypt.pc.in \ + xmlsec-openssl.pc.in xmlsec-gnutls.pc.in xmlsec-nss.pc.in\ xmlsec-config.in \ xmlsecConf.sh.in \ xmlsec.spec.in \ @@ -421,9 +401,13 @@ ABS_BUILDDIR = @abs_builddir@ @XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ cd $(ABS_SRCDIR) \ @XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(NULL) -CHECK_CRYPTO_LIST = \ - $(XMLSEC_CRYPTO_LIST) \ - $(NULL) +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@CHECK_CRYPTO_LIST = \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@ $(XMLSEC_CRYPTO_LIST) \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@ $(NULL) + +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@CHECK_CRYPTO_LIST = \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ "default" \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(NULL) all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive @@ -490,8 +474,6 @@ xmlsec1-openssl.pc: $(top_builddir)/config.status $(srcdir)/xmlsec-openssl.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ xmlsec1-gnutls.pc: $(top_builddir)/config.status $(srcdir)/xmlsec-gnutls.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ -xmlsec1-gcrypt.pc: $(top_builddir)/config.status $(srcdir)/xmlsec-gcrypt.pc.in - cd $(top_builddir) && $(SHELL) ./config.status $@ xmlsec1-nss.pc: $(top_builddir)/config.status $(srcdir)/xmlsec-nss.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ xmlsec1.spec: $(top_builddir)/config.status $(srcdir)/xmlsec.spec.in @@ -607,7 +589,7 @@ uninstall-pkgconfigDATA: # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ + @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -632,7 +614,7 @@ $(RECURSIVE_TARGETS): fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ + @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -799,8 +781,7 @@ distdir: $(DISTFILES) top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook -test -n "$(am__skip_mode_fix)" \ - || find "$(distdir)" -type d ! -perm -755 \ - -exec chmod u+rwx,go+rx {} \; -o \ + || find "$(distdir)" -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ @@ -844,17 +825,17 @@ dist dist-all: distdir distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ - bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ - lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ + unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac @@ -1051,85 +1032,47 @@ docs-clean: docs-man: @(cd man && $(MAKE) docs) -check: check-all check-info +check: check-all check-info check-all: $(TEST_APP) @($(PRECHECK_COMMANDS) && \ - for crypto in $(CHECK_CRYPTO_LIST) ; do \ - echo "=================== Checking xmlsec-$$crypto =================================" && \ - $(SHELL) ./tests/testrun.sh \ - $(ABS_SRCDIR)/tests/testKeys.sh \ - $$crypto \ - $(ABS_SRCDIR)/tests \ - $(ABS_BUILDDIR)/$(TEST_APP) der \ - && \ - $(SHELL) ./tests/testrun.sh \ - $(ABS_SRCDIR)/tests/testDSig.sh \ - $$crypto \ - $(ABS_SRCDIR)/tests \ - $(ABS_BUILDDIR)/$(TEST_APP) \ - der \ - && \ - $(SHELL) ./tests/testrun.sh \ - $(ABS_SRCDIR)/tests/testEnc.sh \ - $$crypto \ - $(ABS_SRCDIR)/tests \ - $(ABS_BUILDDIR)/$(TEST_APP) \ - der \ - ; \ + for i in $(CHECK_CRYPTO_LIST) ; do \ + echo "=================== Checking xmlsec-$$i =================================" && \ + $(SHELL) ./tests/testKeys.sh $$i $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der && \ + $(SHELL) ./tests/testDSig.sh $$i $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der && \ + $(SHELL) ./tests/testEnc.sh $$i $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der ; \ done; ) check-info: - @echo "---------------------------- ATTENTION -----------------------------------" - @echo "--- Some of the tests use resources located on external HTTP servers. ---" - @echo "--- If you have no Internet connection or the external resource is not ---" - @echo "--- responding then the test will fail. ---" - @echo "---------------------------- ATTENTION -----------------------------------" - -check-keys: $(TEST_APP) + @echo "-------------------------- ATTENTION -----------------------------------" + @echo "--- 1) Some of the following tests use resources located on external ---" + @echo "--- HTTP servers. If you have no Internet connection or the external ---" + @echo "--- resource is not responding then the test will fail. ---" + @echo "--- 2) The test fails if corresponding feature(s) is disabled. ---" + @echo "--- Please, don't be surprised that many XML Encryption tests fails ---" + @echo "--- when you use OpenSSL 0.9.6 (see the FAQ for details) ---" + @echo "-------------------------- ATTENTION -----------------------------------" + +check-km: $(TEST_APP) @($(PRECHECK_COMMANDS) && \ - $(SHELL) ./tests/testrun.sh \ - $(ABS_SRCDIR)/tests/testKeys.sh \ - $(DEFAULT_CRYPTO) \ - $(ABS_SRCDIR)/tests \ - $(ABS_BUILDDIR)/$(TEST_APP) \ - der \ - ) + $(SHELL) ./tests/testKeys.sh default $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der) check-dsig: $(TEST_APP) @($(PRECHECK_COMMANDS) && \ - $(SHELL) ./tests/testrun.sh \ - $(ABS_SRCDIR)/tests/testDSig.sh \ - $(DEFAULT_CRYPTO) \ - $(ABS_SRCDIR)/tests \ - $(ABS_BUILDDIR)/$(TEST_APP) \ - der \ - ) + $(SHELL) ./tests/testDSig.sh default $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der) -check-enc: $(TEST_APP) +check-xkms: $(TEST_APP) @($(PRECHECK_COMMANDS) && \ - $(SHELL) ./tests/testrun.sh \ - $(ABS_SRCDIR)/tests/testEnc.sh \ - $(DEFAULT_CRYPTO) \ - $(ABS_SRCDIR)/tests \ - $(ABS_BUILDDIR)/$(TEST_APP) \ - der \ - ) + $(SHELL) ./tests/testXKMS.sh default $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der) -check-xkms: $(TEST_APP) +check-enc: $(TEST_APP) @($(PRECHECK_COMMANDS) && \ - $(SHELL) ./tests/testrun.sh \ - $(ABS_SRCDIR)/tests/testXKMS.sh \ - $(DEFAULT_CRYPTO) \ - $(ABS_SRCDIR)/tests \ - $(ABS_BUILDDIR)/$(TEST_APP) \ - der \ - ) + $(SHELL) ./tests/testEnc.sh default $(ABS_SRCDIR)/tests $(ABS_BUILDDIR)/$(TEST_APP) der) memcheck-res: - @grep -i 'ERROR SUMMARY' /tmp/*.log | sed 's/.*==.*== *//' | sort -u - @grep -i 'in use at exit' /tmp/*.log | sed 's/.*==.*== *//' | sort -u - @grep -i 'total heap usage' /tmp/*.log | sed 's/.*==.*== *//' | sort -u + @grep -i lost /tmp/*.log | sed 's/==.*== *//' | sort -u + @grep -i leak /tmp/*.log | sed 's/==.*== *//' | sort -u + @grep -i 'in use' /tmp/*.log | sed 's/==.*== *//' | sort -u memcheck: $(TEST_APP) @(export DEBUG_MEMORY=1 && $(MAKE) check && $(MAKE) memcheck-res) @@ -1142,13 +1085,10 @@ dist-hook: cleantar: @($(RM) -f xmlsec*.tar.gz COPYING.LIB) -tar-release: clean cleantar - @(unset CDPATH && $(MAKE) dist) - -rpm: cleantar tar-release - @(unset CDPATH && rpmbuild -ta $(distdir).tar.gz) +rpm: cleantar + @(unset CDPATH && $(MAKE) dist && rpmbuild -ta $(distdir).tar.gz) -rpm-release: clean cleantar rpm +rpm-release: clean cleantar rpm # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/TODO b/TODO index 7adb969..280c983 100644 --- a/TODO +++ b/TODO @@ -1,156 +1,6 @@ -************************************************* - General -************************************************* +- Unify password callback (one of parameters: filename) +- get key usage from certs +- extend keys manager to return more info when key is found or not found +(what cheks were performed, etc.) -* Unify password callback (one of parameters: filename) -* Get key usage from certs -* Extend keys manager to return more info when key is found or not found - (what cheks were performed, etc.) - - -************************************************* - Tests status -************************************************* - -------------------------------------------------- -* xmlsec-openssl (April 26, 2010 using OpenSSL 0.9.8g) -------------------------------------------------- - -** Skipped tests due to missing transforms: GOST - -aleksey-xmldsig-01/enveloped-gost - - -------------------------------------------------- -* xmlsec-nss (April 26, 2010 using NSS 3.12.6) -------------------------------------------------- - -** Skipped tests due to missing transforms: RIPEMD160, SHA224, RSA/OAEP, GOST - -aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160 -aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160-64 -aleksey-xmldsig-01/enveloping-sha224-hmac-sha224 -aleksey-xmldsig-01/enveloping-sha224-hmac-sha224-64 -aleksey-xmldsig-01/enveloping-ripemd160-rsa-ripemd160 -aleksey-xmldsig-01/enveloping-sha224-rsa-sha224 -aleksey-xmldsig-01/enveloped-gost -merlin-xmlenc-five/encsig-ripemd160-hmac-ripemd160-kw-tripledes -merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p -01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1 -01-phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1 -01-phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1 -01-phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1 - -** Failed tests due to no support for CRLs in XML document - -merlin-xmldsig-twenty-three/signature-x509-crt-crl - - -------------------------------------------------- -* xmlsec-mscrypto (May 09, 2010 using Windows XP SP3) -------------------------------------------------- - -** Skipped tests due to missing transforms: RIPEMD160, SHA224 - -aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160 -aleksey-xmldsig-01/enveloping-ripemd160-hmac-ripemd160-64 -aleksey-xmldsig-01/enveloping-sha224-hmac-sha224 -aleksey-xmldsig-01/enveloping-sha224-hmac-sha224-64 -aleksey-xmldsig-01/enveloping-ripemd160-rsa-ripemd160 -aleksey-xmldsig-01/enveloping-sha224-rsa-sha224 -merlin-xmlenc-five/encsig-ripemd160-hmac-ripemd160-kw-tripledes - -** Failed tests due to no GOST crypto providers on test machine - -aleksey-xmldsig-01/enveloped-gost - -------------------------------------------------- -* xmlsec-gnutls (May 24, 2010 using GnuTLS) -------------------------------------------------- - -** Skipped tests due to missing transforms: RSA PKCS/OAEP, GOST - -aleksey-xmldsig-01/enveloping-sha224-hmac-sha224 -aleksey-xmldsig-01/enveloping-sha224-hmac-sha224-64 -aleksey-xmldsig-01/enveloping-sha224-rsa-sha224 -merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5 -merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p -aleksey-xmldsig-01/enveloped-gost -phaos-xmldsig-three/signature-rsa-manifest-x509-data-crl - -01-phaos-xmlenc-3/enc-element-3des-kt-rsa1_5 -01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1 -01-phaos-xmlenc-3/enc-element-aes128-kt-rsa1_5 -01-phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1 -01-phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1 -01-phaos-xmlenc-3/enc-text-aes192-kt-rsa1_5 -01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5 -01-phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1 - -------------------------------------------------- -* xmlsec-gcrypt (May 09, 2010 using GCrypt) -------------------------------------------------- - -** Skipped tests due to missing transforms: DSA, RSA PKCS/OAEP, X509, GOST - -aleksey-xmldsig-01/enveloping-dsa-x509chain -aleksey-xmldsig-01/enveloping-rsa-x509chain -aleksey-xmldsig-01/enveloping-sha224-hmac-sha224 -aleksey-xmldsig-01/enveloping-sha224-hmac-sha224-64 -aleksey-xmldsig-01/enveloping-md5-rsa-md5 -aleksey-xmldsig-01/enveloping-ripemd160-rsa-ripemd160 -aleksey-xmldsig-01/enveloping-sha1-rsa-sha1 -aleksey-xmldsig-01/enveloping-sha224-rsa-sha224 -aleksey-xmldsig-01/enveloping-sha256-rsa-sha256 -aleksey-xmldsig-01/enveloping-sha384-rsa-sha384 -aleksey-xmldsig-01/enveloping-sha512-rsa-sha512 -aleksey-xmldsig-01/enveloping-expired-cert -aleksey-xmldsig-01/x509data-test -aleksey-xmldsig-01/x509data-sn-test - -merlin-xmldsig-twenty-three/signature-keyname -merlin-xmldsig-twenty-three/signature-x509-crt -merlin-xmldsig-twenty-three/signature-x509-sn -merlin-xmldsig-twenty-three/signature-x509-is -merlin-xmldsig-twenty-three/signature-x509-ski -merlin-xmldsig-twenty-three/signature-retrievalmethod-rawx509crt -merlin-xmldsig-twenty-three/signature -merlin-xmlenc-five/encsig-hmac-sha256-rsa-1_5 -merlin-xmlenc-five/encsig-hmac-sha256-rsa-oaep-mgf1p -phaos-xmldsig-three/signature-big -phaos-xmldsig-three/signature-dsa-detached -phaos-xmldsig-three/signature-dsa-enveloped -phaos-xmldsig-three/signature-dsa-enveloping -phaos-xmldsig-three/signature-dsa-manifest -phaos-xmldsig-three/signature-rsa-detached-b64-transform -phaos-xmldsig-three/signature-rsa-detached -phaos-xmldsig-three/signature-rsa-detached-xpath-transform -phaos-xmldsig-three/signature-rsa-detached-xslt-transform-retrieval-method -phaos-xmldsig-three/signature-rsa-detached-xslt-transform -phaos-xmldsig-three/signature-rsa-enveloped -phaos-xmldsig-three/signature-rsa-enveloping -phaos-xmldsig-three/signature-rsa-manifest-x509-data-cert-chain -phaos-xmldsig-three/signature-rsa-manifest-x509-data-cert -phaos-xmldsig-three/signature-rsa-manifest-x509-data-issuer-serial -phaos-xmldsig-three/signature-rsa-manifest-x509-data-ski -phaos-xmldsig-three/signature-rsa-manifest-x509-data-subject-name -phaos-xmldsig-three/signature-rsa-manifest -phaos-xmldsig-three/signature-rsa-xpath-transform-enveloped -aleksey-xmldsig-01/enveloped-gost -merlin-xmldsig-twenty-three/signature-x509-crt-crl -aleksey-xmldsig-01/enveloping-expired-cert -phaos-xmldsig-three/signature-rsa-detached-xslt-transform-bad-retrieval-method -phaos-xmldsig-three/signature-rsa-enveloped-bad-digest-val -phaos-xmldsig-three/signature-rsa-enveloped-bad-sig -phaos-xmldsig-three/signature-rsa-manifest-x509-data-crl - -merlin-xmlenc-five/encrypt-element-aes128-cbc-rsa-1_5 -merlin-xmlenc-five/encrypt-data-tripledes-cbc-rsa-oaep-mgf1p -01-phaos-xmlenc-3/enc-element-3des-kt-rsa1_5 -01-phaos-xmlenc-3/enc-element-3des-kt-rsa_oaep_sha1 -01-phaos-xmlenc-3/enc-element-aes128-kt-rsa1_5 -01-phaos-xmlenc-3/enc-element-aes128-kt-rsa_oaep_sha1 -01-phaos-xmlenc-3/enc-element-aes192-kt-rsa_oaep_sha1 -01-phaos-xmlenc-3/enc-text-aes192-kt-rsa1_5 -01-phaos-xmlenc-3/enc-content-aes256-kt-rsa1_5 -01-phaos-xmlenc-3/enc-text-aes256-kt-rsa_oaep_sha1 + \ No newline at end of file diff --git a/aclocal.m4 b/aclocal.m4 index ca9f573..c2f7f2b 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,4 +1,4 @@ -# generated automatically by aclocal 1.11.1 -*- Autoconf -*- +# generated automatically by aclocal 1.11 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. @@ -13,14 +13,7978 @@ m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, -[m4_warning([this file was generated for autoconf 2.67. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.64],, +[m4_warning([this file was generated for autoconf 2.64. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +m4_define([_LT_COPYING], [dnl +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +]) + +# serial 56 LT_INIT + + +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) + + +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) + + +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT + +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) + + +# _LT_CC_BASENAME(CC) +# ------------------- +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +m4_defun([_LT_CC_BASENAME], +[for cc_temp in $1""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +]) + + +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS + + +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl + +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +_LT_CHECK_OBJDIR + +m4_require([_LT_TAG_COMPILER])dnl +_LT_PROG_ECHO_BACKSLASH + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC + fi + ;; +esac + +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP + + +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from `configure', and `config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# `config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain="$ac_aux_dir/ltmain.sh" +])# _LT_PROG_LTMAIN + + + +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the `libtool' +# label. + + +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) + + +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) + + +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) +]) + + +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) + + + + + +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) + + +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) + + +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) + + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl +]) + + +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) + + +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) + + +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) + + +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) + + +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to `config.status' so that its +# declaration there will have the same value as in `configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) + + +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# ='`$ECHO "X$" | $Xsed -e "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags="_LT_TAGS"dnl +]) + + +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) + + +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) + + +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) + + +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into `config.status', and then the shell code to quote escape them in +# for loops in `config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS + + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Fix-up fallback echo if it was mangled by the above quoting rules. +case \$lt_ECHO in +*'\\\[$]0 --fallback-echo"')dnl " + lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` + ;; +esac + +_LT_OUTPUT_LIBTOOL_INIT +]) + + +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +cat >"$CONFIG_LT" <<_LTEOF +#! $SHELL +# Generated by $as_me. +# Run this file to recreate a libtool stub with the current configuration. + +lt_cl_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AS_SHELL_SANITIZE +_AS_PREPARE + +exec AS_MESSAGE_FD>&1 +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +\`$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to ." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2008 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test $[#] != 0 +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try \`$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try \`$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +if test "$no_create" != yes; then + lt_cl_success=: + test "$silent" = yes && + lt_config_lt_args="$lt_config_lt_args --quiet" + exec AS_MESSAGE_LOG_FD>/dev/null + $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false + exec AS_MESSAGE_LOG_FD>>config.log + $lt_cl_success || AS_EXIT(1) +fi +])# LT_OUTPUT + + +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +_LT_COPYING +_LT_LIBTOOL_TAGS + +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + _LT_PROG_LTMAIN + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + _LT_PROG_XSI_SHELLFNS + + sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" + +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG + + +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) + + +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) + + +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG + + +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG + + +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) + +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) + +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) + +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG + +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) + + +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE + +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) + + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS="$save_LDFLAGS" + ]) + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[[012]]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) + + +# _LT_DARWIN_LINKER_FEATURES +# -------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=echo + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + m4_if([$1], [CXX], +[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +]) + +# _LT_SYS_MODULE_PATH_AIX +# ----------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +AC_LINK_IFELSE(AC_LANG_PROGRAM,[ +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi],[]) +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi +])# _LT_SYS_MODULE_PATH_AIX + + +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[ifdef([AC_DIVERSION_NOTICE], + [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], + [AC_DIVERT_PUSH(NOTICE)]) +$1 +AC_DIVERT_POP +])# _LT_SHELL_INIT + + +# _LT_PROG_ECHO_BACKSLASH +# ----------------------- +# Add some code to the start of the generated configure script which +# will find an echo command which doesn't interpret backslashes. +m4_defun([_LT_PROG_ECHO_BACKSLASH], +[_LT_SHELL_INIT([ +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$lt_ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` + ;; +esac + +ECHO=${lt_ECHO-echo} +if test "X[$]1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X[$]1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then + # Yippee, $ECHO works! + : +else + # Restart under the correct shell. + exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} +fi + +if test "X[$]1" = X--fallback-echo; then + # used as fallback echo + shift + cat <<_LT_EOF +[$]* +_LT_EOF + exit 0 +fi + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test -z "$lt_ECHO"; then + if test "X${echo_test_string+set}" != Xset; then + # find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if { echo_test_string=`eval $cmd`; } 2>/dev/null && + { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null + then + break + fi + done + fi + + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : + else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + ECHO="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$ECHO" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + ECHO='print -r' + elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} + else + # Try using printf. + ECHO='printf %s\n' + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + ECHO="$CONFIG_SHELL [$]0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + ECHO="$CONFIG_SHELL [$]0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do + if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "[$]0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} + else + # Oops. We lost completely, so just stick with echo. + ECHO=echo + fi + fi + fi + fi + fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +lt_ECHO=$ECHO +if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then + lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" +fi + +AC_SUBST(lt_ECHO) +]) +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], + [An echo program that does not interpret backslashes]) +])# _LT_PROG_ECHO_BACKSLASH + + +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '[#]line __oline__ "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" +])# _LT_ENABLE_LOCK + + +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[AC_CHECK_TOOL(AR, ar, false) +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1]) + +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) + +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +])# _LT_CMD_OLD_ARCHIVE + + +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test x"[$]$2" = xyes; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +])# _LT_COMPILER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) + + +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +])# _LT_LINKER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) + + +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ + = "XX$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN + +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) + + +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN + + +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "$cross_compiling" = yes; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line __oline__ "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF + + +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF + +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) + + +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O + + +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) + +hard_links="nottested" +if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test "$hard_links" = no; then + AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS + + +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", + [Define to the sub-directory in which libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR + + +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) + +if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || + test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH + + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB + + +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` + else + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[[4-9]]*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[123]]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix[[3-9]]*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[[89]] | openbsd2.[[89]].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[List of archive names. First name is the real one, the rest are links. + The last name is the one that the linker finds with -lNAME]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], + [Run-time system search path for libraries]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program which can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX + +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) + + +# _LT_PATH_MAGIC +# -------------- +# find a file program which can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC + + +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method == "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD + + +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi]) +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) + AC_SUBST([DUMPBIN]) + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM + +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) + + +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M + +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) + + +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl + +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test "$GCC" = yes; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI + + +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl + +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[[ABCDEGRST]]' + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi + +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +]) # _LT_CMD_GLOBAL_SYMBOLS + + +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= + +AC_MSG_CHECKING([for $compiler option to produce PIC]) +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64 which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC*) + # IBM XL 8.0 on PPC + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test "$GCC" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xl*) + # IBM XL C 8.0/Fortran 10.1 on PPC + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Sun\ F*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + esac + ;; + esac + ;; + + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac +AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC + + +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + cygwin* | mingw* | cegcc*) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + ;; + linux* | k*bsd*-gnu) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + esac + + _LT_TAGVAR(ld_shlibs, $1)=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag= + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + _LT_TAGVAR(link_all_deplibs, $1)=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + freebsd1*) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + AC_LINK_IFELSE(int foo(void) {}, + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + ) + LDFLAGS="$save_LDFLAGS" + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + else + case $host_os in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + ;; + esac + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' + ;; + esac + fi + fi +]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $_LT_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_MSG_CHECKING([whether -lc should be explicitly linked in]) + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) + ;; + esac + fi + ;; +esac + +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], + [[If ld is used when linking, flag to hardcode $libdir into a binary + during linking. This must work even if $libdir does not exist]]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting ${shlibpath_var} if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [fix_srcfile_path], [1], + [Fix the shell variable $srcfile for the compiler]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS + + +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC="$CC" +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB + + # Report which library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_CONFIG($1) +fi +AC_LANG_POP +CC="$lt_save_CC" +])# _LT_LANG_C_CONFIG + + +# _LT_PROG_CXX +# ------------ +# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ +# compiler, we have our own version here. +m4_defun([_LT_PROG_CXX], +[ +pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) +AC_PROG_CXX +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi +popdef([AC_MSG_ERROR]) +])# _LT_PROG_CXX + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([_LT_PROG_CXX], []) + + +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[AC_REQUIRE([_LT_PROG_CXX])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl + +AC_LANG_PUSH(C++) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_caught_CXX_error" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi + + if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + LT_PATH_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GXX" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared + # libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + freebsd[[12]]*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + gnu*) + ;; + + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 will use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + xl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='echo' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + openbsd2*) + # C++ shared libraries are fairly broken + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd=echo + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='echo' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + fi + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + + _LT_TAGVAR(GCC, $1)="$GXX" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + CC=$lt_save_CC + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test "$_lt_caught_CXX_error" != yes + +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG + + +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= + +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +]) +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case $p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test $p = "-L" || + test $p = "-R"; then + prev=$p + continue + else + prev= + fi + + if test "$pre_test_object_deps_done" = no; then + case $p in + -L* | -R*) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)="${prev}${p}" + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" + fi + fi + ;; + + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test "$pre_test_object_deps_done" = no; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)="$p" + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)="$p" + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi + +$RM -f confest.$objext + +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; + +linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; + +solaris*) + case $cc_basename in + CC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; +esac +]) + +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS + + +# _LT_PROG_F77 +# ------------ +# Since AC_PROG_F77 is broken, in that it returns the empty string +# if there is no fortran compiler, we have our own version here. +m4_defun([_LT_PROG_F77], +[ +pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) +AC_PROG_F77 +if test -z "$F77" || test "X$F77" = "Xno"; then + _lt_disable_F77=yes +fi +popdef([AC_MSG_ERROR]) +])# _LT_PROG_F77 + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([_LT_PROG_F77], []) + + +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_REQUIRE([_LT_PROG_F77])dnl +AC_LANG_PUSH(Fortran 77) + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_F77" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + CC=${F77-"f77"} + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)="$G77" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC="$lt_save_CC" +fi # test "$_lt_disable_F77" != yes + +AC_LANG_POP +])# _LT_LANG_F77_CONFIG + + +# _LT_PROG_FC +# ----------- +# Since AC_PROG_FC is broken, in that it returns the empty string +# if there is no fortran compiler, we have our own version here. +m4_defun([_LT_PROG_FC], +[ +pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) +AC_PROG_FC +if test -z "$FC" || test "X$FC" = "Xno"; then + _lt_disable_FC=yes +fi +popdef([AC_MSG_ERROR]) +])# _LT_PROG_FC + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([_LT_PROG_FC], []) + + +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_REQUIRE([_LT_PROG_FC])dnl +AC_LANG_PUSH(Fortran) + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} + +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_FC" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + CC=${FC-"f95"} + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC="$lt_save_CC" +fi # test "$_lt_disable_FC" != yes + +AC_LANG_POP +])# _LT_LANG_FC_CONFIG + + +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds + +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC="$lt_save_CC" +])# _LT_LANG_GCJ_CONFIG + + +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code="$lt_simple_compile_test_code" + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi + +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC="$lt_save_CC" +])# _LT_LANG_RC_CONFIG + + +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + + +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) + + +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) +]) + + +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + + +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED + +m4_ifndef([AC_PROG_SED], [ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # + +m4_defun([AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef + +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) + + +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +AC_MSG_RESULT([$xsi_shell]) +_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) + +AC_MSG_CHECKING([whether the shell understands "+="]) +lt_shell_append=no +( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +AC_MSG_RESULT([$lt_shell_append]) +_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES + + +# _LT_PROG_XSI_SHELLFNS +# --------------------- +# Bourne and XSI compatible variants of some useful shell functions. +m4_defun([_LT_PROG_XSI_SHELLFNS], +[case $xsi_shell in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac +} + +# func_basename file +func_basename () +{ + func_basename_result="${1##*/}" +} + +# func_dirname_and_basename file append nondir_replacement +# perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# Implementation must be kept synchronized with func_dirname +# and func_basename. For efficiency, we do not delegate to +# those functions but instead duplicate the functionality here. +func_dirname_and_basename () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}" +} + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +func_stripname () +{ + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary parameter first. + func_stripname_result=${3} + func_stripname_result=${func_stripname_result#"${1}"} + func_stripname_result=${func_stripname_result%"${2}"} +} + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=${1%%=*} + func_opt_split_arg=${1#*=} +} + +# func_lo2o object +func_lo2o () +{ + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=${1%.*}.lo +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=$(( $[*] )) +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=${#1} +} + +_LT_EOF + ;; + *) # Bourne compatible functions. + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi +} + +# func_basename file +func_basename () +{ + func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` +} + +dnl func_dirname_and_basename +dnl A portable version of this function is already defined in general.m4sh +dnl so there is no need for it here. + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# func_strip_suffix prefix name +func_stripname () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "X${3}" \ + | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "X${3}" \ + | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; + esac +} + +# sed scripts: +my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' +my_sed_long_arg='1s/^-[[^=]]*=//' + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` + func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` +} + +# func_lo2o object +func_lo2o () +{ + func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=`expr "$[@]"` +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` +} + +_LT_EOF +esac + +case $lt_shell_append in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$[1]+=\$[2]" +} +_LT_EOF + ;; + *) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$[1]=\$$[1]\$[2]" +} + +_LT_EOF + ;; + esac +]) + +# Helper functions for option handling. -*- Autoconf -*- +# +# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltoptions.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) + + +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) +# ------------------------------------------ +m4_define([_LT_MANGLE_OPTION], +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) + + +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) +# --------------------------------------- +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a +# matching handler defined, dispatch to it. Other OPTION-NAMEs are +# saved as a flag. +m4_define([_LT_SET_OPTION], +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), + _LT_MANGLE_DEFUN([$1], [$2]), + [m4_warning([Unknown $1 option `$2'])])[]dnl +]) + + +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) +# ------------------------------------------------------------ +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +m4_define([_LT_IF_OPTION], +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + + +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) +# ------------------------------------------------------- +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME +# are set. +m4_define([_LT_UNLESS_OPTIONS], +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), + [m4_define([$0_found])])])[]dnl +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 +])[]dnl +]) + + +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) +# ---------------------------------------- +# OPTION-LIST is a space-separated list of Libtool options associated +# with MACRO-NAME. If any OPTION has a matching handler declared with +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about +# the unknown option and exit. +m4_defun([_LT_SET_OPTIONS], +[# Set options +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [_LT_SET_OPTION([$1], _LT_Option)]) + +m4_if([$1],[LT_INIT],[ + dnl + dnl Simply set some default values (i.e off) if boolean options were not + dnl specified: + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no + ]) + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no + ]) + dnl + dnl If no reference was made to various pairs of opposing options, then + dnl we run the default mode handler for the pair. For example, if neither + dnl `shared' nor `disable-shared' was passed, we enable building of shared + dnl archives by default: + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], + [_LT_ENABLE_FAST_INSTALL]) + ]) +])# _LT_SET_OPTIONS + + + +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) +# ----------------------------------------- +m4_define([_LT_MANGLE_DEFUN], +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) + + +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) +# ----------------------------------------------- +m4_define([LT_OPTION_DEFINE], +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl +])# LT_OPTION_DEFINE + + +# dlopen +# ------ +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes +]) + +AU_DEFUN([AC_LIBTOOL_DLOPEN], +[_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `dlopen' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) + + +# win32-dll +# --------- +# Declare package support for building win32 dll's. +LT_OPTION_DEFINE([LT_INIT], [win32-dll], +[enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; +esac + +test -z "$AS" && AS=as +_LT_DECL([], [AS], [0], [Assembler program])dnl + +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl + +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl +])# win32-dll + +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `win32-dll' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) + + +# _LT_ENABLE_SHARED([DEFAULT]) +# ---------------------------- +# implement the --enable-shared flag, and supports the `shared' and +# `disable-shared' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_SHARED], +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + + _LT_DECL([build_libtool_libs], [enable_shared], [0], + [Whether or not to build shared libraries]) +])# _LT_ENABLE_SHARED + +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) + +AC_DEFUN([AC_DISABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) + +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_SHARED], []) +dnl AC_DEFUN([AM_DISABLE_SHARED], []) + + + +# _LT_ENABLE_STATIC([DEFAULT]) +# ---------------------------- +# implement the --enable-static flag, and support the `static' and +# `disable-static' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_STATIC], +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) + + _LT_DECL([build_old_libs], [enable_static], [0], + [Whether or not to build static libraries]) +])# _LT_ENABLE_STATIC + +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) + +AC_DEFUN([AC_DISABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], [disable-static]) +]) + +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_STATIC], []) +dnl AC_DEFUN([AM_DISABLE_STATIC], []) + + + +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) +# ---------------------------------- +# implement the --enable-fast-install flag, and support the `fast-install' +# and `disable-fast-install' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_FAST_INSTALL], +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([fast-install], + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) + +_LT_DECL([fast_install], [enable_fast_install], [0], + [Whether or not to optimize for fast installation])dnl +])# _LT_ENABLE_FAST_INSTALL + +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) + +# Old names: +AU_DEFUN([AC_ENABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `fast-install' option into LT_INIT's first parameter.]) +]) + +AU_DEFUN([AC_DISABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `disable-fast-install' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) + + +# _LT_WITH_PIC([MODE]) +# -------------------- +# implement the --with-pic flag, and support the `pic-only' and `no-pic' +# LT_INIT options. +# MODE is either `yes' or `no'. If omitted, it defaults to `both'. +m4_define([_LT_WITH_PIC], +[AC_ARG_WITH([pic], + [AS_HELP_STRING([--with-pic], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [pic_mode="$withval"], + [pic_mode=default]) + +test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) + +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl +])# _LT_WITH_PIC + +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) + +# Old name: +AU_DEFUN([AC_LIBTOOL_PICMODE], +[_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `pic-only' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) + + +m4_define([_LTDL_MODE], []) +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], + [m4_define([_LTDL_MODE], [nonrecursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [recursive], + [m4_define([_LTDL_MODE], [recursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [subproject], + [m4_define([_LTDL_MODE], [subproject])]) + +m4_define([_LTDL_TYPE], []) +LT_OPTION_DEFINE([LTDL_INIT], [installable], + [m4_define([_LTDL_TYPE], [installable])]) +LT_OPTION_DEFINE([LTDL_INIT], [convenience], + [m4_define([_LTDL_TYPE], [convenience])]) + +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- +# +# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltsugar.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) + + +# lt_join(SEP, ARG1, [ARG2...]) +# ----------------------------- +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their +# associated separator. +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier +# versions in m4sugar had bugs. +m4_define([lt_join], +[m4_if([$#], [1], [], + [$#], [2], [[$2]], + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) +m4_define([_lt_join], +[m4_if([$#$2], [2], [], + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + + +# lt_car(LIST) +# lt_cdr(LIST) +# ------------ +# Manipulate m4 lists. +# These macros are necessary as long as will still need to support +# Autoconf-2.59 which quotes differently. +m4_define([lt_car], [[$1]]) +m4_define([lt_cdr], +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], + [$#], 1, [], + [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) + + +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) +# ------------------------------------------ +# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. +# Note that neither SEPARATOR nor STRING are expanded; they are appended +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). +# No SEPARATOR is output if MACRO-NAME was previously undefined (different +# than defined and empty). +# +# This macro is needed until we can rely on Autoconf 2.62, since earlier +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. +m4_define([lt_append], +[m4_define([$1], + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) + + + +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) +# ---------------------------------------------------------- +# Produce a SEP delimited list of all paired combinations of elements of +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list +# has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. +m4_define([lt_combine], +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) + + +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) +# ----------------------------------------------------------------------- +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. +m4_define([lt_if_append_uniq], +[m4_ifdef([$1], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [lt_append([$1], [$2], [$3])$4], + [$5])], + [lt_append([$1], [$2], [$3])$4])]) + + +# lt_dict_add(DICT, KEY, VALUE) +# ----------------------------- +m4_define([lt_dict_add], +[m4_define([$1($2)], [$3])]) + + +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) +# -------------------------------------------- +m4_define([lt_dict_add_subkey], +[m4_define([$1($2:$3)], [$4])]) + + +# lt_dict_fetch(DICT, KEY, [SUBKEY]) +# ---------------------------------- +m4_define([lt_dict_fetch], +[m4_ifval([$3], + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) + + +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) +# ----------------------------------------------------------------- +m4_define([lt_if_dict_fetch], +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], + [$5], + [$6])]) + + +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) +# -------------------------------------------------------------- +m4_define([lt_dict_filter], +[m4_if([$5], [], [], + [lt_join(m4_quote(m4_default([$4], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +]) + +# ltversion.m4 -- version numbers -*- Autoconf -*- +# +# Copyright (C) 2004 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# Generated from ltversion.in. + +# serial 3012 ltversion.m4 +# This file is part of GNU Libtool + +m4_define([LT_PACKAGE_VERSION], [2.2.6]) +m4_define([LT_PACKAGE_REVISION], [1.3012]) + +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.2.6' +macro_revision='1.3012' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) + +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- +# +# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004. +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 4 lt~obsolete.m4 + +# These exist entirely to fool aclocal when bootstrapping libtool. +# +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) +# which have later been changed to m4_define as they aren't part of the +# exported API, or moved to Autoconf or Automake where they belong. +# +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us +# using a macro with the same name in our local m4/libtool.m4 it'll +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define +# and doesn't know about Autoconf macros at all.) +# +# So we provide this file, which has a silly filename so it's always +# included after everything else. This provides aclocal with the +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything +# because those macros already exist, or will be overwritten later. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. +# Yes, that means every name once taken will need to remain here until +# we give up compatibility with versions before 1.7, at which point +# we need to keep only those names which we still refer to. + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) + +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) +m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) + # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -# serial 1 (pkg-config-0.24) # # Copyright © 2004 Scott James Remnant . # @@ -48,10 +8012,7 @@ To do so, use the procedure documented by the package, typically `autoreconf'.]) AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) -AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) -AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) -AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) - +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi @@ -64,6 +8025,7 @@ if test -n "$PKG_CONFIG"; then AC_MSG_RESULT([no]) PKG_CONFIG="" fi + fi[]dnl ])# PKG_PROG_PKG_CONFIG @@ -72,31 +8034,34 @@ fi[]dnl # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # -# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -# only at the first occurence in configure.ac, so if the first place -# it's called might be skipped (such as if it is within an "if", you -# have to call PKG_CHECK_EXISTS manually +# +# Similar to PKG_CHECK_MODULES, make sure that the first instance of +# this or PKG_CHECK_MODULES is called, or make sure to call +# PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then - m4_default([$2], [:]) + m4_ifval([$2], [$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) + # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], -[if test -n "$$1"; then - pkg_cv_[]$1="$$1" - elif test -n "$PKG_CONFIG"; then - PKG_CHECK_EXISTS([$3], - [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], - [pkg_failed=yes]) - else - pkg_failed=untried +[if test -n "$PKG_CONFIG"; then + if test -n "$$1"; then + pkg_cv_[]$1="$$1" + else + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], + [pkg_failed=yes]) + fi +else + pkg_failed=untried fi[]dnl ])# _PKG_CONFIG @@ -138,17 +8103,16 @@ and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then - AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then - $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` else - $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` + $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD - m4_default([$4], [AC_MSG_ERROR( + ifelse([$4], , [AC_MSG_ERROR(dnl [Package requirements ($2) were not met: $$1_PKG_ERRORS @@ -156,24 +8120,25 @@ $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. -_PKG_TEXT])dnl - ]) +_PKG_TEXT +])], + [AC_MSG_RESULT([no]) + $4]) elif test $pkg_failed = untried; then - AC_MSG_RESULT([no]) - m4_default([$4], [AC_MSG_FAILURE( + ifelse([$4], , [AC_MSG_FAILURE(dnl [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT -To get pkg-config, see .])dnl - ]) +To get pkg-config, see .])], + [$4]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) - $3 + ifelse([$3], , :, [$3]) fi[]dnl ])# PKG_CHECK_MODULES @@ -192,7 +8157,7 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.11.1], [], +m4_if([$1], [1.11], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -208,7 +8173,7 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.11.1])dnl +[AM_AUTOMAKE_VERSION([1.11])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) @@ -1190,8 +9155,3 @@ AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR -m4_include([m4/libtool.m4]) -m4_include([m4/ltoptions.m4]) -m4_include([m4/ltsugar.m4]) -m4_include([m4/ltversion.m4]) -m4_include([m4/lt~obsolete.m4]) diff --git a/apps/Makefile.am b/apps/Makefile.am index 278ddf4..eebbcca 100644 --- a/apps/Makefile.am +++ b/apps/Makefile.am @@ -2,14 +2,12 @@ NULL = bin_PROGRAMS = xmlsec1 -XMLSEC_LIBS = $(top_builddir)/src/libxmlsec1.la - - # check if we use dynamic loading for xmlsec-crypto or not if XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING CRYPTO_DEPS = \ $(top_builddir)/src/$(XMLSEC_CRYPTO)/lib$(XMLSEC_CRYPTO_LIB).la \ + $(top_builddir)/src/libxmlsec1.la \ $(NULL) CRYPTO_INCLUDES = \ @@ -20,13 +18,14 @@ CRYPTO_LD_FLAGS = \ $(NULL) CRYPTO_LD_ADD = \ - $(XMLSEC_CRYPTO_LIBS) \ $(CRYPTO_DEPS) \ + $(XMLSEC_CRYPTO_LIBS) \ $(NULL) else CRYPTO_DEPS = \ + $(top_builddir)/src/libxmlsec1.la \ $(NULL) CRYPTO_INCLUDES = \ @@ -70,15 +69,13 @@ xmlsec1_LDFLAGS = \ $(NULL) xmlsec1_LDADD = \ + $(CRYPTO_LD_ADD) \ $(LIBXSLT_LIBS) \ $(LIBXML_LIBS) \ - $(CRYPTO_LD_ADD) \ - $(XMLSEC_LIBS) \ $(XMLSEC_DL_LIBS) \ $(NULL) xmlsec1_DEPENDENCIES = \ $(CRYPTO_DEPS) \ - $(XMLSEC_LIBS) \ $(NULL) diff --git a/apps/Makefile.in b/apps/Makefile.in index 82af508..c361f4e 100644 --- a/apps/Makefile.in +++ b/apps/Makefile.in @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -38,13 +38,10 @@ bin_PROGRAMS = xmlsec1$(EXEEXT) subdir = apps DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @@ -55,13 +52,15 @@ am_xmlsec1_OBJECTS = xmlsec.$(OBJEXT) crypto.$(OBJEXT) \ cmdline.$(OBJEXT) $(am__objects_1) xmlsec1_OBJECTS = $(am_xmlsec1_OBJECTS) am__DEPENDENCIES_1 = -@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@am__DEPENDENCIES_2 = $(top_builddir)/src/libxmlsec1.la \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@ $(am__DEPENDENCIES_1) @XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@am__DEPENDENCIES_2 = $(top_builddir)/src/$(XMLSEC_CRYPTO)/lib$(XMLSEC_CRYPTO_LIB).la \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(top_builddir)/src/libxmlsec1.la \ @XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(am__DEPENDENCIES_1) @XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@am__DEPENDENCIES_3 = $(am__DEPENDENCIES_2) \ @XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@ $(am__DEPENDENCIES_1) -@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@am__DEPENDENCIES_3 = $(am__DEPENDENCIES_1) \ -@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(am__DEPENDENCIES_2) \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@am__DEPENDENCIES_3 = $(am__DEPENDENCIES_2) \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(am__DEPENDENCIES_1) \ @XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(am__DEPENDENCIES_1) xmlsec1_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(xmlsec1_LDFLAGS) \ @@ -108,10 +107,6 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ -GCRYPT_CFLAGS = @GCRYPT_CFLAGS@ -GCRYPT_CRYPTO_LIB = @GCRYPT_CRYPTO_LIB@ -GCRYPT_LIBS = @GCRYPT_LIBS@ -GCRYPT_MIN_VERSION = @GCRYPT_MIN_VERSION@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@ GNUTLS_CRYPTO_LIB = @GNUTLS_CRYPTO_LIB@ GNUTLS_LIBS = @GNUTLS_LIBS@ @@ -173,10 +168,8 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKGCONFIG_PRESENT = @PKGCONFIG_PRESENT@ PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PKG_CONFIG_ENABLED = @PKG_CONFIG_ENABLED@ RANLIB = @RANLIB@ RM = @RM@ SED = @SED@ @@ -203,18 +196,15 @@ XMLSEC_DL_INCLUDES = @XMLSEC_DL_INCLUDES@ XMLSEC_DL_LIBS = @XMLSEC_DL_LIBS@ XMLSEC_DOCDIR = @XMLSEC_DOCDIR@ XMLSEC_EXTRA_LDFLAGS = @XMLSEC_EXTRA_LDFLAGS@ -XMLSEC_GCRYPT_CFLAGS = @XMLSEC_GCRYPT_CFLAGS@ -XMLSEC_GCRYPT_LIBS = @XMLSEC_GCRYPT_LIBS@ XMLSEC_GNUTLS_CFLAGS = @XMLSEC_GNUTLS_CFLAGS@ XMLSEC_GNUTLS_LIBS = @XMLSEC_GNUTLS_LIBS@ XMLSEC_LIBDIR = @XMLSEC_LIBDIR@ -XMLSEC_LIBS = $(top_builddir)/src/libxmlsec1.la +XMLSEC_LIBS = @XMLSEC_LIBS@ XMLSEC_NO_AES = @XMLSEC_NO_AES@ XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING = @XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING@ XMLSEC_NO_CRYPTO_DYNAMIC_LOADING = @XMLSEC_NO_CRYPTO_DYNAMIC_LOADING@ XMLSEC_NO_DES = @XMLSEC_NO_DES@ XMLSEC_NO_DSA = @XMLSEC_NO_DSA@ -XMLSEC_NO_GCRYPT = @XMLSEC_NO_GCRYPT@ XMLSEC_NO_GNUTLS = @XMLSEC_NO_GNUTLS@ XMLSEC_NO_GOST = @XMLSEC_NO_GOST@ XMLSEC_NO_HMAC = @XMLSEC_NO_HMAC@ @@ -300,12 +290,14 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ NULL = @XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@CRYPTO_DEPS = \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@ $(top_builddir)/src/libxmlsec1.la \ @XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@ $(NULL) # check if we use dynamic loading for xmlsec-crypto or not @XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@CRYPTO_DEPS = \ @XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(top_builddir)/src/$(XMLSEC_CRYPTO)/lib$(XMLSEC_CRYPTO_LIB).la \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(top_builddir)/src/libxmlsec1.la \ @XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(NULL) @XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@CRYPTO_INCLUDES = \ @@ -326,8 +318,8 @@ NULL = @XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE@ $(NULL) @XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@CRYPTO_LD_ADD = \ -@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(XMLSEC_CRYPTO_LIBS) \ @XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(CRYPTO_DEPS) \ +@XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(XMLSEC_CRYPTO_LIBS) \ @XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE@ $(NULL) INCLUDES = \ @@ -357,16 +349,14 @@ xmlsec1_LDFLAGS = \ $(NULL) xmlsec1_LDADD = \ + $(CRYPTO_LD_ADD) \ $(LIBXSLT_LIBS) \ $(LIBXML_LIBS) \ - $(CRYPTO_LD_ADD) \ - $(XMLSEC_LIBS) \ $(XMLSEC_DL_LIBS) \ $(NULL) xmlsec1_DEPENDENCIES = \ $(CRYPTO_DEPS) \ - $(XMLSEC_LIBS) \ $(NULL) all: all-am diff --git a/apps/cmdline.c b/apps/cmdline.c index b9ecafb..fe09b7b 100644 --- a/apps/cmdline.c +++ b/apps/cmdline.c @@ -19,18 +19,18 @@ #include "cmdline.h" -static int xmlSecAppCmdLineMatchParam (const char* argvParam, - const char* paramName, - int canHaveNameString); -static xmlSecAppCmdLineParamPtr xmlSecAppCmdLineParamsListFind (xmlSecAppCmdLineParamPtr* params, - xmlSecAppCmdLineParamTopic topics, - const char* name); -static int xmlSecAppCmdLineParamRead (xmlSecAppCmdLineParamPtr param, - const char** argv, - int argc, - int pos); -static int xmlSecAppCmdLineTimeParamRead (const char* str, - time_t* t); +static int xmlSecAppCmdLineMatchParam (const char* argvParam, + const char* paramName, + int canHaveNameString); +static xmlSecAppCmdLineParamPtr xmlSecAppCmdLineParamsListFind (xmlSecAppCmdLineParamPtr* params, + xmlSecAppCmdLineParamTopic topics, + const char* name); +static int xmlSecAppCmdLineParamRead (xmlSecAppCmdLineParamPtr param, + const char** argv, + int argc, + int pos); +static int xmlSecAppCmdLineTimeParamRead (const char* str, + time_t* t); int xmlSecAppCmdLineParamIsSet(xmlSecAppCmdLineParamPtr param) { @@ -40,8 +40,8 @@ xmlSecAppCmdLineParamIsSet(xmlSecAppCmdLineParamPtr param) { const char* xmlSecAppCmdLineParamGetString(xmlSecAppCmdLineParamPtr param) { if(param->type != xmlSecAppCmdLineParamTypeString) { - fprintf(stderr, "Error: parameter \"%s\" is not string.\n", param->fullName); - return(NULL); + fprintf(stderr, "Error: parameter \"%s\" is not string.\n", param->fullName); + return(NULL); } return((param->value != NULL) ? param->value->strValue : NULL); } @@ -49,8 +49,8 @@ xmlSecAppCmdLineParamGetString(xmlSecAppCmdLineParamPtr param) { const char* xmlSecAppCmdLineParamGetStringList(xmlSecAppCmdLineParamPtr param) { if(param->type != xmlSecAppCmdLineParamTypeStringList) { - fprintf(stderr, "Error: parameter \"%s\" is not string list.\n", param->fullName); - return(NULL); + fprintf(stderr, "Error: parameter \"%s\" is not string list.\n", param->fullName); + return(NULL); } return((param->value != NULL) ? param->value->strListValue : NULL); } @@ -58,8 +58,8 @@ xmlSecAppCmdLineParamGetStringList(xmlSecAppCmdLineParamPtr param) { int xmlSecAppCmdLineParamGetInt(xmlSecAppCmdLineParamPtr param, int def) { if(param->type != xmlSecAppCmdLineParamTypeNumber) { - fprintf(stderr, "Error: parameter \"%s\" is not integer.\n", param->fullName); - return(def); + fprintf(stderr, "Error: parameter \"%s\" is not integer.\n", param->fullName); + return(def); } return((param->value != NULL) ? param->value->intValue : def); } @@ -67,16 +67,16 @@ xmlSecAppCmdLineParamGetInt(xmlSecAppCmdLineParamPtr param, int def) { time_t xmlSecAppCmdLineParamGetTime(xmlSecAppCmdLineParamPtr param, time_t def) { if(param->type != xmlSecAppCmdLineParamTypeTime) { - fprintf(stderr, "Error: parameter \"%s\" is not time.\n", param->fullName); - return(def); + fprintf(stderr, "Error: parameter \"%s\" is not time.\n", param->fullName); + return(def); } return((param->value != NULL) ? param->value->timeValue : def); } int xmlSecAppCmdLineParamsListParse(xmlSecAppCmdLineParamPtr* params, - xmlSecAppCmdLineParamTopic topics, - const char** argv, int argc, int pos) { + xmlSecAppCmdLineParamTopic topics, + const char** argv, int argc, int pos) { xmlSecAppCmdLineParamPtr param; int ii; int ret; @@ -85,27 +85,27 @@ xmlSecAppCmdLineParamsListParse(xmlSecAppCmdLineParamPtr* params, assert(argv != NULL); while((pos < argc) && (argv[pos][0] == '-')) { - param = xmlSecAppCmdLineParamsListFind(params, topics, argv[pos]); - if(param == NULL) { - fprintf(stderr, "Error: parameter \"%s\" is not supported or the requested\nfeature might have been disabled during compilation.\n", argv[pos]); - return(-1); - } - - ret = xmlSecAppCmdLineParamRead(param, argv, argc, pos); - if(ret < pos) { - fprintf(stderr, "Error: failed to parse parameter \"%s\".\n", argv[pos]); - return(-1); - } - pos = ret + 1; + param = xmlSecAppCmdLineParamsListFind(params, topics, argv[pos]); + if(param == NULL) { + fprintf(stderr, "Error: parameter \"%s\" is not supported or the requested\nfeature might have been disabled during compilation.\n", argv[pos]); + return(-1); + } + + ret = xmlSecAppCmdLineParamRead(param, argv, argc, pos); + if(ret < pos) { + fprintf(stderr, "Error: failed to parse parameter \"%s\".\n", argv[pos]); + return(-1); + } + pos = ret + 1; } /* check that all parameters at the end are filenames */ for(ii = pos; (ii < argc); ++ii) { - if(argv[ii][0] == '-') { - fprintf(stderr, "Error: filename is expected instead of parameter \"%s\".\n", argv[ii]); - return(-1); - - } + if(argv[ii][0] == '-') { + fprintf(stderr, "Error: filename is expected instead of parameter \"%s\".\n", argv[ii]); + return(-1); + + } } @@ -121,27 +121,27 @@ xmlSecAppCmdLineParamsListClean(xmlSecAppCmdLineParamPtr* params) { assert(params != NULL); for(i = 0; params[i] != NULL; ++i) { - while(params[i]->value != NULL) { - tmp = params[i]->value; - params[i]->value = params[i]->value->next; - xmlSecAppCmdLineValueDestroy(tmp); - } + while(params[i]->value != NULL) { + tmp = params[i]->value; + params[i]->value = params[i]->value->next; + xmlSecAppCmdLineValueDestroy(tmp); + } } } void xmlSecAppCmdLineParamsListPrint(xmlSecAppCmdLineParamPtr* params, - xmlSecAppCmdLineParamTopic topics, - FILE* output) { + xmlSecAppCmdLineParamTopic topics, + FILE* output) { size_t i; assert(params != NULL); assert(output != NULL); for(i = 0; params[i] != NULL; ++i) { - if(((params[i]->topics & topics) != 0) && (params[i]->help != NULL)) { - fprintf(output, " %s\n", params[i]->help); - } + if(((params[i]->topics & topics) != 0) && (params[i]->help != NULL)) { + fprintf(output, " %s\n", params[i]->help); + } } } @@ -152,8 +152,8 @@ xmlSecAppCmdLineValueCreate(xmlSecAppCmdLineParamPtr param, int pos) { assert(param != NULL); value = (xmlSecAppCmdLineValuePtr) malloc(sizeof(xmlSecAppCmdLineValue)); if(value == NULL) { - fprintf(stderr, "Error: malloc failed (%d bytes).\n", sizeof(xmlSecAppCmdLineValue)); - return(NULL); + fprintf(stderr, "Error: malloc failed (%d bytes).\n", sizeof(xmlSecAppCmdLineValue)); + return(NULL); } memset(value, 0, sizeof(xmlSecAppCmdLineValue)); @@ -167,34 +167,34 @@ xmlSecAppCmdLineValueDestroy(xmlSecAppCmdLineValuePtr value) { assert(value != NULL); if(value->strListValue != NULL) { - free((void*)value->strListValue); + free((void*)value->strListValue); } free(value); } static int xmlSecAppCmdLineMatchParam(const char* argvParam, const char* paramName, - int canHaveNameString) { + int canHaveNameString) { assert(argvParam != NULL); assert(paramName != NULL); if(canHaveNameString != 0) { - int len = strlen(paramName); - - if((strncmp(argvParam, paramName, len) == 0) && - ((argvParam[len] == '\0') || (argvParam[len] == ':'))) { - - return(1); - } + int len = strlen(paramName); + + if((strncmp(argvParam, paramName, len) == 0) && + ((argvParam[len] == '\0') || (argvParam[len] == ':'))) { + + return(1); + } } else if(strcmp(argvParam, paramName) == 0) { - return(1); + return(1); } return(0); } -static xmlSecAppCmdLineParamPtr +static xmlSecAppCmdLineParamPtr xmlSecAppCmdLineParamsListFind(xmlSecAppCmdLineParamPtr* params, xmlSecAppCmdLineParamTopic topics, - const char* name) { + const char* name) { size_t i; int canHaveNameString; @@ -202,22 +202,22 @@ xmlSecAppCmdLineParamsListFind(xmlSecAppCmdLineParamPtr* params, xmlSecAppCmdLin assert(name != NULL); for(i = 0; params[i] != NULL; ++i) { - if((params[i]->topics & topics) == 0) { - continue; - } + if((params[i]->topics & topics) == 0) { + continue; + } - canHaveNameString = ((params[i]->flags & xmlSecAppCmdLineParamFlagParamNameValue) != 0) ? 1 : 0; - if((params[i]->fullName != NULL) && - (xmlSecAppCmdLineMatchParam(name, params[i]->fullName, canHaveNameString) == 1)) { - - return(params[i]); - } + canHaveNameString = ((params[i]->flags & xmlSecAppCmdLineParamFlagParamNameValue) != 0) ? 1 : 0; + if((params[i]->fullName != NULL) && + (xmlSecAppCmdLineMatchParam(name, params[i]->fullName, canHaveNameString) == 1)) { + + return(params[i]); + } - if((params[i]->shortName != NULL) && - (xmlSecAppCmdLineMatchParam(name, params[i]->shortName, canHaveNameString) == 1)) { - - return(params[i]); - } + if((params[i]->shortName != NULL) && + (xmlSecAppCmdLineMatchParam(name, params[i]->shortName, canHaveNameString) == 1)) { + + return(params[i]); + } } return(NULL); @@ -235,90 +235,90 @@ xmlSecAppCmdLineParamRead(xmlSecAppCmdLineParamPtr param, const char** argv, int /* first find the previous value in the list */ if((param->flags & xmlSecAppCmdLineParamFlagMultipleValues) != 0) { - prev = param->value; - while((prev != NULL) && (prev->next != NULL)) { - prev = prev->next; - } + prev = param->value; + while((prev != NULL) && (prev->next != NULL)) { + prev = prev->next; + } } else if(param->value != NULL) { - fprintf(stderr, "Error: only one parameter \"%s\" is allowed.\n", argv[pos]); - return(-1); + fprintf(stderr, "Error: only one parameter \"%s\" is allowed.\n", argv[pos]); + return(-1); } /* create new value and add to the list */ value = xmlSecAppCmdLineValueCreate(param, pos); if(value == NULL) { - fprintf(stderr, "Error: failed to create value for parameter \"%s\".\n", argv[pos]); - return(-1); + fprintf(stderr, "Error: failed to create value for parameter \"%s\".\n", argv[pos]); + return(-1); } if(prev != NULL) { - assert(prev->next == NULL); - prev->next = value; + assert(prev->next == NULL); + prev->next = value; } else { - param->value = value; + param->value = value; } /* if we can have a string value after the name, parse it */ if((param->flags & xmlSecAppCmdLineParamFlagParamNameValue) != 0) { - value->paramNameValue = strchr(argv[pos], ':'); - if(value->paramNameValue != NULL) { - ++value->paramNameValue; - } + value->paramNameValue = strchr(argv[pos], ':'); + if(value->paramNameValue != NULL) { + ++value->paramNameValue; + } } switch(param->type) { - case xmlSecAppCmdLineParamTypeFlag: - /* do nothing */ - break; - case xmlSecAppCmdLineParamTypeString: - if(pos + 1 >= argc) { - fprintf(stderr, "Error: string argument expected for parameter \"%s\".\n", argv[pos]); - return(-1); - } - value->strValue = argv[++pos]; - break; - case xmlSecAppCmdLineParamTypeStringList: - if(pos + 1 >= argc) { - fprintf(stderr, "Error: string list argument expected for parameter \"%s\".\n", argv[pos]); - return(-1); - } - value->strValue = argv[++pos]; - buf = (char*)malloc(strlen(value->strValue) + 2); - if(buf == NULL) { - fprintf(stderr, "Error: failed to allocate memory (%d bytes).\n", strlen(value->strValue) + 2); - return(-1); - } - memset(buf, 0, strlen(value->strValue) + 2); - memcpy(buf, value->strValue, strlen(value->strValue)); - value->strListValue = buf; - while((*buf) != '\0') { - if((*buf) == ',') { - (*buf) = '\0'; - } - ++buf; - } - break; - case xmlSecAppCmdLineParamTypeNumber: - if(pos + 1 >= argc) { - fprintf(stderr, "Error: integer argument expected for parameter \"%s\".\n", argv[pos]); - return(-1); - } - value->strValue = argv[++pos]; - if(sscanf(value->strValue, "%d", &(value->intValue)) != 1) { - fprintf(stderr, "Error: integer argument \"%s\" is invalid.\n", value->strValue); - return(-1); - } - break; - case xmlSecAppCmdLineParamTypeTime: - if(pos + 1 >= argc) { - fprintf(stderr, "Error: time argument expected for parameter \"%s\".\n", argv[pos]); - return(-1); - } - value->strValue = argv[++pos]; - if(xmlSecAppCmdLineTimeParamRead(value->strValue, &(value->timeValue)) < 0) { - fprintf(stderr, "Error: time argument \"%s\" is invalid, expected format is \"YYYY-MM-DD HH:MM:SS\").\n", value->strValue); - return(-1); - } - break; + case xmlSecAppCmdLineParamTypeFlag: + /* do nothing */ + break; + case xmlSecAppCmdLineParamTypeString: + if(pos + 1 >= argc) { + fprintf(stderr, "Error: string argument expected for parameter \"%s\".\n", argv[pos]); + return(-1); + } + value->strValue = argv[++pos]; + break; + case xmlSecAppCmdLineParamTypeStringList: + if(pos + 1 >= argc) { + fprintf(stderr, "Error: string list argument expected for parameter \"%s\".\n", argv[pos]); + return(-1); + } + value->strValue = argv[++pos]; + buf = (char*)malloc(strlen(value->strValue) + 2); + if(buf == NULL) { + fprintf(stderr, "Error: failed to allocate memory (%d bytes).\n", strlen(value->strValue) + 2); + return(-1); + } + memset(buf, 0, strlen(value->strValue) + 2); + memcpy(buf, value->strValue, strlen(value->strValue)); + value->strListValue = buf; + while((*buf) != '\0') { + if((*buf) == ',') { + (*buf) = '\0'; + } + ++buf; + } + break; + case xmlSecAppCmdLineParamTypeNumber: + if(pos + 1 >= argc) { + fprintf(stderr, "Error: integer argument expected for parameter \"%s\".\n", argv[pos]); + return(-1); + } + value->strValue = argv[++pos]; + if(sscanf(value->strValue, "%d", &(value->intValue)) != 1) { + fprintf(stderr, "Error: integer argument \"%s\" is invalid.\n", value->strValue); + return(-1); + } + break; + case xmlSecAppCmdLineParamTypeTime: + if(pos + 1 >= argc) { + fprintf(stderr, "Error: time argument expected for parameter \"%s\".\n", argv[pos]); + return(-1); + } + value->strValue = argv[++pos]; + if(xmlSecAppCmdLineTimeParamRead(value->strValue, &(value->timeValue)) < 0) { + fprintf(stderr, "Error: time argument \"%s\" is invalid, expected format is \"YYYY-MM-DD HH:MM:SS\").\n", value->strValue); + return(-1); + } + break; } return(pos); } @@ -329,21 +329,21 @@ xmlSecAppCmdLineTimeParamRead(const char* str, time_t* t) { int n; if((str == NULL) || (t == NULL)) { - return(-1); + return(-1); } memset(&tm, 0, sizeof(tm)); tm.tm_isdst = -1; n = sscanf(str, "%4d-%2d-%2d%*c%2d:%2d:%2d", - &tm.tm_year, &tm.tm_mon, &tm.tm_mday, - &tm.tm_hour, &tm.tm_min, &tm.tm_sec); + &tm.tm_year, &tm.tm_mon, &tm.tm_mday, + &tm.tm_hour, &tm.tm_min, &tm.tm_sec); if((n != 6) || (tm.tm_year < 1900) - || (tm.tm_mon < 1) || (tm.tm_mon > 12) - || (tm.tm_mday < 1) || (tm.tm_mday > 31) - || (tm.tm_hour < 0) || (tm.tm_hour > 23) - || (tm.tm_min < 0) || (tm.tm_min > 59) - || (tm.tm_sec < 0) || (tm.tm_sec > 61)) { - return(-1); + || (tm.tm_mon < 1) || (tm.tm_mon > 12) + || (tm.tm_mday < 1) || (tm.tm_mday > 31) + || (tm.tm_hour < 0) || (tm.tm_hour > 23) + || (tm.tm_min < 0) || (tm.tm_min > 59) + || (tm.tm_sec < 0) || (tm.tm_sec > 61)) { + return(-1); } tm.tm_year -= 1900; /* tm relative format year */ diff --git a/apps/cmdline.h b/apps/cmdline.h index 9466f97..6039122 100644 --- a/apps/cmdline.h +++ b/apps/cmdline.h @@ -16,15 +16,15 @@ extern "C" { #include -typedef struct _xmlSecAppCmdLineParam xmlSecAppCmdLineParam, - *xmlSecAppCmdLineParamPtr; -typedef struct _xmlSecAppCmdLineValue xmlSecAppCmdLineValue, - *xmlSecAppCmdLineValuePtr; -typedef unsigned int xmlSecAppCmdLineParamTopic; +typedef struct _xmlSecAppCmdLineParam xmlSecAppCmdLineParam, + *xmlSecAppCmdLineParamPtr; +typedef struct _xmlSecAppCmdLineValue xmlSecAppCmdLineValue, + *xmlSecAppCmdLineValuePtr; +typedef unsigned int xmlSecAppCmdLineParamTopic; -#define xmlSecAppCmdLineParamFlagNone 0x0000 -#define xmlSecAppCmdLineParamFlagParamNameValue 0x0001 -#define xmlSecAppCmdLineParamFlagMultipleValues 0x0002 +#define xmlSecAppCmdLineParamFlagNone 0x0000 +#define xmlSecAppCmdLineParamFlagParamNameValue 0x0001 +#define xmlSecAppCmdLineParamFlagMultipleValues 0x0002 typedef enum { xmlSecAppCmdLineParamTypeFlag, @@ -35,48 +35,48 @@ typedef enum { } xmlSecAppCmdLineParamType; struct _xmlSecAppCmdLineParam { - xmlSecAppCmdLineParamTopic topics; - const char* fullName; - const char* shortName; - const char* help; - xmlSecAppCmdLineParamType type; - int flags; - xmlSecAppCmdLineValuePtr value; + xmlSecAppCmdLineParamTopic topics; + const char* fullName; + const char* shortName; + const char* help; + xmlSecAppCmdLineParamType type; + int flags; + xmlSecAppCmdLineValuePtr value; }; -int xmlSecAppCmdLineParamIsSet (xmlSecAppCmdLineParamPtr param); -const char* xmlSecAppCmdLineParamGetString (xmlSecAppCmdLineParamPtr param); -const char* xmlSecAppCmdLineParamGetStringList (xmlSecAppCmdLineParamPtr param); -int xmlSecAppCmdLineParamGetInt (xmlSecAppCmdLineParamPtr param, - int def); -time_t xmlSecAppCmdLineParamGetTime (xmlSecAppCmdLineParamPtr param, - time_t def); - -int xmlSecAppCmdLineParamsListParse (xmlSecAppCmdLineParamPtr* params, - xmlSecAppCmdLineParamTopic topcis, - const char** argv, - int argc, - int pos); -void xmlSecAppCmdLineParamsListClean (xmlSecAppCmdLineParamPtr* params); -void xmlSecAppCmdLineParamsListPrint (xmlSecAppCmdLineParamPtr* params, - xmlSecAppCmdLineParamTopic topic, - FILE* output); +int xmlSecAppCmdLineParamIsSet (xmlSecAppCmdLineParamPtr param); +const char* xmlSecAppCmdLineParamGetString (xmlSecAppCmdLineParamPtr param); +const char* xmlSecAppCmdLineParamGetStringList (xmlSecAppCmdLineParamPtr param); +int xmlSecAppCmdLineParamGetInt (xmlSecAppCmdLineParamPtr param, + int def); +time_t xmlSecAppCmdLineParamGetTime (xmlSecAppCmdLineParamPtr param, + time_t def); + +int xmlSecAppCmdLineParamsListParse (xmlSecAppCmdLineParamPtr* params, + xmlSecAppCmdLineParamTopic topcis, + const char** argv, + int argc, + int pos); +void xmlSecAppCmdLineParamsListClean (xmlSecAppCmdLineParamPtr* params); +void xmlSecAppCmdLineParamsListPrint (xmlSecAppCmdLineParamPtr* params, + xmlSecAppCmdLineParamTopic topic, + FILE* output); struct _xmlSecAppCmdLineValue { - xmlSecAppCmdLineParamPtr param; - int pos; - const char* paramNameValue; - const char* strValue; - const char* strListValue; - int intValue; - time_t timeValue; - xmlSecAppCmdLineValuePtr next; + xmlSecAppCmdLineParamPtr param; + int pos; + const char* paramNameValue; + const char* strValue; + const char* strListValue; + int intValue; + time_t timeValue; + xmlSecAppCmdLineValuePtr next; }; -xmlSecAppCmdLineValuePtr xmlSecAppCmdLineValueCreate (xmlSecAppCmdLineParamPtr param, - int pos); -void xmlSecAppCmdLineValueDestroy (xmlSecAppCmdLineValuePtr value); +xmlSecAppCmdLineValuePtr xmlSecAppCmdLineValueCreate (xmlSecAppCmdLineParamPtr param, + int pos); +void xmlSecAppCmdLineValueDestroy (xmlSecAppCmdLineValuePtr value); #ifdef __cplusplus diff --git a/apps/crypto.c b/apps/crypto.c index 49dd127..5e3d5ca 100644 --- a/apps/crypto.c +++ b/apps/crypto.c @@ -23,20 +23,20 @@ int xmlSecAppCryptoInit(const char* config) { if(xmlSecCryptoAppInit(config) < 0) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlSecCryptoAppInit", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); - return(-1); + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecCryptoAppInit", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + XMLSEC_ERRORS_NO_MESSAGE); + return(-1); } if(xmlSecCryptoInit() < 0) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlSecCryptoInit", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); - return(-1); + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecCryptoInit", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + XMLSEC_ERRORS_NO_MESSAGE); + return(-1); } return(0); @@ -45,21 +45,21 @@ xmlSecAppCryptoInit(const char* config) { int xmlSecAppCryptoShutdown(void) { if(xmlSecCryptoShutdown() < 0) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlSecCryptoShutdown", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); - return(-1); + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecCryptoShutdown", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + XMLSEC_ERRORS_NO_MESSAGE); + return(-1); } if(xmlSecCryptoAppShutdown() < 0) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlSecCryptoAppShutdown", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); - return(-1); + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecCryptoAppShutdown", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + XMLSEC_ERRORS_NO_MESSAGE); + return(-1); } return(0); } @@ -89,11 +89,11 @@ xmlSecAppCryptoSimpleKeysMngrSave(xmlSecKeysMngrPtr mngr, const char *filename, int xmlSecAppCryptoSimpleKeysMngrCertLoad(xmlSecKeysMngrPtr mngr, const char *filename, - xmlSecKeyDataFormat format, xmlSecKeyDataType type) { + xmlSecKeyDataFormat format, xmlSecKeyDataType type) { xmlSecAssert2(mngr != NULL, -1); xmlSecAssert2(filename != NULL, -1); -#ifndef XMLSEC_NO_X509 +#ifndef XMLSEC_NO_X509 return(xmlSecCryptoAppKeysMngrCertLoad(mngr, filename, format, type)); #else /* XMLSEC_NO_X509 */ return(-1); @@ -102,9 +102,9 @@ xmlSecAppCryptoSimpleKeysMngrCertLoad(xmlSecKeysMngrPtr mngr, const char *filena int xmlSecAppCryptoSimpleKeysMngrKeyAndCertsLoad(xmlSecKeysMngrPtr mngr, - const char* files, const char* pwd, - const char* name, - xmlSecKeyDataFormat format) { + const char* files, const char* pwd, + const char* name, + xmlSecKeyDataFormat format) { xmlSecKeyPtr key; int ret; @@ -113,66 +113,66 @@ xmlSecAppCryptoSimpleKeysMngrKeyAndCertsLoad(xmlSecKeysMngrPtr mngr, /* first is the key file */ key = xmlSecCryptoAppKeyLoad(files, format, pwd, - xmlSecCryptoAppGetDefaultPwdCallback(), (void*)files); + xmlSecCryptoAppGetDefaultPwdCallback(), (void*)files); if(key == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlSecCryptoAppKeyLoad", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - "uri=%s", - xmlSecErrorsSafeString(files)); - return(-1); + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecCryptoAppKeyLoad", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + "uri=%s", + xmlSecErrorsSafeString(files)); + return(-1); } if(name != NULL) { - ret = xmlSecKeySetName(key, BAD_CAST name); - if(ret < 0) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlSecKeySetName", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - "name=%s", - xmlSecErrorsSafeString(name)); - xmlSecKeyDestroy(key); - return(-1); - } + ret = xmlSecKeySetName(key, BAD_CAST name); + if(ret < 0) { + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecKeySetName", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + "name=%s", + xmlSecErrorsSafeString(name)); + xmlSecKeyDestroy(key); + return(-1); + } } #ifndef XMLSEC_NO_X509 for(files += strlen(files) + 1; (files[0] != '\0'); files += strlen(files) + 1) { - ret = xmlSecCryptoAppKeyCertLoad(key, files, format); - if(ret < 0){ - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlSecCryptoAppKeyCertLoad", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - "uri=%s", - xmlSecErrorsSafeString(files)); - xmlSecKeyDestroy(key); - return(-1); - } + ret = xmlSecCryptoAppKeyCertLoad(key, files, format); + if(ret < 0){ + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecCryptoAppKeyCertLoad", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + "uri=%s", + xmlSecErrorsSafeString(files)); + xmlSecKeyDestroy(key); + return(-1); + } } #else /* XMLSEC_NO_X509 */ files += strlen(files) + 1; if(files[0] != '\0') { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "x509", - XMLSEC_ERRORS_R_DISABLED, - XMLSEC_ERRORS_NO_MESSAGE); - return(-1); + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "x509", + XMLSEC_ERRORS_R_DISABLED, + XMLSEC_ERRORS_NO_MESSAGE); + return(-1); } #endif /* XMLSEC_NO_X509 */ ret = xmlSecCryptoAppDefaultKeysMngrAdoptKey(mngr, key); if(ret < 0) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlSecCryptoAppDefaultKeysMngrAdoptKey", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); - xmlSecKeyDestroy(key); - return(-1); + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecCryptoAppDefaultKeysMngrAdoptKey", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + XMLSEC_ERRORS_NO_MESSAGE); + xmlSecKeyDestroy(key); + return(-1); } return(0); @@ -189,49 +189,49 @@ xmlSecAppCryptoSimpleKeysMngrPkcs12KeyLoad(xmlSecKeysMngrPtr mngr, const char *f #ifndef XMLSEC_NO_X509 key = xmlSecCryptoAppKeyLoad(filename, xmlSecKeyDataFormatPkcs12, pwd, - xmlSecCryptoAppGetDefaultPwdCallback(), (void*)filename); + xmlSecCryptoAppGetDefaultPwdCallback(), (void*)filename); if(key == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlSecCryptoAppKeyLoad", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - "filename=%s", - xmlSecErrorsSafeString(filename)); - return(-1); + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecCryptoAppKeyLoad", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + "filename=%s", + xmlSecErrorsSafeString(filename)); + return(-1); } if(name != NULL) { - ret = xmlSecKeySetName(key, BAD_CAST name); - if(ret < 0) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlSecKeySetName", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - "name=%s", - xmlSecErrorsSafeString(name)); - xmlSecKeyDestroy(key); - return(-1); - } + ret = xmlSecKeySetName(key, BAD_CAST name); + if(ret < 0) { + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecKeySetName", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + "name=%s", + xmlSecErrorsSafeString(name)); + xmlSecKeyDestroy(key); + return(-1); + } } ret = xmlSecCryptoAppDefaultKeysMngrAdoptKey(mngr, key); if(ret < 0) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlSecCryptoAppDefaultKeysMngrAdoptKey", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); - xmlSecKeyDestroy(key); - return(-1); + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecCryptoAppDefaultKeysMngrAdoptKey", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + XMLSEC_ERRORS_NO_MESSAGE); + xmlSecKeyDestroy(key); + return(-1); } return(0); #else /* XMLSEC_NO_X509 */ xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "x509", - XMLSEC_ERRORS_R_DISABLED, - XMLSEC_ERRORS_NO_MESSAGE); + NULL, + "x509", + XMLSEC_ERRORS_R_DISABLED, + XMLSEC_ERRORS_NO_MESSAGE); return(-1); #endif /* XMLSEC_NO_X509 */ } @@ -248,49 +248,49 @@ xmlSecAppCryptoSimpleKeysMngrBinaryKeyLoad(xmlSecKeysMngrPtr mngr, const char* k /* find requested data */ dataId = xmlSecKeyDataIdListFindByName(xmlSecKeyDataIdsGet(), BAD_CAST keyKlass, - xmlSecKeyDataUsageAny); + xmlSecKeyDataUsageAny); if(dataId == xmlSecKeyDataIdUnknown) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlSecKeyDataIdListFindByName", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - "name=%s", - xmlSecErrorsSafeString(keyKlass)); - return(-1); + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecKeyDataIdListFindByName", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + "name=%s", + xmlSecErrorsSafeString(keyKlass)); + return(-1); } key = xmlSecKeyReadBinaryFile(dataId, filename); if(key == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlSecKeyReadBinaryFile", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); - return(-1); + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecKeyReadBinaryFile", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + XMLSEC_ERRORS_NO_MESSAGE); + return(-1); } ret = xmlSecKeySetName(key, BAD_CAST name); if(ret < 0) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlSecKeySetName", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - "name=%s", - xmlSecErrorsSafeString(name)); - xmlSecKeyDestroy(key); - return(-1); + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecKeySetName", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + "name=%s", + xmlSecErrorsSafeString(name)); + xmlSecKeyDestroy(key); + return(-1); } /* finally add it to keys manager */ ret = xmlSecCryptoAppDefaultKeysMngrAdoptKey(mngr, key); if(ret < 0) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlSecCryptoAppDefaultKeysMngrAdoptKey", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); - xmlSecKeyDestroy(key); - return(-1); + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecCryptoAppDefaultKeysMngrAdoptKey", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + XMLSEC_ERRORS_NO_MESSAGE); + xmlSecKeyDestroy(key); + return(-1); } return(0); @@ -307,24 +307,24 @@ xmlSecAppCryptoSimpleKeysMngrKeyGenerate(xmlSecKeysMngrPtr mngr, const char* key key = xmlSecAppCryptoKeyGenerate(keyKlassAndSize, name, xmlSecKeyDataTypePermanent); if(key == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlSecAppCryptoSimpleKeysMngrKeyGenerate", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - "name=%s", - xmlSecErrorsSafeString(name)); - return(-1); + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecAppCryptoSimpleKeysMngrKeyGenerate", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + "name=%s", + xmlSecErrorsSafeString(name)); + return(-1); } ret = xmlSecCryptoAppDefaultKeysMngrAdoptKey(mngr, key); if(ret < 0) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlSecCryptoAppDefaultKeysMngrAdoptKey", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - XMLSEC_ERRORS_NO_MESSAGE); - xmlSecKeyDestroy(key); - return(-1); + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecCryptoAppDefaultKeysMngrAdoptKey", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + XMLSEC_ERRORS_NO_MESSAGE); + xmlSecKeyDestroy(key); + return(-1); } return(0); } @@ -341,54 +341,54 @@ xmlSecAppCryptoKeyGenerate(const char* keyKlassAndSize, const char* name, xmlSec buf = (char*) xmlStrdup(BAD_CAST keyKlassAndSize); if(buf == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - NULL, - XMLSEC_ERRORS_R_STRDUP_FAILED, - "name=%s", - xmlSecErrorsSafeString(name)); - return(NULL); + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + NULL, + XMLSEC_ERRORS_R_STRDUP_FAILED, + "name=%s", + xmlSecErrorsSafeString(name)); + return(NULL); } /* separate key klass and size */ p = strchr(buf, '-'); if(p == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - NULL, - XMLSEC_ERRORS_R_INVALID_DATA, - "key size is not specified %s", - xmlSecErrorsSafeString(buf)); - xmlFree(buf); - return(NULL); + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + NULL, + XMLSEC_ERRORS_R_INVALID_DATA, + "key size is not specified %s", + xmlSecErrorsSafeString(buf)); + xmlFree(buf); + return(NULL); } *(p++) = '\0'; size = atoi(p); key = xmlSecKeyGenerateByName(BAD_CAST buf, size, type); if(key == NULL) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlSecKeyGenerate", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - "klass=%s;size=%d", - xmlSecErrorsSafeString(buf), - size); - xmlFree(buf); - return(NULL); + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecKeyGenerate", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + "klass=%s;size=%d", + xmlSecErrorsSafeString(buf), + size); + xmlFree(buf); + return(NULL); } ret = xmlSecKeySetName(key, BAD_CAST name); if(ret < 0) { - xmlSecError(XMLSEC_ERRORS_HERE, - NULL, - "xmlSecKeySetName", - XMLSEC_ERRORS_R_XMLSEC_FAILED, - "name=\"%s\"", - xmlSecErrorsSafeString(name)); - xmlSecKeyDestroy(key); - xmlFree(buf); - return(NULL); + xmlSecError(XMLSEC_ERRORS_HERE, + NULL, + "xmlSecKeySetName", + XMLSEC_ERRORS_R_XMLSEC_FAILED, + "name=\"%s\"", + xmlSecErrorsSafeString(name)); + xmlSecKeyDestroy(key); + xmlFree(buf); + return(NULL); } xmlFree(buf); diff --git a/apps/crypto.h b/apps/crypto.h index 63a94a4..1ce2c3e 100644 --- a/apps/crypto.h +++ b/apps/crypto.h @@ -20,44 +20,44 @@ extern "C" { #include #include -int xmlSecAppCryptoInit (const char* config); -int xmlSecAppCryptoShutdown (void); +int xmlSecAppCryptoInit (const char* config); +int xmlSecAppCryptoShutdown (void); -xmlSecKeyPtr xmlSecAppCryptoKeyGenerate (const char* keyKlassAndSize, - const char* name, - xmlSecKeyDataType type); +xmlSecKeyPtr xmlSecAppCryptoKeyGenerate (const char* keyKlassAndSize, + const char* name, + xmlSecKeyDataType type); /***************************************************************************** * * Simple keys manager * ****************************************************************************/ -int xmlSecAppCryptoSimpleKeysMngrInit (xmlSecKeysMngrPtr mngr); -int xmlSecAppCryptoSimpleKeysMngrLoad (xmlSecKeysMngrPtr mngr, - const char *filename); -int xmlSecAppCryptoSimpleKeysMngrSave (xmlSecKeysMngrPtr mngr, - const char *filename, - xmlSecKeyDataType type); -int xmlSecAppCryptoSimpleKeysMngrCertLoad (xmlSecKeysMngrPtr mngr, - const char *filename, - xmlSecKeyDataFormat format, - xmlSecKeyDataType type); -int xmlSecAppCryptoSimpleKeysMngrKeyAndCertsLoad (xmlSecKeysMngrPtr mngr, - const char *files, - const char* pwd, - const char* name, - xmlSecKeyDataFormat format); -int xmlSecAppCryptoSimpleKeysMngrPkcs12KeyLoad (xmlSecKeysMngrPtr mngr, - const char *filename, - const char* pwd, - const char *name); -int xmlSecAppCryptoSimpleKeysMngrBinaryKeyLoad (xmlSecKeysMngrPtr mngr, - const char* keyKlass, - const char* filename, - const char *name); -int xmlSecAppCryptoSimpleKeysMngrKeyGenerate (xmlSecKeysMngrPtr mngr, - const char* keyKlassAndSize, - const char* name); +int xmlSecAppCryptoSimpleKeysMngrInit (xmlSecKeysMngrPtr mngr); +int xmlSecAppCryptoSimpleKeysMngrLoad (xmlSecKeysMngrPtr mngr, + const char *filename); +int xmlSecAppCryptoSimpleKeysMngrSave (xmlSecKeysMngrPtr mngr, + const char *filename, + xmlSecKeyDataType type); +int xmlSecAppCryptoSimpleKeysMngrCertLoad (xmlSecKeysMngrPtr mngr, + const char *filename, + xmlSecKeyDataFormat format, + xmlSecKeyDataType type); +int xmlSecAppCryptoSimpleKeysMngrKeyAndCertsLoad (xmlSecKeysMngrPtr mngr, + const char *files, + const char* pwd, + const char* name, + xmlSecKeyDataFormat format); +int xmlSecAppCryptoSimpleKeysMngrPkcs12KeyLoad (xmlSecKeysMngrPtr mngr, + const char *filename, + const char* pwd, + const char *name); +int xmlSecAppCryptoSimpleKeysMngrBinaryKeyLoad (xmlSecKeysMngrPtr mngr, + const char* keyKlass, + const char* filename, + const char *name); +int xmlSecAppCryptoSimpleKeysMngrKeyGenerate (xmlSecKeysMngrPtr mngr, + const char* keyKlassAndSize, + const char* name); #ifdef __cplusplus diff --git a/apps/xmlsec.c b/apps/xmlsec.c index d551b5a..f2fa9f6 100644 --- a/apps/xmlsec.c +++ b/apps/xmlsec.c @@ -24,7 +24,6 @@ #include #include #include -#include #include #endif /* XMLSEC_NO_XSLT */ @@ -57,23 +56,23 @@ static const char helpCommands1[] = "\n" "xmlsec is a command line tool for signing, verifying, encrypting and\n" "decrypting XML documents. The allowed values are:\n" - " --help " "\tdisplay this help information and exit\n" - " --help-all " "\tdisplay help information for all commands/options and exit\n" - " --help-" "\tdisplay help information for command and exit\n" - " --version " "\tprint version information and exit\n" - " --keys " "\tkeys XML file manipulation\n"; + " --help " "\tdisplay this help information and exit\n" + " --help-all " "\tdisplay help information for all commands/options and exit\n" + " --help-" "\tdisplay help information for command and exit\n" + " --version " "\tprint version information and exit\n" + " --keys " "\tkeys XML file manipulation\n"; static const char helpCommands2[] = #ifndef XMLSEC_NO_XMLDSIG - " --sign " "\tsign data and output XML document\n" - " --verify " "\tverify signed document\n" + " --sign " "\tsign data and output XML document\n" + " --verify " "\tverify signed document\n" #ifndef XMLSEC_NO_TMPL_TEST - " --sign-tmpl " "\tcreate and sign dynamicaly generated signature template\n" + " --sign-tmpl " "\tcreate and sign dynamicaly generated signature template\n" #endif /* XMLSEC_NO_TMPL_TEST */ #endif /* XMLSEC_NO_XMLDSIG */ #ifndef XMLSEC_NO_XMLENC - " --encrypt " "\tencrypt data and output XML document\n" - " --decrypt " "\tdecrypt data from XML document\n" + " --encrypt " "\tencrypt data and output XML document\n" + " --decrypt " "\tdecrypt data from XML document\n" #endif /* XMLSEC_NO_XMLENC */ #ifndef XMLSEC_NO_XKMS " --xkms-server-request ""\tprocess data as XKMS server request\n" @@ -133,19 +132,18 @@ static const char helpCheckTransforms[] = "Usage: xmlsec check-transforms [ ... ]\n" "Checks the given transforms against the list of known transform klasses\n"; -#define xmlSecAppCmdLineTopicGeneral 0x0001 -#define xmlSecAppCmdLineTopicDSigCommon 0x0002 -#define xmlSecAppCmdLineTopicDSigSign 0x0004 -#define xmlSecAppCmdLineTopicDSigVerify 0x0008 -#define xmlSecAppCmdLineTopicEncCommon 0x0010 -#define xmlSecAppCmdLineTopicEncEncrypt 0x0020 -#define xmlSecAppCmdLineTopicEncDecrypt 0x0040 -#define xmlSecAppCmdLineTopicXkmsCommon 0x0080 -#define xmlSecAppCmdLineTopicKeysMngr 0x1000 -#define xmlSecAppCmdLineTopicX509Certs 0x2000 -#define xmlSecAppCmdLineTopicVersion 0x4000 -#define xmlSecAppCmdLineTopicCryptoConfig 0x8000 -#define xmlSecAppCmdLineTopicAll 0xFFFF +#define xmlSecAppCmdLineTopicGeneral 0x0001 +#define xmlSecAppCmdLineTopicDSigCommon 0x0002 +#define xmlSecAppCmdLineTopicDSigSign 0x0004 +#define xmlSecAppCmdLineTopicDSigVerify 0x0008 +#define xmlSecAppCmdLineTopicEncCommon 0x0010 +#define xmlSecAppCmdLineTopicEncEncrypt 0x0020 +#define xmlSecAppCmdLineTopicEncDecrypt 0x0040 +#define xmlSecAppCmdLineTopicXkmsCommon 0x0080 +#define xmlSecAppCmdLineTopicKeysMngr 0x1000 +#define xmlSecAppCmdLineTopicX509Certs 0x2000 +#define xmlSecAppCmdLineTopicVersion 0x4000 +#define xmlSecAppCmdLineTopicAll 0xFFFF /**************************************************************** * @@ -161,23 +159,25 @@ static xmlSecAppCmdLineParam helpParam = { xmlSecAppCmdLineParamTypeFlag, xmlSecAppCmdLineParamFlagNone, NULL -}; +}; +#if !defined(XMLSEC_NO_CRYPTO_DYNAMIC_LOADING) && defined(XMLSEC_CRYPTO_DYNAMIC_LOADING) static xmlSecAppCmdLineParam cryptoParam = { - xmlSecAppCmdLineTopicCryptoConfig, + xmlSecAppCmdLineTopicGeneral, "--crypto", NULL, "--crypto " "\n\tthe name of the crypto engine to use from the following" - "\n\tlist: openssl, mscrypto, nss, gnutls, gcrypt (if no crypto engine is" + "\n\tlist: openssl, gnutls, nss, mscrypto (if no crypto engine is" "\n\tspecified then the default one is used)", xmlSecAppCmdLineParamTypeString, xmlSecAppCmdLineParamFlagNone, NULL -}; +}; +#endif /* !defined(XMLSEC_NO_CRYPTO_DYNAMIC_LOADING) && defined(XMLSEC_CRYPTO_DYNAMIC_LOADING) */ static xmlSecAppCmdLineParam cryptoConfigParam = { - xmlSecAppCmdLineTopicCryptoConfig, + xmlSecAppCmdLineTopicGeneral, "--crypto-config", NULL, "--crypto-config " @@ -185,11 +185,11 @@ static xmlSecAppCmdLineParam cryptoConfigParam = { xmlSecAppCmdLineParamTypeString, xmlSecAppCmdLineParamFlagNone, NULL -}; +}; static xmlSecAppCmdLineParam repeatParam = { - xmlSecAppCmdLineTopicCryptoConfig, + xmlSecAppCmdLineTopicGeneral, "--repeat", "-r", "--repeat " @@ -197,7 +197,7 @@ static xmlSecAppCmdLineParam repeatParam = { xmlSecAppCmdLineParamTypeNumber, xmlSecAppCmdLineParamFlagNone, NULL -}; +}; static xmlSecAppCmdLineParam disableErrorMsgsParam = { @@ -898,7 +898,9 @@ static xmlSecAppCmdLineParamPtr parameters[] = { #endif /* XMLSEC_NO_X509 */ /* General configuration params */ +#if !defined(XMLSEC_NO_CRYPTO_DYNAMIC_LOADING) && defined(XMLSEC_CRYPTO_DYNAMIC_LOADING) &cryptoParam, +#endif /* !defined(XMLSEC_NO_CRYPTO_DYNAMIC_LOADING) && defined(XMLSEC_CRYPTO_DYNAMIC_LOADING) */ &cryptoConfigParam, &repeatParam, &disableErrorMsgsParam, @@ -927,71 +929,71 @@ typedef enum { xmlSecAppCommandXkmsServerRequest } xmlSecAppCommand; -typedef struct _xmlSecAppXmlData xmlSecAppXmlData, - *xmlSecAppXmlDataPtr; +typedef struct _xmlSecAppXmlData xmlSecAppXmlData, + *xmlSecAppXmlDataPtr; struct _xmlSecAppXmlData { - xmlDocPtr doc; - xmlDtdPtr dtd; - xmlNodePtr startNode; + xmlDocPtr doc; + xmlDtdPtr dtd; + xmlNodePtr startNode; }; -static xmlSecAppXmlDataPtr xmlSecAppXmlDataCreate (const char* filename, - const xmlChar* defStartNodeName, - const xmlChar* defStartNodeNs); -static void xmlSecAppXmlDataDestroy (xmlSecAppXmlDataPtr data); +static xmlSecAppXmlDataPtr xmlSecAppXmlDataCreate (const char* filename, + const xmlChar* defStartNodeName, + const xmlChar* defStartNodeNs); +static void xmlSecAppXmlDataDestroy (xmlSecAppXmlDataPtr data); -static xmlSecAppCommand xmlSecAppParseCommand (const char* cmd, - xmlSecAppCmdLineParamTopic* topics, - xmlSecAppCommand* subCommand); -static void xmlSecAppPrintHelp (xmlSecAppCommand command, - xmlSecAppCmdLineParamTopic topics); -#define xmlSecAppPrintUsage() xmlSecAppPrintHelp(xmlSecAppCommandUnknown, 0) -static int xmlSecAppInit (void); -static void xmlSecAppShutdown (void); -static int xmlSecAppLoadKeys (void); -static int xmlSecAppPrepareKeyInfoReadCtx (xmlSecKeyInfoCtxPtr ctx); +static xmlSecAppCommand xmlSecAppParseCommand (const char* cmd, + xmlSecAppCmdLineParamTopic* topics, + xmlSecAppCommand* subCommand); +static void xmlSecAppPrintHelp (xmlSecAppCommand command, + xmlSecAppCmdLineParamTopic topics); +#define xmlSecAppPrintUsage() xmlSecAppPrintHelp(xmlSecAppCommandUnknown, 0) +static int xmlSecAppInit (void); +static void xmlSecAppShutdown (void); +static int xmlSecAppLoadKeys (void); +static int xmlSecAppPrepareKeyInfoReadCtx (xmlSecKeyInfoCtxPtr ctx); #ifndef XMLSEC_NO_XMLDSIG -static int xmlSecAppSignFile (const char* filename); -static int xmlSecAppVerifyFile (const char* filename); +static int xmlSecAppSignFile (const char* filename); +static int xmlSecAppVerifyFile (const char* filename); #ifndef XMLSEC_NO_TMPL_TEST -static int xmlSecAppSignTmpl (void); +static int xmlSecAppSignTmpl (void); #endif /* XMLSEC_NO_TMPL_TEST */ -static int xmlSecAppPrepareDSigCtx (xmlSecDSigCtxPtr dsigCtx); -static void xmlSecAppPrintDSigCtx (xmlSecDSigCtxPtr dsigCtx); +static int xmlSecAppPrepareDSigCtx (xmlSecDSigCtxPtr dsigCtx); +static void xmlSecAppPrintDSigCtx (xmlSecDSigCtxPtr dsigCtx); #endif /* XMLSEC_NO_XMLDSIG */ #ifndef XMLSEC_NO_XMLENC -static int xmlSecAppEncryptFile (const char* filename); -static int xmlSecAppDecryptFile (const char* filename); +static int xmlSecAppEncryptFile (const char* filename); +static int xmlSecAppDecryptFile (const char* filename); #ifndef XMLSEC_NO_TMPL_TEST -static int xmlSecAppEncryptTmpl (void); +static int xmlSecAppEncryptTmpl (void); #endif /* XMLSEC_NO_TMPL_TEST */ -static int xmlSecAppPrepareEncCtx (xmlSecEncCtxPtr encCtx); -static void xmlSecAppPrintEncCtx (xmlSecEncCtxPtr encCtx); +static int xmlSecAppPrepareEncCtx (xmlSecEncCtxPtr encCtx); +static void xmlSecAppPrintEncCtx (xmlSecEncCtxPtr encCtx); #endif /* XMLSEC_NO_XMLENC */ #ifndef XMLSEC_NO_XKMS -static int xmlSecAppXkmsServerProcess (const char* filename); -static int xmlSecAppPrepareXkmsServerCtx (xmlSecXkmsServerCtxPtr xkmsServerCtx); -static void xmlSecAppPrintXkmsServerCtx (xmlSecXkmsServerCtxPtr xkmsServerCtx); +static int xmlSecAppXkmsServerProcess (const char* filename); +static int xmlSecAppPrepareXkmsServerCtx (xmlSecXkmsServerCtxPtr xkmsServerCtx); +static void xmlSecAppPrintXkmsServerCtx (xmlSecXkmsServerCtxPtr xkmsServerCtx); #endif /* XMLSEC_NO_XKMS */ -static void xmlSecAppListKeyData (void); -static int xmlSecAppCheckKeyData (const char * name); -static void xmlSecAppListTransforms (void); -static int xmlSecAppCheckTransform (const char * name); - -static xmlSecTransformUriType xmlSecAppGetUriType (const char* string); -static FILE* xmlSecAppOpenFile (const char* filename); -static void xmlSecAppCloseFile (FILE* file); -static int xmlSecAppWriteResult (xmlDocPtr doc, - xmlSecBufferPtr buffer); -static int xmlSecAppAddIDAttr (xmlNodePtr cur, - const xmlChar* attr, - const xmlChar* node, - const xmlChar* nsHref); +static void xmlSecAppListKeyData (void); +static int xmlSecAppCheckKeyData (const char * name); +static void xmlSecAppListTransforms (void); +static int xmlSecAppCheckTransform (const char * name); + +static xmlSecTransformUriType xmlSecAppGetUriType (const char* string); +static FILE* xmlSecAppOpenFile (const char* filename); +static void xmlSecAppCloseFile (FILE* file); +static int xmlSecAppWriteResult (xmlDocPtr doc, + xmlSecBufferPtr buffer); +static int xmlSecAppAddIDAttr (xmlNodePtr cur, + const xmlChar* attr, + const xmlChar* node, + const xmlChar* nsHref); xmlSecKeysMngrPtr gKeysMngr = NULL; int repeats = 1; @@ -1005,208 +1007,201 @@ int main(int argc, const char **argv) { xmlSecAppCommand command, subCommand; int pos, i; int res = 1; - + /* read the command (first argument) */ if(argc < 2) { - xmlSecAppPrintUsage(); - goto fail; + xmlSecAppPrintUsage(); + goto fail; } command = xmlSecAppParseCommand(argv[1], &cmdLineTopics, &subCommand); if(command == xmlSecAppCommandUnknown) { - fprintf(stderr, "Error: unknown command \"%s\"\n", argv[1]); - xmlSecAppPrintUsage(); - goto fail; + fprintf(stderr, "Error: unknown command \"%s\"\n", argv[1]); + xmlSecAppPrintUsage(); + goto fail; } /* do as much as we can w/o initialization */ if(command == xmlSecAppCommandHelp) { - xmlSecAppPrintHelp(subCommand, cmdLineTopics); - goto success; + xmlSecAppPrintHelp(subCommand, cmdLineTopics); + goto success; } else if(command == xmlSecAppCommandVersion) { - fprintf(stdout, "%s %s (%s)\n", PACKAGE, XMLSEC_VERSION, xmlsec_crypto); - goto success; + fprintf(stdout, "%s %s (%s)\n", PACKAGE, XMLSEC_VERSION, xmlsec_crypto); + goto success; } /* parse command line */ pos = xmlSecAppCmdLineParamsListParse(parameters, cmdLineTopics, argv, argc, 2); if(pos < 0) { - fprintf(stderr, "Error: invalid parameters\n"); - xmlSecAppPrintUsage(); - goto fail; + fprintf(stderr, "Error: invalid parameters\n"); + xmlSecAppPrintUsage(); + goto fail; } /* is it a help request? */ if(xmlSecAppCmdLineParamIsSet(&helpParam)) { - xmlSecAppPrintHelp(command, cmdLineTopics); - goto success; + xmlSecAppPrintHelp(command, cmdLineTopics); + goto success; } /* we need to have some files at the end */ switch(command) { - case xmlSecAppCommandKeys: - case xmlSecAppCommandSign: - case xmlSecAppCommandVerify: - case xmlSecAppCommandEncrypt: - case xmlSecAppCommandDecrypt: - case xmlSecAppCommandXkmsServerRequest: - if(pos >= argc) { - fprintf(stderr, "Error: parameter is requried for this command\n"); - xmlSecAppPrintUsage(); - goto fail; - } - break; - default: - break; + case xmlSecAppCommandKeys: + case xmlSecAppCommandSign: + case xmlSecAppCommandVerify: + case xmlSecAppCommandEncrypt: + case xmlSecAppCommandDecrypt: + case xmlSecAppCommandXkmsServerRequest: + if(pos >= argc) { + fprintf(stderr, "Error: parameter is requried for this command\n"); + xmlSecAppPrintUsage(); + goto fail; + } + break; + default: + break; } - + /* now init the xmlsec and all other libs */ - /* ignore "--crypto" if we don't have dynamic loading */ - tmp = xmlSecAppCmdLineParamGetString(&cryptoParam); #if !defined(XMLSEC_NO_CRYPTO_DYNAMIC_LOADING) && defined(XMLSEC_CRYPTO_DYNAMIC_LOADING) + tmp = xmlSecAppCmdLineParamGetString(&cryptoParam); if((tmp != NULL) && (strcmp(tmp, "default") != 0)) { - xmlsec_crypto = tmp; - } -#else /* !defined(XMLSEC_NO_CRYPTO_DYNAMIC_LOADING) && defined(XMLSEC_CRYPTO_DYNAMIC_LOADING) */ - if((tmp != NULL) && (strcmp(tmp, xmlsec_crypto) != 0)) { - fprintf(stderr, "Error: dynaimc crypto libraries loading is disabled and the only available crypto library is '%s'\n", xmlsec_crypto); - xmlSecAppPrintUsage(); - goto fail; + xmlsec_crypto = tmp; } #endif /* !defined(XMLSEC_NO_CRYPTO_DYNAMIC_LOADING) && defined(XMLSEC_CRYPTO_DYNAMIC_LOADING) */ - + if(xmlSecAppInit() < 0) { - fprintf(stderr, "Error: initialization failed\n"); - xmlSecAppPrintUsage(); - goto fail; + fprintf(stderr, "Error: initialization failed\n"); + xmlSecAppPrintUsage(); + goto fail; } /* load keys */ if(xmlSecAppLoadKeys() < 0) { - fprintf(stderr, "Error: keys manager creation failed\n"); - xmlSecAppPrintUsage(); - goto fail; + fprintf(stderr, "Error: keys manager creation failed\n"); + xmlSecAppPrintUsage(); + goto fail; } /* get the "repeats" number */ if(xmlSecAppCmdLineParamIsSet(&repeatParam) && (xmlSecAppCmdLineParamGetInt(&repeatParam, 1) > 0)) { - repeats = xmlSecAppCmdLineParamGetInt(&repeatParam, 1); + repeats = xmlSecAppCmdLineParamGetInt(&repeatParam, 1); } /* execute requested number of times */ for(; repeats > 0; --repeats) { - switch(command) { - case xmlSecAppCommandListKeyData: - xmlSecAppListKeyData(); - break; - case xmlSecAppCommandCheckKeyData: - for(i = pos; i < argc; ++i) { + switch(command) { + case xmlSecAppCommandListKeyData: + xmlSecAppListKeyData(); + break; + case xmlSecAppCommandCheckKeyData: + for(i = pos; i < argc; ++i) { if(xmlSecAppCheckKeyData(argv[i]) < 0) { fprintf(stderr, "Error: key data \"%s\" not found\n", argv[i]); goto fail; } else { fprintf(stdout, "Key data \"%s\" found\n", argv[i]); } - } - break; - case xmlSecAppCommandListTransforms: - xmlSecAppListTransforms(); - break; - case xmlSecAppCommandCheckTransforms: - for(i = pos; i < argc; ++i) { + } + break; + case xmlSecAppCommandListTransforms: + xmlSecAppListTransforms(); + break; + case xmlSecAppCommandCheckTransforms: + for(i = pos; i < argc; ++i) { if(xmlSecAppCheckTransform(argv[i]) < 0) { fprintf(stderr, "Error: transform \"%s\" not found\n", argv[i]); goto fail; } else { fprintf(stdout, "Transforms \"%s\" found\n", argv[i]); } - } - break; - case xmlSecAppCommandKeys: - for(i = pos; i < argc; ++i) { - if(xmlSecAppCryptoSimpleKeysMngrSave(gKeysMngr, argv[i], xmlSecKeyDataTypeAny) < 0) { - fprintf(stderr, "Error: failed to save keys to file \"%s\"\n", argv[i]); - goto fail; - } - } - break; + } + break; + case xmlSecAppCommandKeys: + for(i = pos; i < argc; ++i) { + if(xmlSecAppCryptoSimpleKeysMngrSave(gKeysMngr, argv[i], xmlSecKeyDataTypeAny) < 0) { + fprintf(stderr, "Error: failed to save keys to file \"%s\"\n", argv[i]); + goto fail; + } + } + break; #ifndef XMLSEC_NO_XMLDSIG - case xmlSecAppCommandSign: - for(i = pos; i < argc; ++i) { - if(xmlSecAppSignFile(argv[i]) < 0) { - fprintf(stderr, "Error: failed to sign file \"%s\"\n", argv[i]); - goto fail; - } - } - break; - case xmlSecAppCommandVerify: - for(i = pos; i < argc; ++i) { - if(xmlSecAppVerifyFile(argv[i]) < 0) { - fprintf(stderr, "Error: failed to verify file \"%s\"\n", argv[i]); - goto fail; - } - } - break; + case xmlSecAppCommandSign: + for(i = pos; i < argc; ++i) { + if(xmlSecAppSignFile(argv[i]) < 0) { + fprintf(stderr, "Error: failed to sign file \"%s\"\n", argv[i]); + goto fail; + } + } + break; + case xmlSecAppCommandVerify: + for(i = pos; i < argc; ++i) { + if(xmlSecAppVerifyFile(argv[i]) < 0) { + fprintf(stderr, "Error: failed to verify file \"%s\"\n", argv[i]); + goto fail; + } + } + break; #ifndef XMLSEC_NO_TMPL_TEST - case xmlSecAppCommandSignTmpl: - if(xmlSecAppSignTmpl() < 0) { - fprintf(stderr, "Error: failed to create and sign template\n"); - goto fail; - } - break; + case xmlSecAppCommandSignTmpl: + if(xmlSecAppSignTmpl() < 0) { + fprintf(stderr, "Error: failed to create and sign template\n"); + goto fail; + } + break; #endif /* XMLSEC_NO_TMPL_TEST */ #endif /* XMLSEC_NO_XMLDSIG */ #ifndef XMLSEC_NO_XMLENC - case xmlSecAppCommandEncrypt: - for(i = pos; i < argc; ++i) { - if(xmlSecAppEncryptFile(argv[i]) < 0) { - fprintf(stderr, "Error: failed to encrypt file with template \"%s\"\n", argv[i]); - goto fail; - } - } - break; - case xmlSecAppCommandDecrypt: - for(i = pos; i < argc; ++i) { - if(xmlSecAppDecryptFile(argv[i]) < 0) { - fprintf(stderr, "Error: failed to decrypt file \"%s\"\n", argv[i]); - goto fail; - } - } - break; + case xmlSecAppCommandEncrypt: + for(i = pos; i < argc; ++i) { + if(xmlSecAppEncryptFile(argv[i]) < 0) { + fprintf(stderr, "Error: failed to encrypt file with template \"%s\"\n", argv[i]); + goto fail; + } + } + break; + case xmlSecAppCommandDecrypt: + for(i = pos; i < argc; ++i) { + if(xmlSecAppDecryptFile(argv[i]) < 0) { + fprintf(stderr, "Error: failed to decrypt file \"%s\"\n", argv[i]); + goto fail; + } + } + break; #ifndef XMLSEC_NO_TMPL_TEST - case xmlSecAppCommandEncryptTmpl: - if(xmlSecAppEncryptTmpl() < 0) { - fprintf(stderr, "Error: failed to create and encrypt template\n"); - goto fail; - } - break; + case xmlSecAppCommandEncryptTmpl: + if(xmlSecAppEncryptTmpl() < 0) { + fprintf(stderr, "Error: failed to create and encrypt template\n"); + goto fail; + } + break; #endif /* XMLSEC_NO_TMPL_TEST */ #endif /* XMLSEC_NO_XMLENC */ #ifndef XMLSEC_NO_XKMS - case xmlSecAppCommandXkmsServerRequest: - for(i = pos; i < argc; ++i) { - if(xmlSecAppXkmsServerProcess(argv[i]) < 0) { - fprintf(stderr, "Error: failed to process XKMS server request from file \"%s\"\n", argv[i]); - goto fail; - } - } - break; + case xmlSecAppCommandXkmsServerRequest: + for(i = pos; i < argc; ++i) { + if(xmlSecAppXkmsServerProcess(argv[i]) < 0) { + fprintf(stderr, "Error: failed to process XKMS server request from file \"%s\"\n", argv[i]); + goto fail; + } + } + break; #endif /* XMLSEC_NO_XKMS */ - default: - fprintf(stderr, "Error: invalid command %d\n", command); - xmlSecAppPrintUsage(); - goto fail; - } + default: + fprintf(stderr, "Error: invalid command %d\n", command); + xmlSecAppPrintUsage(); + goto fail; + } } /* print perf stats results */ if(xmlSecAppCmdLineParamIsSet(&repeatParam) && (xmlSecAppCmdLineParamGetInt(&repeatParam, 1) > 0)) { - repeats = xmlSecAppCmdLineParamGetInt(&repeatParam, 1); + repeats = xmlSecAppCmdLineParamGetInt(&repeatParam, 1); fprintf(stderr, "Executed %d tests in %ld msec\n", repeats, (1000 * total_time) / CLOCKS_PER_SEC); } @@ -1215,8 +1210,8 @@ success: res = 0; fail: if(gKeysMngr != NULL) { - xmlSecKeysMngrDestroy(gKeysMngr); - gKeysMngr = NULL; + xmlSecKeysMngrDestroy(gKeysMngr); + gKeysMngr = NULL; } xmlSecAppShutdown(); xmlSecAppCmdLineParamsListClean(parameters); @@ -1233,24 +1228,24 @@ xmlSecAppSignFile(const char* filename) { int res = -1; if(filename == NULL) { - return(-1); + return(-1); } if(xmlSecDSigCtxInitialize(&dsigCtx, gKeysMngr) < 0) { - fprintf(stderr, "Error: dsig context initialization failed\n"); - return(-1); + fprintf(stderr, "Error: dsig context initialization failed\n"); + return(-1); } if(xmlSecAppPrepareDSigCtx(&dsigCtx) < 0) { - fprintf(stderr, "Error: dsig context preparation failed\n"); - goto done; + fprintf(stderr, "Error: dsig context preparation failed\n"); + goto done; } /* parse template and select start node */ data = xmlSecAppXmlDataCreate(filename, xmlSecNodeSignature, xmlSecDSigNs); if(data == NULL) { - fprintf(stderr, "Error: failed to load template \"%s\"\n", filename); - goto done; + fprintf(stderr, "Error: failed to load template \"%s\"\n", filename); + goto done; } @@ -1258,32 +1253,32 @@ xmlSecAppSignFile(const char* filename) { start_time = clock(); if(xmlSecDSigCtxSign(&dsigCtx, data->startNode) < 0) { fprintf(stderr,"Error: signature failed \n"); - goto done; + goto done; } total_time += clock() - start_time; if(repeats <= 1) { - FILE* f; + FILE* f; - f = xmlSecAppOpenFile(xmlSecAppCmdLineParamGetString(&outputParam)); - if(f == NULL) { - fprintf(stderr,"Error: failed to open output file \"%s\"\n", - xmlSecAppCmdLineParamGetString(&outputParam)); - goto done; - } - xmlDocDump(f, data->doc); - xmlSecAppCloseFile(f); + f = xmlSecAppOpenFile(xmlSecAppCmdLineParamGetString(&outputParam)); + if(f == NULL) { + fprintf(stderr,"Error: failed to open output file \"%s\"\n", + xmlSecAppCmdLineParamGetString(&outputParam)); + goto done; + } + xmlDocDump(f, data->doc); + xmlSecAppCloseFile(f); } res = 0; done: /* print debug info if requested */ if(repeats <= 1) { - xmlSecAppPrintDSigCtx(&dsigCtx); + xmlSecAppPrintDSigCtx(&dsigCtx); } xmlSecDSigCtxFinalize(&dsigCtx); if(data != NULL) { - xmlSecAppXmlDataDestroy(data); + xmlSecAppXmlDataDestroy(data); } return(res); } @@ -1296,98 +1291,98 @@ xmlSecAppVerifyFile(const char* filename) { int res = -1; if(filename == NULL) { - return(-1); + return(-1); } if(xmlSecDSigCtxInitialize(&dsigCtx, gKeysMngr) < 0) { - fprintf(stderr, "Error: dsig context initialization failed\n"); - return(-1); + fprintf(stderr, "Error: dsig context initialization failed\n"); + return(-1); } if(xmlSecAppPrepareDSigCtx(&dsigCtx) < 0) { - fprintf(stderr, "Error: dsig context preparation failed\n"); - goto done; + fprintf(stderr, "Error: dsig context preparation failed\n"); + goto done; } /* parse template and select start node */ data = xmlSecAppXmlDataCreate(filename, xmlSecNodeSignature, xmlSecDSigNs); if(data == NULL) { - fprintf(stderr, "Error: failed to load document \"%s\"\n", filename); - goto done; + fprintf(stderr, "Error: failed to load document \"%s\"\n", filename); + goto done; } /* sign */ start_time = clock(); if(xmlSecDSigCtxVerify(&dsigCtx, data->startNode) < 0) { fprintf(stderr,"Error: signature failed \n"); - goto done; + goto done; } total_time += clock() - start_time; if((repeats <= 1) && (dsigCtx.status != xmlSecDSigStatusSucceeded)){ - /* return an error if signature does not match */ - goto done; + /* return an error if signature does not match */ + goto done; } res = 0; done: /* print debug info if requested */ if(repeats <= 1) { - xmlSecDSigReferenceCtxPtr dsigRefCtx; - xmlSecSize good, i, size; - FILE* f; + xmlSecDSigReferenceCtxPtr dsigRefCtx; + xmlSecSize good, i, size; + FILE* f; - f = xmlSecAppOpenFile(xmlSecAppCmdLineParamGetString(&outputParam)); - if(f == NULL) { - fprintf(stderr,"Error: failed to open output file \"%s\"\n", - xmlSecAppCmdLineParamGetString(&outputParam)); - goto done; - } - xmlSecAppCloseFile(f); - - switch(dsigCtx.status) { - case xmlSecDSigStatusUnknown: - fprintf(stderr, "ERROR\n"); - break; - case xmlSecDSigStatusSucceeded: - fprintf(stderr, "OK\n"); - break; - case xmlSecDSigStatusInvalid: - fprintf(stderr, "FAIL\n"); - break; - } - - /* print stats about # of good/bad references/manifests */ - size = xmlSecPtrListGetSize(&(dsigCtx.signedInfoReferences)); - for(i = good = 0; i < size; ++i) { - dsigRefCtx = (xmlSecDSigReferenceCtxPtr)xmlSecPtrListGetItem(&(dsigCtx.signedInfoReferences), i); - if(dsigRefCtx == NULL) { - fprintf(stderr,"Error: reference ctx is null\n"); - goto done; - } - if(dsigRefCtx->status == xmlSecDSigStatusSucceeded) { - ++good; - } - } - fprintf(stderr, "SignedInfo References (ok/all): %d/%d\n", good, size); - - size = xmlSecPtrListGetSize(&(dsigCtx.manifestReferences)); - for(i = good = 0; i < size; ++i) { - dsigRefCtx = (xmlSecDSigReferenceCtxPtr)xmlSecPtrListGetItem(&(dsigCtx.manifestReferences), i); - if(dsigRefCtx == NULL) { - fprintf(stderr,"Error: reference ctx is null\n"); - goto done; - } - if(dsigRefCtx->status == xmlSecDSigStatusSucceeded) { - ++good; - } - } - fprintf(stderr, "Manifests References (ok/all): %d/%d\n", good, size); - - xmlSecAppPrintDSigCtx(&dsigCtx); + f = xmlSecAppOpenFile(xmlSecAppCmdLineParamGetString(&outputParam)); + if(f == NULL) { + fprintf(stderr,"Error: failed to open output file \"%s\"\n", + xmlSecAppCmdLineParamGetString(&outputParam)); + goto done; + } + xmlSecAppCloseFile(f); + + switch(dsigCtx.status) { + case xmlSecDSigStatusUnknown: + fprintf(stderr, "ERROR\n"); + break; + case xmlSecDSigStatusSucceeded: + fprintf(stderr, "OK\n"); + break; + case xmlSecDSigStatusInvalid: + fprintf(stderr, "FAIL\n"); + break; + } + + /* print stats about # of good/bad references/manifests */ + size = xmlSecPtrListGetSize(&(dsigCtx.signedInfoReferences)); + for(i = good = 0; i < size; ++i) { + dsigRefCtx = (xmlSecDSigReferenceCtxPtr)xmlSecPtrListGetItem(&(dsigCtx.signedInfoReferences), i); + if(dsigRefCtx == NULL) { + fprintf(stderr,"Error: reference ctx is null\n"); + goto done; + } + if(dsigRefCtx->status == xmlSecDSigStatusSucceeded) { + ++good; + } + } + fprintf(stderr, "SignedInfo References (ok/all): %d/%d\n", good, size); + + size = xmlSecPtrListGetSize(&(dsigCtx.manifestReferences)); + for(i = good = 0; i < size; ++i) { + dsigRefCtx = (xmlSecDSigReferenceCtxPtr)xmlSecPtrListGetItem(&(dsigCtx.manifestReferences), i); + if(dsigRefCtx == NULL) { + fprintf(stderr,"Error: reference ctx is null\n"); + goto done; + } + if(dsigRefCtx->status == xmlSecDSigStatusSucceeded) { + ++good; + } + } + fprintf(stderr, "Manifests References (ok/all): %d/%d\n", good, size); + + xmlSecAppPrintDSigCtx(&dsigCtx); } xmlSecDSigCtxFinalize(&dsigCtx); if(data != NULL) { - xmlSecAppXmlDataDestroy(data); + xmlSecAppXmlDataDestroy(data); } return(res); } @@ -1402,109 +1397,109 @@ xmlSecAppSignTmpl(void) { int res = -1; if(xmlSecDSigCtxInitialize(&dsigCtx, gKeysMngr) < 0) { - fprintf(stderr, "Error: dsig context initialization failed\n"); - return(-1); + fprintf(stderr, "Error: dsig context initialization failed\n"); + return(-1); } if(xmlSecAppPrepareDSigCtx(&dsigCtx) < 0) { - fprintf(stderr, "Error: dsig context preparation failed\n"); - goto done; + fprintf(stderr, "Error: dsig context preparation failed\n"); + goto done; } /* prepare template */ doc = xmlNewDoc(BAD_CAST "1.0"); if(doc == NULL) { - fprintf(stderr, "Error: failed to create doc\n"); - goto done; + fprintf(stderr, "Error: failed to create doc\n"); + goto done; } cur = xmlSecTmplSignatureCreate(doc, xmlSecTransformInclC14NId, - xmlSecTransformHmacSha1Id, NULL); + xmlSecTransformHmacSha1Id, NULL); if(cur == NULL) { - fprintf(stderr, "Error: failed to create Signature node\n"); - goto done; + fprintf(stderr, "Error: failed to create Signature node\n"); + goto done; } xmlDocSetRootElement(doc, cur); /* set hmac signature length */ cur = xmlSecTmplSignatureGetSignMethodNode(xmlDocGetRootElement(doc)); if(cur == NULL) { - fprintf(stderr, "Error: failed to find SignatureMethod node\n"); - goto done; + fprintf(stderr, "Error: failed to find SignatureMethod node\n"); + goto done; } if(xmlSecTmplTransformAddHmacOutputLength(cur, 93) < 0) { - fprintf(stderr, "Error: failed to set hmac length\n"); - goto done; + fprintf(stderr, "Error: failed to set hmac length\n"); + goto done; } cur = xmlSecTmplSignatureAddReference(xmlDocGetRootElement(doc), - xmlSecTransformSha1Id, - BAD_CAST "ref1", NULL, NULL); + xmlSecTransformSha1Id, + BAD_CAST "ref1", NULL, NULL); if(cur == NULL) { - fprintf(stderr, "Error: failed to add Reference node\n"); - goto done; + fprintf(stderr, "Error: failed to add Reference node\n"); + goto done; } cur = xmlSecTmplReferenceAddTransform(cur, xmlSecTransformXPath2Id); if(cur == NULL) { - fprintf(stderr, "Error: failed to add XPath transform\n"); - goto done; + fprintf(stderr, "Error: failed to add XPath transform\n"); + goto done; } if(xmlSecTmplTransformAddXPath2(cur, BAD_CAST "intersect", - BAD_CAST "//*[@Id='object1']", NULL) < 0) { - fprintf(stderr, "Error: failed to set XPath expression\n"); - goto done; + BAD_CAST "//*[@Id='object1']", NULL) < 0) { + fprintf(stderr, "Error: failed to set XPath expression\n"); + goto done; } cur = xmlSecTmplSignatureAddObject(xmlDocGetRootElement(doc), - BAD_CAST "object1", NULL, NULL); + BAD_CAST "object1", NULL, NULL); if(cur == NULL) { - fprintf(stderr, "Error: failed to add Object node\n"); - goto done; + fprintf(stderr, "Error: failed to add Object node\n"); + goto done; } xmlNodeSetContent(cur, BAD_CAST "This is signed data"); /* add key information */ cur = xmlSecTmplSignatureEnsureKeyInfo(xmlDocGetRootElement(doc), NULL); if(cur == NULL) { - fprintf(stderr, "Error: failed to add KeyInfo node\n"); - goto done; + fprintf(stderr, "Error: failed to add KeyInfo node\n"); + goto done; } if(xmlSecTmplKeyInfoAddKeyName(cur, NULL) == NULL) { - fprintf(stderr, "Error: failed to add KeyName node\n"); - goto done; + fprintf(stderr, "Error: failed to add KeyName node\n"); + goto done; } /* sign */ start_time = clock(); if(xmlSecDSigCtxSign(&dsigCtx, xmlDocGetRootElement(doc)) < 0) { fprintf(stderr,"Error: signature failed \n"); - goto done; + goto done; } total_time += clock() - start_time; if(repeats <= 1) { - FILE* f; + FILE* f; - f = xmlSecAppOpenFile(xmlSecAppCmdLineParamGetString(&outputParam)); - if(f == NULL) { - fprintf(stderr,"Error: failed to open output file \"%s\"\n", - xmlSecAppCmdLineParamGetString(&outputParam)); - goto done; - } - xmlDocDump(f, doc); - xmlSecAppCloseFile(f); + f = xmlSecAppOpenFile(xmlSecAppCmdLineParamGetString(&outputParam)); + if(f == NULL) { + fprintf(stderr,"Error: failed to open output file \"%s\"\n", + xmlSecAppCmdLineParamGetString(&outputParam)); + goto done; + } + xmlDocDump(f, doc); + xmlSecAppCloseFile(f); } res = 0; done: /* print debug info if requested */ if(repeats <= 1) { - xmlSecAppPrintDSigCtx(&dsigCtx); + xmlSecAppPrintDSigCtx(&dsigCtx); } xmlSecDSigCtxFinalize(&dsigCtx); if(doc != NULL) { - xmlFreeDoc(doc); + xmlFreeDoc(doc); } return(res); } @@ -1513,51 +1508,51 @@ done: static int xmlSecAppPrepareDSigCtx(xmlSecDSigCtxPtr dsigCtx) { if(dsigCtx == NULL) { - fprintf(stderr, "Error: dsig context is null\n"); - return(-1); + fprintf(stderr, "Error: dsig context is null\n"); + return(-1); } /* set key info params */ if(xmlSecAppPrepareKeyInfoReadCtx(&(dsigCtx->keyInfoReadCtx)) < 0) { - fprintf(stderr, "Error: failed to prepare key info context\n"); - return(-1); + fprintf(stderr, "Error: failed to prepare key info context\n"); + return(-1); } if(xmlSecAppCmdLineParamGetString(&sessionKeyParam) != NULL) { - dsigCtx->signKey = xmlSecAppCryptoKeyGenerate(xmlSecAppCmdLineParamGetString(&sessionKeyParam), - NULL, xmlSecKeyDataTypeSession); - if(dsigCtx->signKey == NULL) { - fprintf(stderr, "Error: failed to generate a session key \"%s\"\n", - xmlSecAppCmdLineParamGetString(&sessionKeyParam)); - return(-1); - } + dsigCtx->signKey = xmlSecAppCryptoKeyGenerate(xmlSecAppCmdLineParamGetString(&sessionKeyParam), + NULL, xmlSecKeyDataTypeSession); + if(dsigCtx->signKey == NULL) { + fprintf(stderr, "Error: failed to generate a session key \"%s\"\n", + xmlSecAppCmdLineParamGetString(&sessionKeyParam)); + return(-1); + } } /* set dsig params */ if(xmlSecAppCmdLineParamIsSet(&ignoreManifestsParam)) { - dsigCtx->flags |= XMLSEC_DSIG_FLAGS_IGNORE_MANIFESTS; + dsigCtx->flags |= XMLSEC_DSIG_FLAGS_IGNORE_MANIFESTS; } if(xmlSecAppCmdLineParamIsSet(&storeReferencesParam)) { - dsigCtx->flags |= XMLSEC_DSIG_FLAGS_STORE_SIGNEDINFO_REFERENCES | - XMLSEC_DSIG_FLAGS_STORE_MANIFEST_REFERENCES; - print_debug = 1; + dsigCtx->flags |= XMLSEC_DSIG_FLAGS_STORE_SIGNEDINFO_REFERENCES | + XMLSEC_DSIG_FLAGS_STORE_MANIFEST_REFERENCES; + print_debug = 1; } if(xmlSecAppCmdLineParamIsSet(&storeSignaturesParam)) { - dsigCtx->flags |= XMLSEC_DSIG_FLAGS_STORE_SIGNATURE; - print_debug = 1; + dsigCtx->flags |= XMLSEC_DSIG_FLAGS_STORE_SIGNATURE; + print_debug = 1; } if(xmlSecAppCmdLineParamIsSet(&enableVisa3DHackParam)) { - dsigCtx->flags |= XMLSEC_DSIG_FLAGS_USE_VISA3D_HACK; + dsigCtx->flags |= XMLSEC_DSIG_FLAGS_USE_VISA3D_HACK; } if(xmlSecAppCmdLineParamGetStringList(&enabledRefUrisParam) != NULL) { - dsigCtx->enabledReferenceUris = xmlSecAppGetUriType( - xmlSecAppCmdLineParamGetStringList(&enabledRefUrisParam)); - if(dsigCtx->enabledReferenceUris == xmlSecTransformUriTypeNone) { - fprintf(stderr, "Error: failed to parse \"%s\"\n", - xmlSecAppCmdLineParamGetStringList(&enabledRefUrisParam)); - return(-1); - } + dsigCtx->enabledReferenceUris = xmlSecAppGetUriType( + xmlSecAppCmdLineParamGetStringList(&enabledRefUrisParam)); + if(dsigCtx->enabledReferenceUris == xmlSecTransformUriTypeNone) { + fprintf(stderr, "Error: failed to parse \"%s\"\n", + xmlSecAppCmdLineParamGetStringList(&enabledRefUrisParam)); + return(-1); + } } return(0); @@ -1566,20 +1561,20 @@ xmlSecAppPrepareDSigCtx(xmlSecDSigCtxPtr dsigCtx) { static void xmlSecAppPrintDSigCtx(xmlSecDSigCtxPtr dsigCtx) { if(dsigCtx == NULL) { - return; + return; } if(xmlSecAppCmdLineParamIsSet(&printDebugParam) || xmlSecAppCmdLineParamIsSet(&printXmlDebugParam)) { - print_debug = 0; + print_debug = 0; } /* print debug info if requested */ if((print_debug != 0) || xmlSecAppCmdLineParamIsSet(&printDebugParam)) { - xmlSecDSigCtxDebugDump(dsigCtx, stdout); + xmlSecDSigCtxDebugDump(dsigCtx, stdout); } - if(xmlSecAppCmdLineParamIsSet(&printXmlDebugParam)) { - xmlSecDSigCtxDebugXmlDump(dsigCtx, stdout); + if(xmlSecAppCmdLineParamIsSet(&printXmlDebugParam)) { + xmlSecDSigCtxDebugXmlDump(dsigCtx, stdout); } } @@ -1596,89 +1591,89 @@ xmlSecAppEncryptFile(const char* filename) { int res = -1; if(filename == NULL) { - return(-1); + return(-1); } if(xmlSecEncCtxInitialize(&encCtx, gKeysMngr) < 0) { - fprintf(stderr, "Error: enc context initialization failed\n"); - return(-1); + fprintf(stderr, "Error: enc context initialization failed\n"); + return(-1); } if(xmlSecAppPrepareEncCtx(&encCtx) < 0) { - fprintf(stderr, "Error: enc context preparation failed\n"); - goto done; + fprintf(stderr, "Error: enc context preparation failed\n"); + goto done; } /* parse doc and find template node */ doc = xmlSecParseFile(filename); if(doc == NULL) { - fprintf(stderr, "Error: failed to parse xml file \"%s\"\n", - filename); - goto done; + fprintf(stderr, "Error: failed to parse xml file \"%s\"\n", + filename); + goto done; } startTmplNode = xmlSecFindNode(xmlDocGetRootElement(doc), xmlSecNodeEncryptedData, xmlSecEncNs); if(startTmplNode == NULL) { - fprintf(stderr, "Error: failed to find default node with name=\"%s\"\n", - xmlSecNodeEncryptedData); - goto done; + fprintf(stderr, "Error: failed to find default node with name=\"%s\"\n", + xmlSecNodeEncryptedData); + goto done; } if(xmlSecAppCmdLineParamGetString(&binaryDataParam) != NULL) { - /* encrypt */ - start_time = clock(); - if(xmlSecEncCtxUriEncrypt(&encCtx, startTmplNode, BAD_CAST xmlSecAppCmdLineParamGetString(&binaryDataParam)) < 0) { - fprintf(stderr, "Error: failed to encrypt file \"%s\"\n", - xmlSecAppCmdLineParamGetString(&binaryDataParam)); - goto done; - } - total_time += clock() - start_time; + /* encrypt */ + start_time = clock(); + if(xmlSecEncCtxUriEncrypt(&encCtx, startTmplNode, BAD_CAST xmlSecAppCmdLineParamGetString(&binaryDataParam)) < 0) { + fprintf(stderr, "Error: failed to encrypt file \"%s\"\n", + xmlSecAppCmdLineParamGetString(&binaryDataParam)); + goto done; + } + total_time += clock() - start_time; } else if(xmlSecAppCmdLineParamGetString(&xmlDataParam) != NULL) { - /* parse file and select node for encryption */ + /* parse file and select node for encryption */ data = xmlSecAppXmlDataCreate(xmlSecAppCmdLineParamGetString(&xmlDataParam), NULL, NULL); - if(data == NULL) { - fprintf(stderr, "Error: failed to load file \"%s\"\n", - xmlSecAppCmdLineParamGetString(&xmlDataParam)); - goto done; - } - - /* encrypt */ - start_time = clock(); - if(xmlSecEncCtxXmlEncrypt(&encCtx, startTmplNode, data->startNode) < 0) { - fprintf(stderr, "Error: failed to encrypt xml file \"%s\"\n", - xmlSecAppCmdLineParamGetString(&xmlDataParam)); - goto done; - } - total_time += clock() - start_time; + if(data == NULL) { + fprintf(stderr, "Error: failed to load file \"%s\"\n", + xmlSecAppCmdLineParamGetString(&xmlDataParam)); + goto done; + } + + /* encrypt */ + start_time = clock(); + if(xmlSecEncCtxXmlEncrypt(&encCtx, startTmplNode, data->startNode) < 0) { + fprintf(stderr, "Error: failed to encrypt xml file \"%s\"\n", + xmlSecAppCmdLineParamGetString(&xmlDataParam)); + goto done; + } + total_time += clock() - start_time; } else { - fprintf(stderr, "Error: encryption data not specified (use \"--xml\" or \"--binary\" options)\n"); - goto done; + fprintf(stderr, "Error: encryption data not specified (use \"--xml\" or \"--binary\" options)\n"); + goto done; } /* print out result only once per execution */ if(repeats <= 1) { - if(encCtx.resultReplaced) { - if(xmlSecAppWriteResult((data != NULL) ? data->doc : doc, NULL) < 0) { - goto done; - } - } else { - if(xmlSecAppWriteResult(NULL, encCtx.result) < 0) { - goto done; - } - } + if(encCtx.resultReplaced) { + if(xmlSecAppWriteResult((data != NULL) ? data->doc : doc, NULL) < 0) { + goto done; + } + } else { + if(xmlSecAppWriteResult(NULL, encCtx.result) < 0) { + goto done; + } + } } res = 0; done: /* print debug info if requested */ if(repeats <= 1) { - xmlSecAppPrintEncCtx(&encCtx); + xmlSecAppPrintEncCtx(&encCtx); } xmlSecEncCtxFinalize(&encCtx); if(data != NULL) { - xmlSecAppXmlDataDestroy(data); + xmlSecAppXmlDataDestroy(data); } if(doc != NULL) { - xmlFreeDoc(doc); + xmlFreeDoc(doc); } return(res); } @@ -1691,43 +1686,43 @@ xmlSecAppDecryptFile(const char* filename) { int res = -1; if(filename == NULL) { - return(-1); + return(-1); } if(xmlSecEncCtxInitialize(&encCtx, gKeysMngr) < 0) { - fprintf(stderr, "Error: enc context initialization failed\n"); - return(-1); + fprintf(stderr, "Error: enc context initialization failed\n"); + return(-1); } if(xmlSecAppPrepareEncCtx(&encCtx) < 0) { - fprintf(stderr, "Error: enc context preparation failed\n"); - goto done; + fprintf(stderr, "Error: enc context preparation failed\n"); + goto done; } /* parse template and select start node */ data = xmlSecAppXmlDataCreate(filename, xmlSecNodeEncryptedData, xmlSecEncNs); if(data == NULL) { - fprintf(stderr, "Error: failed to load template \"%s\"\n", filename); - goto done; + fprintf(stderr, "Error: failed to load template \"%s\"\n", filename); + goto done; } start_time = clock(); if(xmlSecEncCtxDecrypt(&encCtx, data->startNode) < 0) { - fprintf(stderr, "Error: failed to decrypt file\n"); - goto done; + fprintf(stderr, "Error: failed to decrypt file\n"); + goto done; } total_time += clock() - start_time; /* print out result only once per execution */ if(repeats <= 1) { - if(encCtx.resultReplaced) { - if(xmlSecAppWriteResult(data->doc, NULL) < 0) { - goto done; - } - } else { - if(xmlSecAppWriteResult(NULL, encCtx.result) < 0) { - goto done; - } - } + if(encCtx.resultReplaced) { + if(xmlSecAppWriteResult(data->doc, NULL) < 0) { + goto done; + } + } else { + if(xmlSecAppWriteResult(NULL, encCtx.result) < 0) { + goto done; + } + } } res = 0; @@ -1739,7 +1734,7 @@ done: xmlSecEncCtxFinalize(&encCtx); if(data != NULL) { - xmlSecAppXmlDataDestroy(data); + xmlSecAppXmlDataDestroy(data); } return(res); } @@ -1755,76 +1750,76 @@ xmlSecAppEncryptTmpl(void) { int res = -1; if(xmlSecEncCtxInitialize(&encCtx, gKeysMngr) < 0) { - fprintf(stderr, "Error: enc context initialization failed\n"); - return(-1); + fprintf(stderr, "Error: enc context initialization failed\n"); + return(-1); } if(xmlSecAppPrepareEncCtx(&encCtx) < 0) { - fprintf(stderr, "Error: enc context preparation failed\n"); - goto done; + fprintf(stderr, "Error: enc context preparation failed\n"); + goto done; } /* prepare template */ doc = xmlNewDoc(BAD_CAST "1.0"); if(doc == NULL) { - fprintf(stderr, "Error: failed to create doc\n"); - goto done; + fprintf(stderr, "Error: failed to create doc\n"); + goto done; } cur = xmlSecTmplEncDataCreate(doc, xmlSecTransformDes3CbcId, - NULL, NULL, NULL, NULL); + NULL, NULL, NULL, NULL); if(cur == NULL) { - fprintf(stderr, "Error: failed to encryption template\n"); - goto done; + fprintf(stderr, "Error: failed to encryption template\n"); + goto done; } xmlDocSetRootElement(doc, cur); if(xmlSecTmplEncDataEnsureCipherValue(xmlDocGetRootElement(doc)) == NULL) { - fprintf(stderr, "Error: failed to add CipherValue node\n"); - goto done; + fprintf(stderr, "Error: failed to add CipherValue node\n"); + goto done; } /* add key information */ cur = xmlSecTmplEncDataEnsureKeyInfo(xmlDocGetRootElement(doc), NULL); if(cur == NULL) { - fprintf(stderr, "Error: failed to add KeyInfo node\n"); - goto done; + fprintf(stderr, "Error: failed to add KeyInfo node\n"); + goto done; } if(xmlSecTmplKeyInfoAddKeyName(cur, NULL) == NULL) { - fprintf(stderr, "Error: failed to add KeyName node\n"); - goto done; + fprintf(stderr, "Error: failed to add KeyName node\n"); + goto done; } /* encrypt */ start_time = clock(); if(xmlSecEncCtxBinaryEncrypt(&encCtx, xmlDocGetRootElement(doc), - (const xmlSecByte*)data, strlen(data)) < 0) { - fprintf(stderr, "Error: failed to encrypt data\n"); - goto done; + (const xmlSecByte*)data, strlen(data)) < 0) { + fprintf(stderr, "Error: failed to encrypt data\n"); + goto done; } total_time += clock() - start_time; /* print out result only once per execution */ if(repeats <= 1) { - if(encCtx.resultReplaced) { - if(xmlSecAppWriteResult(doc, NULL) < 0) { - goto done; - } - } else { - if(xmlSecAppWriteResult(NULL, encCtx.result) < 0) { - goto done; - } - } + if(encCtx.resultReplaced) { + if(xmlSecAppWriteResult(doc, NULL) < 0) { + goto done; + } + } else { + if(xmlSecAppWriteResult(NULL, encCtx.result) < 0) { + goto done; + } + } } res = 0; done: /* print debug info if requested */ if(repeats <= 1) { - xmlSecAppPrintEncCtx(&encCtx); + xmlSecAppPrintEncCtx(&encCtx); } xmlSecEncCtxFinalize(&encCtx); if(doc != NULL) { - xmlFreeDoc(doc); + xmlFreeDoc(doc); } return(res); } @@ -1833,34 +1828,34 @@ done: static int xmlSecAppPrepareEncCtx(xmlSecEncCtxPtr encCtx) { if(encCtx == NULL) { - fprintf(stderr, "Error: enc context is null\n"); - return(-1); + fprintf(stderr, "Error: enc context is null\n"); + return(-1); } /* set key info params */ if(xmlSecAppPrepareKeyInfoReadCtx(&(encCtx->keyInfoReadCtx)) < 0) { - fprintf(stderr, "Error: failed to prepare key info context\n"); - return(-1); + fprintf(stderr, "Error: failed to prepare key info context\n"); + return(-1); } if(xmlSecAppCmdLineParamGetString(&sessionKeyParam) != NULL) { - encCtx->encKey = xmlSecAppCryptoKeyGenerate(xmlSecAppCmdLineParamGetString(&sessionKeyParam), - NULL, xmlSecKeyDataTypeSession); - if(encCtx->encKey == NULL) { - fprintf(stderr, "Error: failed to generate a session key \"%s\"\n", - xmlSecAppCmdLineParamGetString(&sessionKeyParam)); - return(-1); - } + encCtx->encKey = xmlSecAppCryptoKeyGenerate(xmlSecAppCmdLineParamGetString(&sessionKeyParam), + NULL, xmlSecKeyDataTypeSession); + if(encCtx->encKey == NULL) { + fprintf(stderr, "Error: failed to generate a session key \"%s\"\n", + xmlSecAppCmdLineParamGetString(&sessionKeyParam)); + return(-1); + } } if(xmlSecAppCmdLineParamGetStringList(&enabledCipherRefUrisParam) != NULL) { - encCtx->transformCtx.enabledUris = xmlSecAppGetUriType( - xmlSecAppCmdLineParamGetStringList(&enabledCipherRefUrisParam)); - if(encCtx->transformCtx.enabledUris == xmlSecTransformUriTypeNone) { - fprintf(stderr, "Error: failed to parse \"%s\"\n", - xmlSecAppCmdLineParamGetStringList(&enabledCipherRefUrisParam)); - return(-1); - } + encCtx->transformCtx.enabledUris = xmlSecAppGetUriType( + xmlSecAppCmdLineParamGetStringList(&enabledCipherRefUrisParam)); + if(encCtx->transformCtx.enabledUris == xmlSecTransformUriTypeNone) { + fprintf(stderr, "Error: failed to parse \"%s\"\n", + xmlSecAppCmdLineParamGetStringList(&enabledCipherRefUrisParam)); + return(-1); + } } return(0); } @@ -1868,16 +1863,16 @@ xmlSecAppPrepareEncCtx(xmlSecEncCtxPtr encCtx) { static void xmlSecAppPrintEncCtx(xmlSecEncCtxPtr encCtx) { if(encCtx == NULL) { - return; + return; } /* print debug info if requested */ if((print_debug != 0) || xmlSecAppCmdLineParamIsSet(&printDebugParam)) { - xmlSecEncCtxDebugDump(encCtx, stdout); + xmlSecEncCtxDebugDump(encCtx, stdout); } - if(xmlSecAppCmdLineParamIsSet(&printXmlDebugParam)) { - xmlSecEncCtxDebugXmlDump(encCtx, stdout); + if(xmlSecAppCmdLineParamIsSet(&printXmlDebugParam)) { + xmlSecEncCtxDebugXmlDump(encCtx, stdout); } } @@ -1895,48 +1890,48 @@ xmlSecAppXkmsServerProcess(const char* filename) { int res = -1; if(filename == NULL) { - return(-1); + return(-1); } if(xmlSecXkmsServerCtxInitialize(&xkmsServerCtx, gKeysMngr) < 0) { - fprintf(stderr, "Error: XKMS server context initialization failed\n"); - return(-1); + fprintf(stderr, "Error: XKMS server context initialization failed\n"); + return(-1); } if(xmlSecAppPrepareXkmsServerCtx(&xkmsServerCtx) < 0) { - fprintf(stderr, "Error: XKMS server context preparation failed\n"); - goto done; + fprintf(stderr, "Error: XKMS server context preparation failed\n"); + goto done; } /* get the input format */ if(xmlSecAppCmdLineParamGetString(&xkmsFormatParam) != NULL) { - format = xmlSecXkmsServerFormatFromString(BAD_CAST xmlSecAppCmdLineParamGetString(&xkmsFormatParam)); - if(format == xmlSecXkmsServerFormatUnknown) { - fprintf(stderr, "Error: unknown format \"%s\"\n", - xmlSecAppCmdLineParamGetString(&xkmsFormatParam)); - return(-1); - } + format = xmlSecXkmsServerFormatFromString(BAD_CAST xmlSecAppCmdLineParamGetString(&xkmsFormatParam)); + if(format == xmlSecXkmsServerFormatUnknown) { + fprintf(stderr, "Error: unknown format \"%s\"\n", + xmlSecAppCmdLineParamGetString(&xkmsFormatParam)); + return(-1); + } } /* parse template and select start node, there are multiple options * for start node thus we don't provide the default start node name */ data = xmlSecAppXmlDataCreate(filename, NULL, NULL); if(data == NULL) { - fprintf(stderr, "Error: failed to load request from file \"%s\"\n", filename); - goto done; + fprintf(stderr, "Error: failed to load request from file \"%s\"\n", filename); + goto done; } /* prepare result document */ doc = xmlNewDoc(BAD_CAST "1.0"); if(doc == NULL) { - fprintf(stderr, "Error: failed to create doc\n"); - goto done; + fprintf(stderr, "Error: failed to create doc\n"); + goto done; } start_time = clock(); result = xmlSecXkmsServerCtxProcess(&xkmsServerCtx, data->startNode, format, doc); if(result == NULL) { - fprintf(stderr, "Error: failed to process xkms server request\n"); - goto done; + fprintf(stderr, "Error: failed to process xkms server request\n"); + goto done; } total_time += clock() - start_time; @@ -1944,9 +1939,9 @@ xmlSecAppXkmsServerProcess(const char* filename) { /* print out result only once per execution */ xmlDocSetRootElement(doc, result); if(repeats <= 1) { - if(xmlSecAppWriteResult(doc, NULL) < 0) { - goto done; - } + if(xmlSecAppWriteResult(doc, NULL) < 0) { + goto done; + } } res = 0; @@ -1959,10 +1954,10 @@ done: xmlSecXkmsServerCtxFinalize(&xkmsServerCtx); if(doc != NULL) { - xmlFreeDoc(doc); + xmlFreeDoc(doc); } if(data != NULL) { - xmlSecAppXmlDataDestroy(data); + xmlSecAppXmlDataDestroy(data); } return(res); } @@ -1970,33 +1965,33 @@ done: static int xmlSecAppPrepareXkmsServerCtx(xmlSecXkmsServerCtxPtr xkmsServerCtx) { if(xkmsServerCtx == NULL) { - fprintf(stderr, "Error: XKMS context is null\n"); - return(-1); + fprintf(stderr, "Error: XKMS context is null\n"); + return(-1); } /* set key info params */ if(xmlSecAppPrepareKeyInfoReadCtx(&(xkmsServerCtx->keyInfoReadCtx)) < 0) { - fprintf(stderr, "Error: failed to prepare key info context\n"); - return(-1); + fprintf(stderr, "Error: failed to prepare key info context\n"); + return(-1); } if(xmlSecAppCmdLineParamGetString(&xkmsServiceParam) != NULL) { - xkmsServerCtx->expectedService = xmlStrdup(BAD_CAST xmlSecAppCmdLineParamGetString(&xkmsServiceParam)); - if(xkmsServerCtx->expectedService == NULL) { - fprintf(stderr, "Error: failed to duplicate string \"%s\"\n", - xmlSecAppCmdLineParamGetString(&xkmsServiceParam)); - return(-1); - } + xkmsServerCtx->expectedService = xmlStrdup(BAD_CAST xmlSecAppCmdLineParamGetString(&xkmsServiceParam)); + if(xkmsServerCtx->expectedService == NULL) { + fprintf(stderr, "Error: failed to duplicate string \"%s\"\n", + xmlSecAppCmdLineParamGetString(&xkmsServiceParam)); + return(-1); + } } if(xmlSecAppCmdLineParamIsSet(&xkmsStopUnknownResponseMechanismParam)) { - xkmsServerCtx->flags |= XMLSEC_XKMS_SERVER_FLAGS_STOP_ON_UNKNOWN_RESPONSE_MECHANISM; + xkmsServerCtx->flags |= XMLSEC_XKMS_SERVER_FLAGS_STOP_ON_UNKNOWN_RESPONSE_MECHANISM; } if(xmlSecAppCmdLineParamIsSet(&xkmsStopUnknownRespondWithParam)) { - xkmsServerCtx->flags |= XMLSEC_XKMS_SERVER_FLAGS_STOP_ON_UNKNOWN_RESPOND_WITH; + xkmsServerCtx->flags |= XMLSEC_XKMS_SERVER_FLAGS_STOP_ON_UNKNOWN_RESPOND_WITH; } if(xmlSecAppCmdLineParamIsSet(&xkmsStopUnknownKeyUsageParam)) { - xkmsServerCtx->flags |= XMLSEC_XKMS_SERVER_FLAGS_STOP_ON_UNKNOWN_KEY_USAGE; + xkmsServerCtx->flags |= XMLSEC_XKMS_SERVER_FLAGS_STOP_ON_UNKNOWN_KEY_USAGE; } return(0); } @@ -2004,16 +1999,16 @@ xmlSecAppPrepareXkmsServerCtx(xmlSecXkmsServerCtxPtr xkmsServerCtx) { static void xmlSecAppPrintXkmsServerCtx(xmlSecXkmsServerCtxPtr xkmsServerCtx) { if(xkmsServerCtx == NULL) { - return; + return; } /* print debug info if requested */ if((print_debug != 0) || xmlSecAppCmdLineParamIsSet(&printDebugParam)) { - xmlSecXkmsServerCtxDebugDump(xkmsServerCtx, stdout); + xmlSecXkmsServerCtxDebugDump(xkmsServerCtx, stdout); } - if(xmlSecAppCmdLineParamIsSet(&printXmlDebugParam)) { - xmlSecXkmsServerCtxDebugXmlDump(xkmsServerCtx, stdout); + if(xmlSecAppCmdLineParamIsSet(&printXmlDebugParam)) { + xmlSecXkmsServerCtxDebugXmlDump(xkmsServerCtx, stdout); } } @@ -2053,56 +2048,56 @@ xmlSecAppPrepareKeyInfoReadCtx(xmlSecKeyInfoCtxPtr keyInfoCtx) { int ret; if(keyInfoCtx == NULL) { - fprintf(stderr, "Error: key info context is null\n"); - return(-1); + fprintf(stderr, "Error: key info context is null\n"); + return(-1); } #ifndef XMLSEC_NO_X509 if(xmlSecAppCmdLineParamIsSet(&verificationTimeParam)) { - keyInfoCtx->certsVerificationTime = xmlSecAppCmdLineParamGetTime(&verificationTimeParam, 0); + keyInfoCtx->certsVerificationTime = xmlSecAppCmdLineParamGetTime(&verificationTimeParam, 0); } if(xmlSecAppCmdLineParamIsSet(&depthParam)) { - keyInfoCtx->certsVerificationDepth = xmlSecAppCmdLineParamGetInt(&depthParam, 0); + keyInfoCtx->certsVerificationDepth = xmlSecAppCmdLineParamGetInt(&depthParam, 0); } if(xmlSecAppCmdLineParamIsSet(&X509SkipStrictChecksParam)) { - keyInfoCtx->flags |= XMLSEC_KEYINFO_FLAGS_X509DATA_SKIP_STRICT_CHECKS; + keyInfoCtx->flags |= XMLSEC_KEYINFO_FLAGS_X509DATA_SKIP_STRICT_CHECKS; } #endif /* XMLSEC_NO_X509 */ /* read enabled key data list */ for(value = enabledKeyDataParam.value; value != NULL; value = value->next) { - if(value->strListValue == NULL) { - fprintf(stderr, "Error: invalid value for option \"%s\".\n", - enabledKeyDataParam.fullName); - return(-1); - } else { - xmlSecKeyDataId dataId; - const char* p; - - for(p = value->strListValue; (p != NULL) && ((*p) != '\0'); p += strlen(p)) { - dataId = xmlSecKeyDataIdListFindByName(xmlSecKeyDataIdsGet(), BAD_CAST p, xmlSecKeyDataUsageAny); - if(dataId == xmlSecKeyDataIdUnknown) { - fprintf(stderr, "Error: key data \"%s\" is unknown.\n", p); - return(-1); - } - ret = xmlSecPtrListAdd(&(keyInfoCtx->enabledKeyData), (const xmlSecPtr)dataId); - if(ret < 0) { - fprintf(stderr, "Error: failed to enable key data \"%s\".\n", p); - return(-1); - } - } - } + if(value->strListValue == NULL) { + fprintf(stderr, "Error: invalid value for option \"%s\".\n", + enabledKeyDataParam.fullName); + return(-1); + } else { + xmlSecKeyDataId dataId; + const char* p; + + for(p = value->strListValue; (p != NULL) && ((*p) != '\0'); p += strlen(p)) { + dataId = xmlSecKeyDataIdListFindByName(xmlSecKeyDataIdsGet(), BAD_CAST p, xmlSecKeyDataUsageAny); + if(dataId == xmlSecKeyDataIdUnknown) { + fprintf(stderr, "Error: key data \"%s\" is unknown.\n", p); + return(-1); + } + ret = xmlSecPtrListAdd(&(keyInfoCtx->enabledKeyData), (const xmlSecPtr)dataId); + if(ret < 0) { + fprintf(stderr, "Error: failed to enable key data \"%s\".\n", p); + return(-1); + } + } + } } /* read enabled RetrievalMethod uris */ if(xmlSecAppCmdLineParamGetStringList(&enabledRetrievalMethodUrisParam) != NULL) { - keyInfoCtx->retrievalMethodCtx.enabledUris = xmlSecAppGetUriType( - xmlSecAppCmdLineParamGetStringList(&enabledRetrievalMethodUrisParam)); - if(keyInfoCtx->retrievalMethodCtx.enabledUris == xmlSecTransformUriTypeNone) { - fprintf(stderr, "Error: failed to parse \"%s\"\n", - xmlSecAppCmdLineParamGetStringList(&enabledRetrievalMethodUrisParam)); - return(-1); - } + keyInfoCtx->retrievalMethodCtx.enabledUris = xmlSecAppGetUriType( + xmlSecAppCmdLineParamGetStringList(&enabledRetrievalMethodUrisParam)); + if(keyInfoCtx->retrievalMethodCtx.enabledUris == xmlSecTransformUriTypeNone) { + fprintf(stderr, "Error: failed to parse \"%s\"\n", + xmlSecAppCmdLineParamGetStringList(&enabledRetrievalMethodUrisParam)); + return(-1); + } } return(0); @@ -2113,290 +2108,290 @@ xmlSecAppLoadKeys(void) { xmlSecAppCmdLineValuePtr value; if(gKeysMngr != NULL) { - fprintf(stderr, "Error: keys manager already initialized.\n"); - return(-1); + fprintf(stderr, "Error: keys manager already initialized.\n"); + return(-1); } /* create and initialize keys manager */ gKeysMngr = xmlSecKeysMngrCreate(); if(gKeysMngr == NULL) { - fprintf(stderr, "Error: failed to create keys manager.\n"); - return(-1); + fprintf(stderr, "Error: failed to create keys manager.\n"); + return(-1); } if(xmlSecAppCryptoSimpleKeysMngrInit(gKeysMngr) < 0) { - fprintf(stderr, "Error: failed to initialize keys manager.\n"); - return(-1); + fprintf(stderr, "Error: failed to initialize keys manager.\n"); + return(-1); } /* generate new key file */ for(value = genKeyParam.value; value != NULL; value = value->next) { - if(value->strValue == NULL) { - fprintf(stderr, "Error: invalid value for option \"%s\".\n", genKeyParam.fullName); - return(-1); - } else if(xmlSecAppCryptoSimpleKeysMngrKeyGenerate(gKeysMngr, value->strValue, value->paramNameValue) < 0) { - fprintf(stderr, "Error: failed to generate key \"%s\".\n", value->strValue); - return(-1); - } + if(value->strValue == NULL) { + fprintf(stderr, "Error: invalid value for option \"%s\".\n", genKeyParam.fullName); + return(-1); + } else if(xmlSecAppCryptoSimpleKeysMngrKeyGenerate(gKeysMngr, value->strValue, value->paramNameValue) < 0) { + fprintf(stderr, "Error: failed to generate key \"%s\".\n", value->strValue); + return(-1); + } } /* read all xml key files */ for(value = keysFileParam.value; value != NULL; value = value->next) { - if(value->strValue == NULL) { - fprintf(stderr, "Error: invalid value for option \"%s\".\n", keysFileParam.fullName); - return(-1); - } else if(xmlSecAppCryptoSimpleKeysMngrLoad(gKeysMngr, value->strValue) < 0) { - fprintf(stderr, "Error: failed to load xml keys file \"%s\".\n", value->strValue); - return(-1); - } + if(value->strValue == NULL) { + fprintf(stderr, "Error: invalid value for option \"%s\".\n", keysFileParam.fullName); + return(-1); + } else if(xmlSecAppCryptoSimpleKeysMngrLoad(gKeysMngr, value->strValue) < 0) { + fprintf(stderr, "Error: failed to load xml keys file \"%s\".\n", value->strValue); + return(-1); + } } /* read all private keys */ for(value = privkeyParam.value; value != NULL; value = value->next) { - if(value->strValue == NULL) { - fprintf(stderr, "Error: invalid value for option \"%s\".\n", - privkeyParam.fullName); - return(-1); - } else if(xmlSecAppCryptoSimpleKeysMngrKeyAndCertsLoad(gKeysMngr, - value->strListValue, - xmlSecAppCmdLineParamGetString(&pwdParam), - value->paramNameValue, - xmlSecKeyDataFormatPem) < 0) { - fprintf(stderr, "Error: failed to load private key from \"%s\".\n", - value->strListValue); - return(-1); - } + if(value->strValue == NULL) { + fprintf(stderr, "Error: invalid value for option \"%s\".\n", + privkeyParam.fullName); + return(-1); + } else if(xmlSecAppCryptoSimpleKeysMngrKeyAndCertsLoad(gKeysMngr, + value->strListValue, + xmlSecAppCmdLineParamGetString(&pwdParam), + value->paramNameValue, + xmlSecKeyDataFormatPem) < 0) { + fprintf(stderr, "Error: failed to load private key from \"%s\".\n", + value->strListValue); + return(-1); + } } for(value = privkeyDerParam.value; value != NULL; value = value->next) { - if(value->strValue == NULL) { - fprintf(stderr, "Error: invalid value for option \"%s\".\n", - privkeyDerParam.fullName); - return(-1); - } else if(xmlSecAppCryptoSimpleKeysMngrKeyAndCertsLoad(gKeysMngr, - value->strListValue, - xmlSecAppCmdLineParamGetString(&pwdParam), - value->paramNameValue, - xmlSecKeyDataFormatDer) < 0) { - fprintf(stderr, "Error: failed to load private key from \"%s\".\n", - value->strListValue); - return(-1); - } + if(value->strValue == NULL) { + fprintf(stderr, "Error: invalid value for option \"%s\".\n", + privkeyDerParam.fullName); + return(-1); + } else if(xmlSecAppCryptoSimpleKeysMngrKeyAndCertsLoad(gKeysMngr, + value->strListValue, + xmlSecAppCmdLineParamGetString(&pwdParam), + value->paramNameValue, + xmlSecKeyDataFormatDer) < 0) { + fprintf(stderr, "Error: failed to load private key from \"%s\".\n", + value->strListValue); + return(-1); + } } for(value = pkcs8PemParam.value; value != NULL; value = value->next) { - if(value->strValue == NULL) { - fprintf(stderr, "Error: invalid value for option \"%s\".\n", - pkcs8PemParam.fullName); - return(-1); - } else if(xmlSecAppCryptoSimpleKeysMngrKeyAndCertsLoad(gKeysMngr, - value->strListValue, - xmlSecAppCmdLineParamGetString(&pwdParam), - value->paramNameValue, - xmlSecKeyDataFormatPkcs8Pem) < 0) { - fprintf(stderr, "Error: failed to load private key from \"%s\".\n", - value->strListValue); - return(-1); - } + if(value->strValue == NULL) { + fprintf(stderr, "Error: invalid value for option \"%s\".\n", + pkcs8PemParam.fullName); + return(-1); + } else if(xmlSecAppCryptoSimpleKeysMngrKeyAndCertsLoad(gKeysMngr, + value->strListValue, + xmlSecAppCmdLineParamGetString(&pwdParam), + value->paramNameValue, + xmlSecKeyDataFormatPkcs8Pem) < 0) { + fprintf(stderr, "Error: failed to load private key from \"%s\".\n", + value->strListValue); + return(-1); + } } for(value = pkcs8DerParam.value; value != NULL; value = value->next) { - if(value->strValue == NULL) { - fprintf(stderr, "Error: invalid value for option \"%s\".\n", - pkcs8DerParam.fullName); - return(-1); - } else if(xmlSecAppCryptoSimpleKeysMngrKeyAndCertsLoad(gKeysMngr, - value->strListValue, - xmlSecAppCmdLineParamGetString(&pwdParam), - value->paramNameValue, - xmlSecKeyDataFormatPkcs8Der) < 0) { - fprintf(stderr, "Error: failed to load private key from \"%s\".\n", - value->strListValue); - return(-1); - } + if(value->strValue == NULL) { + fprintf(stderr, "Error: invalid value for option \"%s\".\n", + pkcs8DerParam.fullName); + return(-1); + } else if(xmlSecAppCryptoSimpleKeysMngrKeyAndCertsLoad(gKeysMngr, + value->strListValue, + xmlSecAppCmdLineParamGetString(&pwdParam), + value->paramNameValue, + xmlSecKeyDataFormatPkcs8Der) < 0) { + fprintf(stderr, "Error: failed to load private key from \"%s\".\n", + value->strListValue); + return(-1); + } } /* read all public keys */ for(value = pubkeyParam.value; value != NULL; value = value->next) { - if(value->strValue == NULL) { - fprintf(stderr, "Error: invalid value for option \"%s\".\n", - pubkeyParam.fullName); - return(-1); - } else if(xmlSecAppCryptoSimpleKeysMngrKeyAndCertsLoad(gKeysMngr, - value->strListValue, - xmlSecAppCmdLineParamGetString(&pwdParam), - value->paramNameValue, - xmlSecKeyDataFormatPem) < 0) { - fprintf(stderr, "Error: failed to load public key from \"%s\".\n", - value->strListValue); - return(-1); - } + if(value->strValue == NULL) { + fprintf(stderr, "Error: invalid value for option \"%s\".\n", + pubkeyParam.fullName); + return(-1); + } else if(xmlSecAppCryptoSimpleKeysMngrKeyAndCertsLoad(gKeysMngr, + value->strListValue, + xmlSecAppCmdLineParamGetString(&pwdParam), + value->paramNameValue, + xmlSecKeyDataFormatPem) < 0) { + fprintf(stderr, "Error: failed to load public key from \"%s\".\n", + value->strListValue); + return(-1); + } } for(value = pubkeyDerParam.value; value != NULL; value = value->next) { - if(value->strValue == NULL) { - fprintf(stderr, "Error: invalid value for option \"%s\".\n", - pubkeyDerParam.fullName); - return(-1); - } else if(xmlSecAppCryptoSimpleKeysMngrKeyAndCertsLoad(gKeysMngr, - value->strListValue, - xmlSecAppCmdLineParamGetString(&pwdParam), - value->paramNameValue, - xmlSecKeyDataFormatDer) < 0) { - fprintf(stderr, "Error: failed to load public key from \"%s\".\n", - value->strListValue); - return(-1); - } + if(value->strValue == NULL) { + fprintf(stderr, "Error: invalid value for option \"%s\".\n", + pubkeyDerParam.fullName); + return(-1); + } else if(xmlSecAppCryptoSimpleKeysMngrKeyAndCertsLoad(gKeysMngr, + value->strListValue, + xmlSecAppCmdLineParamGetString(&pwdParam), + value->paramNameValue, + xmlSecKeyDataFormatDer) < 0) { + fprintf(stderr, "Error: failed to load public key from \"%s\".\n", + value->strListValue); + return(-1); + } } #ifndef XMLSEC_NO_AES /* read all AES keys */ for(value = aeskeyParam.value; value != NULL; value = value->next) { - if(value->strValue == NULL) { - fprintf(stderr, "Error: invalid value for option \"%s\".\n", - aeskeyParam.fullName); - return(-1); - } else if(xmlSecAppCryptoSimpleKeysMngrBinaryKeyLoad(gKeysMngr, - "aes", value->strValue, value->paramNameValue) < 0) { - fprintf(stderr, "Error: failed to load aes key from \"%s\".\n", - value->strValue); - return(-1); - } + if(value->strValue == NULL) { + fprintf(stderr, "Error: invalid value for option \"%s\".\n", + aeskeyParam.fullName); + return(-1); + } else if(xmlSecAppCryptoSimpleKeysMngrBinaryKeyLoad(gKeysMngr, + "aes", value->strValue, value->paramNameValue) < 0) { + fprintf(stderr, "Error: failed to load aes key from \"%s\".\n", + value->strValue); + return(-1); + } } #endif /* XMLSEC_NO_AES */ #ifndef XMLSEC_NO_DES /* read all des keys */ for(value = deskeyParam.value; value != NULL; value = value->next) { - if(value->strValue == NULL) { - fprintf(stderr, "Error: invalid value for option \"%s\".\n", - deskeyParam.fullName); - return(-1); - } else if(xmlSecAppCryptoSimpleKeysMngrBinaryKeyLoad(gKeysMngr, - "des", value->strValue, value->paramNameValue) < 0) { - fprintf(stderr, "Error: failed to load des key from \"%s\".\n", - value->strValue); - return(-1); - } + if(value->strValue == NULL) { + fprintf(stderr, "Error: invalid value for option \"%s\".\n", + deskeyParam.fullName); + return(-1); + } else if(xmlSecAppCryptoSimpleKeysMngrBinaryKeyLoad(gKeysMngr, + "des", value->strValue, value->paramNameValue) < 0) { + fprintf(stderr, "Error: failed to load des key from \"%s\".\n", + value->strValue); + return(-1); + } } #endif /* XMLSEC_NO_DES */ #ifndef XMLSEC_NO_HMAC /* read all hmac keys */ for(value = hmackeyParam.value; value != NULL; value = value->next) { - if(value->strValue == NULL) { - fprintf(stderr, "Error: invalid value for option \"%s\".\n", - hmackeyParam.fullName); - return(-1); - } else if(xmlSecAppCryptoSimpleKeysMngrBinaryKeyLoad(gKeysMngr, - "hmac", value->strValue, value->paramNameValue) < 0) { - fprintf(stderr, "Error: failed to load hmac key from \"%s\".\n", - value->strValue); - return(-1); - } + if(value->strValue == NULL) { + fprintf(stderr, "Error: invalid value for option \"%s\".\n", + hmackeyParam.fullName); + return(-1); + } else if(xmlSecAppCryptoSimpleKeysMngrBinaryKeyLoad(gKeysMngr, + "hmac", value->strValue, value->paramNameValue) < 0) { + fprintf(stderr, "Error: failed to load hmac key from \"%s\".\n", + value->strValue); + return(-1); + } } #endif /* XMLSEC_NO_HMAC */ #ifndef XMLSEC_NO_X509 /* read all pkcs12 files */ for(value = pkcs12Param.value; value != NULL; value = value->next) { - if(value->strValue == NULL) { - fprintf(stderr, "Error: invalid value for option \"%s\".\n", pkcs12Param.fullName); - return(-1); - } else if(xmlSecAppCryptoSimpleKeysMngrPkcs12KeyLoad(gKeysMngr, - value->strValue, - xmlSecAppCmdLineParamGetString(&pwdParam), - value->paramNameValue) < 0) { - fprintf(stderr, "Error: failed to load pkcs12 key from \"%s\".\n", - value->strValue); - return(-1); - } + if(value->strValue == NULL) { + fprintf(stderr, "Error: invalid value for option \"%s\".\n", pkcs12Param.fullName); + return(-1); + } else if(xmlSecAppCryptoSimpleKeysMngrPkcs12KeyLoad(gKeysMngr, + value->strValue, + xmlSecAppCmdLineParamGetString(&pwdParam), + value->paramNameValue) < 0) { + fprintf(stderr, "Error: failed to load pkcs12 key from \"%s\".\n", + value->strValue); + return(-1); + } } /* read all trusted certs */ for(value = trustedParam.value; value != NULL; value = value->next) { - if(value->strValue == NULL) { - fprintf(stderr, "Error: invalid value for option \"%s\".\n", trustedParam.fullName); - return(-1); - } else if(xmlSecAppCryptoSimpleKeysMngrCertLoad(gKeysMngr, - value->strValue, xmlSecKeyDataFormatPem, - xmlSecKeyDataTypeTrusted) < 0) { - fprintf(stderr, "Error: failed to load trusted cert from \"%s\".\n", - value->strValue); - return(-1); - } + if(value->strValue == NULL) { + fprintf(stderr, "Error: invalid value for option \"%s\".\n", trustedParam.fullName); + return(-1); + } else if(xmlSecAppCryptoSimpleKeysMngrCertLoad(gKeysMngr, + value->strValue, xmlSecKeyDataFormatPem, + xmlSecKeyDataTypeTrusted) < 0) { + fprintf(stderr, "Error: failed to load trusted cert from \"%s\".\n", + value->strValue); + return(-1); + } } for(value = trustedDerParam.value; value != NULL; value = value->next) { - if(value->strValue == NULL) { - fprintf(stderr, "Error: invalid value for option \"%s\".\n", trustedDerParam.fullName); - return(-1); - } else if(xmlSecAppCryptoSimpleKeysMngrCertLoad(gKeysMngr, - value->strValue, xmlSecKeyDataFormatDer, - xmlSecKeyDataTypeTrusted) < 0) { - fprintf(stderr, "Error: failed to load trusted cert from \"%s\".\n", - value->strValue); - return(-1); - } + if(value->strValue == NULL) { + fprintf(stderr, "Error: invalid value for option \"%s\".\n", trustedDerParam.fullName); + return(-1); + } else if(xmlSecAppCryptoSimpleKeysMngrCertLoad(gKeysMngr, + value->strValue, xmlSecKeyDataFormatDer, + xmlSecKeyDataTypeTrusted) < 0) { + fprintf(stderr, "Error: failed to load trusted cert from \"%s\".\n", + value->strValue); + return(-1); + } } /* read all public keys in certs */ for(value = pubkeyCertParam.value; value != NULL; value = value->next) { - if(value->strValue == NULL) { - fprintf(stderr, "Error: invalid value for option \"%s\".\n", - pubkeyCertParam.fullName); - return(-1); - } else if(xmlSecAppCryptoSimpleKeysMngrKeyAndCertsLoad(gKeysMngr, - value->strListValue, - xmlSecAppCmdLineParamGetString(&pwdParam), - value->paramNameValue, - xmlSecKeyDataFormatCertPem) < 0) { - fprintf(stderr, "Error: failed to load public key from \"%s\".\n", - value->strListValue); - return(-1); - } + if(value->strValue == NULL) { + fprintf(stderr, "Error: invalid value for option \"%s\".\n", + pubkeyCertParam.fullName); + return(-1); + } else if(xmlSecAppCryptoSimpleKeysMngrKeyAndCertsLoad(gKeysMngr, + value->strListValue, + xmlSecAppCmdLineParamGetString(&pwdParam), + value->paramNameValue, + xmlSecKeyDataFormatCertPem) < 0) { + fprintf(stderr, "Error: failed to load public key from \"%s\".\n", + value->strListValue); + return(-1); + } } for(value = pubkeyCertDerParam.value; value != NULL; value = value->next) { - if(value->strValue == NULL) { - fprintf(stderr, "Error: invalid value for option \"%s\".\n", - pubkeyCertDerParam.fullName); - return(-1); - } else if(xmlSecAppCryptoSimpleKeysMngrKeyAndCertsLoad(gKeysMngr, - value->strListValue, - xmlSecAppCmdLineParamGetString(&pwdParam), - value->paramNameValue, - xmlSecKeyDataFormatCertDer) < 0) { - fprintf(stderr, "Error: failed to load public key from \"%s\".\n", - value->strListValue); - return(-1); - } + if(value->strValue == NULL) { + fprintf(stderr, "Error: invalid value for option \"%s\".\n", + pubkeyCertDerParam.fullName); + return(-1); + } else if(xmlSecAppCryptoSimpleKeysMngrKeyAndCertsLoad(gKeysMngr, + value->strListValue, + xmlSecAppCmdLineParamGetString(&pwdParam), + value->paramNameValue, + xmlSecKeyDataFormatCertDer) < 0) { + fprintf(stderr, "Error: failed to load public key from \"%s\".\n", + value->strListValue); + return(-1); + } } /* read all untrusted certs */ for(value = untrustedParam.value; value != NULL; value = value->next) { - if(value->strValue == NULL) { - fprintf(stderr, "Error: invalid value for option \"%s\".\n", untrustedParam.fullName); - return(-1); - } else if(xmlSecAppCryptoSimpleKeysMngrCertLoad(gKeysMngr, - value->strValue, xmlSecKeyDataFormatPem, - xmlSecKeyDataTypeNone) < 0) { - fprintf(stderr, "Error: failed to load untrusted cert from \"%s\".\n", - value->strValue); - return(-1); - } + if(value->strValue == NULL) { + fprintf(stderr, "Error: invalid value for option \"%s\".\n", untrustedParam.fullName); + return(-1); + } else if(xmlSecAppCryptoSimpleKeysMngrCertLoad(gKeysMngr, + value->strValue, xmlSecKeyDataFormatPem, + xmlSecKeyDataTypeNone) < 0) { + fprintf(stderr, "Error: failed to load untrusted cert from \"%s\".\n", + value->strValue); + return(-1); + } } for(value = untrustedDerParam.value; value != NULL; value = value->next) { - if(value->strValue == NULL) { - fprintf(stderr, "Error: invalid value for option \"%s\".\n", untrustedDerParam.fullName); - return(-1); - } else if(xmlSecAppCryptoSimpleKeysMngrCertLoad(gKeysMngr, - value->strValue, xmlSecKeyDataFormatDer, - xmlSecKeyDataTypeNone) < 0) { - fprintf(stderr, "Error: failed to load untrusted cert from \"%s\".\n", - value->strValue); - return(-1); - } + if(value->strValue == NULL) { + fprintf(stderr, "Error: invalid value for option \"%s\".\n", untrustedDerParam.fullName); + return(-1); + } else if(xmlSecAppCryptoSimpleKeysMngrCertLoad(gKeysMngr, + value->strValue, xmlSecKeyDataFormatDer, + xmlSecKeyDataTypeNone) < 0) { + fprintf(stderr, "Error: failed to load untrusted cert from \"%s\".\n", + value->strValue); + return(-1); + } } #endif /* XMLSEC_NO_X509 */ @@ -2405,15 +2400,10 @@ xmlSecAppLoadKeys(void) { } static int intialized = 0; - -#ifndef XMLSEC_NO_XSLT -static xsltSecurityPrefsPtr xsltSecPrefs = NULL; -#endif /* XMLSEC_NO_XSLT */ - static int xmlSecAppInit(void) { if(intialized != 0) { - return(0); + return(0); } intialized = 1; @@ -2424,44 +2414,31 @@ xmlSecAppInit(void) { #ifndef XMLSEC_NO_XSLT xmlIndentTreeOutput = 1; #endif /* XMLSEC_NO_XSLT */ - - - /* Init libxslt */ -#ifndef XMLSEC_NO_XSLT - /* disable everything */ - xsltSecPrefs = xsltNewSecurityPrefs(); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_READ_FILE, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_WRITE_FILE, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_CREATE_DIRECTORY, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_READ_NETWORK, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_WRITE_NETWORK, xsltSecurityForbid); - xsltSetDefaultSecurityPrefs(xsltSecPrefs); -#endif /* XMLSEC_NO_XSLT */ - + /* Init xmlsec */ if(xmlSecInit() < 0) { - fprintf(stderr, "Error: xmlsec intialization failed.\n"); - return(-1); + fprintf(stderr, "Error: xmlsec intialization failed.\n"); + return(-1); } if(xmlSecCheckVersion() != 1) { - fprintf(stderr, "Error: loaded xmlsec library version is not compatible.\n"); - return(-1); + fprintf(stderr, "Error: loaded xmlsec library version is not compatible.\n"); + return(-1); } #if !defined(XMLSEC_NO_CRYPTO_DYNAMIC_LOADING) && defined(XMLSEC_CRYPTO_DYNAMIC_LOADING) if(xmlSecCryptoDLLoadLibrary(BAD_CAST xmlsec_crypto) < 0) { - fprintf(stderr, "Error: unable to load xmlsec-%s library. Make sure that you have\n" - "this it installed, check shared libraries path (LD_LIBRARY_PATH)\n" - "envornment variable or use \"--crypto\" option to specify different\n" - "crypto engine.\n", xmlsec_crypto); - return(-1); + fprintf(stderr, "Error: unable to load xmlsec-%s library. Make sure that you have\n" + "this it installed, check shared libraries path (LD_LIBRARY_PATH)\n" + "envornment variable or use \"--crypto\" option to specify different\n" + "crypto engine.\n", xmlsec_crypto); + return(-1); } #endif /* !defined(XMLSEC_NO_CRYPTO_DYNAMIC_LOADING) && defined(XMLSEC_CRYPTO_DYNAMIC_LOADING) */ /* Init Crypto */ if(xmlSecAppCryptoInit(xmlSecAppCmdLineParamGetString(&cryptoConfigParam)) < 0) { - fprintf(stderr, "Error: xmlsec crypto intialization failed.\n"); - return(-1); + fprintf(stderr, "Error: xmlsec crypto intialization failed.\n"); + return(-1); } return(0); } @@ -2469,22 +2446,21 @@ xmlSecAppInit(void) { static void xmlSecAppShutdown(void) { if(intialized == 0) { - return; + return; } /* Shutdown Crypto */ if(xmlSecAppCryptoShutdown() < 0) { - fprintf(stderr, "Error: xmlsec crypto shutdown failed.\n"); + fprintf(stderr, "Error: xmlsec crypto shutdown failed.\n"); } /* Shutdown xmlsec */ if(xmlSecShutdown() < 0) { - fprintf(stderr, "Error: xmlsec shutdown failed.\n"); + fprintf(stderr, "Error: xmlsec shutdown failed.\n"); } /* Shutdown libxslt/libxml */ #ifndef XMLSEC_NO_XSLT - xsltFreeSecurityPrefs(xsltSecPrefs); xsltCleanupGlobals(); #endif /* XMLSEC_NO_XSLT */ xmlCleanupParser(); @@ -2497,25 +2473,25 @@ xmlSecAppXmlDataCreate(const char* filename, const xmlChar* defStartNodeName, co xmlNodePtr cur = NULL; if(filename == NULL) { - fprintf(stderr, "Error: xml filename is null\n"); - return(NULL); + fprintf(stderr, "Error: xml filename is null\n"); + return(NULL); } /* create object */ data = (xmlSecAppXmlDataPtr) xmlMalloc(sizeof(xmlSecAppXmlData)); if(data == NULL) { - fprintf(stderr, "Error: failed to create xml data\n"); - return(NULL); + fprintf(stderr, "Error: failed to create xml data\n"); + return(NULL); } memset(data, 0, sizeof(xmlSecAppXmlData)); /* parse doc */ data->doc = xmlSecParseFile(filename); if(data->doc == NULL) { - fprintf(stderr, "Error: failed to parse xml file \"%s\"\n", - filename); - xmlSecAppXmlDataDestroy(data); - return(NULL); + fprintf(stderr, "Error: failed to parse xml file \"%s\"\n", + filename); + xmlSecAppXmlDataDestroy(data); + return(NULL); } /* load dtd and set default attrs and ids */ @@ -2523,178 +2499,178 @@ xmlSecAppXmlDataCreate(const char* filename, const xmlChar* defStartNodeName, co xmlValidCtxt ctx; data->dtd = xmlParseDTD(NULL, BAD_CAST xmlSecAppCmdLineParamGetString(&dtdFileParam)); - if(data->dtd == NULL) { - fprintf(stderr, "Error: failed to parse dtd file \"%s\"\n", - xmlSecAppCmdLineParamGetString(&dtdFileParam)); - xmlSecAppXmlDataDestroy(data); - return(NULL); - } + if(data->dtd == NULL) { + fprintf(stderr, "Error: failed to parse dtd file \"%s\"\n", + xmlSecAppCmdLineParamGetString(&dtdFileParam)); + xmlSecAppXmlDataDestroy(data); + return(NULL); + } - memset(&ctx, 0, sizeof(ctx)); - /* we don't care is doc actually valid or not */ - xmlValidateDtd(&ctx, data->doc, data->dtd); + memset(&ctx, 0, sizeof(ctx)); + /* we don't care is doc actually valid or not */ + xmlValidateDtd(&ctx, data->doc, data->dtd); } /* set ID attributes from command line */ for(value = idAttrParam.value; value != NULL; value = value->next) { - if(value->strValue == NULL) { - fprintf(stderr, "Error: invalid value for option \"%s\".\n", - idAttrParam.fullName); - xmlSecAppXmlDataDestroy(data); - return(NULL); - } else { - xmlChar* attrName = (value->paramNameValue != NULL) ? BAD_CAST value->paramNameValue : BAD_CAST "id"; - xmlChar* nodeName; - xmlChar* nsHref; - xmlChar* buf; - - buf = xmlStrdup(BAD_CAST value->strValue); - if(buf == NULL) { - fprintf(stderr, "Error: failed to duplicate string \"%s\"\n", value->strValue); - xmlSecAppXmlDataDestroy(data); - return(NULL); - } - nodeName = (xmlChar*)strrchr((char*)buf, ':'); - if(nodeName != NULL) { - (*(nodeName++)) = '\0'; - nsHref = buf; - } else { - nodeName = buf; - nsHref = NULL; - } - - /* process children first because it does not matter much but does simplify code */ - cur = xmlSecGetNextElementNode(data->doc->children); - while(cur != NULL) { - if(xmlSecAppAddIDAttr(cur, attrName, nodeName, nsHref) < 0) { - fprintf(stderr, "Error: failed to add ID attribute \"%s\" for node \"%s\"\n", attrName, value->strValue); - xmlFree(buf); - xmlSecAppXmlDataDestroy(data); - return(NULL); - } - cur = xmlSecGetNextElementNode(cur->next); - } - - xmlFree(buf); - } + if(value->strValue == NULL) { + fprintf(stderr, "Error: invalid value for option \"%s\".\n", + idAttrParam.fullName); + xmlSecAppXmlDataDestroy(data); + return(NULL); + } else { + xmlChar* attrName = (value->paramNameValue != NULL) ? BAD_CAST value->paramNameValue : BAD_CAST "id"; + xmlChar* nodeName; + xmlChar* nsHref; + xmlChar* buf; + + buf = xmlStrdup(BAD_CAST value->strValue); + if(buf == NULL) { + fprintf(stderr, "Error: failed to duplicate string \"%s\"\n", value->strValue); + xmlSecAppXmlDataDestroy(data); + return(NULL); + } + nodeName = (xmlChar*)strrchr((char*)buf, ':'); + if(nodeName != NULL) { + (*(nodeName++)) = '\0'; + nsHref = buf; + } else { + nodeName = buf; + nsHref = NULL; + } + + /* process children first because it does not matter much but does simplify code */ + cur = xmlSecGetNextElementNode(data->doc->children); + while(cur != NULL) { + if(xmlSecAppAddIDAttr(cur, attrName, nodeName, nsHref) < 0) { + fprintf(stderr, "Error: failed to add ID attribute \"%s\" for node \"%s\"\n", attrName, value->strValue); + xmlFree(buf); + xmlSecAppXmlDataDestroy(data); + return(NULL); + } + cur = xmlSecGetNextElementNode(cur->next); + } + + xmlFree(buf); + } } /* now find the start node */ if(xmlSecAppCmdLineParamGetString(&nodeIdParam) != NULL) { - xmlAttrPtr attr; - - attr = xmlGetID(data->doc, BAD_CAST xmlSecAppCmdLineParamGetString(&nodeIdParam)); - if(attr == NULL) { - fprintf(stderr, "Error: failed to find node with id=\"%s\"\n", - xmlSecAppCmdLineParamGetString(&nodeIdParam)); - xmlSecAppXmlDataDestroy(data); - return(NULL); - } - cur = attr->parent; + xmlAttrPtr attr; + + attr = xmlGetID(data->doc, BAD_CAST xmlSecAppCmdLineParamGetString(&nodeIdParam)); + if(attr == NULL) { + fprintf(stderr, "Error: failed to find node with id=\"%s\"\n", + xmlSecAppCmdLineParamGetString(&nodeIdParam)); + xmlSecAppXmlDataDestroy(data); + return(NULL); + } + cur = attr->parent; } else if(xmlSecAppCmdLineParamGetString(&nodeNameParam) != NULL) { - xmlChar* buf; - xmlChar* name; - xmlChar* ns; - - buf = xmlStrdup(BAD_CAST xmlSecAppCmdLineParamGetString(&nodeNameParam)); - if(buf == NULL) { - fprintf(stderr, "Error: failed to duplicate node \"%s\"\n", - xmlSecAppCmdLineParamGetString(&nodeNameParam)); - xmlSecAppXmlDataDestroy(data); - return(NULL); - } - name = (xmlChar*)strrchr((char*)buf, ':'); - if(name != NULL) { - (*(name++)) = '\0'; - ns = buf; - } else { - name = buf; - ns = NULL; - } - - cur = xmlSecFindNode(xmlDocGetRootElement(data->doc), name, ns); - if(cur == NULL) { - fprintf(stderr, "Error: failed to find node with name=\"%s\"\n", - name); - xmlFree(buf); - xmlSecAppXmlDataDestroy(data); - return(NULL); - } - xmlFree(buf); + xmlChar* buf; + xmlChar* name; + xmlChar* ns; + + buf = xmlStrdup(BAD_CAST xmlSecAppCmdLineParamGetString(&nodeNameParam)); + if(buf == NULL) { + fprintf(stderr, "Error: failed to duplicate node \"%s\"\n", + xmlSecAppCmdLineParamGetString(&nodeNameParam)); + xmlSecAppXmlDataDestroy(data); + return(NULL); + } + name = (xmlChar*)strrchr((char*)buf, ':'); + if(name != NULL) { + (*(name++)) = '\0'; + ns = buf; + } else { + name = buf; + ns = NULL; + } + + cur = xmlSecFindNode(xmlDocGetRootElement(data->doc), name, ns); + if(cur == NULL) { + fprintf(stderr, "Error: failed to find node with name=\"%s\"\n", + name); + xmlFree(buf); + xmlSecAppXmlDataDestroy(data); + return(NULL); + } + xmlFree(buf); } else if(xmlSecAppCmdLineParamGetString(&nodeXPathParam) != NULL) { - xmlXPathContextPtr ctx = NULL; - xmlXPathObjectPtr obj = NULL; - xmlNodePtr rootNode; - xmlNsPtr ns; - int ret; - - rootNode = xmlDocGetRootElement(data->doc); - if(rootNode == NULL) { - fprintf(stderr, "Error: failed to find root node\n"); - xmlSecAppXmlDataDestroy(data); - return(NULL); - } - - ctx = xmlXPathNewContext(data->doc); - if(ctx == NULL) { - fprintf(stderr, "Error: failed to create xpath context\n"); - xmlSecAppXmlDataDestroy(data); - return(NULL); - } - - /* register namespaces from the root node */ - for(ns = rootNode->nsDef; ns != NULL; ns = ns->next) { - if(ns->prefix != NULL){ - ret = xmlXPathRegisterNs(ctx, ns->prefix, ns->href); - if(ret != 0) { - fprintf(stderr, "Error: failed to register namespace \"%s\"\n", ns->prefix); - xmlXPathFreeContext(ctx); - xmlSecAppXmlDataDestroy(data); - return(NULL); - } - } - } - - obj = xmlXPathEval(BAD_CAST xmlSecAppCmdLineParamGetString(&nodeXPathParam), ctx); - if(obj == NULL) { - fprintf(stderr, "Error: failed to evaluate xpath expression\n"); - xmlXPathFreeContext(ctx); - xmlSecAppXmlDataDestroy(data); - return(NULL); - } - - if((obj->nodesetval == NULL) || (obj->nodesetval->nodeNr != 1)) { - fprintf(stderr, "Error: xpath expression evaluation does not return a single node as expected\n"); - xmlXPathFreeObject(obj); - xmlXPathFreeContext(ctx); - xmlSecAppXmlDataDestroy(data); - return(NULL); - } - - cur = obj->nodesetval->nodeTab[0]; - xmlXPathFreeContext(ctx); - xmlXPathFreeObject(obj); - + xmlXPathContextPtr ctx = NULL; + xmlXPathObjectPtr obj = NULL; + xmlNodePtr rootNode; + xmlNsPtr ns; + int ret; + + rootNode = xmlDocGetRootElement(data->doc); + if(rootNode == NULL) { + fprintf(stderr, "Error: failed to find root node\n"); + xmlSecAppXmlDataDestroy(data); + return(NULL); + } + + ctx = xmlXPathNewContext(data->doc); + if(ctx == NULL) { + fprintf(stderr, "Error: failed to create xpath context\n"); + xmlSecAppXmlDataDestroy(data); + return(NULL); + } + + /* register namespaces from the root node */ + for(ns = rootNode->nsDef; ns != NULL; ns = ns->next) { + if(ns->prefix != NULL){ + ret = xmlXPathRegisterNs(ctx, ns->prefix, ns->href); + if(ret != 0) { + fprintf(stderr, "Error: failed to register namespace \"%s\"\n", ns->prefix); + xmlXPathFreeContext(ctx); + xmlSecAppXmlDataDestroy(data); + return(NULL); + } + } + } + + obj = xmlXPathEval(BAD_CAST xmlSecAppCmdLineParamGetString(&nodeXPathParam), ctx); + if(obj == NULL) { + fprintf(stderr, "Error: failed to evaluate xpath expression\n"); + xmlXPathFreeContext(ctx); + xmlSecAppXmlDataDestroy(data); + return(NULL); + } + + if((obj->nodesetval == NULL) || (obj->nodesetval->nodeNr != 1)) { + fprintf(stderr, "Error: xpath expression evaluation does not return a single node as expected\n"); + xmlXPathFreeObject(obj); + xmlXPathFreeContext(ctx); + xmlSecAppXmlDataDestroy(data); + return(NULL); + } + + cur = obj->nodesetval->nodeTab[0]; + xmlXPathFreeContext(ctx); + xmlXPathFreeObject(obj); + } else { - cur = xmlDocGetRootElement(data->doc); - if(cur == NULL) { - fprintf(stderr, "Error: failed to get root element\n"); - xmlSecAppXmlDataDestroy(data); - return(NULL); - } + cur = xmlDocGetRootElement(data->doc); + if(cur == NULL) { + fprintf(stderr, "Error: failed to get root element\n"); + xmlSecAppXmlDataDestroy(data); + return(NULL); + } } if(defStartNodeName != NULL) { - data->startNode = xmlSecFindNode(cur, defStartNodeName, defStartNodeNs); - if(data->startNode == NULL) { - fprintf(stderr, "Error: failed to find default node with name=\"%s\"\n", - defStartNodeName); - xmlSecAppXmlDataDestroy(data); - return(NULL); - } + data->startNode = xmlSecFindNode(cur, defStartNodeName, defStartNodeNs); + if(data->startNode == NULL) { + fprintf(stderr, "Error: failed to find default node with name=\"%s\"\n", + defStartNodeName); + xmlSecAppXmlDataDestroy(data); + return(NULL); + } } else { - data->startNode = cur; + data->startNode = cur; } return(data); @@ -2703,14 +2679,14 @@ xmlSecAppXmlDataCreate(const char* filename, const xmlChar* defStartNodeName, co static void xmlSecAppXmlDataDestroy(xmlSecAppXmlDataPtr data) { if(data == NULL) { - fprintf(stderr, "Error: xml data is null\n"); - return; + fprintf(stderr, "Error: xml data is null\n"); + return; } if(data->dtd != NULL) { - xmlFreeDtd(data->dtd); + xmlFreeDtd(data->dtd); } if(data->doc != NULL) { - xmlFreeDoc(data->doc); + xmlFreeDoc(data->doc); } memset(data, 0, sizeof(xmlSecAppXmlData)); xmlFree(data); @@ -2719,99 +2695,91 @@ xmlSecAppXmlDataDestroy(xmlSecAppXmlDataPtr data) { static xmlSecAppCommand xmlSecAppParseCommand(const char* cmd, xmlSecAppCmdLineParamTopic* cmdLineTopics, xmlSecAppCommand* subCommand) { if(subCommand != NULL) { - (*subCommand) = xmlSecAppCommandUnknown; + (*subCommand) = xmlSecAppCommandUnknown; } if((cmd == NULL) || (cmdLineTopics == NULL)) { - return(xmlSecAppCommandUnknown); + return(xmlSecAppCommandUnknown); } else if((strcmp(cmd, "help") == 0) || (strcmp(cmd, "--help") == 0)) { - (*cmdLineTopics) = 0; - return(xmlSecAppCommandHelp); + (*cmdLineTopics) = 0; + return(xmlSecAppCommandHelp); } else if((strcmp(cmd, "help-all") == 0) || (strcmp(cmd, "--help-all") == 0)) { - (*cmdLineTopics) = xmlSecAppCmdLineTopicAll; - return(xmlSecAppCommandHelp); + (*cmdLineTopics) = xmlSecAppCmdLineTopicAll; + return(xmlSecAppCommandHelp); } else - if((strncmp(cmd, "help-", 5) == 0) || (strncmp(cmd, "--help-", 7) == 0)) { - cmd = (cmd[0] == '-') ? cmd + 7 : cmd + 5; - if(subCommand) { - (*subCommand) = xmlSecAppParseCommand(cmd, cmdLineTopics, NULL); - } else { - (*cmdLineTopics) = 0; - } - return(xmlSecAppCommandHelp); + if((strncmp(cmd, "help-", 5) == 0) || (strncmp(cmd, "--help-", 7) == 0)) { + cmd = (cmd[0] == '-') ? cmd + 7 : cmd + 5; + if(subCommand) { + (*subCommand) = xmlSecAppParseCommand(cmd, cmdLineTopics, NULL); + } else { + (*cmdLineTopics) = 0; + } + return(xmlSecAppCommandHelp); } else if((strcmp(cmd, "version") == 0) || (strcmp(cmd, "--version") == 0)) { - (*cmdLineTopics) = xmlSecAppCmdLineTopicVersion; - return(xmlSecAppCommandVersion); + (*cmdLineTopics) = xmlSecAppCmdLineTopicVersion; + return(xmlSecAppCommandVersion); } else if((strcmp(cmd, "list-key-data") == 0) || (strcmp(cmd, "--list-key-data") == 0)) { - (*cmdLineTopics) = xmlSecAppCmdLineTopicCryptoConfig; - return(xmlSecAppCommandListKeyData); + (*cmdLineTopics) = 0; + return(xmlSecAppCommandListKeyData); } else if((strcmp(cmd, "check-key-data") == 0) || (strcmp(cmd, "--check-key-data") == 0)) { - (*cmdLineTopics) = xmlSecAppCmdLineTopicCryptoConfig; - return(xmlSecAppCommandCheckKeyData); + (*cmdLineTopics) = 0; + return(xmlSecAppCommandCheckKeyData); } else if((strcmp(cmd, "list-transforms") == 0) || (strcmp(cmd, "--list-transforms") == 0)) { - (*cmdLineTopics) = xmlSecAppCmdLineTopicCryptoConfig; - return(xmlSecAppCommandListTransforms); + (*cmdLineTopics) = 0; + return(xmlSecAppCommandListTransforms); } else if((strcmp(cmd, "check-transforms") == 0) || (strcmp(cmd, "--check-transforms") == 0)) { - (*cmdLineTopics) = xmlSecAppCmdLineTopicCryptoConfig; - return(xmlSecAppCommandCheckTransforms); + (*cmdLineTopics) = 0; + return(xmlSecAppCommandCheckTransforms); } else if((strcmp(cmd, "keys") == 0) || (strcmp(cmd, "--keys") == 0)) { - (*cmdLineTopics) = - xmlSecAppCmdLineTopicGeneral | - xmlSecAppCmdLineTopicCryptoConfig | - xmlSecAppCmdLineTopicKeysMngr | - xmlSecAppCmdLineTopicX509Certs; - return(xmlSecAppCommandKeys); + (*cmdLineTopics) = xmlSecAppCmdLineTopicGeneral | + xmlSecAppCmdLineTopicKeysMngr | + xmlSecAppCmdLineTopicX509Certs; + return(xmlSecAppCommandKeys); } else #ifndef XMLSEC_NO_XMLDSIG if((strcmp(cmd, "sign") == 0) || (strcmp(cmd, "--sign") == 0)) { - (*cmdLineTopics) = - xmlSecAppCmdLineTopicGeneral | - xmlSecAppCmdLineTopicCryptoConfig | - xmlSecAppCmdLineTopicDSigCommon | - xmlSecAppCmdLineTopicDSigSign | - xmlSecAppCmdLineTopicKeysMngr | - xmlSecAppCmdLineTopicX509Certs; - return(xmlSecAppCommandSign); + (*cmdLineTopics) = xmlSecAppCmdLineTopicGeneral | + xmlSecAppCmdLineTopicDSigCommon | + xmlSecAppCmdLineTopicDSigSign | + xmlSecAppCmdLineTopicKeysMngr | + xmlSecAppCmdLineTopicX509Certs; + return(xmlSecAppCommandSign); } else if((strcmp(cmd, "verify") == 0) || (strcmp(cmd, "--verify") == 0)) { - (*cmdLineTopics) = - xmlSecAppCmdLineTopicGeneral | - xmlSecAppCmdLineTopicCryptoConfig | - xmlSecAppCmdLineTopicDSigCommon | - xmlSecAppCmdLineTopicDSigVerify | - xmlSecAppCmdLineTopicKeysMngr | - xmlSecAppCmdLineTopicX509Certs; - return(xmlSecAppCommandVerify); + (*cmdLineTopics) = xmlSecAppCmdLineTopicGeneral | + xmlSecAppCmdLineTopicDSigCommon | + xmlSecAppCmdLineTopicDSigVerify | + xmlSecAppCmdLineTopicKeysMngr | + xmlSecAppCmdLineTopicX509Certs; + return(xmlSecAppCommandVerify); } else #ifndef XMLSEC_NO_TMPL_TEST if((strcmp(cmd, "sign-tmpl") == 0) || (strcmp(cmd, "--sign-tmpl") == 0)) { - (*cmdLineTopics) = - xmlSecAppCmdLineTopicGeneral | - xmlSecAppCmdLineTopicCryptoConfig | - xmlSecAppCmdLineTopicDSigCommon | - xmlSecAppCmdLineTopicDSigSign | - xmlSecAppCmdLineTopicKeysMngr | - xmlSecAppCmdLineTopicX509Certs; - return(xmlSecAppCommandSignTmpl); + (*cmdLineTopics) = xmlSecAppCmdLineTopicGeneral | + xmlSecAppCmdLineTopicDSigCommon | + xmlSecAppCmdLineTopicDSigSign | + xmlSecAppCmdLineTopicKeysMngr | + xmlSecAppCmdLineTopicX509Certs; + return(xmlSecAppCommandSignTmpl); } else #endif /* XMLSEC_NO_TMPL_TEST */ @@ -2819,110 +2787,102 @@ xmlSecAppParseCommand(const char* cmd, xmlSecAppCmdLineParamTopic* cmdLineTopics #ifndef XMLSEC_NO_XMLENC if((strcmp(cmd, "encrypt") == 0) || (strcmp(cmd, "--encrypt") == 0)) { - (*cmdLineTopics) = - xmlSecAppCmdLineTopicGeneral | - xmlSecAppCmdLineTopicCryptoConfig | - xmlSecAppCmdLineTopicEncCommon | - xmlSecAppCmdLineTopicEncEncrypt | - xmlSecAppCmdLineTopicKeysMngr | - xmlSecAppCmdLineTopicX509Certs; - return(xmlSecAppCommandEncrypt); + (*cmdLineTopics) = xmlSecAppCmdLineTopicGeneral | + xmlSecAppCmdLineTopicEncCommon | + xmlSecAppCmdLineTopicEncEncrypt | + xmlSecAppCmdLineTopicKeysMngr | + xmlSecAppCmdLineTopicX509Certs; + return(xmlSecAppCommandEncrypt); } else if((strcmp(cmd, "decrypt") == 0) || (strcmp(cmd, "--decrypt") == 0)) { - (*cmdLineTopics) = - xmlSecAppCmdLineTopicGeneral | - xmlSecAppCmdLineTopicCryptoConfig | - xmlSecAppCmdLineTopicEncCommon | - xmlSecAppCmdLineTopicEncDecrypt | - xmlSecAppCmdLineTopicKeysMngr | - xmlSecAppCmdLineTopicX509Certs; - return(xmlSecAppCommandDecrypt); + (*cmdLineTopics) = xmlSecAppCmdLineTopicGeneral | + xmlSecAppCmdLineTopicEncCommon | + xmlSecAppCmdLineTopicEncDecrypt | + xmlSecAppCmdLineTopicKeysMngr | + xmlSecAppCmdLineTopicX509Certs; + return(xmlSecAppCommandDecrypt); } else #ifndef XMLSEC_NO_TMPL_TEST if((strcmp(cmd, "encrypt-tmpl") == 0) || (strcmp(cmd, "--encrypt-tmpl") == 0)) { - (*cmdLineTopics) = - xmlSecAppCmdLineTopicGeneral | - xmlSecAppCmdLineTopicCryptoConfig | - xmlSecAppCmdLineTopicEncCommon | - xmlSecAppCmdLineTopicEncEncrypt | - xmlSecAppCmdLineTopicKeysMngr | - xmlSecAppCmdLineTopicX509Certs; - return(xmlSecAppCommandEncryptTmpl); + (*cmdLineTopics) = xmlSecAppCmdLineTopicGeneral | + xmlSecAppCmdLineTopicEncCommon | + xmlSecAppCmdLineTopicEncEncrypt | + xmlSecAppCmdLineTopicKeysMngr | + xmlSecAppCmdLineTopicX509Certs; + return(xmlSecAppCommandEncryptTmpl); } else #endif /* XMLSEC_NO_TMPL_TEST */ #endif /* XMLSEC_NO_XMLENC */ #ifndef XMLSEC_NO_XKMS if(strcmp(cmd, "--xkms-server-request") == 0) { - (*cmdLineTopics) = - xmlSecAppCmdLineTopicGeneral | - xmlSecAppCmdLineTopicCryptoConfig | - xmlSecAppCmdLineTopicXkmsCommon | - xmlSecAppCmdLineTopicKeysMngr | - xmlSecAppCmdLineTopicX509Certs; - return(xmlSecAppCommandXkmsServerRequest); + (*cmdLineTopics) = xmlSecAppCmdLineTopicGeneral | + xmlSecAppCmdLineTopicXkmsCommon | + xmlSecAppCmdLineTopicKeysMngr | + xmlSecAppCmdLineTopicX509Certs; + return(xmlSecAppCommandXkmsServerRequest); } else #endif /* XMLSEC_NO_XKMS */ if(1) { - (*cmdLineTopics) = 0; - return(xmlSecAppCommandUnknown); + (*cmdLineTopics) = 0; + return(xmlSecAppCommandUnknown); } } - + static void xmlSecAppPrintHelp(xmlSecAppCommand command, xmlSecAppCmdLineParamTopic topics) { switch(command) { case xmlSecAppCommandUnknown: case xmlSecAppCommandHelp: - fprintf(stdout, "%s%s\n", helpCommands1, helpCommands2); + fprintf(stdout, "%s%s\n", helpCommands1, helpCommands2); break; case xmlSecAppCommandVersion: - fprintf(stdout, "%s\n", helpVersion); + fprintf(stdout, "%s\n", helpVersion); break; case xmlSecAppCommandListKeyData: - fprintf(stdout, "%s\n", helpListKeyData); + fprintf(stdout, "%s\n", helpListKeyData); break; case xmlSecAppCommandCheckKeyData: - fprintf(stdout, "%s\n", helpCheckKeyData); + fprintf(stdout, "%s\n", helpCheckKeyData); break; case xmlSecAppCommandListTransforms: - fprintf(stdout, "%s\n", helpListTransforms); + fprintf(stdout, "%s\n", helpListTransforms); break; case xmlSecAppCommandCheckTransforms: - fprintf(stdout, "%s\n", helpCheckTransforms); + fprintf(stdout, "%s\n", helpCheckTransforms); break; case xmlSecAppCommandKeys: - fprintf(stdout, "%s\n", helpKeys); + fprintf(stdout, "%s\n", helpKeys); break; case xmlSecAppCommandSign: - fprintf(stdout, "%s\n", helpSign); + fprintf(stdout, "%s\n", helpSign); break; case xmlSecAppCommandVerify: - fprintf(stdout, "%s\n", helpVerify); + fprintf(stdout, "%s\n", helpVerify); break; case xmlSecAppCommandEncrypt: - fprintf(stdout, "%s\n", helpEncrypt); + fprintf(stdout, "%s\n", helpEncrypt); break; case xmlSecAppCommandDecrypt: - fprintf(stdout, "%s\n", helpDecrypt); + fprintf(stdout, "%s\n", helpDecrypt); break; case xmlSecAppCommandSignTmpl: - fprintf(stdout, "%s\n", helpSignTmpl); + fprintf(stdout, "%s\n", helpSignTmpl); break; case xmlSecAppCommandEncryptTmpl: - fprintf(stdout, "%s\n", helpEncryptTmpl); + fprintf(stdout, "%s\n", helpEncryptTmpl); break; case xmlSecAppCommandXkmsServerRequest: - fprintf(stdout, "%s\n", helpXkmsServerRequest); + fprintf(stdout, "%s\n", helpXkmsServerRequest); break; } if(topics != 0) { - fprintf(stdout, "Options:\n"); - xmlSecAppCmdLineParamsListPrint(parameters, topics, stdout); - fprintf(stdout, "\n"); + fprintf(stdout, "Options:\n"); + xmlSecAppCmdLineParamsListPrint(parameters, topics, stdout); + fprintf(stdout, "\n"); } fprintf(stdout, "\n%s\n", bugs); fprintf(stdout, "%s\n", copyright); @@ -2933,19 +2893,19 @@ xmlSecAppGetUriType(const char* string) { xmlSecTransformUriType type = xmlSecTransformUriTypeNone; while((string != NULL) && (string[0] != '\0')) { - if(strcmp(string, "empty") == 0) { - type |= xmlSecTransformUriTypeEmpty; - } else if(strcmp(string, "same-doc") == 0) { - type |= xmlSecTransformUriTypeSameDocument; - } else if(strcmp(string, "local") == 0) { - type |= xmlSecTransformUriTypeLocal; - } else if(strcmp(string, "remote") == 0) { - type |= xmlSecTransformUriTypeRemote; - } else { - fprintf(stderr, "Error: invalid uri type: \"%s\"\n", string); - return(xmlSecTransformUriTypeNone); - } - string += strlen(string) + 1; + if(strcmp(string, "empty") == 0) { + type |= xmlSecTransformUriTypeEmpty; + } else if(strcmp(string, "same-doc") == 0) { + type |= xmlSecTransformUriTypeSameDocument; + } else if(strcmp(string, "local") == 0) { + type |= xmlSecTransformUriTypeLocal; + } else if(strcmp(string, "remote") == 0) { + type |= xmlSecTransformUriTypeRemote; + } else { + fprintf(stderr, "Error: invalid uri type: \"%s\"\n", string); + return(xmlSecTransformUriTypeNone); + } + string += strlen(string) + 1; } return(type); } @@ -2955,12 +2915,12 @@ xmlSecAppOpenFile(const char* filename) { FILE* file; if((filename == NULL) || (strcmp(filename, "-") == 0)) { - return(stdout); + return(stdout); } file = fopen(filename, "wb"); if(file == NULL) { - fprintf(stderr, "Error: failed to open file \"%s\"\n", filename); - return(NULL); + fprintf(stderr, "Error: failed to open file \"%s\"\n", filename); + return(NULL); } return(file); @@ -2969,7 +2929,7 @@ xmlSecAppOpenFile(const char* filename) { static void xmlSecAppCloseFile(FILE* file) { if((file == NULL) || (file == stdout) || (file == stderr)) { - return; + return; } fclose(file); @@ -2981,16 +2941,16 @@ xmlSecAppWriteResult(xmlDocPtr doc, xmlSecBufferPtr buffer) { f = xmlSecAppOpenFile(xmlSecAppCmdLineParamGetString(&outputParam)); if(f == NULL) { - return(-1); + return(-1); } if(doc != NULL) { - xmlDocDump(f, doc); + xmlDocDump(f, doc); } else if((buffer != NULL) && (xmlSecBufferGetData(buffer) != NULL)) { - fwrite(xmlSecBufferGetData(buffer), xmlSecBufferGetSize(buffer), 1, f); + fwrite(xmlSecBufferGetData(buffer), xmlSecBufferGetSize(buffer), 1, f); } else { - fprintf(stderr, "Error: both result doc and result buffer are null\n"); - xmlSecAppCloseFile(f); - return(-1); + fprintf(stderr, "Error: both result doc and result buffer are null\n"); + xmlSecAppCloseFile(f); + return(-1); } xmlSecAppCloseFile(f); return(0); @@ -3003,52 +2963,52 @@ xmlSecAppAddIDAttr(xmlNodePtr node, const xmlChar* attrName, const xmlChar* node xmlChar* id; if((node == NULL) || (attrName == NULL) || (nodeName == NULL)) { - return(-1); + return(-1); } /* process children first because it does not matter much but does simplify code */ cur = xmlSecGetNextElementNode(node->children); while(cur != NULL) { - if(xmlSecAppAddIDAttr(cur, attrName, nodeName, nsHref) < 0) { - return(-1); - } - cur = xmlSecGetNextElementNode(cur->next); + if(xmlSecAppAddIDAttr(cur, attrName, nodeName, nsHref) < 0) { + return(-1); + } + cur = xmlSecGetNextElementNode(cur->next); } /* node name must match */ if(!xmlStrEqual(node->name, nodeName)) { - return(0); + return(0); } - + /* if nsHref is set then it also should match */ if((nsHref != NULL) && (node->ns != NULL) && (!xmlStrEqual(nsHref, node->ns->href))) { - return(0); + return(0); } /* the attribute with name equal to attrName should exist */ for(attr = node->properties; attr != NULL; attr = attr->next) { - if(xmlStrEqual(attr->name, attrName)) { - break; - } + if(xmlStrEqual(attr->name, attrName)) { + break; + } } if(attr == NULL) { - return(0); + return(0); } /* and this attr should have a value */ id = xmlNodeListGetString(node->doc, attr->children, 1); if(id == NULL) { - return(0); + return(0); } /* check that we don't have same ID already */ tmpAttr = xmlGetID(node->doc, id); if(tmpAttr == NULL) { - xmlAddID(NULL, node->doc, id, attr); + xmlAddID(NULL, node->doc, id, attr); } else if(tmpAttr != attr) { - fprintf(stderr, "Error: duplicate ID attribute \"%s\"\n", id); - xmlFree(id); - return(-1); + fprintf(stderr, "Error: duplicate ID attribute \"%s\"\n", id); + xmlFree(id); + return(-1); } xmlFree(id); return(0); diff --git a/config.guess b/config.guess index c2246a4..da83314 100755 --- a/config.guess +++ b/config.guess @@ -1,10 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. -timestamp='2009-12-30' +timestamp='2009-04-27' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -27,16 +27,16 @@ timestamp='2009-12-30' # the same distribution terms that you use for the rest of that program. -# Originally written by Per Bothner. Please send patches (context -# diff format) to and include a ChangeLog -# entry. +# Originally written by Per Bothner . +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # -# You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# The plan is that this can be called by configure scripts if you +# don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` @@ -56,9 +56,8 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free -Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -171,7 +170,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ELF__ + | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? @@ -334,9 +333,6 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; - i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux${UNAME_RELEASE} - exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" @@ -660,7 +656,7 @@ EOF # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep -q __LP64__ + grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else @@ -811,12 +807,12 @@ EOF i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; - *:Interix*:*) + *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; - authenticamd | genuineintel | EM64T) + EM64T | authenticamd | genuineintel) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) @@ -826,9 +822,6 @@ EOF [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; - 8664:Windows_NT:*) - echo x86_64-pc-mks - exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we @@ -858,20 +851,6 @@ EOF i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ @@ -894,17 +873,6 @@ EOF frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; - i*86:Linux:*:*) - LIBC=gnu - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" - exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; @@ -914,34 +882,78 @@ EOF m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; - mips:Linux:*:* | mips64:Linux:*:*) + mips:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips + #undef mipsel + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mipsel + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips + #else + CPU= + #endif + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU - #undef ${UNAME_MACHINE} - #undef ${UNAME_MACHINE}el + #undef mips64 + #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=${UNAME_MACHINE}el + CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=${UNAME_MACHINE} + CPU=mips64 #else CPU= #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu - exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in @@ -950,11 +962,8 @@ EOF *) echo hppa-unknown-linux-gnu ;; esac exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux @@ -977,6 +986,66 @@ EOF xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; + i*86:Linux:*:*) + # The BFD linker knows what the default object file format is, so + # first see if it will tell us. cd to the root directory to prevent + # problems with other programs or directories called `ld' in the path. + # Set LC_ALL=C to ensure ld outputs messages in English. + ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ + | sed -ne '/supported targets:/!d + s/[ ][ ]*/ /g + s/.*supported targets: *// + s/ .*// + p'` + case "$ld_supported_targets" in + elf32-i386) + TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" + ;; + a.out-i386-linux) + echo "${UNAME_MACHINE}-pc-linux-gnuaout" + exit ;; + "") + # Either a pre-BFD a.out linker (linux-gnuoldld) or + # one that does not give us useful --help. + echo "${UNAME_MACHINE}-pc-linux-gnuoldld" + exit ;; + esac + # Determine whether the default compiler is a.out or elf + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + #ifdef __ELF__ + # ifdef __GLIBC__ + # if __GLIBC__ >= 2 + LIBC=gnu + # else + LIBC=gnulibc1 + # endif + # else + LIBC=gnulibc1 + # endif + #else + #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) + LIBC=gnu + #else + LIBC=gnuaout + #endif + #endif + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^LIBC/{ + s: ::g + p + }'`" + test x"${LIBC}" != x && { + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit + } + test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } + ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both @@ -1005,7 +1074,7 @@ EOF i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) @@ -1113,7 +1182,7 @@ EOF rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) @@ -1206,16 +1275,6 @@ EOF *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in - i386) - eval $set_cc_for_build - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - UNAME_PROCESSOR="x86_64" - fi - fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} diff --git a/config.sub b/config.sub index c2d1257..a39437d 100755 --- a/config.sub +++ b/config.sub @@ -1,10 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. -timestamp='2010-01-22' +timestamp='2009-04-17' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -32,16 +32,13 @@ timestamp='2010-01-22' # Please send patches to . Submit a context -# diff and a properly formatted GNU ChangeLog entry. +# diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. -# You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD - # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. @@ -75,9 +72,8 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free -Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -153,13 +149,10 @@ case $os in -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze) + -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; - -bluegene*) - os=-cnk - ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 @@ -288,7 +281,6 @@ case $basic_machine in | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ - | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ @@ -296,14 +288,13 @@ case $basic_machine in | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ - | ubicom32 \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; - m6811 | m68hc11 | m6812 | m68hc12 | picochip) + m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none @@ -346,7 +337,7 @@ case $basic_machine in | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ @@ -374,17 +365,15 @@ case $basic_machine in | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ - | romp-* | rs6000-* | rx-* \ + | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tile-* | tilegx-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | tron-* \ - | ubicom32-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ @@ -478,10 +467,6 @@ case $basic_machine in basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; - bluegene*) - basic_machine=powerpc-ibm - os=-cnk - ;; c90) basic_machine=c90-cray os=-unicos @@ -734,9 +719,6 @@ case $basic_machine in basic_machine=ns32k-utek os=-sysv ;; - microblaze) - basic_machine=microblaze-xilinx - ;; mingw32) basic_machine=i386-pc os=-mingw32 @@ -1087,11 +1069,6 @@ case $basic_machine in basic_machine=tic6x-unknown os=-coff ;; - # This must be matched before tile*. - tilegx*) - basic_machine=tilegx-unknown - os=-linux-gnu - ;; tile*) basic_machine=tile-unknown os=-linux-gnu @@ -1263,9 +1240,6 @@ case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. - -auroraux) - os=-auroraux - ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; @@ -1286,9 +1260,9 @@ case $os in # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ - | -sym* | -kopensolaris* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ @@ -1309,7 +1283,7 @@ case $os in | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1442,8 +1416,6 @@ case $os in -dicos*) os=-dicos ;; - -nacl*) - ;; -none) ;; *) @@ -1641,7 +1613,7 @@ case $basic_machine in -sunos*) vendor=sun ;; - -cnk*|-aix*) + -aix*) vendor=ibm ;; -beos*) diff --git a/configure b/configure index 5f9a601..26f5f15 100755 --- a/configure +++ b/configure @@ -1,15 +1,13 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.67 for xmlsec1 1.2.18. +# Generated by GNU Autoconf 2.64 for xmlsec1 1.2.14. # # Report bugs to . # -# # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software +# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software # Foundation, Inc. # -# # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## @@ -319,7 +317,7 @@ $as_echo X"$as_dir" | test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" } # as_fn_mkdir_p @@ -359,19 +357,19 @@ else fi # as_fn_arith -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- +# as_fn_error ERROR [LINENO LOG_FD] +# --------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. +# script with status $?, using 1 if that was 0. as_fn_error () { - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + as_status=$?; test $as_status -eq 0 && as_status=1 + if test "$3"; then + as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 fi - $as_echo "$as_me: error: $2" >&2 + $as_echo "$as_me: error: $1" >&2 as_fn_exit $as_status } # as_fn_error @@ -678,11 +676,10 @@ fi -test -n "$DJDIR" || exec 7<&0 &1 +exec 7<&0 &1 # Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` @@ -701,8 +698,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='xmlsec1' PACKAGE_TARNAME='xmlsec1' -PACKAGE_VERSION='1.2.18' -PACKAGE_STRING='xmlsec1 1.2.18' +PACKAGE_VERSION='1.2.14' +PACKAGE_STRING='xmlsec1 1.2.14' PACKAGE_BUGREPORT='http://www.aleksey.com/xmlsec' PACKAGE_URL='' @@ -763,8 +760,6 @@ XMLSEC_NSS_LIBS XMLSEC_NSS_CFLAGS XMLSEC_GNUTLS_LIBS XMLSEC_GNUTLS_CFLAGS -XMLSEC_GCRYPT_LIBS -XMLSEC_GCRYPT_CFLAGS XMLSEC_OPENSSL_LIBS XMLSEC_OPENSSL_CFLAGS XMLSEC_LIBDIR @@ -844,13 +839,6 @@ XMLSEC_NO_GNUTLS_FALSE XMLSEC_NO_GNUTLS_TRUE GNUTLS_LIBS GNUTLS_CFLAGS -GCRYPT_MIN_VERSION -GCRYPT_CRYPTO_LIB -XMLSEC_NO_GCRYPT -XMLSEC_NO_GCRYPT_FALSE -XMLSEC_NO_GCRYPT_TRUE -GCRYPT_LIBS -GCRYPT_CFLAGS MOZILLA_MIN_VERSION NSPR_MIN_VERSION NSS_MIN_VERSION @@ -878,10 +866,8 @@ LIBXML_MIN_VERSION LIBXML_CONFIG LIBXML_LIBS LIBXML_CFLAGS -PKG_CONFIG_LIBDIR -PKG_CONFIG_PATH PKG_CONFIG -PKGCONFIG_PRESENT +PKG_CONFIG_ENABLED SHAREDLIB_HACK_FALSE SHAREDLIB_HACK_TRUE ANSI2KNR @@ -1029,10 +1015,8 @@ with_nss with_nspr with_seamonkey_ver with_mozilla_ver -with_gcrypt with_gnutls enable_mscrypto -with_default_crypto enable_md5 enable_ripemd160 enable_sha1 @@ -1070,8 +1054,6 @@ LIBS CPPFLAGS CPP PKG_CONFIG -PKG_CONFIG_PATH -PKG_CONFIG_LIBDIR LIBXML_CFLAGS LIBXML_LIBS LIBXSLT_CFLAGS @@ -1080,8 +1062,6 @@ OPENSSL_CFLAGS OPENSSL_LIBS NSS_CFLAGS NSS_LIBS -GCRYPT_CFLAGS -GCRYPT_LIBS GNUTLS_CFLAGS GNUTLS_LIBS' @@ -1146,9 +1126,8 @@ do fi case $ac_option in - *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *=) ac_optarg= ;; - *) ac_optarg=yes ;; + *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. @@ -1193,7 +1172,7 @@ do ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" + as_fn_error "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1219,7 +1198,7 @@ do ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" + as_fn_error "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1423,7 +1402,7 @@ do ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" + as_fn_error "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1439,7 +1418,7 @@ do ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" + as_fn_error "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1469,8 +1448,8 @@ do | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" + -*) as_fn_error "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information." ;; *=*) @@ -1478,7 +1457,7 @@ Try \`$0 --help' for more information" # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + as_fn_error "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; @@ -1496,13 +1475,13 @@ done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error $? "missing argument to $ac_option" + as_fn_error "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; - fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi @@ -1525,7 +1504,7 @@ do [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" + as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' @@ -1539,8 +1518,8 @@ target=$target_alias if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used" >&2 + $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1555,9 +1534,9 @@ test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error $? "working directory cannot be determined" + as_fn_error "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error $? "pwd does not report name of working directory" + as_fn_error "pwd does not report name of working directory" # Find the source files, if location was not specified. @@ -1596,11 +1575,11 @@ else fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" + as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then @@ -1626,7 +1605,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures xmlsec1 1.2.18 to adapt to many kinds of systems. +\`configure' configures xmlsec1 1.2.14 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1640,7 +1619,7 @@ Configuration: --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages + -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files @@ -1696,7 +1675,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of xmlsec1 1.2.18:";; + short | recursive ) echo "Configuration of xmlsec1 1.2.14:";; esac cat <<\_ACEOF @@ -1761,9 +1740,7 @@ Optional Packages: --with-nspr=PFX nspr location (needed for NSS) --with-seamonkey-ver=VER mozilla version (alt to --with-nss, --with-nspr) --with-mozilla-ver=VER mozilla version (alt to --with-nss, --with-nspr) - --with-gcrypt=PFX gcrypt location --with-gnutls=PFX gnutls location - --with-default-crypto=name default crypto name --with-html-dir=PATH path to installed docs Some influential environment variables: @@ -1772,14 +1749,10 @@ Some influential environment variables: LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor PKG_CONFIG path to pkg-config utility - PKG_CONFIG_PATH - directories to add to pkg-config's search path - PKG_CONFIG_LIBDIR - path overriding pkg-config's built-in search path LIBXML_CFLAGS C compiler flags for LIBXML, overriding pkg-config LIBXML_LIBS linker flags for LIBXML, overriding pkg-config @@ -1793,9 +1766,6 @@ Some influential environment variables: linker flags for OPENSSL, overriding pkg-config NSS_CFLAGS C compiler flags for NSS, overriding pkg-config NSS_LIBS linker flags for NSS, overriding pkg-config - GCRYPT_CFLAGS - C compiler flags for GCRYPT, overriding pkg-config - GCRYPT_LIBS linker flags for GCRYPT, overriding pkg-config GNUTLS_CFLAGS C compiler flags for GNUTLS, overriding pkg-config GNUTLS_LIBS linker flags for GNUTLS, overriding pkg-config @@ -1866,10 +1836,10 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -xmlsec1 configure 1.2.18 -generated by GNU Autoconf 2.67 +xmlsec1 configure 1.2.14 +generated by GNU Autoconf 2.64 -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2009 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1914,7 +1884,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - as_fn_set_status $ac_retval + return $ac_retval } # ac_fn_c_try_compile @@ -1939,7 +1909,7 @@ $as_echo "$ac_try_echo"; } >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { + test $ac_status = 0; } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : @@ -1951,7 +1921,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - as_fn_set_status $ac_retval + return $ac_retval } # ac_fn_c_try_cpp @@ -1993,7 +1963,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - as_fn_set_status $ac_retval + return $ac_retval } # ac_fn_c_try_run @@ -2039,7 +2009,7 @@ fi # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - as_fn_set_status $ac_retval + return $ac_retval } # ac_fn_c_try_link @@ -2052,7 +2022,7 @@ ac_fn_c_check_header_compile () as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -2082,7 +2052,7 @@ ac_fn_c_check_func () as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -2149,10 +2119,10 @@ $as_echo "$ac_res" >&6; } ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval "test \"\${$3+set}\"" = set; then : + if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 @@ -2188,7 +2158,7 @@ if ac_fn_c_try_cpp "$LINENO"; then : else ac_header_preproc=no fi -rm -f conftest.err conftest.i conftest.$ac_ext +rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } @@ -2211,15 +2181,17 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( $as_echo "## -------------------------------------------- ## +( cat <<\_ASBOX +## -------------------------------------------- ## ## Report this to http://www.aleksey.com/xmlsec ## -## -------------------------------------------- ##" +## -------------------------------------------- ## +_ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } -if eval "test \"\${$3+set}\"" = set; then : +if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" @@ -2406,15 +2378,15 @@ rm -f conftest.val fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} - as_fn_set_status $ac_retval + return $ac_retval } # ac_fn_c_compute_int cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by xmlsec1 $as_me 1.2.18, which was -generated by GNU Autoconf 2.67. Invocation command line was +It was created by xmlsec1 $as_me 1.2.14, which was +generated by GNU Autoconf 2.64. Invocation command line was $ $0 $@ @@ -2524,9 +2496,11 @@ trap 'exit_status=$? { echo - $as_echo "## ---------------- ## + cat <<\_ASBOX +## ---------------- ## ## Cache variables. ## -## ---------------- ##" +## ---------------- ## +_ASBOX echo # The following way of writing the cache mishandles newlines in values, ( @@ -2560,9 +2534,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; ) echo - $as_echo "## ----------------- ## + cat <<\_ASBOX +## ----------------- ## ## Output variables. ## -## ----------------- ##" +## ----------------- ## +_ASBOX echo for ac_var in $ac_subst_vars do @@ -2575,9 +2551,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; echo if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## + cat <<\_ASBOX +## ------------------- ## ## File substitutions. ## -## ------------------- ##" +## ------------------- ## +_ASBOX echo for ac_var in $ac_subst_files do @@ -2591,9 +2569,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; fi if test -s confdefs.h; then - $as_echo "## ----------- ## + cat <<\_ASBOX +## ----------- ## ## confdefs.h. ## -## ----------- ##" +## ----------- ## +_ASBOX echo cat confdefs.h echo @@ -2648,12 +2628,7 @@ _ACEOF ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in #(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac + ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site @@ -2664,22 +2639,18 @@ fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + if test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5 ; } + . "$ac_site_file" fi done if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special files - # actually), so we avoid doing that. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special + # files actually), so we avoid doing that. + if test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in @@ -2748,7 +2719,7 @@ if $ac_cache_corrupted; then $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 + as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## @@ -2765,7 +2736,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu XMLSEC_PACKAGE=xmlsec1 XMLSEC_VERSION_MAJOR=1 XMLSEC_VERSION_MINOR=2 -XMLSEC_VERSION_SUBMINOR=18 +XMLSEC_VERSION_SUBMINOR=14 XMLSEC_VERSION="$XMLSEC_VERSION_MAJOR.$XMLSEC_VERSION_MINOR.$XMLSEC_VERSION_SUBMINOR" XMLSEC_VERSION_INFO=`echo $XMLSEC_VERSION | awk -F. '{ printf "%d:%d:%d", $1+$2, $3, $2 }'` XMLSEC_VERSION_SAFE=`echo $XMLSEC_VERSION | sed 's/\./_/g'` @@ -2773,22 +2744,16 @@ XMLSEC_VERSION_SAFE=`echo $XMLSEC_VERSION | sed 's/\./_/g'` ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi + for ac_t in install-sh install.sh shtool; do + if test -f "$ac_dir/$ac_t"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/$ac_t -c" + break 2 + fi + done done if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 + as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, @@ -2802,7 +2767,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } @@ -2813,16 +2778,16 @@ else test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && - as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 + as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; +*) as_fn_error "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' @@ -2847,7 +2812,7 @@ else ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 + as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi @@ -2855,7 +2820,7 @@ fi $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; +*) as_fn_error "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' @@ -2987,11 +2952,11 @@ am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) - as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;; + as_fn_error "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;; + as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; esac # Do `set' in a subshell so we don't clobber the current shell's @@ -3013,7 +2978,7 @@ if ( # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + as_fn_error "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi @@ -3023,7 +2988,7 @@ then # Ok. : else - as_fn_error $? "newly created file is older than distributed files! + as_fn_error "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 @@ -3195,7 +3160,6 @@ IFS=$as_save_IFS fi - test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else @@ -3203,6 +3167,7 @@ fi # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. + test -d ./--version && rmdir ./--version MKDIR_P="$ac_install_sh -d" fi fi @@ -3261,7 +3226,7 @@ done $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : +if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF @@ -3269,7 +3234,7 @@ SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF -# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; @@ -3303,7 +3268,7 @@ if test "`cd $srcdir && pwd`" != "`pwd`"; then am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then - as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi @@ -3319,7 +3284,7 @@ fi # Define the identity of the package. PACKAGE='xmlsec1' - VERSION='1.2.18' + VERSION='1.2.14' cat >>confdefs.h <<_ACEOF @@ -3766,8 +3731,8 @@ fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5 ; } +as_fn_error "no acceptable C compiler found in \$PATH +See \`config.log' for more details." "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 @@ -3788,30 +3753,32 @@ $as_echo "$ac_try_echo"; } >&5 ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 + rm -f conftest.er1 conftest.err fi - rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - +#include int main () { +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out conftest.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: @@ -3873,28 +3840,62 @@ test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5 ; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +{ as_fn_set_status 77 +as_fn_error "C compiler cannot create executables +See \`config.log' for more details." "$LINENO" 5; }; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +# If not cross compiling, check that we can run a simple program. +if test "$cross_compiling" != yes; then + if { ac_try='./$ac_file' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out conftest.out ac_clean_files=$ac_clean_files_save +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" @@ -3924,75 +3925,16 @@ done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5 ; } +as_fn_error "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." "$LINENO" 5; } fi -rm -f conftest conftest$ac_cv_exeext +rm -f conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5 ; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then : @@ -4035,8 +3977,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5 ; } +as_fn_error "cannot compute suffix of object files: cannot compile +See \`config.log' for more details." "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi @@ -4489,7 +4431,7 @@ else # Broken: fails on valid input. continue fi -rm -f conftest.err conftest.i conftest.$ac_ext +rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. @@ -4505,11 +4447,11 @@ else ac_preproc_ok=: break fi -rm -f conftest.err conftest.i conftest.$ac_ext +rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext +rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi @@ -4548,7 +4490,7 @@ else # Broken: fails on valid input. continue fi -rm -f conftest.err conftest.i conftest.$ac_ext +rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. @@ -4564,18 +4506,18 @@ else ac_preproc_ok=: break fi -rm -f conftest.err conftest.i conftest.$ac_ext +rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext +rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5 ; } +as_fn_error "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." "$LINENO" 5; } fi ac_ext=c @@ -4636,7 +4578,7 @@ esac done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP @@ -4702,7 +4644,7 @@ esac done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP @@ -4827,6 +4769,7 @@ $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi + case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 @@ -4835,8 +4778,8 @@ esac -macro_version='2.2.6b' -macro_revision='1.3017' +macro_version='2.2.6' +macro_revision='1.3012' @@ -4909,7 +4852,7 @@ esac done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then - as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED @@ -4988,7 +4931,7 @@ esac done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then - as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP @@ -5104,7 +5047,7 @@ else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi -test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then : @@ -5306,13 +5249,13 @@ if test "${lt_cv_nm_interface+set}" = set; then : else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:5309: $ac_compile\"" >&5) + (eval echo "\"\$as_me:5252: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 - (eval echo "\"\$as_me:5312: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval echo "\"\$as_me:5255: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 - (eval echo "\"\$as_me:5315: output\"" >&5) + (eval echo "\"\$as_me:5258: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -5778,7 +5721,7 @@ irix5* | irix6* | nonstopux*) ;; # This must be Linux ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) +linux* | k*bsd*-gnu) lt_cv_deplibs_check_method=pass_all ;; @@ -6517,7 +6460,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 6520 "configure"' > conftest.$ac_ext + echo '#line 6463 "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -7271,7 +7214,8 @@ do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : +eval as_val=\$$as_ac_Header + if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF @@ -7767,10 +7711,6 @@ _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= @@ -7796,11 +7736,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7799: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7739: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7803: \$? = $ac_status" >&5 + echo "$as_me:7743: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -7965,7 +7905,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } lt_prog_compiler_static='-non_shared' ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) + linux* | k*bsd*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) @@ -8135,11 +8075,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8138: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8078: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:8142: \$? = $ac_status" >&5 + echo "$as_me:8082: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -8240,11 +8180,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8243: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8183: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:8247: \$? = $ac_status" >&5 + echo "$as_me:8187: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -8295,11 +8235,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8298: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8238: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:8302: \$? = $ac_status" >&5 + echo "$as_me:8242: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -8438,7 +8378,6 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie fi supports_anon_versioning=no case `$LD -v 2>&1` in - *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... @@ -8530,7 +8469,7 @@ _LT_EOF archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; - gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + gnu* | linux* | tpf* | k*bsd*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in @@ -9992,7 +9931,7 @@ linux*oldld* | linux*aout* | linux*coff*) ;; # This must be Linux ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) +linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no @@ -10679,7 +10618,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10682 "configure" +#line 10621 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -10775,7 +10714,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10778 "configure" +#line 10717 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11003,8 +10942,6 @@ CC="$lt_save_CC" - - if test "z$RM" == "z" ; then # Extract the first word of "rm", so it can be a program name with args. set dummy rm; ac_word=$2 @@ -11289,14 +11226,14 @@ fi done -test "z$U" != "z" && as_fn_error $? "Compiler not ANSI compliant" "$LINENO" 5 +test "z$U" != "z" && as_fn_error "Compiler not ANSI compliant" "$LINENO" 5 ac_header_dirent=no for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 $as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } -if eval "test \"\${$as_ac_Header+set}\"" = set; then : +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -11323,7 +11260,8 @@ fi eval ac_res=\$$as_ac_Header { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : +eval as_val=\$$as_ac_Header + if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 _ACEOF @@ -11649,7 +11587,8 @@ for ac_func in strchr strrchr printf sprintf fprintf snprintf vfprintf vsprintf do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : +eval as_val=\$$as_ac_var + if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF @@ -11786,8 +11725,9 @@ else if test "$ac_cv_type_size_t" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (size_t) -See \`config.log' for more details" "$LINENO" 5 ; } +{ as_fn_set_status 77 +as_fn_error "cannot compute sizeof (size_t) +See \`config.log' for more details." "$LINENO" 5; }; } else ac_cv_sizeof_size_t=0 fi @@ -11808,23 +11748,26 @@ if test "$ac_cv_sizeof_size_t" -ne "4" ; then XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_SIZE_T" fi -PKG_CONFIG="pkg-config" -PKGCONFIG_FOUND="no" + + + # Check whether --enable-pkgconfig was given. if test "${enable_pkgconfig+set}" = set; then : enableval=$enable_pkgconfig; fi -if test "z$enable_pkgconfig" != "zno" ; then - # Extract the first word of "$PKG_CONFIG", so it can be a program name with args. -set dummy $PKG_CONFIG; ac_word=$2 +if test "z$enable_pkgconfig" = "zno" ; then + PKG_CONFIG_ENABLED=no +else + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_PKGCONFIG_PRESENT+set}" = set; then : +if test "${ac_cv_prog_PKG_CONFIG_ENABLED+set}" = set; then : $as_echo_n "(cached) " >&6 else - if test -n "$PKGCONFIG_PRESENT"; then - ac_cv_prog_PKGCONFIG_PRESENT="$PKGCONFIG_PRESENT" # Let the user override the test. + if test -n "$PKG_CONFIG_ENABLED"; then + ac_cv_prog_PKG_CONFIG_ENABLED="$PKG_CONFIG_ENABLED" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -11833,7 +11776,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_PKGCONFIG_PRESENT="yes" + ac_cv_prog_PKG_CONFIG_ENABLED="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -11841,23 +11784,23 @@ done done IFS=$as_save_IFS - test -z "$ac_cv_prog_PKGCONFIG_PRESENT" && ac_cv_prog_PKGCONFIG_PRESENT="no" + test -z "$ac_cv_prog_PKG_CONFIG_ENABLED" && ac_cv_prog_PKG_CONFIG_ENABLED="no" fi fi -PKGCONFIG_PRESENT=$ac_cv_prog_PKGCONFIG_PRESENT -if test -n "$PKGCONFIG_PRESENT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG_PRESENT" >&5 -$as_echo "$PKGCONFIG_PRESENT" >&6; } +PKG_CONFIG_ENABLED=$ac_cv_prog_PKG_CONFIG_ENABLED +if test -n "$PKG_CONFIG_ENABLED"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG_ENABLED" >&5 +$as_echo "$PKG_CONFIG_ENABLED" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - if test "z$PKGCONFIG_PRESENT" = "zyes" ; then - if $PKG_CONFIG --atleast-pkgconfig-version 0.9 ; then - PKGCONFIG_FOUND="yes" - fi + if test "z$PKG_CONFIG_ENABLED" = "zyes" ; then + if ! pkg-config --atleast-pkgconfig-version 0.9 ; then + PKG_CONFIG_ENABLED=no + fi fi fi @@ -11882,7 +11825,7 @@ fi if test "z$with_libxml" = "zno" -o "z$with_libxml_src" = "zno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxml2 libraries >= $LIBXML_MIN_VERSION" >&5 $as_echo_n "checking for libxml2 libraries >= $LIBXML_MIN_VERSION... " >&6; } - as_fn_error $? "libxml2 >= $LIBXML_MIN_VERSION is required for $XMLSEC_PACKAGE" "$LINENO" 5 + as_fn_error "libxml2 >= $LIBXML_MIN_VERSION is required for $XMLSEC_PACKAGE" "$LINENO" 5 elif test "z$with_libxml_src" != "z" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxml2 libraries >= $LIBXML_MIN_VERSION" >&5 $as_echo_n "checking for libxml2 libraries >= $LIBXML_MIN_VERSION... " >&6; } @@ -11897,13 +11840,9 @@ $as_echo_n "checking for libxml2 libraries >= $LIBXML_MIN_VERSION... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (source)" >&5 $as_echo "yes (source)" >&6; } else - as_fn_error $? "libxml source dir not found (${with_libxml_src}), typo?" "$LINENO" 5 + as_fn_error "libxml source dir not found (${with_libxml_src}), typo?" "$LINENO" 5 fi -elif test "z$with_libxml" = "z" -a "z$PKGCONFIG_FOUND" = "zyes" ; then - - - - +elif test "z$with_libxml" = "z" -a "z$PKG_CONFIG_ENABLED" = "zyes" ; then if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then @@ -12018,16 +11957,18 @@ $as_echo "yes" >&6; } $as_echo "no" >&6; } PKG_CONFIG="" fi + fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBXML" >&5 $as_echo_n "checking for LIBXML... " >&6; } -if test -n "$LIBXML_CFLAGS"; then - pkg_cv_LIBXML_CFLAGS="$LIBXML_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ +if test -n "$PKG_CONFIG"; then + if test -n "$LIBXML_CFLAGS"; then + pkg_cv_LIBXML_CFLAGS="$LIBXML_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= \$LIBXML_MIN_VERSION\""; } >&5 ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= $LIBXML_MIN_VERSION") 2>&5 ac_status=$? @@ -12037,13 +11978,15 @@ if test -n "$LIBXML_CFLAGS"; then else pkg_failed=yes fi - else - pkg_failed=untried + fi +else + pkg_failed=untried fi -if test -n "$LIBXML_LIBS"; then - pkg_cv_LIBXML_LIBS="$LIBXML_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ +if test -n "$PKG_CONFIG"; then + if test -n "$LIBXML_LIBS"; then + pkg_cv_LIBXML_LIBS="$LIBXML_LIBS" + else + if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= \$LIBXML_MIN_VERSION\""; } >&5 ($PKG_CONFIG --exists --print-errors "libxml-2.0 >= $LIBXML_MIN_VERSION") 2>&5 ac_status=$? @@ -12053,15 +11996,14 @@ if test -n "$LIBXML_LIBS"; then else pkg_failed=yes fi - else - pkg_failed=untried + fi +else + pkg_failed=untried fi if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes @@ -12069,17 +12011,17 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - LIBXML_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libxml-2.0 >= $LIBXML_MIN_VERSION" 2>&1` + LIBXML_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libxml-2.0 >= $LIBXML_MIN_VERSION"` else - LIBXML_PKG_ERRORS=`$PKG_CONFIG --print-errors "libxml-2.0 >= $LIBXML_MIN_VERSION" 2>&1` + LIBXML_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libxml-2.0 >= $LIBXML_MIN_VERSION"` fi # Put the nasty error message in config.log where it belongs echo "$LIBXML_PKG_ERRORS" >&5 - LIBXML_FOUND=no -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + LIBXML_FOUND=no +elif test $pkg_failed = untried; then LIBXML_FOUND=no else LIBXML_CFLAGS=$pkg_cv_LIBXML_CFLAGS @@ -12091,8 +12033,7 @@ fi fi if test "z$LIBXML_FOUND" = "zno" ; then if test "z$with_libxml" != "zyes" ; then - if test "z$with_libxml" != "z" ; then - # Extract the first word of "$LIBXML_CONFIG", so it can be a program name with args. + # Extract the first word of "$LIBXML_CONFIG", so it can be a program name with args. set dummy $LIBXML_CONFIG; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } @@ -12133,53 +12074,11 @@ $as_echo "no" >&6; } fi - else - # Extract the first word of "$LIBXML_CONFIG", so it can be a program name with args. -set dummy $LIBXML_CONFIG; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_LIBXML_CONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $LIBXML_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_LIBXML_CONFIG="$LIBXML_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_LIBXML_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -LIBXML_CONFIG=$ac_cv_path_LIBXML_CONFIG -if test -n "$LIBXML_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBXML_CONFIG" >&5 -$as_echo "$LIBXML_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking libxml2 $LIBXML_CONFIG " >&5 $as_echo_n "checking libxml2 $LIBXML_CONFIG ... " >&6; } if ! LIBXML_VERSION=`$LIBXML_CONFIG --version 2>/dev/null`; then - as_fn_error $? "Could not find libxml2 anywhere." "$LINENO" 5 + as_fn_error "Could not find libxml2 anywhere." "$LINENO" 5 fi vers=`echo $LIBXML_VERSION | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` minvers=`echo $LIBXML_MIN_VERSION | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` @@ -12190,7 +12089,7 @@ $as_echo_n "checking libxml2 $LIBXML_CONFIG ... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ('$LIBXML_VERSION')" >&5 $as_echo "yes ('$LIBXML_VERSION')" >&6; } else - as_fn_error $? "You need at least libxml2 $LIBXML_MIN_VERSION for this version of $XMLSEC_PACKAGE" "$LINENO" 5 + as_fn_error "You need at least libxml2 $LIBXML_MIN_VERSION for this version of $XMLSEC_PACKAGE" "$LINENO" 5 fi fi @@ -12237,18 +12136,19 @@ $as_echo_n "checking for libxslt libraries >= $LIBXSLT_MIN_VERSION... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (source)" >&5 $as_echo "yes (source)" >&6; } else - as_fn_error $? "libxslt source dir not found (${with_libxslt_src}), typo?" "$LINENO" 5 + as_fn_error "libxslt source dir not found (${with_libxslt_src}), typo?" "$LINENO" 5 fi -elif test "z$with_libxslt" = "z" -a "z$PKGCONFIG_FOUND" = "zyes" ; then +elif test "z$with_libxslt" = "z" -a "z$PKG_CONFIG_ENABLED" = "zyes" ; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBXSLT" >&5 $as_echo_n "checking for LIBXSLT... " >&6; } -if test -n "$LIBXSLT_CFLAGS"; then - pkg_cv_LIBXSLT_CFLAGS="$LIBXSLT_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ +if test -n "$PKG_CONFIG"; then + if test -n "$LIBXSLT_CFLAGS"; then + pkg_cv_LIBXSLT_CFLAGS="$LIBXSLT_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxslt >= \$LIBXSLT_MIN_VERSION\""; } >&5 ($PKG_CONFIG --exists --print-errors "libxslt >= $LIBXSLT_MIN_VERSION") 2>&5 ac_status=$? @@ -12258,13 +12158,15 @@ if test -n "$LIBXSLT_CFLAGS"; then else pkg_failed=yes fi - else - pkg_failed=untried + fi +else + pkg_failed=untried fi -if test -n "$LIBXSLT_LIBS"; then - pkg_cv_LIBXSLT_LIBS="$LIBXSLT_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ +if test -n "$PKG_CONFIG"; then + if test -n "$LIBXSLT_LIBS"; then + pkg_cv_LIBXSLT_LIBS="$LIBXSLT_LIBS" + else + if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxslt >= \$LIBXSLT_MIN_VERSION\""; } >&5 ($PKG_CONFIG --exists --print-errors "libxslt >= $LIBXSLT_MIN_VERSION") 2>&5 ac_status=$? @@ -12274,15 +12176,14 @@ if test -n "$LIBXSLT_LIBS"; then else pkg_failed=yes fi - else - pkg_failed=untried + fi +else + pkg_failed=untried fi if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes @@ -12290,17 +12191,17 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - LIBXSLT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libxslt >= $LIBXSLT_MIN_VERSION" 2>&1` + LIBXSLT_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libxslt >= $LIBXSLT_MIN_VERSION"` else - LIBXSLT_PKG_ERRORS=`$PKG_CONFIG --print-errors "libxslt >= $LIBXSLT_MIN_VERSION" 2>&1` + LIBXSLT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libxslt >= $LIBXSLT_MIN_VERSION"` fi # Put the nasty error message in config.log where it belongs echo "$LIBXSLT_PKG_ERRORS" >&5 - LIBXSLT_FOUND=no -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + LIBXSLT_FOUND=no +elif test $pkg_failed = untried; then LIBXSLT_FOUND=no else LIBXSLT_CFLAGS=$pkg_cv_LIBXSLT_CFLAGS @@ -12313,8 +12214,7 @@ fi if test "z$LIBXSLT_FOUND" = "zno" ; then if test "z$with_libxslt" != "zyes" ; then - if test "z$with_libxslt" != "z" ; then - # Extract the first word of "$LIBXSLT_CONFIG", so it can be a program name with args. + # Extract the first word of "$LIBXSLT_CONFIG", so it can be a program name with args. set dummy $LIBXSLT_CONFIG; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } @@ -12355,54 +12255,12 @@ $as_echo "no" >&6; } fi - else - # Extract the first word of "$LIBXSLT_CONFIG", so it can be a program name with args. -set dummy $LIBXSLT_CONFIG; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_LIBXSLT_CONFIG+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - case $LIBXSLT_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_LIBXSLT_CONFIG="$LIBXSLT_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_LIBXSLT_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -LIBXSLT_CONFIG=$ac_cv_path_LIBXSLT_CONFIG -if test -n "$LIBXSLT_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBXSLT_CONFIG" >&5 -$as_echo "$LIBXSLT_CONFIG" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxslt libraries >= $LIBXSLT_MIN_VERSION" >&5 $as_echo_n "checking for libxslt libraries >= $LIBXSLT_MIN_VERSION... " >&6; } if ! LIBXSLT_VERSION=`$LIBXSLT_CONFIG --version 2>/dev/null`; then if test "z$with_libxslt" != "zyes" ; then - as_fn_error $? "Unable to find libxslt at '$with_libxslt'" "$LINENO" 5 + as_fn_error "Unable to find libxslt at '$with_libxslt'" "$LINENO" 5 else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -12417,7 +12275,7 @@ $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ('$LIBXSLT_VERSION')" >&5 $as_echo "yes ('$LIBXSLT_VERSION')" >&6; } else - as_fn_error $? "You need at least libxslt $LIBXSLT_MIN_VERSION for this version of $XMLSEC_PACKAGE" "$LINENO" 5 + as_fn_error "You need at least libxslt $LIBXSLT_MIN_VERSION for this version of $XMLSEC_PACKAGE" "$LINENO" 5 fi fi fi @@ -12434,8 +12292,13 @@ fi +XMLSEC_CRYPTO="" XMLSEC_CRYPTO_LIST="" XMLSEC_CRYPTO_DISABLED_LIST="" +XMLSEC_CRYPTO_LIB="" +XMLSEC_CRYPTO_CFLAGS="" +XMLSEC_CRYPTO_CFLAGS_APP="" +XMLSEC_CRYPTO_LIBS="" ac_openssl_lib_dir="/usr/local/lib /usr/lib /usr/lib64 /usr/local /usr/local/ssl /usr/local/ssl/lib /usr/pkg" ac_openssl_inc_dir="/usr/local/include /usr/include /usr/local /usr/local/ssl /usr/pkg /usr/local/ssl/include" @@ -12475,17 +12338,18 @@ elif test "z$with_openssl" != "z" ; then OPENSSL_LIBS="$with_openssl/lib/libcrypto.a $openssl_exlibs" fi OPENSSL_FOUND="yes" -elif test "z$PKGCONFIG_FOUND" = "zyes" ; then +elif test "z$PKG_CONFIG_ENABLED" = "zyes" ; then if test "z$OPENSSL_VERSION" = "z" ; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OPENSSL" >&5 $as_echo_n "checking for OPENSSL... " >&6; } -if test -n "$OPENSSL_CFLAGS"; then - pkg_cv_OPENSSL_CFLAGS="$OPENSSL_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ +if test -n "$PKG_CONFIG"; then + if test -n "$OPENSSL_CFLAGS"; then + pkg_cv_OPENSSL_CFLAGS="$OPENSSL_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 0.9.8\""; } >&5 ($PKG_CONFIG --exists --print-errors "openssl >= 0.9.8") 2>&5 ac_status=$? @@ -12495,13 +12359,15 @@ if test -n "$OPENSSL_CFLAGS"; then else pkg_failed=yes fi - else - pkg_failed=untried + fi +else + pkg_failed=untried fi -if test -n "$OPENSSL_LIBS"; then - pkg_cv_OPENSSL_LIBS="$OPENSSL_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ +if test -n "$PKG_CONFIG"; then + if test -n "$OPENSSL_LIBS"; then + pkg_cv_OPENSSL_LIBS="$OPENSSL_LIBS" + else + if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 0.9.8\""; } >&5 ($PKG_CONFIG --exists --print-errors "openssl >= 0.9.8") 2>&5 ac_status=$? @@ -12511,15 +12377,14 @@ if test -n "$OPENSSL_LIBS"; then else pkg_failed=yes fi - else - pkg_failed=untried + fi +else + pkg_failed=untried fi if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes @@ -12527,17 +12392,17 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - OPENSSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "openssl >= 0.9.8" 2>&1` + OPENSSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "openssl >= 0.9.8"` else - OPENSSL_PKG_ERRORS=`$PKG_CONFIG --print-errors "openssl >= 0.9.8" 2>&1` + OPENSSL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "openssl >= 0.9.8"` fi # Put the nasty error message in config.log where it belongs echo "$OPENSSL_PKG_ERRORS" >&5 - OPENSSL_VERSION="" -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + OPENSSL_VERSION="" +elif test $pkg_failed = untried; then OPENSSL_VERSION="" else OPENSSL_CFLAGS=$pkg_cv_OPENSSL_CFLAGS @@ -12554,10 +12419,11 @@ pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OPENSSL" >&5 $as_echo_n "checking for OPENSSL... " >&6; } -if test -n "$OPENSSL_CFLAGS"; then - pkg_cv_OPENSSL_CFLAGS="$OPENSSL_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ +if test -n "$PKG_CONFIG"; then + if test -n "$OPENSSL_CFLAGS"; then + pkg_cv_OPENSSL_CFLAGS="$OPENSSL_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 0.9.7\""; } >&5 ($PKG_CONFIG --exists --print-errors "openssl >= 0.9.7") 2>&5 ac_status=$? @@ -12567,13 +12433,15 @@ if test -n "$OPENSSL_CFLAGS"; then else pkg_failed=yes fi - else - pkg_failed=untried + fi +else + pkg_failed=untried fi -if test -n "$OPENSSL_LIBS"; then - pkg_cv_OPENSSL_LIBS="$OPENSSL_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ +if test -n "$PKG_CONFIG"; then + if test -n "$OPENSSL_LIBS"; then + pkg_cv_OPENSSL_LIBS="$OPENSSL_LIBS" + else + if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 0.9.7\""; } >&5 ($PKG_CONFIG --exists --print-errors "openssl >= 0.9.7") 2>&5 ac_status=$? @@ -12583,15 +12451,14 @@ if test -n "$OPENSSL_LIBS"; then else pkg_failed=yes fi - else - pkg_failed=untried + fi +else + pkg_failed=untried fi if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes @@ -12599,17 +12466,17 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - OPENSSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "openssl >= 0.9.7" 2>&1` + OPENSSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "openssl >= 0.9.7"` else - OPENSSL_PKG_ERRORS=`$PKG_CONFIG --print-errors "openssl >= 0.9.7" 2>&1` + OPENSSL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "openssl >= 0.9.7"` fi # Put the nasty error message in config.log where it belongs echo "$OPENSSL_PKG_ERRORS" >&5 - OPENSSL_VERSION="" -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + OPENSSL_VERSION="" +elif test $pkg_failed = untried; then OPENSSL_VERSION="" else OPENSSL_CFLAGS=$pkg_cv_OPENSSL_CFLAGS @@ -12626,10 +12493,11 @@ pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OPENSSL" >&5 $as_echo_n "checking for OPENSSL... " >&6; } -if test -n "$OPENSSL_CFLAGS"; then - pkg_cv_OPENSSL_CFLAGS="$OPENSSL_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ +if test -n "$PKG_CONFIG"; then + if test -n "$OPENSSL_CFLAGS"; then + pkg_cv_OPENSSL_CFLAGS="$OPENSSL_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= \$OPENSSL_MIN_VERSION\""; } >&5 ($PKG_CONFIG --exists --print-errors "openssl >= $OPENSSL_MIN_VERSION") 2>&5 ac_status=$? @@ -12639,13 +12507,15 @@ if test -n "$OPENSSL_CFLAGS"; then else pkg_failed=yes fi - else - pkg_failed=untried + fi +else + pkg_failed=untried fi -if test -n "$OPENSSL_LIBS"; then - pkg_cv_OPENSSL_LIBS="$OPENSSL_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ +if test -n "$PKG_CONFIG"; then + if test -n "$OPENSSL_LIBS"; then + pkg_cv_OPENSSL_LIBS="$OPENSSL_LIBS" + else + if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= \$OPENSSL_MIN_VERSION\""; } >&5 ($PKG_CONFIG --exists --print-errors "openssl >= $OPENSSL_MIN_VERSION") 2>&5 ac_status=$? @@ -12655,15 +12525,14 @@ if test -n "$OPENSSL_LIBS"; then else pkg_failed=yes fi - else - pkg_failed=untried + fi +else + pkg_failed=untried fi if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes @@ -12671,17 +12540,17 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - OPENSSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "openssl >= $OPENSSL_MIN_VERSION" 2>&1` + OPENSSL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "openssl >= $OPENSSL_MIN_VERSION"` else - OPENSSL_PKG_ERRORS=`$PKG_CONFIG --print-errors "openssl >= $OPENSSL_MIN_VERSION" 2>&1` + OPENSSL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "openssl >= $OPENSSL_MIN_VERSION"` fi # Put the nasty error message in config.log where it belongs echo "$OPENSSL_PKG_ERRORS" >&5 - OPENSSL_VERSION="" -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + OPENSSL_VERSION="" +elif test $pkg_failed = untried; then OPENSSL_VERSION="" else OPENSSL_CFLAGS=$pkg_cv_OPENSSL_CFLAGS @@ -12859,6 +12728,13 @@ if test "z$OPENSSL_FOUND" = "zyes" ; then OPENSSL_CFLAGS="$OPENSSL_CFLAGS -DXMLSEC_OPENSSL_100=1" fi OPENSSL_CFLAGS="$OPENSSL_CFLAGS -DXMLSEC_CRYPTO_OPENSSL=1" + + if test "z$XMLSEC_CRYPTO" = "z" ; then + XMLSEC_CRYPTO="openssl" + XMLSEC_CRYPTO_LIB="$OPENSSL_CRYPTO_LIB" + XMLSEC_CRYPTO_CFLAGS="$OPENSSL_CFLAGS" + XMLSEC_CRYPTO_LIBS="$OPENSSL_LIBS" + fi XMLSEC_CRYPTO_LIST="$XMLSEC_CRYPTO_LIST openssl" else XMLSEC_CRYPTO_DISABLED_LIST="$XMLSEC_CRYPTO_DISABLED_LIST openssl" @@ -12878,11 +12754,11 @@ fi + XMLSEC_NO_NSS="1" -SEAMONKEY_MIN_VERSION="1.0" MOZILLA_MIN_VERSION="1.4" -NSS_MIN_VERSION="3.9" -NSPR_MIN_VERSION="4.4.1" +NSS_MIN_VERSION="3.2" +NSPR_MIN_VERSION="4.0" NSS_CFLAGS="" NSS_LIBS="" NSS_LIBS_LIST="-lnss3 -lsmime3" @@ -12923,88 +12799,18 @@ $as_echo_n "checking for NSS libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } NSS_FOUND="without" -elif test "z$with_nss" = "z" -a "z$with_nspr" = "z" -a "z$with_mozilla_ver" = "z" -a "z$with_seamonkey_ver" = "z" -a "z$PKGCONFIG_FOUND" = "zyes" ; then - if test "z$NSS_FOUND" = "zno" ; then - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for NSS" >&5 -$as_echo_n "checking for NSS... " >&6; } - -if test -n "$NSS_CFLAGS"; then - pkg_cv_NSS_CFLAGS="$NSS_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"seamonkey-nspr >= \$NSPR_MIN_VERSION seamonkey-nss >= \$SEAMONKEY_MIN_VERSION\""; } >&5 - ($PKG_CONFIG --exists --print-errors "seamonkey-nspr >= $NSPR_MIN_VERSION seamonkey-nss >= $SEAMONKEY_MIN_VERSION") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_NSS_CFLAGS=`$PKG_CONFIG --cflags "seamonkey-nspr >= $NSPR_MIN_VERSION seamonkey-nss >= $SEAMONKEY_MIN_VERSION" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$NSS_LIBS"; then - pkg_cv_NSS_LIBS="$NSS_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"seamonkey-nspr >= \$NSPR_MIN_VERSION seamonkey-nss >= \$SEAMONKEY_MIN_VERSION\""; } >&5 - ($PKG_CONFIG --exists --print-errors "seamonkey-nspr >= $NSPR_MIN_VERSION seamonkey-nss >= $SEAMONKEY_MIN_VERSION") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_NSS_LIBS=`$PKG_CONFIG --libs "seamonkey-nspr >= $NSPR_MIN_VERSION seamonkey-nss >= $SEAMONKEY_MIN_VERSION" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - NSS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "seamonkey-nspr >= $NSPR_MIN_VERSION seamonkey-nss >= $SEAMONKEY_MIN_VERSION" 2>&1` - else - NSS_PKG_ERRORS=`$PKG_CONFIG --print-errors "seamonkey-nspr >= $NSPR_MIN_VERSION seamonkey-nss >= $SEAMONKEY_MIN_VERSION" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$NSS_PKG_ERRORS" >&5 - - NSS_FOUND=no -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - NSS_FOUND=no -else - NSS_CFLAGS=$pkg_cv_NSS_CFLAGS - NSS_LIBS=$pkg_cv_NSS_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - NSS_FOUND=yes NSPR_PACKAGE=seamonkey-nspr NSS_PACKAGE=seamonkey-nss -fi - fi - if test "z$NSS_FOUND" = "zno" ; then +elif test "z$with_nss" = "z" -a "z$with_nspr" = "z" -a "z$with_mozilla_ver" = "z" -a "z$PKG_CONFIG_ENABLED" = "zyes" ; then + if test "z$NSS_FOUND" = "zno" ; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NSS" >&5 $as_echo_n "checking for NSS... " >&6; } -if test -n "$NSS_CFLAGS"; then - pkg_cv_NSS_CFLAGS="$NSS_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ +if test -n "$PKG_CONFIG"; then + if test -n "$NSS_CFLAGS"; then + pkg_cv_NSS_CFLAGS="$NSS_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mozilla-nspr >= \$MOZILLA_MIN_VERSION mozilla-nss >= \$MOZILLA_MIN_VERSION\""; } >&5 ($PKG_CONFIG --exists --print-errors "mozilla-nspr >= $MOZILLA_MIN_VERSION mozilla-nss >= $MOZILLA_MIN_VERSION") 2>&5 ac_status=$? @@ -13014,13 +12820,15 @@ if test -n "$NSS_CFLAGS"; then else pkg_failed=yes fi - else - pkg_failed=untried + fi +else + pkg_failed=untried fi -if test -n "$NSS_LIBS"; then - pkg_cv_NSS_LIBS="$NSS_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ +if test -n "$PKG_CONFIG"; then + if test -n "$NSS_LIBS"; then + pkg_cv_NSS_LIBS="$NSS_LIBS" + else + if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mozilla-nspr >= \$MOZILLA_MIN_VERSION mozilla-nss >= \$MOZILLA_MIN_VERSION\""; } >&5 ($PKG_CONFIG --exists --print-errors "mozilla-nspr >= $MOZILLA_MIN_VERSION mozilla-nss >= $MOZILLA_MIN_VERSION") 2>&5 ac_status=$? @@ -13030,15 +12838,14 @@ if test -n "$NSS_LIBS"; then else pkg_failed=yes fi - else - pkg_failed=untried + fi +else + pkg_failed=untried fi if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes @@ -13046,17 +12853,17 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - NSS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "mozilla-nspr >= $MOZILLA_MIN_VERSION mozilla-nss >= $MOZILLA_MIN_VERSION" 2>&1` + NSS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "mozilla-nspr >= $MOZILLA_MIN_VERSION mozilla-nss >= $MOZILLA_MIN_VERSION"` else - NSS_PKG_ERRORS=`$PKG_CONFIG --print-errors "mozilla-nspr >= $MOZILLA_MIN_VERSION mozilla-nss >= $MOZILLA_MIN_VERSION" 2>&1` + NSS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "mozilla-nspr >= $MOZILLA_MIN_VERSION mozilla-nss >= $MOZILLA_MIN_VERSION"` fi # Put the nasty error message in config.log where it belongs echo "$NSS_PKG_ERRORS" >&5 - NSS_FOUND=no -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + NSS_FOUND=no +elif test $pkg_failed = untried; then NSS_FOUND=no else NSS_CFLAGS=$pkg_cv_NSS_CFLAGS @@ -13072,44 +12879,46 @@ pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NSS" >&5 $as_echo_n "checking for NSS... " >&6; } -if test -n "$NSS_CFLAGS"; then - pkg_cv_NSS_CFLAGS="$NSS_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xulrunner-nspr >= \$NSPR_MIN_VERSION xulrunner-nss >= \$NSS_MIN_VERSION\""; } >&5 - ($PKG_CONFIG --exists --print-errors "xulrunner-nspr >= $NSPR_MIN_VERSION xulrunner-nss >= $NSS_MIN_VERSION") 2>&5 +if test -n "$PKG_CONFIG"; then + if test -n "$NSS_CFLAGS"; then + pkg_cv_NSS_CFLAGS="$NSS_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xulrunner-nspr >= \$MOZILLA_MIN_VERSION xulrunner-nss >= \$MOZILLA_MIN_VERSION\""; } >&5 + ($PKG_CONFIG --exists --print-errors "xulrunner-nspr >= $MOZILLA_MIN_VERSION xulrunner-nss >= $MOZILLA_MIN_VERSION") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_NSS_CFLAGS=`$PKG_CONFIG --cflags "xulrunner-nspr >= $NSPR_MIN_VERSION xulrunner-nss >= $NSS_MIN_VERSION" 2>/dev/null` + pkg_cv_NSS_CFLAGS=`$PKG_CONFIG --cflags "xulrunner-nspr >= $MOZILLA_MIN_VERSION xulrunner-nss >= $MOZILLA_MIN_VERSION" 2>/dev/null` else pkg_failed=yes fi - else - pkg_failed=untried + fi +else + pkg_failed=untried fi -if test -n "$NSS_LIBS"; then - pkg_cv_NSS_LIBS="$NSS_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xulrunner-nspr >= \$NSPR_MIN_VERSION xulrunner-nss >= \$NSS_MIN_VERSION\""; } >&5 - ($PKG_CONFIG --exists --print-errors "xulrunner-nspr >= $NSPR_MIN_VERSION xulrunner-nss >= $NSS_MIN_VERSION") 2>&5 +if test -n "$PKG_CONFIG"; then + if test -n "$NSS_LIBS"; then + pkg_cv_NSS_LIBS="$NSS_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xulrunner-nspr >= \$MOZILLA_MIN_VERSION xulrunner-nss >= \$MOZILLA_MIN_VERSION\""; } >&5 + ($PKG_CONFIG --exists --print-errors "xulrunner-nspr >= $MOZILLA_MIN_VERSION xulrunner-nss >= $MOZILLA_MIN_VERSION") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_NSS_LIBS=`$PKG_CONFIG --libs "xulrunner-nspr >= $NSPR_MIN_VERSION xulrunner-nss >= $NSS_MIN_VERSION" 2>/dev/null` + pkg_cv_NSS_LIBS=`$PKG_CONFIG --libs "xulrunner-nspr >= $MOZILLA_MIN_VERSION xulrunner-nss >= $MOZILLA_MIN_VERSION" 2>/dev/null` else pkg_failed=yes fi - else - pkg_failed=untried + fi +else + pkg_failed=untried fi if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes @@ -13117,17 +12926,17 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - NSS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "xulrunner-nspr >= $NSPR_MIN_VERSION xulrunner-nss >= $NSS_MIN_VERSION" 2>&1` + NSS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xulrunner-nspr >= $MOZILLA_MIN_VERSION xulrunner-nss >= $MOZILLA_MIN_VERSION"` else - NSS_PKG_ERRORS=`$PKG_CONFIG --print-errors "xulrunner-nspr >= $NSPR_MIN_VERSION xulrunner-nss >= $NSS_MIN_VERSION" 2>&1` + NSS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xulrunner-nspr >= $MOZILLA_MIN_VERSION xulrunner-nss >= $MOZILLA_MIN_VERSION"` fi # Put the nasty error message in config.log where it belongs echo "$NSS_PKG_ERRORS" >&5 - NSS_FOUND=no -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + NSS_FOUND=no +elif test $pkg_failed = untried; then NSS_FOUND=no else NSS_CFLAGS=$pkg_cv_NSS_CFLAGS @@ -13143,44 +12952,46 @@ pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NSS" >&5 $as_echo_n "checking for NSS... " >&6; } -if test -n "$NSS_CFLAGS"; then - pkg_cv_NSS_CFLAGS="$NSS_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"nspr >= \$NSPR_MIN_VERSION nss >= \$NSS_MIN_VERSION\""; } >&5 - ($PKG_CONFIG --exists --print-errors "nspr >= $NSPR_MIN_VERSION nss >= $NSS_MIN_VERSION") 2>&5 +if test -n "$PKG_CONFIG"; then + if test -n "$NSS_CFLAGS"; then + pkg_cv_NSS_CFLAGS="$NSS_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"nspr >= \$MOZILLA_MIN_VERSION nss >= \$MOZILLA_MIN_VERSION\""; } >&5 + ($PKG_CONFIG --exists --print-errors "nspr >= $MOZILLA_MIN_VERSION nss >= $MOZILLA_MIN_VERSION") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_NSS_CFLAGS=`$PKG_CONFIG --cflags "nspr >= $NSPR_MIN_VERSION nss >= $NSS_MIN_VERSION" 2>/dev/null` + pkg_cv_NSS_CFLAGS=`$PKG_CONFIG --cflags "nspr >= $MOZILLA_MIN_VERSION nss >= $MOZILLA_MIN_VERSION" 2>/dev/null` else pkg_failed=yes fi - else - pkg_failed=untried + fi +else + pkg_failed=untried fi -if test -n "$NSS_LIBS"; then - pkg_cv_NSS_LIBS="$NSS_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"nspr >= \$NSPR_MIN_VERSION nss >= \$NSS_MIN_VERSION\""; } >&5 - ($PKG_CONFIG --exists --print-errors "nspr >= $NSPR_MIN_VERSION nss >= $NSS_MIN_VERSION") 2>&5 +if test -n "$PKG_CONFIG"; then + if test -n "$NSS_LIBS"; then + pkg_cv_NSS_LIBS="$NSS_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"nspr >= \$MOZILLA_MIN_VERSION nss >= \$MOZILLA_MIN_VERSION\""; } >&5 + ($PKG_CONFIG --exists --print-errors "nspr >= $MOZILLA_MIN_VERSION nss >= $MOZILLA_MIN_VERSION") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_NSS_LIBS=`$PKG_CONFIG --libs "nspr >= $NSPR_MIN_VERSION nss >= $NSS_MIN_VERSION" 2>/dev/null` + pkg_cv_NSS_LIBS=`$PKG_CONFIG --libs "nspr >= $MOZILLA_MIN_VERSION nss >= $MOZILLA_MIN_VERSION" 2>/dev/null` else pkg_failed=yes fi - else - pkg_failed=untried + fi +else + pkg_failed=untried fi if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes @@ -13188,17 +12999,17 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - NSS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "nspr >= $NSPR_MIN_VERSION nss >= $NSS_MIN_VERSION" 2>&1` + NSS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "nspr >= $MOZILLA_MIN_VERSION nss >= $MOZILLA_MIN_VERSION"` else - NSS_PKG_ERRORS=`$PKG_CONFIG --print-errors "nspr >= $NSPR_MIN_VERSION nss >= $NSS_MIN_VERSION" 2>&1` + NSS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "nspr >= $MOZILLA_MIN_VERSION nss >= $MOZILLA_MIN_VERSION"` fi # Put the nasty error message in config.log where it belongs echo "$NSS_PKG_ERRORS" >&5 - NSS_FOUND=no -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + NSS_FOUND=no +elif test $pkg_failed = untried; then NSS_FOUND=no else NSS_CFLAGS=$pkg_cv_NSS_CFLAGS @@ -13401,6 +13212,13 @@ fi if test "z$NSS_FOUND" = "zyes" ; then XMLSEC_NO_NSS="0" NSS_CFLAGS="$NSS_CFLAGS -DXMLSEC_CRYPTO_NSS=1" + + if test "z$XMLSEC_CRYPTO" = "z" ; then + XMLSEC_CRYPTO="nss" + XMLSEC_CRYPTO_LIB="$NSS_CRYPTO_LIB" + XMLSEC_CRYPTO_CFLAGS="$NSS_CFLAGS" + XMLSEC_CRYPTO_LIBS="$NSS_LIBS" + fi XMLSEC_CRYPTO_LIST="$XMLSEC_CRYPTO_LIST nss" else XMLSEC_CRYPTO_DISABLED_LIST="$XMLSEC_CRYPTO_DISABLED_LIST nss" @@ -13424,214 +13242,73 @@ fi +GNUTLS_CONFIG="libgnutls-config" +XMLSEC_NO_GNUTLS="1" +GNUTLS_MIN_VERSION="0.8.1" +GNUTLS_NEW_MIN_VERSION="1.0.0" +GNUTLS_VERSION="" +GNUTLS_CFLAGS="" +GNUTLS_LIBS="" +GNUTLS_CRYPTO_LIB="$XMLSEC_PACKAGE-gnutls" +GNUTLS_FOUND="no" -GCRYPT_CONFIG="libgcrypt-config" -XMLSEC_NO_GCRYPT="1" -GCRYPT_MIN_VERSION="1.4.0" -GCRYPT_VERSION="" -GCRYPT_CFLAGS="" -GCRYPT_LIBS="" -GCRYPT_CRYPTO_LIB="$XMLSEC_PACKAGE-gcrypt" -GCRYPT_FOUND="no" - -# Check whether --with-gcrypt was given. -if test "${with_gcrypt+set}" = set; then : - withval=$with_gcrypt; +# Check whether --with-gnutls was given. +if test "${with_gnutls+set}" = set; then : + withval=$with_gnutls; fi -if test "z$with_gcrypt" = "zno" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcrypt libraries >= $GCRYPT_MIN_VERSION" >&5 -$as_echo_n "checking for gcrypt libraries >= $GCRYPT_MIN_VERSION... " >&6; } +if test "z$with_gnutls" = "zno" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls libraries >= $GNUTLS_MIN_VERSION" >&5 +$as_echo_n "checking for gnutls libraries >= $GNUTLS_MIN_VERSION... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - GCRYPT_FOUND="without" -elif test "z$with_gcrypt" = "z" -a "z$PKGCONFIG_FOUND" = "zyes" ; then + GNUTLS_FOUND="without" +elif test "z$with_gnutls" = "z" -a "z$PKG_CONFIG_ENABLED" = "zyes" ; then pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GCRYPT" >&5 -$as_echo_n "checking for GCRYPT... " >&6; } - -if test -n "$GCRYPT_CFLAGS"; then - pkg_cv_GCRYPT_CFLAGS="$GCRYPT_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gcrypt >= \$GCRYPT_MIN_VERSION\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gcrypt >= $GCRYPT_MIN_VERSION") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GCRYPT_CFLAGS=`$PKG_CONFIG --cflags "gcrypt >= $GCRYPT_MIN_VERSION" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$GCRYPT_LIBS"; then - pkg_cv_GCRYPT_LIBS="$GCRYPT_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gcrypt >= \$GCRYPT_MIN_VERSION\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gcrypt >= $GCRYPT_MIN_VERSION") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GCRYPT_LIBS=`$PKG_CONFIG --libs "gcrypt >= $GCRYPT_MIN_VERSION" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - GCRYPT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gcrypt >= $GCRYPT_MIN_VERSION" 2>&1` - else - GCRYPT_PKG_ERRORS=`$PKG_CONFIG --print-errors "gcrypt >= $GCRYPT_MIN_VERSION" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$GCRYPT_PKG_ERRORS" >&5 - - GCRYPT_FOUND=no -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - GCRYPT_FOUND=no -else - GCRYPT_CFLAGS=$pkg_cv_GCRYPT_CFLAGS - GCRYPT_LIBS=$pkg_cv_GCRYPT_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - GCRYPT_FOUND=yes -fi - - if test "z$GCRYPT_FOUND" = "zno" ; then +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNUTLS" >&5 +$as_echo_n "checking for GNUTLS... " >&6; } -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GCRYPT" >&5 -$as_echo_n "checking for GCRYPT... " >&6; } - -if test -n "$GCRYPT_CFLAGS"; then - pkg_cv_GCRYPT_CFLAGS="$GCRYPT_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libgcrypt >= \$GCRYPT_MIN_VERSION\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libgcrypt >= $GCRYPT_MIN_VERSION") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GCRYPT_CFLAGS=`$PKG_CONFIG --cflags "libgcrypt >= $GCRYPT_MIN_VERSION" 2>/dev/null` -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$GCRYPT_LIBS"; then - pkg_cv_GCRYPT_LIBS="$GCRYPT_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libgcrypt >= \$GCRYPT_MIN_VERSION\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libgcrypt >= $GCRYPT_MIN_VERSION") 2>&5 +if test -n "$PKG_CONFIG"; then + if test -n "$GNUTLS_CFLAGS"; then + pkg_cv_GNUTLS_CFLAGS="$GNUTLS_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= \$GNUTLS_NEW_MIN_VERSION\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gnutls >= $GNUTLS_NEW_MIN_VERSION") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_GCRYPT_LIBS=`$PKG_CONFIG --libs "libgcrypt >= $GCRYPT_MIN_VERSION" 2>/dev/null` + pkg_cv_GNUTLS_CFLAGS=`$PKG_CONFIG --cflags "gnutls >= $GNUTLS_NEW_MIN_VERSION" 2>/dev/null` else pkg_failed=yes fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - GCRYPT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libgcrypt >= $GCRYPT_MIN_VERSION" 2>&1` - else - GCRYPT_PKG_ERRORS=`$PKG_CONFIG --print-errors "libgcrypt >= $GCRYPT_MIN_VERSION" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$GCRYPT_PKG_ERRORS" >&5 - - GCRYPT_FOUND=no -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - GCRYPT_FOUND=no -else - GCRYPT_CFLAGS=$pkg_cv_GCRYPT_CFLAGS - GCRYPT_LIBS=$pkg_cv_GCRYPT_LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - GCRYPT_FOUND=yes -fi fi - - if test "z$GCRYPT_FOUND" = "zno" ; then - -pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GCRYPT" >&5 -$as_echo_n "checking for GCRYPT... " >&6; } - -if test -n "$GCRYPT_CFLAGS"; then - pkg_cv_GCRYPT_CFLAGS="$GCRYPT_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libgcrypt11 >= \$GCRYPT_MIN_VERSION\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libgcrypt11 >= $GCRYPT_MIN_VERSION") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_GCRYPT_CFLAGS=`$PKG_CONFIG --cflags "libgcrypt11 >= $GCRYPT_MIN_VERSION" 2>/dev/null` else - pkg_failed=yes -fi - else - pkg_failed=untried + pkg_failed=untried fi -if test -n "$GCRYPT_LIBS"; then - pkg_cv_GCRYPT_LIBS="$GCRYPT_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libgcrypt11 >= \$GCRYPT_MIN_VERSION\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libgcrypt11 >= $GCRYPT_MIN_VERSION") 2>&5 +if test -n "$PKG_CONFIG"; then + if test -n "$GNUTLS_LIBS"; then + pkg_cv_GNUTLS_LIBS="$GNUTLS_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= \$GNUTLS_NEW_MIN_VERSION\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gnutls >= $GNUTLS_NEW_MIN_VERSION") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_GCRYPT_LIBS=`$PKG_CONFIG --libs "libgcrypt11 >= $GCRYPT_MIN_VERSION" 2>/dev/null` + pkg_cv_GNUTLS_LIBS=`$PKG_CONFIG --libs "gnutls >= $GNUTLS_NEW_MIN_VERSION" 2>/dev/null` else pkg_failed=yes fi - else - pkg_failed=untried + fi +else + pkg_failed=untried fi if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes @@ -13639,141 +13316,71 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - GCRYPT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libgcrypt11 >= $GCRYPT_MIN_VERSION" 2>&1` + GNUTLS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gnutls >= $GNUTLS_NEW_MIN_VERSION"` else - GCRYPT_PKG_ERRORS=`$PKG_CONFIG --print-errors "libgcrypt11 >= $GCRYPT_MIN_VERSION" 2>&1` + GNUTLS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gnutls >= $GNUTLS_NEW_MIN_VERSION"` fi # Put the nasty error message in config.log where it belongs - echo "$GCRYPT_PKG_ERRORS" >&5 + echo "$GNUTLS_PKG_ERRORS" >&5 - GCRYPT_FOUND=no -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - GCRYPT_FOUND=no + GNUTLS_FOUND=no +elif test $pkg_failed = untried; then + GNUTLS_FOUND=no else - GCRYPT_CFLAGS=$pkg_cv_GCRYPT_CFLAGS - GCRYPT_LIBS=$pkg_cv_GCRYPT_LIBS + GNUTLS_CFLAGS=$pkg_cv_GNUTLS_CFLAGS + GNUTLS_LIBS=$pkg_cv_GNUTLS_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - GCRYPT_FOUND=yes -fi - fi -fi - -if test "z$GCRYPT_FOUND" = "zno" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcrypt libraries >= $GCRYPT_MIN_VERSION" >&5 -$as_echo_n "checking for gcrypt libraries >= $GCRYPT_MIN_VERSION... " >&6; } - if test "z$with_gcrypt" != "z" ; then - GCRYPT_CONFIG=$with_gcrypt/bin/$GCRYPT_CONFIG - fi - if ! $GCRYPT_CONFIG --version > /dev/null 2>&1 ; then - if test "z$with_gcrypt" != "z" ; then - as_fn_error $? "Unable to find gcrypt at '$with_gcrypt'" "$LINENO" 5 - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - fi - else - vers=`$GCRYPT_CONFIG --version | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` - minvers=`echo $GCRYPT_MIN_VERSION | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` - if test "$vers" -ge "$minvers" ; then - GCRYPT_CFLAGS="$GCRYPT_CFLAGS `$GCRYPT_CONFIG --cflags`" - GCRYPT_LIBS="$GCRYPT_LIBS `$GCRYPT_CONFIG --libs`" - GCRYPT_FOUND=yes - else - as_fn_error $? "You need at least gcrypt $GCRYPT_MIN_VERSION for this version of $XMLSEC_PACKAGE" "$LINENO" 5 - fi - fi -fi - -if test "z$GCRYPT_FOUND" = "zyes" ; then - XMLSEC_NO_GCRYPT="0" - GCRYPT_CFLAGS="$GCRYPT_CFLAGS -DXMLSEC_CRYPTO_GCRYPT=1" - XMLSEC_CRYPTO_LIST="$XMLSEC_CRYPTO_LIST gcrypt" -else - XMLSEC_CRYPTO_DISABLED_LIST="$XMLSEC_CRYPTO_DISABLED_LIST gcrypt" -fi - - if test "z$XMLSEC_NO_GCRYPT" = "z1"; then - XMLSEC_NO_GCRYPT_TRUE= - XMLSEC_NO_GCRYPT_FALSE='#' -else - XMLSEC_NO_GCRYPT_TRUE='#' - XMLSEC_NO_GCRYPT_FALSE= -fi - - - - - - - - -GNUTLS_CONFIG="libgnutls-config" -XMLSEC_NO_GNUTLS="1" -GNUTLS_MIN_VERSION="2.8.0" -GNUTLS_VERSION="" -GNUTLS_CFLAGS="" -GNUTLS_LIBS="" -GNUTLS_CRYPTO_LIB="$XMLSEC_PACKAGE-gnutls" -GNUTLS_FOUND="no" - -# Check whether --with-gnutls was given. -if test "${with_gnutls+set}" = set; then : - withval=$with_gnutls; + GNUTLS_FOUND=yes fi - -if test "z$with_gnutls" = "zno" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls libraries >= $GNUTLS_MIN_VERSION" >&5 -$as_echo_n "checking for gnutls libraries >= $GNUTLS_MIN_VERSION... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - GNUTLS_FOUND="without" -elif test "z$with_gnutls" = "z" -a "z$PKGCONFIG_FOUND" = "zyes" ; then + if test "z$GNUTLS_FOUND" = "zno" ; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNUTLS" >&5 $as_echo_n "checking for GNUTLS... " >&6; } -if test -n "$GNUTLS_CFLAGS"; then - pkg_cv_GNUTLS_CFLAGS="$GNUTLS_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= \$GNUTLS_MIN_VERSION\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gnutls >= $GNUTLS_MIN_VERSION") 2>&5 +if test -n "$PKG_CONFIG"; then + if test -n "$GNUTLS_CFLAGS"; then + pkg_cv_GNUTLS_CFLAGS="$GNUTLS_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libgnutls >= \$GNUTLS_NEW_MIN_VERSION\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libgnutls >= $GNUTLS_NEW_MIN_VERSION") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_GNUTLS_CFLAGS=`$PKG_CONFIG --cflags "gnutls >= $GNUTLS_MIN_VERSION" 2>/dev/null` + pkg_cv_GNUTLS_CFLAGS=`$PKG_CONFIG --cflags "libgnutls >= $GNUTLS_NEW_MIN_VERSION" 2>/dev/null` else pkg_failed=yes fi - else - pkg_failed=untried + fi +else + pkg_failed=untried fi -if test -n "$GNUTLS_LIBS"; then - pkg_cv_GNUTLS_LIBS="$GNUTLS_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gnutls >= \$GNUTLS_MIN_VERSION\""; } >&5 - ($PKG_CONFIG --exists --print-errors "gnutls >= $GNUTLS_MIN_VERSION") 2>&5 +if test -n "$PKG_CONFIG"; then + if test -n "$GNUTLS_LIBS"; then + pkg_cv_GNUTLS_LIBS="$GNUTLS_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libgnutls >= \$GNUTLS_NEW_MIN_VERSION\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libgnutls >= $GNUTLS_NEW_MIN_VERSION") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_GNUTLS_LIBS=`$PKG_CONFIG --libs "gnutls >= $GNUTLS_MIN_VERSION" 2>/dev/null` + pkg_cv_GNUTLS_LIBS=`$PKG_CONFIG --libs "libgnutls >= $GNUTLS_NEW_MIN_VERSION" 2>/dev/null` else pkg_failed=yes fi - else - pkg_failed=untried + fi +else + pkg_failed=untried fi if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes @@ -13781,17 +13388,17 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - GNUTLS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gnutls >= $GNUTLS_MIN_VERSION" 2>&1` + GNUTLS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libgnutls >= $GNUTLS_NEW_MIN_VERSION"` else - GNUTLS_PKG_ERRORS=`$PKG_CONFIG --print-errors "gnutls >= $GNUTLS_MIN_VERSION" 2>&1` + GNUTLS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libgnutls >= $GNUTLS_NEW_MIN_VERSION"` fi # Put the nasty error message in config.log where it belongs echo "$GNUTLS_PKG_ERRORS" >&5 - GNUTLS_FOUND=no -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + GNUTLS_FOUND=no +elif test $pkg_failed = untried; then GNUTLS_FOUND=no else GNUTLS_CFLAGS=$pkg_cv_GNUTLS_CFLAGS @@ -13800,16 +13407,19 @@ else $as_echo "yes" >&6; } GNUTLS_FOUND=yes fi + fi + if test "z$GNUTLS_FOUND" = "zno" ; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNUTLS" >&5 $as_echo_n "checking for GNUTLS... " >&6; } -if test -n "$GNUTLS_CFLAGS"; then - pkg_cv_GNUTLS_CFLAGS="$GNUTLS_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ +if test -n "$PKG_CONFIG"; then + if test -n "$GNUTLS_CFLAGS"; then + pkg_cv_GNUTLS_CFLAGS="$GNUTLS_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libgnutls >= \$GNUTLS_MIN_VERSION\""; } >&5 ($PKG_CONFIG --exists --print-errors "libgnutls >= $GNUTLS_MIN_VERSION") 2>&5 ac_status=$? @@ -13819,13 +13429,15 @@ if test -n "$GNUTLS_CFLAGS"; then else pkg_failed=yes fi - else - pkg_failed=untried + fi +else + pkg_failed=untried fi -if test -n "$GNUTLS_LIBS"; then - pkg_cv_GNUTLS_LIBS="$GNUTLS_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ +if test -n "$PKG_CONFIG"; then + if test -n "$GNUTLS_LIBS"; then + pkg_cv_GNUTLS_LIBS="$GNUTLS_LIBS" + else + if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libgnutls >= \$GNUTLS_MIN_VERSION\""; } >&5 ($PKG_CONFIG --exists --print-errors "libgnutls >= $GNUTLS_MIN_VERSION") 2>&5 ac_status=$? @@ -13835,15 +13447,14 @@ if test -n "$GNUTLS_LIBS"; then else pkg_failed=yes fi - else - pkg_failed=untried + fi +else + pkg_failed=untried fi if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes @@ -13851,17 +13462,17 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - GNUTLS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libgnutls >= $GNUTLS_MIN_VERSION" 2>&1` + GNUTLS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libgnutls >= $GNUTLS_MIN_VERSION"` else - GNUTLS_PKG_ERRORS=`$PKG_CONFIG --print-errors "libgnutls >= $GNUTLS_MIN_VERSION" 2>&1` + GNUTLS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libgnutls >= $GNUTLS_MIN_VERSION"` fi # Put the nasty error message in config.log where it belongs echo "$GNUTLS_PKG_ERRORS" >&5 - GNUTLS_FOUND=no -elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } + GNUTLS_FOUND=no +elif test $pkg_failed = untried; then GNUTLS_FOUND=no else GNUTLS_CFLAGS=$pkg_cv_GNUTLS_CFLAGS @@ -13870,6 +13481,9 @@ else $as_echo "yes" >&6; } GNUTLS_FOUND=yes fi + if test "z$GNUTLS_FOUND" = "zyes" ; then + GNUTLS_CFLAGS="$GNUTLS_CFLAGS -DXMLSEC_GNUTLS_OLD=1" + fi fi fi @@ -13881,7 +13495,7 @@ $as_echo_n "checking for gnutls libraries >= $GNUTLS_MIN_VERSION... " >&6; } fi if ! $GNUTLS_CONFIG --version > /dev/null 2>&1 ; then if test "z$with_gnutls" != "z" ; then - as_fn_error $? "Unable to find gnutls at '$with_gnutls'" "$LINENO" 5 + as_fn_error "Unable to find gnutls at '$with_gnutls'" "$LINENO" 5 else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -13891,10 +13505,17 @@ $as_echo "no" >&6; } minvers=`echo $GNUTLS_MIN_VERSION | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` if test "$vers" -ge "$minvers" ; then GNUTLS_CFLAGS="$GNUTLS_CFLAGS `$GNUTLS_CONFIG --cflags`" - GNUTLS_LIBS="$GNUTLS_LIBS `$GNUTLS_CONFIG --libs`" + GNUTLS_LIBS="$GNUTLS_LIBS `$GNUTLS_CONFIG --libs`" GNUTLS_FOUND=yes + + new_minvers=`echo $GNUTLS_NEW_MIN_VERSION | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` + if test "$vers" -lt "$new_minvers" ; then + GNUTLS_CFLAGS="$GNUTLS_CFLAGS -DXMLSEC_GNUTLS_OLD=1" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - as_fn_error $? "You need at least gnutls $GNUTLS_MIN_VERSION for this version of $XMLSEC_PACKAGE" "$LINENO" 5 + as_fn_error "You need at least gnutls $GNUTLS_MIN_VERSION for this version of $XMLSEC_PACKAGE" "$LINENO" 5 fi fi fi @@ -13902,12 +13523,14 @@ fi if test "z$GNUTLS_FOUND" = "zyes" ; then XMLSEC_NO_GNUTLS="0" GNUTLS_CFLAGS="$GNUTLS_CFLAGS -DXMLSEC_CRYPTO_GNUTLS=1" - XMLSEC_CRYPTO_LIST="$XMLSEC_CRYPTO_LIST gnutls" - if test "z$GCRYPT_FOUND" != "zyes" ; then - as_fn_error $? "xmlsec-gnutls library requires xmlsec-gcrypt library which is disabled or missing" "$LINENO" 5 + if test "z$XMLSEC_CRYPTO" = "z" ; then + XMLSEC_CRYPTO="gnutls" + XMLSEC_CRYPTO_LIB="$GNUTLS_CRYPTO_LIB" + XMLSEC_CRYPTO_CFLAGS="$GNUTLS_CFLAGS" + XMLSEC_CRYPTO_LIBS="$GNUTLS_LIBS" fi - + XMLSEC_CRYPTO_LIST="$XMLSEC_CRYPTO_LIST gnutls" else XMLSEC_CRYPTO_DISABLED_LIST="$XMLSEC_CRYPTO_DISABLED_LIST gnutls" fi @@ -13926,7 +13549,6 @@ fi - XMLSEC_NO_MSCRYPTO="1" MSCRYPTO_CFLAGS="" MSCRYPTO_LIBS="" @@ -13978,6 +13600,12 @@ if test "z$MSCRYPTO_ENABLE" = "zyes" ; then MSCRYPTO_LIBS="-lcrypt32";; esac + if test "z$XMLSEC_CRYPTO" = "z" ; then + XMLSEC_CRYPTO="mscrypto" + XMLSEC_CRYPTO_LIB="$MSCRYPTO_CRYPTO_LIB" + XMLSEC_CRYPTO_CFLAGS="$MSCRYPTO_CFLAGS" + XMLSEC_CRYPTO_LIBS="$MSCRYPTO_LIBS" + fi XMLSEC_CRYPTO_LIST="$XMLSEC_CRYPTO_LIST mscrypto" else XMLSEC_CRYPTO_DISABLED_LIST="$XMLSEC_CRYPTO_DISABLED_LIST mscrypto" @@ -13996,109 +13624,14 @@ fi - -XMLSEC_CRYPTO="" -XMLSEC_CRYPTO_LIB="" -XMLSEC_CRYPTO_CFLAGS="" -XMLSEC_CRYPTO_LIBS="" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for default crypto library" >&5 -$as_echo_n "checking for default crypto library... " >&6; } - -# Check whether --with-default_crypto was given. -if test "${with_default_crypto+set}" = set; then : - withval=$with_default_crypto; -fi - - -# check the argument -case "z$with_default_crypto" in - 'zmscrypto') - if test "z$XMLSEC_NO_MSCRYPTO" != "z1" ; then - XMLSEC_CRYPTO="mscrypto" - else - as_fn_error $? "'$with_default_crypto' is specified as default crypto library but it is not configured or found" "$LINENO" 5 - fi - ;; - 'zopenssl') - if test "z$XMLSEC_NO_OPENSSL" != "z1" ; then - XMLSEC_CRYPTO="openssl" - else - as_fn_error $? "'$with_default_crypto' is specified as default crypto library but it is not configured or found" "$LINENO" 5 - fi - ;; - 'znss') - if test "z$XMLSEC_NO_NSS" != "z1" ; then - XMLSEC_CRYPTO="nss" - else - as_fn_error $? "'$with_default_crypto' is specified as default crypto library but it is not configured or found" "$LINENO" 5 - fi - ;; - 'zgnutls') - if test "z$XMLSEC_NO_GNUTLS" != "z1" ; then - XMLSEC_CRYPTO="gnutls" - else - as_fn_error $? "'$with_default_crypto' is specified as default crypto library but it is not configured or found" "$LINENO" 5 - fi - ;; - 'zgcrypt') - if test "z$XMLSEC_NO_GCRYPT" != "z1" ; then - XMLSEC_CRYPTO="gcrypt" - else - as_fn_error $? "'$with_default_crypto' is specified as default crypto library but it is not configured or found" "$LINENO" 5 - fi - ;; - 'z') - if test "z$XMLSEC_NO_MSCRYPTO" != "z1" ; then - XMLSEC_CRYPTO="mscrypto" - elif test "z$XMLSEC_NO_OPENSSL" != "z1" ; then - XMLSEC_CRYPTO="openssl" - elif test "z$XMLSEC_NO_NSS" != "z1" ; then - XMLSEC_CRYPTO="nss" - elif test "z$XMLSEC_NO_GNUTLS" != "z1" ; then - XMLSEC_CRYPTO="gnutls" - elif test "z$XMLSEC_NO_GCRYPT" != "z1" ; then - XMLSEC_CRYPTO="gcrypt" - else - as_fn_error $? "At least one crypto library should exist for $XMLSEC_PACKAGE" "$LINENO" 5 - fi - ;; - *) - as_fn_error $? "The value '$with_default_crypto' is not a recongnized crypto library name" "$LINENO" 5 - ;; -esac - -case "$XMLSEC_CRYPTO" in - 'mscrypto') - XMLSEC_CRYPTO_LIB="$MSCRYPTO_CRYPTO_LIB" - XMLSEC_CRYPTO_CFLAGS="$MSCRYPTO_CFLAGS" - XMLSEC_CRYPTO_LIBS="$MSCRYPTO_LIBS" - ;; - 'openssl') - XMLSEC_CRYPTO_LIB="$OPENSSL_CRYPTO_LIB" - XMLSEC_CRYPTO_CFLAGS="$OPENSSL_CFLAGS" - XMLSEC_CRYPTO_LIBS="$OPENSSL_LIBS" - ;; - 'nss') - XMLSEC_CRYPTO_LIB="$NSS_CRYPTO_LIB" - XMLSEC_CRYPTO_CFLAGS="$NSS_CFLAGS" - XMLSEC_CRYPTO_LIBS="$NSS_LIBS" - ;; - 'gnutls') - XMLSEC_CRYPTO_LIB="$GNUTLS_CRYPTO_LIB" - XMLSEC_CRYPTO_CFLAGS="$GNUTLS_CFLAGS" - XMLSEC_CRYPTO_LIBS="$GNUTLS_LIBS" - ;; - 'gcrypt') - XMLSEC_CRYPTO_LIB="$GCRYPT_CRYPTO_LIB" - XMLSEC_CRYPTO_CFLAGS="$GCRYPT_CFLAGS" - XMLSEC_CRYPTO_LIBS="$GCRYPT_LIBS" - ;; - *) - as_fn_error $? "The value \"$XMLSEC_CRYPTO\" is not a recongnized crypto library name" "$LINENO" 5 - ;; -esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ('$XMLSEC_CRYPTO')" >&5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for crypto library" >&5 +$as_echo_n "checking for crypto library... " >&6; } +if test "z$XMLSEC_CRYPTO" = "z" ; then + as_fn_error "At least one crypto library should exist for $XMLSEC_PACKAGE" "$LINENO" 5 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ('$XMLSEC_CRYPTO')" >&5 $as_echo "yes ('$XMLSEC_CRYPTO')" >&6; } +fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MD5 support" >&5 $as_echo_n "checking for MD5 support... " >&6; } @@ -14636,7 +14169,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else - as_fn_error $? "libltdl is required for xmlsec-crypto dynamic loading" "$LINENO" 5 + as_fn_error "libltdl is required for xmlsec-crypto dynamic loading" "$LINENO" 5 fi fi if test "z$XMLSEC_NO_CRYPTO_DYNAMIC_LOADING" = "z1"; then @@ -14668,7 +14201,7 @@ $as_echo "no" >&6; } elif test "z$enable_crypto_dl" = "zno" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - as_fn_error $? "xmlsec-crypto libraries dynamic loading support in xmlsec command line tool is requested but no dynamic loading in xmlsec itself is disabled" "$LINENO" 5 + as_fn_error "xmlsec-crypto libraries dynamic loading support in xmlsec command line tool is requested but no dynamic loading in xmlsec itself is disabled" "$LINENO" 5 else XMLSEC_APP_DEFINES="$XMLSEC_APP_DEFINES -DXMLSEC_CRYPTO_DYNAMIC_LOADING=1" XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING="0" @@ -14814,14 +14347,8 @@ XMLSEC_OPENSSL_LIBS="-L${libdir} -l$OPENSSL_CRYPTO_LIB $XMLSEC_CORE_LIBS $OPENSS -XMLSEC_GCRYPT_CFLAGS="$XMLSEC_CORE_CFLAGS $GCRYPT_CFLAGS" -XMLSEC_GCRYPT_LIBS="-L${libdir} -l$GCRYPT_CRYPTO_LIB $XMLSEC_CORE_LIBS $GCRYPT_LIBS" - - - -# xmlsec-gnutls is using xmlsec-gcrypt XMLSEC_GNUTLS_CFLAGS="$XMLSEC_CORE_CFLAGS $GNUTLS_CFLAGS" -XMLSEC_GNUTLS_LIBS="-L${libdir} -l$GNUTLS_CRYPTO_LIB -l$GCRYPT_CRYPTO_LIB $XMLSEC_CORE_LIBS $GNUTLS_LIBS" +XMLSEC_GNUTLS_LIBS="-L${libdir} -l$GNUTLS_CRYPTO_LIB $XMLSEC_CORE_LIBS $GNUTLS_LIBS" @@ -14868,11 +14395,6 @@ ac_config_files="$ac_config_files include/xmlsec/gnutls/Makefile src/gnutls/Make fi -if test "z$XMLSEC_NO_GCRYPT" != "z1" ; then -ac_config_files="$ac_config_files include/xmlsec/gcrypt/Makefile src/gcrypt/Makefile" - -fi - if test "z$XMLSEC_NO_NSS" != "z1" ; then ac_config_files="$ac_config_files include/xmlsec/nss/Makefile src/nss/Makefile" @@ -14890,7 +14412,7 @@ ac_config_files="$ac_config_files xmlsec1.pc:xmlsec.pc.in" fi -ac_config_files="$ac_config_files include/xmlsec/version.h Makefile include/Makefile include/xmlsec/Makefile include/xmlsec/private/Makefile src/Makefile apps/Makefile docs/Makefile docs/api/Makefile man/Makefile xmlsec1Conf.sh:xmlsecConf.sh.in xmlsec1-config:xmlsec-config.in xmlsec1-openssl.pc:xmlsec-openssl.pc.in xmlsec1-gnutls.pc:xmlsec-gnutls.pc.in xmlsec1-gcrypt.pc:xmlsec-gcrypt.pc.in xmlsec1-nss.pc:xmlsec-nss.pc.in xmlsec1.spec:xmlsec.spec.in" +ac_config_files="$ac_config_files include/xmlsec/version.h Makefile include/Makefile include/xmlsec/Makefile include/xmlsec/private/Makefile src/Makefile apps/Makefile docs/Makefile docs/api/Makefile man/Makefile xmlsec1Conf.sh:xmlsecConf.sh.in xmlsec1-config:xmlsec-config.in xmlsec1-openssl.pc:xmlsec-openssl.pc.in xmlsec1-gnutls.pc:xmlsec-gnutls.pc.in xmlsec1-nss.pc:xmlsec-nss.pc.in xmlsec1.spec:xmlsec.spec.in" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -14998,115 +14520,111 @@ else fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. + as_fn_error "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - as_fn_error $? "conditional \"AMDEP\" was never defined. + as_fn_error "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCC\" was never defined. + as_fn_error "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SHAREDLIB_HACK_TRUE}" && test -z "${SHAREDLIB_HACK_FALSE}"; then - as_fn_error $? "conditional \"SHAREDLIB_HACK\" was never defined. + as_fn_error "conditional \"SHAREDLIB_HACK\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${XMLSEC_NO_OPENSSL_TRUE}" && test -z "${XMLSEC_NO_OPENSSL_FALSE}"; then - as_fn_error $? "conditional \"XMLSEC_NO_OPENSSL\" was never defined. + as_fn_error "conditional \"XMLSEC_NO_OPENSSL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${XMLSEC_NO_NSS_TRUE}" && test -z "${XMLSEC_NO_NSS_FALSE}"; then - as_fn_error $? "conditional \"XMLSEC_NO_NSS\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${XMLSEC_NO_GCRYPT_TRUE}" && test -z "${XMLSEC_NO_GCRYPT_FALSE}"; then - as_fn_error $? "conditional \"XMLSEC_NO_GCRYPT\" was never defined. + as_fn_error "conditional \"XMLSEC_NO_NSS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${XMLSEC_NO_GNUTLS_TRUE}" && test -z "${XMLSEC_NO_GNUTLS_FALSE}"; then - as_fn_error $? "conditional \"XMLSEC_NO_GNUTLS\" was never defined. + as_fn_error "conditional \"XMLSEC_NO_GNUTLS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${XMLSEC_NO_MSCRYPTO_TRUE}" && test -z "${XMLSEC_NO_MSCRYPTO_FALSE}"; then - as_fn_error $? "conditional \"XMLSEC_NO_MSCRYPTO\" was never defined. + as_fn_error "conditional \"XMLSEC_NO_MSCRYPTO\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${XMLSEC_NO_MD5_TRUE}" && test -z "${XMLSEC_NO_MD5_FALSE}"; then - as_fn_error $? "conditional \"XMLSEC_NO_MD5\" was never defined. + as_fn_error "conditional \"XMLSEC_NO_MD5\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${XMLSEC_NO_RIPEMD160_TRUE}" && test -z "${XMLSEC_NO_RIPEMD160_FALSE}"; then - as_fn_error $? "conditional \"XMLSEC_NO_RIPEMD160\" was never defined. + as_fn_error "conditional \"XMLSEC_NO_RIPEMD160\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${XMLSEC_NO_SHA1_TRUE}" && test -z "${XMLSEC_NO_SHA1_FALSE}"; then - as_fn_error $? "conditional \"XMLSEC_NO_SHA1\" was never defined. + as_fn_error "conditional \"XMLSEC_NO_SHA1\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${XMLSEC_NO_SHA224_TRUE}" && test -z "${XMLSEC_NO_SHA224_FALSE}"; then - as_fn_error $? "conditional \"XMLSEC_NO_SHA224\" was never defined. + as_fn_error "conditional \"XMLSEC_NO_SHA224\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${XMLSEC_NO_SHA256_TRUE}" && test -z "${XMLSEC_NO_SHA256_FALSE}"; then - as_fn_error $? "conditional \"XMLSEC_NO_SHA256\" was never defined. + as_fn_error "conditional \"XMLSEC_NO_SHA256\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${XMLSEC_NO_SHA384_TRUE}" && test -z "${XMLSEC_NO_SHA384_FALSE}"; then - as_fn_error $? "conditional \"XMLSEC_NO_SHA384\" was never defined. + as_fn_error "conditional \"XMLSEC_NO_SHA384\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${XMLSEC_NO_SHA512_TRUE}" && test -z "${XMLSEC_NO_SHA512_FALSE}"; then - as_fn_error $? "conditional \"XMLSEC_NO_SHA512\" was never defined. + as_fn_error "conditional \"XMLSEC_NO_SHA512\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${XMLSEC_NO_HMAC_TRUE}" && test -z "${XMLSEC_NO_HMAC_FALSE}"; then - as_fn_error $? "conditional \"XMLSEC_NO_HMAC\" was never defined. + as_fn_error "conditional \"XMLSEC_NO_HMAC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${XMLSEC_NO_DSA_TRUE}" && test -z "${XMLSEC_NO_DSA_FALSE}"; then - as_fn_error $? "conditional \"XMLSEC_NO_DSA\" was never defined. + as_fn_error "conditional \"XMLSEC_NO_DSA\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${XMLSEC_NO_RSA_TRUE}" && test -z "${XMLSEC_NO_RSA_FALSE}"; then - as_fn_error $? "conditional \"XMLSEC_NO_RSA\" was never defined. + as_fn_error "conditional \"XMLSEC_NO_RSA\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${XMLSEC_NO_X509_TRUE}" && test -z "${XMLSEC_NO_X509_FALSE}"; then - as_fn_error $? "conditional \"XMLSEC_NO_X509\" was never defined. + as_fn_error "conditional \"XMLSEC_NO_X509\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${XMLSEC_NO_DES_TRUE}" && test -z "${XMLSEC_NO_DES_FALSE}"; then - as_fn_error $? "conditional \"XMLSEC_NO_DES\" was never defined. + as_fn_error "conditional \"XMLSEC_NO_DES\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${XMLSEC_NO_AES_TRUE}" && test -z "${XMLSEC_NO_AES_FALSE}"; then - as_fn_error $? "conditional \"XMLSEC_NO_AES\" was never defined. + as_fn_error "conditional \"XMLSEC_NO_AES\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${XMLSEC_NO_GOST_TRUE}" && test -z "${XMLSEC_NO_GOST_FALSE}"; then - as_fn_error $? "conditional \"XMLSEC_NO_GOST\" was never defined. + as_fn_error "conditional \"XMLSEC_NO_GOST\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${XMLSEC_NO_XMLDSIG_TRUE}" && test -z "${XMLSEC_NO_XMLDSIG_FALSE}"; then - as_fn_error $? "conditional \"XMLSEC_NO_XMLDSIG\" was never defined. + as_fn_error "conditional \"XMLSEC_NO_XMLDSIG\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${XMLSEC_NO_XMLENC_TRUE}" && test -z "${XMLSEC_NO_XMLENC_FALSE}"; then - as_fn_error $? "conditional \"XMLSEC_NO_XMLENC\" was never defined. + as_fn_error "conditional \"XMLSEC_NO_XMLENC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${XMLSEC_NO_XKMS_TRUE}" && test -z "${XMLSEC_NO_XKMS_FALSE}"; then - as_fn_error $? "conditional \"XMLSEC_NO_XKMS\" was never defined. + as_fn_error "conditional \"XMLSEC_NO_XKMS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${XMLSEC_NO_CRYPTO_DYNAMIC_LOADING_TRUE}" && test -z "${XMLSEC_NO_CRYPTO_DYNAMIC_LOADING_FALSE}"; then - as_fn_error $? "conditional \"XMLSEC_NO_CRYPTO_DYNAMIC_LOADING\" was never defined. + as_fn_error "conditional \"XMLSEC_NO_CRYPTO_DYNAMIC_LOADING\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_TRUE}" && test -z "${XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING_FALSE}"; then - as_fn_error $? "conditional \"XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING\" was never defined. + as_fn_error "conditional \"XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi @@ -15256,19 +14774,19 @@ export LANGUAGE (unset CDPATH) >/dev/null 2>&1 && unset CDPATH -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- +# as_fn_error ERROR [LINENO LOG_FD] +# --------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. +# script with status $?, using 1 if that was 0. as_fn_error () { - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + as_status=$?; test $as_status -eq 0 && as_status=1 + if test "$3"; then + as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 fi - $as_echo "$as_me: error: $2" >&2 + $as_echo "$as_me: error: $1" >&2 as_fn_exit $as_status } # as_fn_error @@ -15464,7 +14982,7 @@ $as_echo X"$as_dir" | test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" } # as_fn_mkdir_p @@ -15517,8 +15035,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by xmlsec1 $as_me 1.2.18, which was -generated by GNU Autoconf 2.67. Invocation command line was +This file was extended by xmlsec1 $as_me 1.2.14, which was +generated by GNU Autoconf 2.64. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -15558,7 +15076,6 @@ Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit - --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files @@ -15581,13 +15098,12 @@ Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -xmlsec1 config.status 1.2.18 -configured by $0, generated by GNU Autoconf 2.67, - with options \\"\$ac_cs_config\\" +xmlsec1 config.status 1.2.14 +configured by $0, generated by GNU Autoconf 2.64, + with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2009 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -15605,16 +15121,11 @@ ac_need_defaults=: while test $# != 0 do case $1 in - --*=?*) + --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; - --*=) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; *) ac_option=$1 ac_optarg=$2 @@ -15628,15 +15139,12 @@ do ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; @@ -15649,7 +15157,7 @@ do ac_need_defaults=false;; --he | --h) # Conflict between --help and --header - as_fn_error $? "ambiguous option: \`$1' + as_fn_error "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; @@ -15658,7 +15166,7 @@ Try \`$0 --help' for more information.";; ac_cs_silent=: ;; # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' + -*) as_fn_error "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" @@ -15974,8 +15482,6 @@ do "src/openssl/Makefile") CONFIG_FILES="$CONFIG_FILES src/openssl/Makefile" ;; "include/xmlsec/gnutls/Makefile") CONFIG_FILES="$CONFIG_FILES include/xmlsec/gnutls/Makefile" ;; "src/gnutls/Makefile") CONFIG_FILES="$CONFIG_FILES src/gnutls/Makefile" ;; - "include/xmlsec/gcrypt/Makefile") CONFIG_FILES="$CONFIG_FILES include/xmlsec/gcrypt/Makefile" ;; - "src/gcrypt/Makefile") CONFIG_FILES="$CONFIG_FILES src/gcrypt/Makefile" ;; "include/xmlsec/nss/Makefile") CONFIG_FILES="$CONFIG_FILES include/xmlsec/nss/Makefile" ;; "src/nss/Makefile") CONFIG_FILES="$CONFIG_FILES src/nss/Makefile" ;; "include/xmlsec/mscrypto/Makefile") CONFIG_FILES="$CONFIG_FILES include/xmlsec/mscrypto/Makefile" ;; @@ -15995,11 +15501,10 @@ do "xmlsec1-config") CONFIG_FILES="$CONFIG_FILES xmlsec1-config:xmlsec-config.in" ;; "xmlsec1-openssl.pc") CONFIG_FILES="$CONFIG_FILES xmlsec1-openssl.pc:xmlsec-openssl.pc.in" ;; "xmlsec1-gnutls.pc") CONFIG_FILES="$CONFIG_FILES xmlsec1-gnutls.pc:xmlsec-gnutls.pc.in" ;; - "xmlsec1-gcrypt.pc") CONFIG_FILES="$CONFIG_FILES xmlsec1-gcrypt.pc:xmlsec-gcrypt.pc.in" ;; "xmlsec1-nss.pc") CONFIG_FILES="$CONFIG_FILES xmlsec1-nss.pc:xmlsec-nss.pc.in" ;; "xmlsec1.spec") CONFIG_FILES="$CONFIG_FILES xmlsec1.spec:xmlsec.spec.in" ;; - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; + *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done @@ -16037,7 +15542,7 @@ $debug || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. @@ -16054,7 +15559,7 @@ if test "x$ac_cr" = x; then fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' + ac_cs_awk_cr='\r' else ac_cs_awk_cr=$ac_cr fi @@ -16068,18 +15573,18 @@ _ACEOF echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` + as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi @@ -16101,7 +15606,7 @@ s/'"$ac_delim"'$// t delim :nl h -s/\(.\{148\}\)..*/\1/ +s/\(.\{148\}\).*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p @@ -16115,7 +15620,7 @@ s/.\{148\}// t nl :delim h -s/\(.\{148\}\)..*/\1/ +s/\(.\{148\}\).*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p @@ -16168,28 +15673,20 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 + || as_fn_error "could not setup config files machinery" "$LINENO" 5 _ACEOF -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/ +s/:*\${srcdir}:*/:/ +s/:*@srcdir@:*/:/ +s/^\([^=]*=[ ]*\):*/\1/ s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// s/^[^=]*=[ ]*$// }' fi @@ -16217,7 +15714,7 @@ for ac_last_try in false false :; do if test -z "$ac_t"; then break elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi @@ -16302,7 +15799,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 + as_fn_error "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" @@ -16315,7 +15812,7 @@ do esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; + :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac @@ -16343,7 +15840,7 @@ do [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; + as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" @@ -16370,7 +15867,7 @@ $as_echo "$as_me: creating $ac_file" >&6;} case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac @@ -16507,22 +16004,22 @@ s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + || as_fn_error "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 +which seems to be undefined. Please make sure it is defined." >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} +which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; :H) # @@ -16533,19 +16030,19 @@ which seems to be undefined. Please make sure it is defined" >&2;} $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + || as_fn_error "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$tmp/config.h" "$ac_file" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + || as_fn_error "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error $? "could not create -" "$LINENO" 5 + || as_fn_error "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" @@ -17330,7 +16827,7 @@ _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. @@ -17351,7 +16848,7 @@ if test "$no_create" != yes; then exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit 1 + $ac_cs_success || as_fn_exit $? fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 diff --git a/configure.in b/configure.in index ee2f3c4..038e8cc 100644 --- a/configure.in +++ b/configure.in @@ -1,10 +1,10 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([xmlsec1],[1.2.18],[http://www.aleksey.com/xmlsec]) +AC_INIT([xmlsec1],[1.2.14],[http://www.aleksey.com/xmlsec]) XMLSEC_PACKAGE=xmlsec1 XMLSEC_VERSION_MAJOR=1 XMLSEC_VERSION_MINOR=2 -XMLSEC_VERSION_SUBMINOR=18 +XMLSEC_VERSION_SUBMINOR=14 XMLSEC_VERSION="$XMLSEC_VERSION_MAJOR.$XMLSEC_VERSION_MINOR.$XMLSEC_VERSION_SUBMINOR" XMLSEC_VERSION_INFO=`echo $XMLSEC_VERSION | awk -F. '{ printf "%d:%d:%d", $1+$2, $3, $2 }'` XMLSEC_VERSION_SAFE=`echo $XMLSEC_VERSION | sed 's/\./_/g'` @@ -31,7 +31,6 @@ dnl AC_PROG_CC AC_PROG_INSTALL AC_HEADER_STDC -AC_PROG_LIBTOOL LT_INIT @@ -164,18 +163,27 @@ if test "$ac_cv_sizeof_size_t" -ne "4" ; then XMLSEC_DEFINES="$XMLSEC_DEFINES -DXMLSEC_NO_SIZE_T" fi + +dnl autoconf 2.59 fail +dnl configure.in:137: error: possibly undefined macro: PKG_CONFIG_ENABLED +dnl If this token and others are legitimate, please use m4_pattern_allow. +dnl See the Autoconf documentation. +dnl Also note that pkg.m4 (pkgconfig>=0.16 ?) +dnl allow [^PKG_CONFIG(_PATH)?$] ! +m4_pattern_allow([PKG_CONFIG_ENABLED]) + dnl ========================================================================== dnl Check if pkg-config enabled and installed dnl ========================================================================== -PKG_CONFIG="pkg-config" -PKGCONFIG_FOUND="no" AC_ARG_ENABLE(pkgconfig, [ --enable-pkgconfig enable pkgconfig for configuration (yes)]) -if test "z$enable_pkgconfig" != "zno" ; then - AC_CHECK_PROG(PKGCONFIG_PRESENT, $PKG_CONFIG, yes, no) - if test "z$PKGCONFIG_PRESENT" = "zyes" ; then - if $PKG_CONFIG --atleast-pkgconfig-version 0.9 ; then - PKGCONFIG_FOUND="yes" - fi +if test "z$enable_pkgconfig" = "zno" ; then + PKG_CONFIG_ENABLED=no +else + AC_CHECK_PROG(PKG_CONFIG_ENABLED, pkg-config, yes, no) + if test "z$PKG_CONFIG_ENABLED" = "zyes" ; then + if ! pkg-config --atleast-pkgconfig-version 0.9 ; then + PKG_CONFIG_ENABLED=no + fi fi fi @@ -211,20 +219,15 @@ elif test "z$with_libxml_src" != "z" ; then else AC_MSG_ERROR([libxml source dir not found (${with_libxml_src}), typo?]) fi -elif test "z$with_libxml" = "z" -a "z$PKGCONFIG_FOUND" = "zyes" ; then +elif test "z$with_libxml" = "z" -a "z$PKG_CONFIG_ENABLED" = "zyes" ; then PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= $LIBXML_MIN_VERSION, [LIBXML_FOUND=yes], [LIBXML_FOUND=no]) fi if test "z$LIBXML_FOUND" = "zno" ; then if test "z$with_libxml" != "zyes" ; then - if test "z$with_libxml" != "z" ; then - AC_PATH_PROG([LIBXML_CONFIG], [$LIBXML_CONFIG], [], + AC_PATH_PROG([LIBXML_CONFIG], [$LIBXML_CONFIG], [], [$with_libxml/bin:$PATH]) - else - AC_PATH_PROG([LIBXML_CONFIG], [$LIBXML_CONFIG], [], - [$PATH]) - fi fi AC_MSG_CHECKING([libxml2 $LIBXML_CONFIG ]) if ! LIBXML_VERSION=`$LIBXML_CONFIG --version 2>/dev/null`; then @@ -280,7 +283,7 @@ elif test "z$with_libxslt_src" != "z" ; then else AC_MSG_ERROR([libxslt source dir not found (${with_libxslt_src}), typo?]) fi -elif test "z$with_libxslt" = "z" -a "z$PKGCONFIG_FOUND" = "zyes" ; then +elif test "z$with_libxslt" = "z" -a "z$PKG_CONFIG_ENABLED" = "zyes" ; then PKG_CHECK_MODULES(LIBXSLT, libxslt >= $LIBXSLT_MIN_VERSION, [LIBXSLT_FOUND=yes], [LIBXSLT_FOUND=no]) @@ -288,13 +291,8 @@ fi if test "z$LIBXSLT_FOUND" = "zno" ; then if test "z$with_libxslt" != "zyes" ; then - if test "z$with_libxslt" != "z" ; then - AC_PATH_PROG([LIBXSLT_CONFIG], [$LIBXSLT_CONFIG], [], + AC_PATH_PROG([LIBXSLT_CONFIG], [$LIBXSLT_CONFIG], [], [$with_libxslt/bin:$PATH]) - else - AC_PATH_PROG([LIBXSLT_CONFIG], [$LIBXSLT_CONFIG], [], - [$PATH]) - fi fi AC_MSG_CHECKING(for libxslt libraries >= $LIBXSLT_MIN_VERSION) if ! LIBXSLT_VERSION=`$LIBXSLT_CONFIG --version 2>/dev/null`; then @@ -332,8 +330,13 @@ AC_SUBST(LIBXSLT_MIN_VERSION) dnl ========================================================================== dnl See if we can find a crypto library dnl ========================================================================== +XMLSEC_CRYPTO="" XMLSEC_CRYPTO_LIST="" XMLSEC_CRYPTO_DISABLED_LIST="" +XMLSEC_CRYPTO_LIB="" +XMLSEC_CRYPTO_CFLAGS="" +XMLSEC_CRYPTO_CFLAGS_APP="" +XMLSEC_CRYPTO_LIBS="" dnl ========================================================================== dnl OpenSSL @@ -369,7 +372,7 @@ elif test "z$with_openssl" != "z" ; then OPENSSL_LIBS="$with_openssl/lib/libcrypto.a $openssl_exlibs" fi OPENSSL_FOUND="yes" -elif test "z$PKGCONFIG_FOUND" = "zyes" ; then +elif test "z$PKG_CONFIG_ENABLED" = "zyes" ; then if test "z$OPENSSL_VERSION" = "z" ; then PKG_CHECK_MODULES(OPENSSL, openssl >= 0.9.8, [OPENSSL_VERSION="0.9.8"], @@ -511,6 +514,14 @@ if test "z$OPENSSL_FOUND" = "zyes" ; then OPENSSL_CFLAGS="$OPENSSL_CFLAGS -DXMLSEC_OPENSSL_100=1" fi OPENSSL_CFLAGS="$OPENSSL_CFLAGS -DXMLSEC_CRYPTO_OPENSSL=1" + + dnl first crypto library is default one + if test "z$XMLSEC_CRYPTO" = "z" ; then + XMLSEC_CRYPTO="openssl" + XMLSEC_CRYPTO_LIB="$OPENSSL_CRYPTO_LIB" + XMLSEC_CRYPTO_CFLAGS="$OPENSSL_CFLAGS" + XMLSEC_CRYPTO_LIBS="$OPENSSL_LIBS" + fi XMLSEC_CRYPTO_LIST="$XMLSEC_CRYPTO_LIST openssl" else XMLSEC_CRYPTO_DISABLED_LIST="$XMLSEC_CRYPTO_DISABLED_LIST openssl" @@ -541,11 +552,11 @@ dnl dnl 2 overrides 1 dnl dnl ========================================================================== + XMLSEC_NO_NSS="1" -SEAMONKEY_MIN_VERSION="1.0" MOZILLA_MIN_VERSION="1.4" -NSS_MIN_VERSION="3.9" -NSPR_MIN_VERSION="4.4.1" +NSS_MIN_VERSION="3.2" +NSPR_MIN_VERSION="4.0" NSS_CFLAGS="" NSS_LIBS="" NSS_LIBS_LIST="-lnss3 -lsmime3" @@ -565,33 +576,27 @@ if test "z$with_nss" = "zno" -o "z$with_nspr" = "zno" ; then AC_MSG_CHECKING(for NSS libraries) AC_MSG_RESULT(no) NSS_FOUND="without" -elif test "z$with_nss" = "z" -a "z$with_nspr" = "z" -a "z$with_mozilla_ver" = "z" -a "z$with_seamonkey_ver" = "z" -a "z$PKGCONFIG_FOUND" = "zyes" ; then +elif test "z$with_nss" = "z" -a "z$with_nspr" = "z" -a "z$with_mozilla_ver" = "z" -a "z$PKG_CONFIG_ENABLED" = "zyes" ; then dnl dnl Mozilla's NSS/NSPR are distributed under different names dnl in different distribution: - dnl seamonkey-nspr and seamonkey-nss dnl mozilla-nspr and mozilla-nss dnl xulrunner-nspr and xulrunner-nss dnl nspr and nss dnl We are going to try all options dnl if test "z$NSS_FOUND" = "zno" ; then - PKG_CHECK_MODULES(NSS, seamonkey-nspr >= $NSPR_MIN_VERSION seamonkey-nss >= $SEAMONKEY_MIN_VERSION, - [NSS_FOUND=yes NSPR_PACKAGE=seamonkey-nspr NSS_PACKAGE=seamonkey-nss], - [NSS_FOUND=no]) - fi - if test "z$NSS_FOUND" = "zno" ; then PKG_CHECK_MODULES(NSS, mozilla-nspr >= $MOZILLA_MIN_VERSION mozilla-nss >= $MOZILLA_MIN_VERSION, [NSS_FOUND=yes NSPR_PACKAGE=mozilla-nspr NSS_PACKAGE=mozilla-nss], [NSS_FOUND=no]) fi if test "z$NSS_FOUND" = "zno" ; then - PKG_CHECK_MODULES(NSS, xulrunner-nspr >= $NSPR_MIN_VERSION xulrunner-nss >= $NSS_MIN_VERSION, + PKG_CHECK_MODULES(NSS, xulrunner-nspr >= $MOZILLA_MIN_VERSION xulrunner-nss >= $MOZILLA_MIN_VERSION, [NSS_FOUND=yes NSPR_PACKAGE=xulrunner-nspr NSS_PACKAGE=xulrunner-nss], [NSS_FOUND=no]) fi if test "z$NSS_FOUND" = "zno" ; then - PKG_CHECK_MODULES(NSS, nspr >= $NSPR_MIN_VERSION nss >= $NSS_MIN_VERSION, + PKG_CHECK_MODULES(NSS, nspr >= $MOZILLA_MIN_VERSION nss >= $MOZILLA_MIN_VERSION, [NSS_FOUND=yes NSPR_PACKAGE=nspr NSS_PACKAGE=nss], [NSS_FOUND=no]) fi @@ -754,7 +759,7 @@ if test "z$NSS_FOUND" = "zno" ; then fi dnl check that we have found both NSS and NSPR - if test "z$NSPR_FOUND" = "zyes" -a "z$NSS_FOUND" = "zyes" ; then + if test "z$NSPR_FOUND" = "zyes" -a "z$NSS_FOUND" = "zyes" ; then NSS_CFLAGS="$NSS_CFLAGS $NSPR_CFLAGS" NSS_LIBS="$NSS_LIBS $NSPR_LIBS" elif test "z$NSPR_FOUND" != "zyes" -a "z$NSS_FOUND" = "zyes" ; then @@ -766,6 +771,14 @@ fi if test "z$NSS_FOUND" = "zyes" ; then XMLSEC_NO_NSS="0" NSS_CFLAGS="$NSS_CFLAGS -DXMLSEC_CRYPTO_NSS=1" + + dnl first crypto library is default one + if test "z$XMLSEC_CRYPTO" = "z" ; then + XMLSEC_CRYPTO="nss" + XMLSEC_CRYPTO_LIB="$NSS_CRYPTO_LIB" + XMLSEC_CRYPTO_CFLAGS="$NSS_CFLAGS" + XMLSEC_CRYPTO_LIBS="$NSS_LIBS" + fi XMLSEC_CRYPTO_LIST="$XMLSEC_CRYPTO_LIST nss" else XMLSEC_CRYPTO_DISABLED_LIST="$XMLSEC_CRYPTO_DISABLED_LIST nss" @@ -782,87 +795,13 @@ AC_SUBST(NSS_MIN_VERSION) AC_SUBST(NSPR_MIN_VERSION) AC_SUBST(MOZILLA_MIN_VERSION) - -dnl ========================================================================== -dnl See if we can find GCrypt -dnl ========================================================================== -GCRYPT_CONFIG="libgcrypt-config" -XMLSEC_NO_GCRYPT="1" -GCRYPT_MIN_VERSION="1.4.0" -GCRYPT_VERSION="" -GCRYPT_CFLAGS="" -GCRYPT_LIBS="" -GCRYPT_CRYPTO_LIB="$XMLSEC_PACKAGE-gcrypt" -GCRYPT_FOUND="no" -AC_ARG_WITH(gcrypt, [ --with-gcrypt=[PFX] gcrypt location]) -if test "z$with_gcrypt" = "zno" ; then - AC_MSG_CHECKING(for gcrypt libraries >= $GCRYPT_MIN_VERSION) - AC_MSG_RESULT(no) - GCRYPT_FOUND="without" -elif test "z$with_gcrypt" = "z" -a "z$PKGCONFIG_FOUND" = "zyes" ; then - PKG_CHECK_MODULES(GCRYPT, gcrypt >= $GCRYPT_MIN_VERSION, - [GCRYPT_FOUND=yes], - [GCRYPT_FOUND=no]) - - if test "z$GCRYPT_FOUND" = "zno" ; then - PKG_CHECK_MODULES(GCRYPT, libgcrypt >= $GCRYPT_MIN_VERSION, - [GCRYPT_FOUND=yes], - [GCRYPT_FOUND=no]) - fi - - if test "z$GCRYPT_FOUND" = "zno" ; then - PKG_CHECK_MODULES(GCRYPT, libgcrypt11 >= $GCRYPT_MIN_VERSION, - [GCRYPT_FOUND=yes], - [GCRYPT_FOUND=no]) - fi -fi - -if test "z$GCRYPT_FOUND" = "zno" ; then - AC_MSG_CHECKING(for gcrypt libraries >= $GCRYPT_MIN_VERSION) - if test "z$with_gcrypt" != "z" ; then - GCRYPT_CONFIG=$with_gcrypt/bin/$GCRYPT_CONFIG - fi - if ! $GCRYPT_CONFIG --version > /dev/null 2>&1 ; then - if test "z$with_gcrypt" != "z" ; then - AC_MSG_ERROR(Unable to find gcrypt at '$with_gcrypt') - else - AC_MSG_RESULT(no) - fi - else - vers=`$GCRYPT_CONFIG --version | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` - minvers=`echo $GCRYPT_MIN_VERSION | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` - if test "$vers" -ge "$minvers" ; then - GCRYPT_CFLAGS="$GCRYPT_CFLAGS `$GCRYPT_CONFIG --cflags`" - GCRYPT_LIBS="$GCRYPT_LIBS `$GCRYPT_CONFIG --libs`" - GCRYPT_FOUND=yes - else - AC_MSG_ERROR(You need at least gcrypt $GCRYPT_MIN_VERSION for this version of $XMLSEC_PACKAGE) - fi - fi -fi - -if test "z$GCRYPT_FOUND" = "zyes" ; then - XMLSEC_NO_GCRYPT="0" - GCRYPT_CFLAGS="$GCRYPT_CFLAGS -DXMLSEC_CRYPTO_GCRYPT=1" - XMLSEC_CRYPTO_LIST="$XMLSEC_CRYPTO_LIST gcrypt" -else - XMLSEC_CRYPTO_DISABLED_LIST="$XMLSEC_CRYPTO_DISABLED_LIST gcrypt" -fi - -AM_CONDITIONAL(XMLSEC_NO_GCRYPT, test "z$XMLSEC_NO_GCRYPT" = "z1") -AC_SUBST(XMLSEC_NO_GCRYPT) -AC_SUBST(GCRYPT_CFLAGS) -AC_SUBST(GCRYPT_LIBS) -AC_SUBST(GCRYPT_CRYPTO_LIB) -AC_SUBST(GCRYPT_MIN_VERSION) - - dnl ========================================================================== dnl See if we can find GnuTLS dnl ========================================================================== GNUTLS_CONFIG="libgnutls-config" XMLSEC_NO_GNUTLS="1" -GNUTLS_MIN_VERSION="2.8.0" +GNUTLS_MIN_VERSION="0.8.1" +GNUTLS_NEW_MIN_VERSION="1.0.0" GNUTLS_VERSION="" GNUTLS_CFLAGS="" GNUTLS_LIBS="" @@ -873,18 +812,27 @@ if test "z$with_gnutls" = "zno" ; then AC_MSG_CHECKING(for gnutls libraries >= $GNUTLS_MIN_VERSION) AC_MSG_RESULT(no) GNUTLS_FOUND="without" -elif test "z$with_gnutls" = "z" -a "z$PKGCONFIG_FOUND" = "zyes" ; then - PKG_CHECK_MODULES(GNUTLS, gnutls >= $GNUTLS_MIN_VERSION, +elif test "z$with_gnutls" = "z" -a "z$PKG_CONFIG_ENABLED" = "zyes" ; then + PKG_CHECK_MODULES(GNUTLS, gnutls >= $GNUTLS_NEW_MIN_VERSION, [GNUTLS_FOUND=yes], [GNUTLS_FOUND=no]) if test "z$GNUTLS_FOUND" = "zno" ; then - PKG_CHECK_MODULES(GNUTLS, libgnutls >= $GNUTLS_MIN_VERSION, + PKG_CHECK_MODULES(GNUTLS, libgnutls >= $GNUTLS_NEW_MIN_VERSION, [GNUTLS_FOUND=yes], [GNUTLS_FOUND=no]) fi + + if test "z$GNUTLS_FOUND" = "zno" ; then + PKG_CHECK_MODULES(GNUTLS, libgnutls >= $GNUTLS_MIN_VERSION, + [GNUTLS_FOUND=yes], + [GNUTLS_FOUND=no]) + if test "z$GNUTLS_FOUND" = "zyes" ; then + GNUTLS_CFLAGS="$GNUTLS_CFLAGS -DXMLSEC_GNUTLS_OLD=1" + fi + fi fi -if test "z$GNUTLS_FOUND" = "zno" ; then +if test "z$GNUTLS_FOUND" = "zno" ; then AC_MSG_CHECKING(for gnutls libraries >= $GNUTLS_MIN_VERSION) if test "z$with_gnutls" != "z" ; then GNUTLS_CONFIG=$with_gnutls/bin/$GNUTLS_CONFIG @@ -892,7 +840,7 @@ if test "z$GNUTLS_FOUND" = "zno" ; then if ! $GNUTLS_CONFIG --version > /dev/null 2>&1 ; then if test "z$with_gnutls" != "z" ; then AC_MSG_ERROR(Unable to find gnutls at '$with_gnutls') - else + else AC_MSG_RESULT(no) fi else @@ -900,10 +848,16 @@ if test "z$GNUTLS_FOUND" = "zno" ; then minvers=`echo $GNUTLS_MIN_VERSION | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` if test "$vers" -ge "$minvers" ; then GNUTLS_CFLAGS="$GNUTLS_CFLAGS `$GNUTLS_CONFIG --cflags`" - GNUTLS_LIBS="$GNUTLS_LIBS `$GNUTLS_CONFIG --libs`" + GNUTLS_LIBS="$GNUTLS_LIBS `$GNUTLS_CONFIG --libs`" GNUTLS_FOUND=yes + + new_minvers=`echo $GNUTLS_NEW_MIN_VERSION | awk -F. '{ printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'` + if test "$vers" -lt "$new_minvers" ; then + GNUTLS_CFLAGS="$GNUTLS_CFLAGS -DXMLSEC_GNUTLS_OLD=1" + fi + AC_MSG_RESULT(yes) else - AC_MSG_ERROR(You need at least gnutls $GNUTLS_MIN_VERSION for this version of $XMLSEC_PACKAGE) + AC_MSG_ERROR(You need at least gnutls $GNUTLS_MIN_VERSION for this version of $XMLSEC_PACKAGE) fi fi fi @@ -911,13 +865,15 @@ fi if test "z$GNUTLS_FOUND" = "zyes" ; then XMLSEC_NO_GNUTLS="0" GNUTLS_CFLAGS="$GNUTLS_CFLAGS -DXMLSEC_CRYPTO_GNUTLS=1" - XMLSEC_CRYPTO_LIST="$XMLSEC_CRYPTO_LIST gnutls" - - dnl xmlsec-gnutls is using xmlsec-gcrypt - if test "z$GCRYPT_FOUND" != "zyes" ; then - AC_MSG_ERROR(xmlsec-gnutls library requires xmlsec-gcrypt library which is disabled or missing) - fi + dnl first crypto library is default one + if test "z$XMLSEC_CRYPTO" = "z" ; then + XMLSEC_CRYPTO="gnutls" + XMLSEC_CRYPTO_LIB="$GNUTLS_CRYPTO_LIB" + XMLSEC_CRYPTO_CFLAGS="$GNUTLS_CFLAGS" + XMLSEC_CRYPTO_LIBS="$GNUTLS_LIBS" + fi + XMLSEC_CRYPTO_LIST="$XMLSEC_CRYPTO_LIST gnutls" else XMLSEC_CRYPTO_DISABLED_LIST="$XMLSEC_CRYPTO_DISABLED_LIST gnutls" fi @@ -929,7 +885,6 @@ AC_SUBST(GNUTLS_LIBS) AC_SUBST(GNUTLS_CRYPTO_LIB) AC_SUBST(GNUTLS_MIN_VERSION) - dnl ========================================================================== dnl See if we can find MSCrypto dnl ========================================================================== @@ -974,6 +929,13 @@ if test "z$MSCRYPTO_ENABLE" = "zyes" ; then MSCRYPTO_LIBS="-lcrypt32";; esac + dnl first crypto library is default one + if test "z$XMLSEC_CRYPTO" = "z" ; then + XMLSEC_CRYPTO="mscrypto" + XMLSEC_CRYPTO_LIB="$MSCRYPTO_CRYPTO_LIB" + XMLSEC_CRYPTO_CFLAGS="$MSCRYPTO_CFLAGS" + XMLSEC_CRYPTO_LIBS="$MSCRYPTO_LIBS" + fi XMLSEC_CRYPTO_LIST="$XMLSEC_CRYPTO_LIST mscrypto" else XMLSEC_CRYPTO_DISABLED_LIST="$XMLSEC_CRYPTO_DISABLED_LIST mscrypto" @@ -985,107 +947,15 @@ AC_SUBST(MSCRYPTO_CFLAGS) AC_SUBST(MSCRYPTO_LIBS) AC_SUBST(MSCRYPTO_CRYPTO_LIB) - dnl ========================================================================== -dnl Figure out the default crypt - the first crypto library wins +dnl Do we have a crypto library? dnl ========================================================================== -XMLSEC_CRYPTO="" -XMLSEC_CRYPTO_LIB="" -XMLSEC_CRYPTO_CFLAGS="" -XMLSEC_CRYPTO_LIBS="" -AC_MSG_CHECKING(for default crypto library) -AC_ARG_WITH(default_crypto, [ --with-default-crypto=name default crypto name]) - -# check the argument -case "z$with_default_crypto" in - 'zmscrypto') - if test "z$XMLSEC_NO_MSCRYPTO" != "z1" ; then - XMLSEC_CRYPTO="mscrypto" - else - AC_MSG_ERROR('$with_default_crypto' is specified as default crypto library but it is not configured or found) - fi - ;; - 'zopenssl') - if test "z$XMLSEC_NO_OPENSSL" != "z1" ; then - XMLSEC_CRYPTO="openssl" - else - AC_MSG_ERROR('$with_default_crypto' is specified as default crypto library but it is not configured or found) - fi - ;; - 'znss') - if test "z$XMLSEC_NO_NSS" != "z1" ; then - XMLSEC_CRYPTO="nss" - else - AC_MSG_ERROR('$with_default_crypto' is specified as default crypto library but it is not configured or found) - fi - ;; - 'zgnutls') - if test "z$XMLSEC_NO_GNUTLS" != "z1" ; then - XMLSEC_CRYPTO="gnutls" - else - AC_MSG_ERROR('$with_default_crypto' is specified as default crypto library but it is not configured or found) - fi - ;; - 'zgcrypt') - if test "z$XMLSEC_NO_GCRYPT" != "z1" ; then - XMLSEC_CRYPTO="gcrypt" - else - AC_MSG_ERROR('$with_default_crypto' is specified as default crypto library but it is not configured or found) - fi - ;; - 'z') - dnl The first crypto library wins - if test "z$XMLSEC_NO_MSCRYPTO" != "z1" ; then - XMLSEC_CRYPTO="mscrypto" - elif test "z$XMLSEC_NO_OPENSSL" != "z1" ; then - XMLSEC_CRYPTO="openssl" - elif test "z$XMLSEC_NO_NSS" != "z1" ; then - XMLSEC_CRYPTO="nss" - elif test "z$XMLSEC_NO_GNUTLS" != "z1" ; then - XMLSEC_CRYPTO="gnutls" - elif test "z$XMLSEC_NO_GCRYPT" != "z1" ; then - XMLSEC_CRYPTO="gcrypt" - else - AC_MSG_ERROR(At least one crypto library should exist for $XMLSEC_PACKAGE) - fi - ;; - *) - AC_MSG_ERROR(The value '$with_default_crypto' is not a recongnized crypto library name) - ;; -esac - -dnl Set the flags for default crypto lib -case "$XMLSEC_CRYPTO" in - 'mscrypto') - XMLSEC_CRYPTO_LIB="$MSCRYPTO_CRYPTO_LIB" - XMLSEC_CRYPTO_CFLAGS="$MSCRYPTO_CFLAGS" - XMLSEC_CRYPTO_LIBS="$MSCRYPTO_LIBS" - ;; - 'openssl') - XMLSEC_CRYPTO_LIB="$OPENSSL_CRYPTO_LIB" - XMLSEC_CRYPTO_CFLAGS="$OPENSSL_CFLAGS" - XMLSEC_CRYPTO_LIBS="$OPENSSL_LIBS" - ;; - 'nss') - XMLSEC_CRYPTO_LIB="$NSS_CRYPTO_LIB" - XMLSEC_CRYPTO_CFLAGS="$NSS_CFLAGS" - XMLSEC_CRYPTO_LIBS="$NSS_LIBS" - ;; - 'gnutls') - XMLSEC_CRYPTO_LIB="$GNUTLS_CRYPTO_LIB" - XMLSEC_CRYPTO_CFLAGS="$GNUTLS_CFLAGS" - XMLSEC_CRYPTO_LIBS="$GNUTLS_LIBS" - ;; - 'gcrypt') - XMLSEC_CRYPTO_LIB="$GCRYPT_CRYPTO_LIB" - XMLSEC_CRYPTO_CFLAGS="$GCRYPT_CFLAGS" - XMLSEC_CRYPTO_LIBS="$GCRYPT_LIBS" - ;; - *) - AC_MSG_ERROR(The value \"$XMLSEC_CRYPTO\" is not a recongnized crypto library name) - ;; -esac -AC_MSG_RESULT(yes ('$XMLSEC_CRYPTO')) +AC_MSG_CHECKING(for crypto library) +if test "z$XMLSEC_CRYPTO" = "z" ; then + AC_MSG_ERROR(At least one crypto library should exist for $XMLSEC_PACKAGE) +else + AC_MSG_RESULT(yes ('$XMLSEC_CRYPTO')) +fi dnl ========================================================================== dnl See do we need MD5 suport @@ -1445,7 +1315,7 @@ if test "z$enable_skm" = "zno" ; then AC_MSG_RESULT(no) else AC_MSG_RESULT(yes) -fi +fi dnl ========================================================================== dnl See do we need templates tests @@ -1527,14 +1397,8 @@ XMLSEC_OPENSSL_LIBS="-L${libdir} -l$OPENSSL_CRYPTO_LIB $XMLSEC_CORE_LIBS $OPENSS AC_SUBST(XMLSEC_OPENSSL_CFLAGS) AC_SUBST(XMLSEC_OPENSSL_LIBS) -XMLSEC_GCRYPT_CFLAGS="$XMLSEC_CORE_CFLAGS $GCRYPT_CFLAGS" -XMLSEC_GCRYPT_LIBS="-L${libdir} -l$GCRYPT_CRYPTO_LIB $XMLSEC_CORE_LIBS $GCRYPT_LIBS" -AC_SUBST(XMLSEC_GCRYPT_CFLAGS) -AC_SUBST(XMLSEC_GCRYPT_LIBS) - -# xmlsec-gnutls is using xmlsec-gcrypt XMLSEC_GNUTLS_CFLAGS="$XMLSEC_CORE_CFLAGS $GNUTLS_CFLAGS" -XMLSEC_GNUTLS_LIBS="-L${libdir} -l$GNUTLS_CRYPTO_LIB -l$GCRYPT_CRYPTO_LIB $XMLSEC_CORE_LIBS $GNUTLS_LIBS" +XMLSEC_GNUTLS_LIBS="-L${libdir} -l$GNUTLS_CRYPTO_LIB $XMLSEC_CORE_LIBS $GNUTLS_LIBS" AC_SUBST(XMLSEC_GNUTLS_CFLAGS) AC_SUBST(XMLSEC_GNUTLS_LIBS) @@ -1588,10 +1452,6 @@ if test "z$XMLSEC_NO_GNUTLS" != "z1" ; then AC_CONFIG_FILES([include/xmlsec/gnutls/Makefile src/gnutls/Makefile]) fi -if test "z$XMLSEC_NO_GCRYPT" != "z1" ; then -AC_CONFIG_FILES([include/xmlsec/gcrypt/Makefile src/gcrypt/Makefile]) -fi - if test "z$XMLSEC_NO_NSS" != "z1" ; then AC_CONFIG_FILES([include/xmlsec/nss/Makefile src/nss/Makefile]) fi @@ -1622,7 +1482,6 @@ xmlsec1Conf.sh:xmlsecConf.sh.in xmlsec1-config:xmlsec-config.in xmlsec1-openssl.pc:xmlsec-openssl.pc.in xmlsec1-gnutls.pc:xmlsec-gnutls.pc.in -xmlsec1-gcrypt.pc:xmlsec-gcrypt.pc.in xmlsec1-nss.pc:xmlsec-nss.pc.in xmlsec1.spec:xmlsec.spec.in ]) diff --git a/depcomp b/depcomp index df8eea7..807b991 100755 --- a/depcomp +++ b/depcomp @@ -1,10 +1,7 @@ #! /bin/sh -# depcomp - compile a program generating dependencies as side-effects - -scriptversion=2009-04-28.21; # UTC -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free -# Software Foundation, Inc. +# depcomp - compile a program generating dependencies as side-effects +# Copyright 1999, 2000 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -17,7 +14,9 @@ scriptversion=2009-04-28.21; # UTC # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -26,45 +25,22 @@ scriptversion=2009-04-28.21; # UTC # Originally written by Alexandre Oliva . -case $1 in - '') - echo "$0: No command. Try \`$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: depcomp [--help] [--version] PROGRAM [ARGS] - -Run PROGRAMS ARGS to compile a file, generating dependencies -as side-effects. - -Environment variables: - depmode Dependency tracking mode. - source Source file read by `PROGRAMS ARGS'. - object Object file output by `PROGRAMS ARGS'. - DEPDIR directory where to store dependencies. - depfile Dependency file to output. - tmpdepfile Temporary file to use when outputing dependencies. - libtool Whether libtool is used (yes/no). - -Report bugs to . -EOF - exit $? - ;; - -v | --v*) - echo "depcomp $scriptversion" - exit $? - ;; -esac - if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi +# `libtool' can also be set to `yes' or `no'. + +if test -z "$depfile"; then + base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'` + dir=`echo "$object" | sed 's,/.*$,/,'` + if test "$dir" = "$object"; then + dir= + fi + # FIXME: should be _deps on DOS. + depfile="$dir.deps/$base" +fi -# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. -depfile=${depfile-`echo "$object" | - sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" @@ -85,34 +61,12 @@ if test "$depmode" = dashXmstdout; then depmode=dashmstdout fi -cygpath_u="cygpath -u -f -" -if test "$depmode" = msvcmsys; then - # This is just like msvisualcpp but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u="sed s,\\\\\\\\,/,g" - depmode=msvisualcpp -fi - case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. -## Unfortunately, FreeBSD c89 acceptance of flags depends upon -## the command line argument order; so add the flags where they -## appear in depend2.am. Note that the slowdown incurred here -## affects only configure: in makefiles, %FASTDEP% shortcuts this. - for arg - do - case $arg in - -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; - *) set fnord "$@" "$arg" ;; - esac - shift # fnord - shift # $arg - done - "$@" + "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else @@ -199,14 +153,14 @@ sgi) ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' -' ' ' >> "$depfile" - echo >> "$depfile" +' ' ' >> $depfile + echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> "$depfile" + >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile @@ -218,43 +172,31 @@ sgi) aix) # The C for AIX Compiler uses -M and outputs the dependencies - # in a .u file. In older versions, this file always lives in the - # current directory. Also, the AIX compiler puts `$object:' at the - # start of each line; $object doesn't have directory information. - # Version 6 uses the directory in both cases. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + # in a .u file. This file always lives in the current directory. + # Also, the AIX compiler puts `$object:' at the start of each line; + # $object doesn't have directory information. + stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'` + tmpdepfile="$stripped.u" + outname="$stripped.o" if test "$libtool" = yes; then - tmpdepfile1=$dir$base.u - tmpdepfile2=$base.u - tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else - tmpdepfile1=$dir$base.u - tmpdepfile2=$dir$base.u - tmpdepfile3=$dir$base.u "$@" -M fi - stat=$? + stat=$? if test $stat -eq 0; then : else - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + rm -f "$tmpdepfile" exit $stat fi - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - do - test -f "$tmpdepfile" && break - done if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a tab and a space in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" + sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile @@ -264,89 +206,6 @@ aix) rm -f "$tmpdepfile" ;; -icc) - # Intel's C compiler understands `-MD -MF file'. However on - # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c - # ICC 7.0 will fill foo.d with something like - # foo.o: sub/foo.c - # foo.o: sub/foo.h - # which is wrong. We want: - # sub/foo.o: sub/foo.c - # sub/foo.o: sub/foo.h - # sub/foo.c: - # sub/foo.h: - # ICC 7.1 will output - # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using \ : - # foo.o: sub/foo.c ... \ - # sub/foo.h ... \ - # ... - - "$@" -MD -MF "$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - # Each line is of the form `foo.o: dependent.h', - # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process this invocation - # correctly. Breaking it into two sed invocations is a workaround. - sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | - sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -hp2) - # The "hp" stanza above does not work with aCC (C++) and HP's ia64 - # compilers, which have integrated preprocessors. The correct option - # to use with these is +Maked; it writes dependencies to a file named - # 'foo.d', which lands next to the object file, wherever that - # happens to be. - # Much of this is similar to the tru64 case; see comments there. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` - if test "$libtool" = yes; then - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir.libs/$base.d - "$@" -Wc,+Maked - else - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir$base.d - "$@" +Maked - fi - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile1" "$tmpdepfile2" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" - do - test -f "$tmpdepfile" && break - done - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" - # Add `dependent.h:' lines. - sed -ne '2,${ - s/^ *// - s/ \\*$// - s/$/:/ - p - }' "$tmpdepfile" >> "$depfile" - else - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" "$tmpdepfile2" - ;; - tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. @@ -358,47 +217,31 @@ tru64) base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then - # With Tru64 cc, shared objects can also be used to make a - # static library. This mechanism is used in libtool 1.4 series to - # handle both shared and static libraries in a single compilation. - # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. - # - # With libtool 1.5 this exception was removed, and libtool now - # generates 2 separate objects for the 2 libraries. These two - # compilations output dependencies in $dir.libs/$base.o.d and - # in $dir$base.o.d. We have to check for both files, because - # one of the two compilations can be disabled. We should prefer - # $dir$base.o.d over $dir.libs/$base.o.d because the latter is - # automatically cleaned when .libs/ is deleted, while ignoring - # the former would cause a distcleancheck panic. - tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 - tmpdepfile2=$dir$base.o.d # libtool 1.5 - tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 - tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 + tmpdepfile1="$dir.libs/$base.lo.d" + tmpdepfile2="$dir.libs/$base.d" "$@" -Wc,-MD else - tmpdepfile1=$dir$base.o.d - tmpdepfile2=$dir$base.d - tmpdepfile3=$dir$base.d - tmpdepfile4=$dir$base.d + tmpdepfile1="$dir$base.o.d" + tmpdepfile2="$dir$base.d" "$@" -MD fi stat=$? if test $stat -eq 0; then : else - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" - do - test -f "$tmpdepfile" && break - done + if test -f "$tmpdepfile1"; then + tmpdepfile="$tmpdepfile1" + else + tmpdepfile="$tmpdepfile2" + fi if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a tab and a space in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + # That's a space and a tab in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi @@ -411,18 +254,20 @@ tru64) dashmstdout) # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout, regardless of -o. + # always write the proprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do + while test $1 != '--mode=compile'; do shift done shift fi - # Remove `-o $object'. + # Remove `-o $object'. We will use -o /dev/null later, + # however we can't do the remplacement now because + # `-o $object' might simply not be used IFS=" " for arg do @@ -442,11 +287,7 @@ dashmstdout) done test -z "$dashmflag" && dashmflag=-M - # Require at least two characters before searching for `:' - # in the target name. This is to cope with DOS-style filenames: - # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. - "$@" $dashmflag | - sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + "$@" -o /dev/null $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' @@ -465,41 +306,25 @@ dashXmstdout) makedepend) "$@" || exit $? - # Remove any Libtool call - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi # X makedepend shift - cleared=no eat=no - for arg - do + cleared=no + for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac - if test $eat = yes; then - eat=no - continue - fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; - # Strip any option that makedepend may not understand. Remove - # the object too, otherwise makedepend will parse it as a source file. - -arch) - eat=yes ;; - -*|$object) + -*) ;; *) set fnord "$@" "$arg"; shift ;; esac done - obj_suffix=`echo "$object" | sed 's/^.*\././'` + obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" @@ -514,12 +339,12 @@ makedepend) cpp) # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout. + # always write the proprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do + while test $1 != '--mode=compile'; do shift done shift @@ -545,8 +370,7 @@ cpp) done "$@" -E | - sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ - -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | + sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" @@ -557,27 +381,13 @@ cpp) msvisualcpp) # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout. + # always write the proprocessed file to stdout, regardless of -o, + # because we must use -o when running libtool. "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - IFS=" " for arg do case "$arg" in - -o) - shift - ;; - $object) - shift - ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift @@ -590,23 +400,16 @@ msvisualcpp) ;; esac done - "$@" -E 2>/dev/null | - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" + "$@" -E | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" - sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" - sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; -msvcmsys) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - none) exec "$@" ;; @@ -618,13 +421,3 @@ none) esac exit 0 - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff --git a/docs/Makefile.am b/docs/Makefile.am index e1957bb..65a0f8a 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -40,13 +40,6 @@ docs-format: fi; \ mv $$i.tmp $$i; \ done) - @(echo "Cleaning html documents"; \ - for i in `find . -name "*.html" -print`; \ - do \ - echo Cleaning $$i ; \ - sed 's/\xA0/ /g' $$i > $$i.tmp ; \ - mv $$i.tmp $$i ; \ - done) dist-hook: @$(CP) -p $(srcdir)/*.html $(distdir) diff --git a/docs/Makefile.in b/docs/Makefile.in index 1edd1f8..eb6bd97 100644 --- a/docs/Makefile.in +++ b/docs/Makefile.in @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -36,13 +36,10 @@ host_triplet = @host@ subdir = docs DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @@ -113,10 +110,6 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ -GCRYPT_CFLAGS = @GCRYPT_CFLAGS@ -GCRYPT_CRYPTO_LIB = @GCRYPT_CRYPTO_LIB@ -GCRYPT_LIBS = @GCRYPT_LIBS@ -GCRYPT_MIN_VERSION = @GCRYPT_MIN_VERSION@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@ GNUTLS_CRYPTO_LIB = @GNUTLS_CRYPTO_LIB@ GNUTLS_LIBS = @GNUTLS_LIBS@ @@ -178,10 +171,8 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKGCONFIG_PRESENT = @PKGCONFIG_PRESENT@ PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PKG_CONFIG_ENABLED = @PKG_CONFIG_ENABLED@ RANLIB = @RANLIB@ RM = @RM@ SED = @SED@ @@ -208,8 +199,6 @@ XMLSEC_DL_INCLUDES = @XMLSEC_DL_INCLUDES@ XMLSEC_DL_LIBS = @XMLSEC_DL_LIBS@ XMLSEC_DOCDIR = @XMLSEC_DOCDIR@ XMLSEC_EXTRA_LDFLAGS = @XMLSEC_EXTRA_LDFLAGS@ -XMLSEC_GCRYPT_CFLAGS = @XMLSEC_GCRYPT_CFLAGS@ -XMLSEC_GCRYPT_LIBS = @XMLSEC_GCRYPT_LIBS@ XMLSEC_GNUTLS_CFLAGS = @XMLSEC_GNUTLS_CFLAGS@ XMLSEC_GNUTLS_LIBS = @XMLSEC_GNUTLS_LIBS@ XMLSEC_LIBDIR = @XMLSEC_LIBDIR@ @@ -219,7 +208,6 @@ XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING = @XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING@ XMLSEC_NO_CRYPTO_DYNAMIC_LOADING = @XMLSEC_NO_CRYPTO_DYNAMIC_LOADING@ XMLSEC_NO_DES = @XMLSEC_NO_DES@ XMLSEC_NO_DSA = @XMLSEC_NO_DSA@ -XMLSEC_NO_GCRYPT = @XMLSEC_NO_GCRYPT@ XMLSEC_NO_GNUTLS = @XMLSEC_NO_GNUTLS@ XMLSEC_NO_GOST = @XMLSEC_NO_GOST@ XMLSEC_NO_HMAC = @XMLSEC_NO_HMAC@ @@ -358,7 +346,7 @@ clean-libtool: # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): - @fail= failcom='exit 1'; \ + @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -383,7 +371,7 @@ $(RECURSIVE_TARGETS): fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): - @fail= failcom='exit 1'; \ + @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -692,13 +680,6 @@ docs-format: fi; \ mv $$i.tmp $$i; \ done) - @(echo "Cleaning html documents"; \ - for i in `find . -name "*.html" -print`; \ - do \ - echo Cleaning $$i ; \ - sed 's/\xA0/ /g' $$i > $$i.tmp ; \ - mv $$i.tmp $$i ; \ - done) dist-hook: @$(CP) -p $(srcdir)/*.html $(distdir) diff --git a/docs/api/Makefile.am b/docs/api/Makefile.am index 63c3e00..e674138 100644 --- a/docs/api/Makefile.am +++ b/docs/api/Makefile.am @@ -1,5 +1,11 @@ # +# To remove "bad" chars, run the following command # +# for i in `grep -l $'\xA0' *` ; do \ +# echo $i ; \ +# sed 's/\xA0/ /g' $i > $i.tmp ; \ +# mv $i.tmp $i ; \ +# done # NULL= TOP=../.. @@ -32,9 +38,9 @@ all: docs: sgml html clean-sources -# need to cleanup "bad" chars html: sgml xmlsec.sgml xmlsec-index gtkdoc-mkhtml xmlsec xmlsec.sgml + # # Prepeare sgml files from sources for each library. We are also @@ -59,12 +65,6 @@ sgml: templates --output-dir=sgml/gnutls \ --source-dir=$(DOC_SOURCE_DIR)/src/gnutls \ --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/gnutls - -@gtkdoc-mkdb --module=xmlsec-gcrypt \ - --main-sgml-file=xmlsec-gcrypt.sgml \ - --tmpl-dir=tmpl/gcrypt \ - --output-dir=sgml/gcrypt \ - --source-dir=$(DOC_SOURCE_DIR)/src/gcrypt \ - --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/gcrypt -@gtkdoc-mkdb --module=xmlsec-nss \ --main-sgml-file=xmlsec-nss.sgml \ --tmpl-dir=tmpl/nss \ @@ -92,8 +92,6 @@ templates: scan --output-dir=tmpl/openssl -@gtkdoc-mktmpl --module=xmlsec-gnutls \ --output-dir=tmpl/gnutls - -@gtkdoc-mktmpl --module=xmlsec-gcrypt \ - --output-dir=tmpl/gcrypt -@gtkdoc-mktmpl --module=xmlsec-nss \ --output-dir=tmpl/nss -@gtkdoc-mktmpl --module=xmlsec-mscrypto \ @@ -101,27 +99,18 @@ templates: scan scan: doc_sources example_sources -@gtkdoc-scan --module=xmlsec \ - --rebuild-sections \ --source-dir=$(DOC_SOURCE_DIR)/src/base \ --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/base -@gtkdoc-scan --module=xmlsec-openssl \ - --rebuild-sections \ --source-dir=$(DOC_SOURCE_DIR)/src/openssl \ --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/openssl -@gtkdoc-scan --module=xmlsec-gnutls \ - --rebuild-sections \ --source-dir=$(DOC_SOURCE_DIR)/src/gnutls \ --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/gnutls - -@gtkdoc-scan --module=xmlsec-gcrypt \ - --rebuild-sections \ - --source-dir=$(DOC_SOURCE_DIR)/src/gcrypt \ - --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/gcrypt -@gtkdoc-scan --module=xmlsec-nss \ - --rebuild-sections \ --source-dir=$(DOC_SOURCE_DIR)/src/nss \ --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/nss -@gtkdoc-scan --module=xmlsec-mscrypto \ - --rebuild-sections \ --source-dir=$(DOC_SOURCE_DIR)/src/mscrypto \ --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/mscrypto @@ -153,7 +142,7 @@ doc_sources: $(DOC_SOURCE_FILES) # # Create index for all functions. For macros and defines need to add -CAPS suffix # -xmlsec-index: scan +xmlsec-index: scan @grep -h '.*' xmlsec-*decl.txt | \ grep -v 'extern' | \ sort -u | \ diff --git a/docs/api/Makefile.in b/docs/api/Makefile.in index e9e020a..993e548 100644 --- a/docs/api/Makefile.in +++ b/docs/api/Makefile.in @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. +# Makefile.in generated by automake 1.11 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -36,13 +36,10 @@ host_triplet = @host@ subdir = docs/api DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @@ -73,10 +70,6 @@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ -GCRYPT_CFLAGS = @GCRYPT_CFLAGS@ -GCRYPT_CRYPTO_LIB = @GCRYPT_CRYPTO_LIB@ -GCRYPT_LIBS = @GCRYPT_LIBS@ -GCRYPT_MIN_VERSION = @GCRYPT_MIN_VERSION@ GNUTLS_CFLAGS = @GNUTLS_CFLAGS@ GNUTLS_CRYPTO_LIB = @GNUTLS_CRYPTO_LIB@ GNUTLS_LIBS = @GNUTLS_LIBS@ @@ -138,10 +131,8 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PKGCONFIG_PRESENT = @PKGCONFIG_PRESENT@ PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PKG_CONFIG_ENABLED = @PKG_CONFIG_ENABLED@ RANLIB = @RANLIB@ RM = @RM@ SED = @SED@ @@ -168,8 +159,6 @@ XMLSEC_DL_INCLUDES = @XMLSEC_DL_INCLUDES@ XMLSEC_DL_LIBS = @XMLSEC_DL_LIBS@ XMLSEC_DOCDIR = @XMLSEC_DOCDIR@ XMLSEC_EXTRA_LDFLAGS = @XMLSEC_EXTRA_LDFLAGS@ -XMLSEC_GCRYPT_CFLAGS = @XMLSEC_GCRYPT_CFLAGS@ -XMLSEC_GCRYPT_LIBS = @XMLSEC_GCRYPT_LIBS@ XMLSEC_GNUTLS_CFLAGS = @XMLSEC_GNUTLS_CFLAGS@ XMLSEC_GNUTLS_LIBS = @XMLSEC_GNUTLS_LIBS@ XMLSEC_LIBDIR = @XMLSEC_LIBDIR@ @@ -179,7 +168,6 @@ XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING = @XMLSEC_NO_APPS_CRYPTO_DYNAMIC_LOADING@ XMLSEC_NO_CRYPTO_DYNAMIC_LOADING = @XMLSEC_NO_CRYPTO_DYNAMIC_LOADING@ XMLSEC_NO_DES = @XMLSEC_NO_DES@ XMLSEC_NO_DSA = @XMLSEC_NO_DSA@ -XMLSEC_NO_GCRYPT = @XMLSEC_NO_GCRYPT@ XMLSEC_NO_GNUTLS = @XMLSEC_NO_GNUTLS@ XMLSEC_NO_GOST = @XMLSEC_NO_GOST@ XMLSEC_NO_HMAC = @XMLSEC_NO_HMAC@ @@ -265,7 +253,13 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # +# To remove "bad" chars, run the following command # +# for i in `grep -l $'\xA0' *` ; do \ +# echo $i ; \ +# sed 's/\xA0/ /g' $i > $i.tmp ; \ +# mv $i.tmp $i ; \ +# done # NULL = TOP = ../.. @@ -484,7 +478,6 @@ all: docs: sgml html clean-sources -# need to cleanup "bad" chars html: sgml xmlsec.sgml xmlsec-index gtkdoc-mkhtml xmlsec xmlsec.sgml @@ -511,12 +504,6 @@ sgml: templates --output-dir=sgml/gnutls \ --source-dir=$(DOC_SOURCE_DIR)/src/gnutls \ --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/gnutls - -@gtkdoc-mkdb --module=xmlsec-gcrypt \ - --main-sgml-file=xmlsec-gcrypt.sgml \ - --tmpl-dir=tmpl/gcrypt \ - --output-dir=sgml/gcrypt \ - --source-dir=$(DOC_SOURCE_DIR)/src/gcrypt \ - --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/gcrypt -@gtkdoc-mkdb --module=xmlsec-nss \ --main-sgml-file=xmlsec-nss.sgml \ --tmpl-dir=tmpl/nss \ @@ -544,8 +531,6 @@ templates: scan --output-dir=tmpl/openssl -@gtkdoc-mktmpl --module=xmlsec-gnutls \ --output-dir=tmpl/gnutls - -@gtkdoc-mktmpl --module=xmlsec-gcrypt \ - --output-dir=tmpl/gcrypt -@gtkdoc-mktmpl --module=xmlsec-nss \ --output-dir=tmpl/nss -@gtkdoc-mktmpl --module=xmlsec-mscrypto \ @@ -553,27 +538,18 @@ templates: scan scan: doc_sources example_sources -@gtkdoc-scan --module=xmlsec \ - --rebuild-sections \ --source-dir=$(DOC_SOURCE_DIR)/src/base \ --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/base -@gtkdoc-scan --module=xmlsec-openssl \ - --rebuild-sections \ --source-dir=$(DOC_SOURCE_DIR)/src/openssl \ --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/openssl -@gtkdoc-scan --module=xmlsec-gnutls \ - --rebuild-sections \ --source-dir=$(DOC_SOURCE_DIR)/src/gnutls \ --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/gnutls - -@gtkdoc-scan --module=xmlsec-gcrypt \ - --rebuild-sections \ - --source-dir=$(DOC_SOURCE_DIR)/src/gcrypt \ - --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/gcrypt -@gtkdoc-scan --module=xmlsec-nss \ - --rebuild-sections \ --source-dir=$(DOC_SOURCE_DIR)/src/nss \ --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/nss -@gtkdoc-scan --module=xmlsec-mscrypto \ - --rebuild-sections \ --source-dir=$(DOC_SOURCE_DIR)/src/mscrypto \ --source-dir=$(DOC_SOURCE_DIR)/include/xmlsec/mscrypto @@ -605,7 +581,7 @@ doc_sources: $(DOC_SOURCE_FILES) # # Create index for all functions. For macros and defines need to add -CAPS suffix # -xmlsec-index: scan +xmlsec-index: scan @grep -h '.*' xmlsec-*decl.txt | \ grep -v 'extern' | \ sort -u | \ diff --git a/docs/api/chapters/compiling-and-linking.sgml b/docs/api/chapters/compiling-and-linking.sgml index f184c6a..2cc6e44 100644 --- a/docs/api/chapters/compiling-and-linking.sgml +++ b/docs/api/chapters/compiling-and-linking.sgml @@ -161,7 +161,7 @@ clean: xmlsec1-config script Using xmlsec1-config script in a Makefile - to select crypto engine (e.g. gnutls) at linking time. + to select crypto engine (gnutls) at linking time. libxml library; libxslt library; - crypto library (OpenSSL, GnuTLS, GCrypt, NSS, ...); + crypto library (OpenSSL, GnuTLS, NSS, ...); xmlsec library (xmlSecInit and xmlSecShutdown diff --git a/docs/api/chapters/new-crypto.sgml b/docs/api/chapters/new-crypto.sgml index 5219141..08a936e 100644 --- a/docs/api/chapters/new-crypto.sgml +++ b/docs/api/chapters/new-crypto.sgml @@ -4,7 +4,7 @@ Overview. XML Security Library can support practicaly any cryptographic library. Currently, it has "out-of-the-box" support for OpenSSL, - MSCrypto, NSS, GnuTLS and GCrypt. If your favorite library is not supported yet then + NSS and GnuTLS. If your favorite library is not supported yet then you can write necessary code yourself. If you and your company (university, ...) are willing to share the results of your work I would be happy to add support for new libraries to the main XML Security @@ -14,7 +14,7 @@ separates the cryptographic library (engine) specific code in an "xmlsec-<crypto>" library (where "<crypto>" is - "openssl", "mscrypt", "gnutls", "gcrypt", "nss", etc.) which includes following items: + "openssl", "gnutls", "nss", etc.) which includes following items: xmlSecCryptoApp* functions. @@ -186,7 +186,7 @@ src/mycrypto/Makefile Compiling the results. diff --git a/docs/api/home.png b/docs/api/home.png index 1700361..4cb8729 100644 Binary files a/docs/api/home.png and b/docs/api/home.png differ diff --git a/docs/api/images/diagrams.sxd b/docs/api/images/diagrams.sxd index 53bbeb5..aab2bdd 100644 Binary files a/docs/api/images/diagrams.sxd and b/docs/api/images/diagrams.sxd differ diff --git a/docs/api/images/encryption-structure.png b/docs/api/images/encryption-structure.png index 16c78af..fd70c0e 100644 Binary files a/docs/api/images/encryption-structure.png and b/docs/api/images/encryption-structure.png differ diff --git a/docs/api/images/signature-structure.png b/docs/api/images/signature-structure.png index dd705ba..5783e21 100644 Binary files a/docs/api/images/signature-structure.png and b/docs/api/images/signature-structure.png differ diff --git a/docs/api/images/transforms-chain.png b/docs/api/images/transforms-chain.png index e8eb219..ba8e51a 100644 Binary files a/docs/api/images/transforms-chain.png and b/docs/api/images/transforms-chain.png differ diff --git a/docs/api/index.html b/docs/api/index.html index cc534d9..d0e95a0 100644 --- a/docs/api/index.html +++ b/docs/api/index.html @@ -259,13 +259,6 @@
crypto -- Crypto transforms implementation for GnuTLS.
-
XML Security Library for GCrypt API Reference.
-
-
-app -- Application functions implementation for GnuTLS.
-
-crypto -- Crypto transforms implementation for GCrypt.
-
XML Security Library for NSS API Reference.
diff --git a/docs/api/index.sgml b/docs/api/index.sgml index eb112aa..cccfd3f 100644 --- a/docs/api/index.sgml +++ b/docs/api/index.sgml @@ -28,8 +28,6 @@ - - diff --git a/docs/api/left.png b/docs/api/left.png index 2d05b3d..b3b7b56 100644 Binary files a/docs/api/left.png and b/docs/api/left.png differ diff --git a/docs/api/right.png b/docs/api/right.png index 92832e3..52df444 100644 Binary files a/docs/api/right.png and b/docs/api/right.png differ diff --git a/docs/api/up.png b/docs/api/up.png index 85b3e2a..b974dce 100644 Binary files a/docs/api/up.png and b/docs/api/up.png differ diff --git a/docs/api/xmlsec-app.html b/docs/api/xmlsec-app.html index b6fa538..07e50d1 100644 --- a/docs/api/xmlsec-app.html +++ b/docs/api/xmlsec-app.html @@ -90,147 +90,147 @@

Name

app -- Crypto-engine independent application support function.

Synopsis

-
intxmlSecCryptoInit                    (void);
-intxmlSecCryptoShutdown                (void);
-intxmlSecCryptoKeysMngrInit            (xmlSecKeysMngrPtr mngr);
+
int                 xmlSecCryptoInit                    (void);
+int                 xmlSecCryptoShutdown                (void);
+int                 xmlSecCryptoKeysMngrInit            (xmlSecKeysMngrPtr mngr);
 #define             xmlSecKeyDataAesId
-xmlSecKeyDataIdxmlSecKeyDataAesGetKlass            (void);
+xmlSecKeyDataId     xmlSecKeyDataAesGetKlass            (void);
 #define             xmlSecKeyDataDesId
-xmlSecKeyDataIdxmlSecKeyDataDesGetKlass            (void);
+xmlSecKeyDataId     xmlSecKeyDataDesGetKlass            (void);
 #define             xmlSecKeyDataDsaId
-xmlSecKeyDataIdxmlSecKeyDataDsaGetKlass            (void);
+xmlSecKeyDataId     xmlSecKeyDataDsaGetKlass            (void);
 #define             xmlSecKeyDataGost2001Id
-xmlSecKeyDataIdxmlSecKeyDataGost2001GetKlass       (void);
+xmlSecKeyDataId     xmlSecKeyDataGost2001GetKlass       (void);
 #define             xmlSecKeyDataHmacId
-xmlSecKeyDataIdxmlSecKeyDataHmacGetKlass           (void);
+xmlSecKeyDataId     xmlSecKeyDataHmacGetKlass           (void);
 #define             xmlSecKeyDataRsaId
-xmlSecKeyDataIdxmlSecKeyDataRsaGetKlass            (void);
+xmlSecKeyDataId     xmlSecKeyDataRsaGetKlass            (void);
 #define             xmlSecKeyDataX509Id
-xmlSecKeyDataIdxmlSecKeyDataX509GetKlass           (void);
+xmlSecKeyDataId     xmlSecKeyDataX509GetKlass           (void);
 #define             xmlSecKeyDataRawX509CertId
-xmlSecKeyDataIdxmlSecKeyDataRawX509CertGetKlass    (void);
+xmlSecKeyDataId     xmlSecKeyDataRawX509CertGetKlass    (void);
 #define             xmlSecX509StoreId
-xmlSecKeyDataStoreIdxmlSecX509StoreGetKlass           (void);
+xmlSecKeyDataStoreId  xmlSecX509StoreGetKlass           (void);
 #define             xmlSecTransformAes128CbcId
-xmlSecTransformIdxmlSecTransformAes128CbcGetKlass    (void);
+xmlSecTransformId   xmlSecTransformAes128CbcGetKlass    (void);
 #define             xmlSecTransformAes192CbcId
-xmlSecTransformIdxmlSecTransformAes192CbcGetKlass    (void);
+xmlSecTransformId   xmlSecTransformAes192CbcGetKlass    (void);
 #define             xmlSecTransformAes256CbcId
-xmlSecTransformIdxmlSecTransformAes256CbcGetKlass    (void);
+xmlSecTransformId   xmlSecTransformAes256CbcGetKlass    (void);
 #define             xmlSecTransformKWAes128Id
-xmlSecTransformIdxmlSecTransformKWAes128GetKlass     (void);
+xmlSecTransformId   xmlSecTransformKWAes128GetKlass     (void);
 #define             xmlSecTransformKWAes192Id
-xmlSecTransformIdxmlSecTransformKWAes192GetKlass     (void);
+xmlSecTransformId   xmlSecTransformKWAes192GetKlass     (void);
 #define             xmlSecTransformKWAes256Id
-xmlSecTransformIdxmlSecTransformKWAes256GetKlass     (void);
+xmlSecTransformId   xmlSecTransformKWAes256GetKlass     (void);
 #define             xmlSecTransformDes3CbcId
-xmlSecTransformIdxmlSecTransformDes3CbcGetKlass      (void);
+xmlSecTransformId   xmlSecTransformDes3CbcGetKlass      (void);
 #define             xmlSecTransformKWDes3Id
-xmlSecTransformIdxmlSecTransformKWDes3GetKlass       (void);
+xmlSecTransformId   xmlSecTransformKWDes3GetKlass       (void);
 #define             xmlSecTransformDsaSha1Id
-xmlSecTransformIdxmlSecTransformDsaSha1GetKlass      (void);
+xmlSecTransformId   xmlSecTransformDsaSha1GetKlass      (void);
 #define             xmlSecTransformGost2001GostR3411_94Id
-xmlSecTransformIdxmlSecTransformGost2001GostR3411_94GetKlass
-                                                        (void);
+xmlSecTransformId   xmlSecTransformGost2001GostR3411_94GetKlass
+                                                        (void);
 #define             xmlSecTransformHmacMd5Id
-xmlSecTransformIdxmlSecTransformHmacMd5GetKlass      (void);
+xmlSecTransformId   xmlSecTransformHmacMd5GetKlass      (void);
 #define             xmlSecTransformHmacRipemd160Id
-xmlSecTransformIdxmlSecTransformHmacRipemd160GetKlass
-                                                        (void);
+xmlSecTransformId   xmlSecTransformHmacRipemd160GetKlass
+                                                        (void);
 #define             xmlSecTransformHmacSha1Id
-xmlSecTransformIdxmlSecTransformHmacSha1GetKlass     (void);
+xmlSecTransformId   xmlSecTransformHmacSha1GetKlass     (void);
 #define             xmlSecTransformHmacSha224Id
-xmlSecTransformIdxmlSecTransformHmacSha224GetKlass   (void);
+xmlSecTransformId   xmlSecTransformHmacSha224GetKlass   (void);
 #define             xmlSecTransformHmacSha256Id
-xmlSecTransformIdxmlSecTransformHmacSha256GetKlass   (void);
+xmlSecTransformId   xmlSecTransformHmacSha256GetKlass   (void);
 #define             xmlSecTransformHmacSha384Id
-xmlSecTransformIdxmlSecTransformHmacSha384GetKlass   (void);
+xmlSecTransformId   xmlSecTransformHmacSha384GetKlass   (void);
 #define             xmlSecTransformHmacSha512Id
-xmlSecTransformIdxmlSecTransformHmacSha512GetKlass   (void);
+xmlSecTransformId   xmlSecTransformHmacSha512GetKlass   (void);
 #define             xmlSecTransformMd5Id
-xmlSecTransformIdxmlSecTransformMd5GetKlass          (void);
+xmlSecTransformId   xmlSecTransformMd5GetKlass          (void);
 #define             xmlSecTransformRipemd160Id
-xmlSecTransformIdxmlSecTransformRipemd160GetKlass    (void);
+xmlSecTransformId   xmlSecTransformRipemd160GetKlass    (void);
 #define             xmlSecTransformRsaMd5Id
-xmlSecTransformIdxmlSecTransformRsaMd5GetKlass       (void);
+xmlSecTransformId   xmlSecTransformRsaMd5GetKlass       (void);
 #define             xmlSecTransformRsaRipemd160Id
-xmlSecTransformIdxmlSecTransformRsaRipemd160GetKlass (void);
+xmlSecTransformId   xmlSecTransformRsaRipemd160GetKlass (void);
 #define             xmlSecTransformRsaSha1Id
-xmlSecTransformIdxmlSecTransformRsaSha1GetKlass      (void);
+xmlSecTransformId   xmlSecTransformRsaSha1GetKlass      (void);
 #define             xmlSecTransformRsaSha224Id
-xmlSecTransformIdxmlSecTransformRsaSha224GetKlass    (void);
+xmlSecTransformId   xmlSecTransformRsaSha224GetKlass    (void);
 #define             xmlSecTransformRsaSha256Id
-xmlSecTransformIdxmlSecTransformRsaSha256GetKlass    (void);
+xmlSecTransformId   xmlSecTransformRsaSha256GetKlass    (void);
 #define             xmlSecTransformRsaSha384Id
-xmlSecTransformIdxmlSecTransformRsaSha384GetKlass    (void);
+xmlSecTransformId   xmlSecTransformRsaSha384GetKlass    (void);
 #define             xmlSecTransformRsaSha512Id
-xmlSecTransformIdxmlSecTransformRsaSha512GetKlass    (void);
+xmlSecTransformId   xmlSecTransformRsaSha512GetKlass    (void);
 #define             xmlSecTransformRsaPkcs1Id
-xmlSecTransformIdxmlSecTransformRsaPkcs1GetKlass     (void);
+xmlSecTransformId   xmlSecTransformRsaPkcs1GetKlass     (void);
 #define             xmlSecTransformRsaOaepId
-xmlSecTransformIdxmlSecTransformRsaOaepGetKlass      (void);
+xmlSecTransformId   xmlSecTransformRsaOaepGetKlass      (void);
 #define             xmlSecTransformGostR3411_94Id
-xmlSecTransformIdxmlSecTransformGostR3411_94GetKlass (void);
+xmlSecTransformId   xmlSecTransformGostR3411_94GetKlass (void);
 #define             xmlSecTransformSha1Id
-xmlSecTransformIdxmlSecTransformSha1GetKlass         (void);
+xmlSecTransformId   xmlSecTransformSha1GetKlass         (void);
 #define             xmlSecTransformSha224Id
-xmlSecTransformIdxmlSecTransformSha224GetKlass       (void);
+xmlSecTransformId   xmlSecTransformSha224GetKlass       (void);
 #define             xmlSecTransformSha256Id
-xmlSecTransformIdxmlSecTransformSha256GetKlass       (void);
+xmlSecTransformId   xmlSecTransformSha256GetKlass       (void);
 #define             xmlSecTransformSha384Id
-xmlSecTransformIdxmlSecTransformSha384GetKlass       (void);
+xmlSecTransformId   xmlSecTransformSha384GetKlass       (void);
 #define             xmlSecTransformSha512Id
-xmlSecTransformIdxmlSecTransformSha512GetKlass       (void);
-intxmlSecCryptoAppInit                 (const char *config);
-intxmlSecCryptoAppShutdown             (void);
-intxmlSecCryptoAppDefaultKeysMngrInit  (xmlSecKeysMngrPtr mngr);
-intxmlSecCryptoAppDefaultKeysMngrAdoptKey
-                                                        (xmlSecKeysMngrPtr mngr,
-                                                         xmlSecKeyPtr key);
-intxmlSecCryptoAppDefaultKeysMngrLoad  (xmlSecKeysMngrPtr mngr,
-                                                         const char *uri);
-intxmlSecCryptoAppDefaultKeysMngrSave  (xmlSecKeysMngrPtr mngr,
-                                                         const char *filename,
-                                                         xmlSecKeyDataType type);
-intxmlSecCryptoAppKeysMngrCertLoad     (xmlSecKeysMngrPtr mngr,
-                                                         const char *filename,
-                                                         xmlSecKeyDataFormat format,
-                                                         xmlSecKeyDataType type);
-intxmlSecCryptoAppKeysMngrCertLoadMemory
-                                                        (xmlSecKeysMngrPtr mngr,
-                                                         const xmlSecByte *data,
-                                                         xmlSecSize dataSize,
-                                                         xmlSecKeyDataFormat format,
-                                                         xmlSecKeyDataType type);
-xmlSecKeyPtr        xmlSecCryptoAppKeyLoad              (const char *filename,
-                                                         xmlSecKeyDataFormat format,
-                                                         const char *pwd,
-                                                         void *pwdCallback,
-                                                         void *pwdCallbackCtx);
-xmlSecKeyPtr        xmlSecCryptoAppKeyLoadMemory        (const xmlSecByte *data,
-                                                         xmlSecSize dataSize,
-                                                         xmlSecKeyDataFormat format,
-                                                         const char *pwd,
-                                                         void *pwdCallback,
-                                                         void *pwdCallbackCtx);
-xmlSecKeyPtr        xmlSecCryptoAppPkcs12Load           (const char *filename,
-                                                         const char *pwd,
-                                                         void *pwdCallback,
-                                                         void *pwdCallbackCtx);
-xmlSecKeyPtr        xmlSecCryptoAppPkcs12LoadMemory     (const xmlSecByte *data,
-                                                         xmlSecSize dataSize,
-                                                         const char *pwd,
-                                                         void *pwdCallback,
-                                                         void *pwdCallbackCtx);
-intxmlSecCryptoAppKeyCertLoad          (xmlSecKeyPtr key,
-                                                         const char *filename,
-                                                         xmlSecKeyDataFormat format);
-intxmlSecCryptoAppKeyCertLoadMemory    (xmlSecKeyPtr key,
-                                                         const xmlSecByte *data,
-                                                         xmlSecSize dataSize,
-                                                         xmlSecKeyDataFormat format);
-void*               xmlSecCryptoAppGetDefaultPwdCallback
-                                                        (void);
+xmlSecTransformId xmlSecTransformSha512GetKlass (void); +int xmlSecCryptoAppInit (const char *config); +int xmlSecCryptoAppShutdown (void); +int xmlSecCryptoAppDefaultKeysMngrInit (xmlSecKeysMngrPtr mngr); +int xmlSecCryptoAppDefaultKeysMngrAdoptKey + (xmlSecKeysMngrPtr mngr, + xmlSecKeyPtr key); +int xmlSecCryptoAppDefaultKeysMngrLoad (xmlSecKeysMngrPtr mngr, + const char *uri); +int xmlSecCryptoAppDefaultKeysMngrSave (xmlSecKeysMngrPtr mngr, + const char *filename, + xmlSecKeyDataType type); +int xmlSecCryptoAppKeysMngrCertLoad (xmlSecKeysMngrPtr mngr, + const char *filename, + xmlSecKeyDataFormat format, + xmlSecKeyDataType type); +int xmlSecCryptoAppKeysMngrCertLoadMemory + (xmlSecKeysMngrPtr mngr, + const xmlSecByte *data, + xmlSecSize dataSize, + xmlSecKeyDataFormat format, + xmlSecKeyDataType type); +xmlSecKeyPtr xmlSecCryptoAppKeyLoad (const char *filename, + xmlSecKeyDataFormat format, + const char *pwd, + void *pwdCallback, + void *pwdCallbackCtx); +xmlSecKeyPtr xmlSecCryptoAppKeyLoadMemory (const xmlSecByte *data, + xmlSecSize dataSize, + xmlSecKeyDataFormat format, + const char *pwd, + void *pwdCallback, + void *pwdCallbackCtx); +xmlSecKeyPtr xmlSecCryptoAppPkcs12Load (const char *filename, + const char *pwd, + void *pwdCallback, + void *pwdCallbackCtx); +xmlSecKeyPtr xmlSecCryptoAppPkcs12LoadMemory (const xmlSecByte *data, + xmlSecSize dataSize, + const char *pwd, + void *pwdCallback, + void *pwdCallbackCtx); +int xmlSecCryptoAppKeyCertLoad (xmlSecKeyPtr key, + const char *filename, + xmlSecKeyDataFormat format); +int xmlSecCryptoAppKeyCertLoadMemory (xmlSecKeyPtr key, + const xmlSecByte *data, + xmlSecSize dataSize, + xmlSecKeyDataFormat format); +void* xmlSecCryptoAppGetDefaultPwdCallback + (void);

Description

@@ -240,38 +240,41 @@

Details

xmlSecCryptoInit ()

-
int                 xmlSecCryptoInit                    (void);
+
int                 xmlSecCryptoInit                    (void);

XMLSec library specific crypto engine initialization.

+

- +
Returns :Returns :

0 on success or a negative value otherwise.


xmlSecCryptoShutdown ()

-
int                 xmlSecCryptoShutdown                (void);
+
int                 xmlSecCryptoShutdown                (void);

XMLSec library specific crypto engine shutdown.

+

- +
Returns :Returns :

0 on success or a negative value otherwise.


xmlSecCryptoKeysMngrInit ()

-
int                 xmlSecCryptoKeysMngrInit            (xmlSecKeysMngrPtr mngr);
+
int                 xmlSecCryptoKeysMngrInit            (xmlSecKeysMngrPtr mngr);

Adds crypto specific key data stores in keys manager.

+

- - + + - +
mngr :

the pointer to keys manager.

mngr :

the pointer to keys manager.

Returns :Returns :

0 on success or a negative value otherwise.

@@ -279,17 +282,19 @@

xmlSecKeyDataAesId

-
#define xmlSecKeyDataAesId                      xmlSecKeyDataAesGetKlass()
+
#define xmlSecKeyDataAesId			xmlSecKeyDataAesGetKlass()

The AES key klass.

+


xmlSecKeyDataAesGetKlass ()

-
xmlSecKeyDataId     xmlSecKeyDataAesGetKlass            (void);
+
xmlSecKeyDataId     xmlSecKeyDataAesGetKlass            (void);

The AES key data klass.

+

- + @@ -298,17 +303,19 @@ klass is not implemented).


xmlSecKeyDataDesId

-
#define xmlSecKeyDataDesId                      xmlSecKeyDataDesGetKlass()
+
#define xmlSecKeyDataDesId			xmlSecKeyDataDesGetKlass()

The DES key klass.

+


xmlSecKeyDataDesGetKlass ()

-
xmlSecKeyDataId     xmlSecKeyDataDesGetKlass            (void);
+
xmlSecKeyDataId     xmlSecKeyDataDesGetKlass            (void);

The DES key data klass.

+

Returns :Returns :

AES key data klass or NULL if an error occurs (xmlsec-crypto library is not loaded or the AES key data klass is not implemented).

- + @@ -317,17 +324,19 @@ klass is not implemented).


xmlSecKeyDataDsaId

-
#define xmlSecKeyDataDsaId                      xmlSecKeyDataDsaGetKlass()
+
#define xmlSecKeyDataDsaId			xmlSecKeyDataDsaGetKlass()

The DSA key klass.

+


xmlSecKeyDataDsaGetKlass ()

-
xmlSecKeyDataId     xmlSecKeyDataDsaGetKlass            (void);
+
xmlSecKeyDataId     xmlSecKeyDataDsaGetKlass            (void);

The DSA key data klass.

+

Returns :Returns :

DES key data klass or NULL if an error occurs (xmlsec-crypto library is not loaded or the DES key data klass is not implemented).

- + @@ -336,17 +345,19 @@ klass is not implemented).


xmlSecKeyDataGost2001Id

-
#define xmlSecKeyDataGost2001Id                 xmlSecKeyDataGost2001GetKlass()
+
#define xmlSecKeyDataGost2001Id			xmlSecKeyDataGost2001GetKlass()

The GOST2001 key klass.

+


xmlSecKeyDataGost2001GetKlass ()

-
xmlSecKeyDataId     xmlSecKeyDataGost2001GetKlass       (void);
+
xmlSecKeyDataId     xmlSecKeyDataGost2001GetKlass       (void);

The GOST2001 key data klass.

+

Returns :Returns :

DSA key data klass or NULL if an error occurs (xmlsec-crypto library is not loaded or the DSA key data klass is not implemented).

- + @@ -355,17 +366,19 @@ klass is not implemented).


xmlSecKeyDataHmacId

-
#define xmlSecKeyDataHmacId                     xmlSecKeyDataHmacGetKlass()
+
#define xmlSecKeyDataHmacId			xmlSecKeyDataHmacGetKlass()

The DHMAC key klass.

+


xmlSecKeyDataHmacGetKlass ()

-
xmlSecKeyDataId     xmlSecKeyDataHmacGetKlass           (void);
+
xmlSecKeyDataId     xmlSecKeyDataHmacGetKlass           (void);

The HMAC key data klass.

+

Returns :Returns :

GOST2001 key data klass or NULL if an error occurs (xmlsec-crypto library is not loaded or the GOST2001 key data klass is not implemented).

- + @@ -374,17 +387,19 @@ klass is not implemented).


xmlSecKeyDataRsaId

-
#define xmlSecKeyDataRsaId                      xmlSecKeyDataRsaGetKlass()
+
#define xmlSecKeyDataRsaId			xmlSecKeyDataRsaGetKlass()

The RSA key klass.

+


xmlSecKeyDataRsaGetKlass ()

-
xmlSecKeyDataId     xmlSecKeyDataRsaGetKlass            (void);
+
xmlSecKeyDataId     xmlSecKeyDataRsaGetKlass            (void);

The RSA key data klass.

+

Returns :Returns :

HMAC key data klass or NULL if an error occurs (xmlsec-crypto library is not loaded or the HMAC key data klass is not implemented).

- + @@ -393,17 +408,19 @@ klass is not implemented).


xmlSecKeyDataX509Id

-
#define xmlSecKeyDataX509Id                     xmlSecKeyDataX509GetKlass()
+
#define xmlSecKeyDataX509Id			xmlSecKeyDataX509GetKlass()

The X509 data klass.

+


xmlSecKeyDataX509GetKlass ()

-
xmlSecKeyDataId     xmlSecKeyDataX509GetKlass           (void);
+
xmlSecKeyDataId     xmlSecKeyDataX509GetKlass           (void);

The X509 key data klass.

+

Returns :Returns :

RSA key data klass or NULL if an error occurs (xmlsec-crypto library is not loaded or the RSA key data klass is not implemented).

- + @@ -412,17 +429,19 @@ klass is not implemented).


xmlSecKeyDataRawX509CertId

-
#define xmlSecKeyDataRawX509CertId              xmlSecKeyDataRawX509CertGetKlass()
+
#define xmlSecKeyDataRawX509CertId		xmlSecKeyDataRawX509CertGetKlass()

The raw X509 certificate klass.

+


xmlSecKeyDataRawX509CertGetKlass ()

-
xmlSecKeyDataId     xmlSecKeyDataRawX509CertGetKlass    (void);
+
xmlSecKeyDataId     xmlSecKeyDataRawX509CertGetKlass    (void);

The raw X509 cert key data klass.

+

Returns :Returns :

X509 key data klass or NULL if an error occurs (xmlsec-crypto library is not loaded or the X509 key data klass is not implemented).

- + @@ -431,36 +450,40 @@ klass is not implemented).


xmlSecX509StoreId

-
#define xmlSecX509StoreId                       xmlSecX509StoreGetKlass()
+
#define xmlSecX509StoreId			xmlSecX509StoreGetKlass()

The X509 store klass.

+


xmlSecX509StoreGetKlass ()

-
xmlSecKeyDataStoreId  xmlSecX509StoreGetKlass           (void);
+
xmlSecKeyDataStoreId  xmlSecX509StoreGetKlass           (void);

The X509 certificates key data store klass.

+

Returns :Returns :

raw x509 cert key data klass or NULL if an error occurs (xmlsec-crypto library is not loaded or the raw X509 cert key data klass is not implemented).

- - +
Returns :

pointer to X509 certificates key data store klass or NULL if -an error occurs (xmlsec-crypto library is not loaded or the raw X509 +

Returns :

pointer to X509 certificates key data store klass or NULL if +an error occurs (xmlsec-crypto library is not loaded or the raw X509 cert key data klass is not implemented).


xmlSecTransformAes128CbcId

-
#define xmlSecTransformAes128CbcId              xmlSecTransformAes128CbcGetKlass()
+
#define xmlSecTransformAes128CbcId		xmlSecTransformAes128CbcGetKlass()

The AES128 CBC cipher transform klass.

+


xmlSecTransformAes128CbcGetKlass ()

-
xmlSecTransformId   xmlSecTransformAes128CbcGetKlass    (void);
+
xmlSecTransformId   xmlSecTransformAes128CbcGetKlass    (void);

AES 128 CBC encryption transform klass.

+

- + @@ -469,17 +492,19 @@ implemented).


xmlSecTransformAes192CbcId

-
#define xmlSecTransformAes192CbcId              xmlSecTransformAes192CbcGetKlass()
+
#define xmlSecTransformAes192CbcId		xmlSecTransformAes192CbcGetKlass()

The AES192 CBC cipher transform klass.

+


xmlSecTransformAes192CbcGetKlass ()

-
xmlSecTransformId   xmlSecTransformAes192CbcGetKlass    (void);
+
xmlSecTransformId   xmlSecTransformAes192CbcGetKlass    (void);

AES 192 CBC encryption transform klass.

+

Returns :Returns :

pointer to AES 128 CBC encryption transform or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -488,17 +513,19 @@ implemented).


xmlSecTransformAes256CbcId

-
#define xmlSecTransformAes256CbcId              xmlSecTransformAes256CbcGetKlass()
+
#define xmlSecTransformAes256CbcId		xmlSecTransformAes256CbcGetKlass()

The AES256 CBC cipher transform klass.

+


xmlSecTransformAes256CbcGetKlass ()

-
xmlSecTransformId   xmlSecTransformAes256CbcGetKlass    (void);
+
xmlSecTransformId   xmlSecTransformAes256CbcGetKlass    (void);

AES 256 CBC encryption transform klass.

+

Returns :Returns :

pointer to AES 192 CBC encryption transform or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -507,17 +534,19 @@ implemented).


xmlSecTransformKWAes128Id

-
#define xmlSecTransformKWAes128Id               xmlSecTransformKWAes128GetKlass()
+
#define xmlSecTransformKWAes128Id		xmlSecTransformKWAes128GetKlass()

The AES 128 key wrap transform klass.

+


xmlSecTransformKWAes128GetKlass ()

-
xmlSecTransformId   xmlSecTransformKWAes128GetKlass     (void);
+
xmlSecTransformId   xmlSecTransformKWAes128GetKlass     (void);

The AES-128 kew wrapper transform klass.

+

Returns :Returns :

pointer to AES 256 CBC encryption transform or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -526,17 +555,19 @@ implemented).


xmlSecTransformKWAes192Id

-
#define xmlSecTransformKWAes192Id               xmlSecTransformKWAes192GetKlass()
+
#define xmlSecTransformKWAes192Id		xmlSecTransformKWAes192GetKlass()

The AES 192 key wrap transform klass.

+


xmlSecTransformKWAes192GetKlass ()

-
xmlSecTransformId   xmlSecTransformKWAes192GetKlass     (void);
+
xmlSecTransformId   xmlSecTransformKWAes192GetKlass     (void);

The AES-192 kew wrapper transform klass.

+

Returns :Returns :

AES-128 kew wrapper transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -545,17 +576,19 @@ implemented).


xmlSecTransformKWAes256Id

-
#define xmlSecTransformKWAes256Id               xmlSecTransformKWAes256GetKlass()
+
#define xmlSecTransformKWAes256Id		xmlSecTransformKWAes256GetKlass()

The AES 256 key wrap transform klass.

+


xmlSecTransformKWAes256GetKlass ()

-
xmlSecTransformId   xmlSecTransformKWAes256GetKlass     (void);
+
xmlSecTransformId   xmlSecTransformKWAes256GetKlass     (void);

The AES-256 kew wrapper transform klass.

+

Returns :Returns :

AES-192 kew wrapper transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -564,17 +597,19 @@ implemented).


xmlSecTransformDes3CbcId

-
#define xmlSecTransformDes3CbcId                xmlSecTransformDes3CbcGetKlass()
+
#define xmlSecTransformDes3CbcId		xmlSecTransformDes3CbcGetKlass()

The Triple DES encryption transform klass.

+


xmlSecTransformDes3CbcGetKlass ()

-
xmlSecTransformId   xmlSecTransformDes3CbcGetKlass      (void);
+
xmlSecTransformId   xmlSecTransformDes3CbcGetKlass      (void);

Triple DES CBC encryption transform klass.

+

Returns :Returns :

AES-256 kew wrapper transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -583,17 +618,19 @@ implemented).


xmlSecTransformKWDes3Id

-
#define xmlSecTransformKWDes3Id                 xmlSecTransformKWDes3GetKlass()
+
#define xmlSecTransformKWDes3Id			xmlSecTransformKWDes3GetKlass()

The DES3 CBC cipher transform klass.

+


xmlSecTransformKWDes3GetKlass ()

-
xmlSecTransformId   xmlSecTransformKWDes3GetKlass       (void);
+
xmlSecTransformId   xmlSecTransformKWDes3GetKlass       (void);

The Triple DES key wrapper transform klass.

+

Returns :Returns :

pointer to Triple DES encryption transform or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -602,17 +639,19 @@ implemented).


xmlSecTransformDsaSha1Id

-
#define xmlSecTransformDsaSha1Id                xmlSecTransformDsaSha1GetKlass()
+
#define xmlSecTransformDsaSha1Id		xmlSecTransformDsaSha1GetKlass()

The DSA-SHA1 signature transform klass.

+


xmlSecTransformDsaSha1GetKlass ()

-
xmlSecTransformId   xmlSecTransformDsaSha1GetKlass      (void);
+
xmlSecTransformId   xmlSecTransformDsaSha1GetKlass      (void);

The DSA-SHA1 signature transform klass.

+

Returns :Returns :

Triple DES key wrapper transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -621,18 +660,20 @@ implemented).


xmlSecTransformGost2001GostR3411_94Id

-
#define xmlSecTransformGost2001GostR3411_94Id           xmlSecTransformGost2001GostR3411_94GetKlass()
+
#define xmlSecTransformGost2001GostR3411_94Id		xmlSecTransformGost2001GostR3411_94GetKlass()

The GOST2001-GOSTR3411_94 signature transform klass.

+


xmlSecTransformGost2001GostR3411_94GetKlass ()

-
xmlSecTransformId   xmlSecTransformGost2001GostR3411_94GetKlass
-                                                        (void);
+
xmlSecTransformId   xmlSecTransformGost2001GostR3411_94GetKlass
+                                                        (void);

The GOST2001-GOSTR3411_94 signature transform klass.

+

Returns :Returns :

DSA-SHA1 signature transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -641,17 +682,19 @@ implemented).


xmlSecTransformHmacMd5Id

-
#define xmlSecTransformHmacMd5Id                xmlSecTransformHmacMd5GetKlass()
+
#define xmlSecTransformHmacMd5Id		xmlSecTransformHmacMd5GetKlass()

The HMAC with MD5 signature transform klass.

+


xmlSecTransformHmacMd5GetKlass ()

-
xmlSecTransformId   xmlSecTransformHmacMd5GetKlass      (void);
+
xmlSecTransformId   xmlSecTransformHmacMd5GetKlass      (void);

The HMAC-MD5 transform klass.

+

Returns :Returns :

GOST2001-GOSTR3411_94 signature transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -660,18 +703,20 @@ implemented).


xmlSecTransformHmacRipemd160Id

-
#define xmlSecTransformHmacRipemd160Id          xmlSecTransformHmacRipemd160GetKlass()
+
#define xmlSecTransformHmacRipemd160Id		xmlSecTransformHmacRipemd160GetKlass()

The HMAC with RipeMD160 signature transform klass.

+


xmlSecTransformHmacRipemd160GetKlass ()

-
xmlSecTransformId   xmlSecTransformHmacRipemd160GetKlass
-                                                        (void);
+
xmlSecTransformId   xmlSecTransformHmacRipemd160GetKlass
+                                                        (void);

The HMAC-RIPEMD160 transform klass.

+

Returns :Returns :

the HMAC-MD5 transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -680,17 +725,19 @@ implemented).


xmlSecTransformHmacSha1Id

-
#define xmlSecTransformHmacSha1Id               xmlSecTransformHmacSha1GetKlass()
+
#define xmlSecTransformHmacSha1Id		xmlSecTransformHmacSha1GetKlass()

The HMAC with SHA1 signature transform klass.

+


xmlSecTransformHmacSha1GetKlass ()

-
xmlSecTransformId   xmlSecTransformHmacSha1GetKlass     (void);
+
xmlSecTransformId   xmlSecTransformHmacSha1GetKlass     (void);

The HMAC-SHA1 transform klass.

+

Returns :Returns :

the HMAC-RIPEMD160 transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -699,17 +746,19 @@ implemented).


xmlSecTransformHmacSha224Id

-
#define xmlSecTransformHmacSha224Id             xmlSecTransformHmacSha224GetKlass()
+
#define xmlSecTransformHmacSha224Id		xmlSecTransformHmacSha224GetKlass()

The HMAC with SHA224 signature transform klass.

+


xmlSecTransformHmacSha224GetKlass ()

-
xmlSecTransformId   xmlSecTransformHmacSha224GetKlass   (void);
+
xmlSecTransformId   xmlSecTransformHmacSha224GetKlass   (void);

The HMAC-SHA224 transform klass.

+

Returns :Returns :

the HMAC-SHA1 transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -718,17 +767,19 @@ implemented).


xmlSecTransformHmacSha256Id

-
#define xmlSecTransformHmacSha256Id             xmlSecTransformHmacSha256GetKlass()
+
#define xmlSecTransformHmacSha256Id		xmlSecTransformHmacSha256GetKlass()

The HMAC with SHA256 signature transform klass.

+


xmlSecTransformHmacSha256GetKlass ()

-
xmlSecTransformId   xmlSecTransformHmacSha256GetKlass   (void);
+
xmlSecTransformId   xmlSecTransformHmacSha256GetKlass   (void);

The HMAC-SHA256 transform klass.

+

Returns :Returns :

the HMAC-SHA224 transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -737,17 +788,19 @@ implemented).


xmlSecTransformHmacSha384Id

-
#define xmlSecTransformHmacSha384Id             xmlSecTransformHmacSha384GetKlass()
+
#define xmlSecTransformHmacSha384Id		xmlSecTransformHmacSha384GetKlass()

The HMAC with SHA384 signature transform klass.

+


xmlSecTransformHmacSha384GetKlass ()

-
xmlSecTransformId   xmlSecTransformHmacSha384GetKlass   (void);
+
xmlSecTransformId   xmlSecTransformHmacSha384GetKlass   (void);

The HMAC-SHA384 transform klass.

+

Returns :Returns :

the HMAC-SHA256 transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -756,17 +809,19 @@ implemented).


xmlSecTransformHmacSha512Id

-
#define xmlSecTransformHmacSha512Id             xmlSecTransformHmacSha512GetKlass()
+
#define xmlSecTransformHmacSha512Id		xmlSecTransformHmacSha512GetKlass()

The HMAC with SHA512 signature transform klass.

+


xmlSecTransformHmacSha512GetKlass ()

-
xmlSecTransformId   xmlSecTransformHmacSha512GetKlass   (void);
+
xmlSecTransformId   xmlSecTransformHmacSha512GetKlass   (void);

The HMAC-SHA512 transform klass.

+

Returns :Returns :

the HMAC-SHA384 transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -775,17 +830,19 @@ implemented).


xmlSecTransformMd5Id

-
#define xmlSecTransformMd5Id                    xmlSecTransformMd5GetKlass()
+
#define xmlSecTransformMd5Id			xmlSecTransformMd5GetKlass()

The MD5 digest transform klass.

+


xmlSecTransformMd5GetKlass ()

-
xmlSecTransformId   xmlSecTransformMd5GetKlass          (void);
+
xmlSecTransformId   xmlSecTransformMd5GetKlass          (void);

MD5 digest transform klass.

+

Returns :Returns :

the HMAC-SHA512 transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -794,17 +851,19 @@ implemented).


xmlSecTransformRipemd160Id

-
#define xmlSecTransformRipemd160Id              xmlSecTransformRipemd160GetKlass()
+
#define xmlSecTransformRipemd160Id		xmlSecTransformRipemd160GetKlass()

The RIPEMD160 digest transform klass.

+


xmlSecTransformRipemd160GetKlass ()

-
xmlSecTransformId   xmlSecTransformRipemd160GetKlass    (void);
+
xmlSecTransformId   xmlSecTransformRipemd160GetKlass    (void);

RIPEMD-160 digest transform klass.

+

Returns :Returns :

pointer to MD5 digest transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -813,17 +872,19 @@ implemented).


xmlSecTransformRsaMd5Id

-
#define xmlSecTransformRsaMd5Id                 xmlSecTransformRsaMd5GetKlass()
+
#define xmlSecTransformRsaMd5Id			xmlSecTransformRsaMd5GetKlass()

The RSA-MD5 signature transform klass.

+


xmlSecTransformRsaMd5GetKlass ()

-
xmlSecTransformId   xmlSecTransformRsaMd5GetKlass       (void);
+
xmlSecTransformId   xmlSecTransformRsaMd5GetKlass       (void);

The RSA-MD5 signature transform klass.

+

Returns :Returns :

pointer to RIPEMD-160 digest transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -832,17 +893,19 @@ implemented).


xmlSecTransformRsaRipemd160Id

-
#define xmlSecTransformRsaRipemd160Id           xmlSecTransformRsaRipemd160GetKlass()
+
#define xmlSecTransformRsaRipemd160Id		xmlSecTransformRsaRipemd160GetKlass()

The RSA-RIPEMD160 signature transform klass.

+


xmlSecTransformRsaRipemd160GetKlass ()

-
xmlSecTransformId   xmlSecTransformRsaRipemd160GetKlass (void);
+
xmlSecTransformId   xmlSecTransformRsaRipemd160GetKlass (void);

The RSA-RIPEMD160 signature transform klass.

+

Returns :Returns :

RSA-MD5 signature transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -851,17 +914,19 @@ implemented).


xmlSecTransformRsaSha1Id

-
#define xmlSecTransformRsaSha1Id                xmlSecTransformRsaSha1GetKlass()
+
#define xmlSecTransformRsaSha1Id		xmlSecTransformRsaSha1GetKlass()

The RSA-SHA1 signature transform klass.

+


xmlSecTransformRsaSha1GetKlass ()

-
xmlSecTransformId   xmlSecTransformRsaSha1GetKlass      (void);
+
xmlSecTransformId   xmlSecTransformRsaSha1GetKlass      (void);

The RSA-SHA1 signature transform klass.

+

Returns :Returns :

RSA-RIPEMD160 signature transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -870,17 +935,19 @@ implemented).


xmlSecTransformRsaSha224Id

-
#define xmlSecTransformRsaSha224Id              xmlSecTransformRsaSha224GetKlass()
+
#define xmlSecTransformRsaSha224Id		xmlSecTransformRsaSha224GetKlass()

The RSA-SHA224 signature transform klass.

+


xmlSecTransformRsaSha224GetKlass ()

-
xmlSecTransformId   xmlSecTransformRsaSha224GetKlass    (void);
+
xmlSecTransformId   xmlSecTransformRsaSha224GetKlass    (void);

The RSA-SHA224 signature transform klass.

+

Returns :Returns :

RSA-SHA1 signature transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -889,17 +956,19 @@ implemented).


xmlSecTransformRsaSha256Id

-
#define xmlSecTransformRsaSha256Id              xmlSecTransformRsaSha256GetKlass()
+
#define xmlSecTransformRsaSha256Id		xmlSecTransformRsaSha256GetKlass()

The RSA-SHA256 signature transform klass.

+


xmlSecTransformRsaSha256GetKlass ()

-
xmlSecTransformId   xmlSecTransformRsaSha256GetKlass    (void);
+
xmlSecTransformId   xmlSecTransformRsaSha256GetKlass    (void);

The RSA-SHA256 signature transform klass.

+

Returns :Returns :

RSA-SHA224 signature transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -908,17 +977,19 @@ implemented).


xmlSecTransformRsaSha384Id

-
#define xmlSecTransformRsaSha384Id              xmlSecTransformRsaSha384GetKlass()
+
#define xmlSecTransformRsaSha384Id		xmlSecTransformRsaSha384GetKlass()

The RSA-SHA384 signature transform klass.

+


xmlSecTransformRsaSha384GetKlass ()

-
xmlSecTransformId   xmlSecTransformRsaSha384GetKlass    (void);
+
xmlSecTransformId   xmlSecTransformRsaSha384GetKlass    (void);

The RSA-SHA384 signature transform klass.

+

Returns :Returns :

RSA-SHA256 signature transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -927,17 +998,19 @@ implemented).


xmlSecTransformRsaSha512Id

-
#define xmlSecTransformRsaSha512Id              xmlSecTransformRsaSha512GetKlass()
+
#define xmlSecTransformRsaSha512Id		xmlSecTransformRsaSha512GetKlass()

The RSA-SHA512 signature transform klass.

+


xmlSecTransformRsaSha512GetKlass ()

-
xmlSecTransformId   xmlSecTransformRsaSha512GetKlass    (void);
+
xmlSecTransformId   xmlSecTransformRsaSha512GetKlass    (void);

The RSA-SHA512 signature transform klass.

+

Returns :Returns :

RSA-SHA384 signature transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -946,17 +1019,19 @@ implemented).


xmlSecTransformRsaPkcs1Id

-
#define xmlSecTransformRsaPkcs1Id               xmlSecTransformRsaPkcs1GetKlass()
+
#define xmlSecTransformRsaPkcs1Id		xmlSecTransformRsaPkcs1GetKlass()

The RSA PKCS1 key transport transform klass.

+


xmlSecTransformRsaPkcs1GetKlass ()

-
xmlSecTransformId   xmlSecTransformRsaPkcs1GetKlass     (void);
+
xmlSecTransformId   xmlSecTransformRsaPkcs1GetKlass     (void);

The RSA-PKCS1 key transport transform klass.

+

Returns :Returns :

RSA-SHA512 signature transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -965,17 +1040,19 @@ implemented).


xmlSecTransformRsaOaepId

-
#define xmlSecTransformRsaOaepId                xmlSecTransformRsaOaepGetKlass()
+
#define xmlSecTransformRsaOaepId		xmlSecTransformRsaOaepGetKlass()

The RSA PKCS1 key transport transform klass.

+


xmlSecTransformRsaOaepGetKlass ()

-
xmlSecTransformId   xmlSecTransformRsaOaepGetKlass      (void);
+
xmlSecTransformId   xmlSecTransformRsaOaepGetKlass      (void);

The RSA-OAEP key transport transform klass.

+

Returns :Returns :

RSA-PKCS1 key transport transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -984,17 +1061,19 @@ implemented).


xmlSecTransformGostR3411_94Id

-
#define xmlSecTransformGostR3411_94Id                   xmlSecTransformGostR3411_94GetKlass()
+
#define xmlSecTransformGostR3411_94Id			xmlSecTransformGostR3411_94GetKlass()

The GOSTR3411_94 digest transform klass.

+


xmlSecTransformGostR3411_94GetKlass ()

-
xmlSecTransformId   xmlSecTransformGostR3411_94GetKlass (void);
+
xmlSecTransformId   xmlSecTransformGostR3411_94GetKlass (void);

GOSTR3411_94 digest transform klass.

+

Returns :Returns :

RSA-OAEP key transport transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -1003,17 +1082,19 @@ implemented).


xmlSecTransformSha1Id

-
#define xmlSecTransformSha1Id                   xmlSecTransformSha1GetKlass()
+
#define xmlSecTransformSha1Id			xmlSecTransformSha1GetKlass()

The SHA1 digest transform klass.

+


xmlSecTransformSha1GetKlass ()

-
xmlSecTransformId   xmlSecTransformSha1GetKlass         (void);
+
xmlSecTransformId   xmlSecTransformSha1GetKlass         (void);

SHA-1 digest transform klass.

+

Returns :Returns :

pointer to GOSTR3411_94 digest transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -1022,17 +1103,19 @@ implemented).


xmlSecTransformSha224Id

-
#define xmlSecTransformSha224Id                 xmlSecTransformSha224GetKlass()
+
#define xmlSecTransformSha224Id			xmlSecTransformSha224GetKlass()

The SHA224 digest transform klass.

+


xmlSecTransformSha224GetKlass ()

-
xmlSecTransformId   xmlSecTransformSha224GetKlass       (void);
+
xmlSecTransformId   xmlSecTransformSha224GetKlass       (void);

SHA224 digest transform klass.

+

Returns :Returns :

pointer to SHA-1 digest transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -1041,17 +1124,19 @@ implemented).


xmlSecTransformSha256Id

-
#define xmlSecTransformSha256Id                 xmlSecTransformSha256GetKlass()
+
#define xmlSecTransformSha256Id			xmlSecTransformSha256GetKlass()

The SHA256 digest transform klass.

+


xmlSecTransformSha256GetKlass ()

-
xmlSecTransformId   xmlSecTransformSha256GetKlass       (void);
+
xmlSecTransformId   xmlSecTransformSha256GetKlass       (void);

SHA256 digest transform klass.

+

Returns :Returns :

pointer to SHA224 digest transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -1060,17 +1145,19 @@ implemented).


xmlSecTransformSha384Id

-
#define xmlSecTransformSha384Id                 xmlSecTransformSha384GetKlass()
+
#define xmlSecTransformSha384Id			xmlSecTransformSha384GetKlass()

The SHA384 digest transform klass.

+


xmlSecTransformSha384GetKlass ()

-
xmlSecTransformId   xmlSecTransformSha384GetKlass       (void);
+
xmlSecTransformId   xmlSecTransformSha384GetKlass       (void);

SHA384 digest transform klass.

+

Returns :Returns :

pointer to SHA256 digest transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -1079,17 +1166,19 @@ implemented).


xmlSecTransformSha512Id

-
#define xmlSecTransformSha512Id                 xmlSecTransformSha512GetKlass()
+
#define xmlSecTransformSha512Id			xmlSecTransformSha512GetKlass()

The SHA512 digest transform klass.

+


xmlSecTransformSha512GetKlass ()

-
xmlSecTransformId   xmlSecTransformSha512GetKlass       (void);
+
xmlSecTransformId   xmlSecTransformSha512GetKlass       (void);

SHA512 digest transform klass.

+

Returns :Returns :

pointer to SHA384 digest transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- + @@ -1098,18 +1187,19 @@ implemented).


xmlSecCryptoAppInit ()

-
int                 xmlSecCryptoAppInit                 (const char *config);
+
int                 xmlSecCryptoAppInit                 (const char *config);

General crypto engine initialization. This function is used -by XMLSec command line utility and called before +by XMLSec command line utility and called before xmlSecInit function.

+

Returns :Returns :

pointer to SHA512 digest transform klass or NULL if an error occurs (the xmlsec-crypto library is not loaded or this transform is not implemented).

- - + + - +
config :

the path to crypto library configuration.

config :

the path to crypto library configuration.

Returns :Returns :

0 on success or a negative value otherwise.

@@ -1117,30 +1207,32 @@ by XMLSec command line utility and called before

xmlSecCryptoAppShutdown ()

-
int                 xmlSecCryptoAppShutdown             (void);
+
int                 xmlSecCryptoAppShutdown             (void);

General crypto engine shutdown. This function is used -by XMLSec command line utility and called after +by XMLSec command line utility and called after xmlSecShutdown function.

+

- +
Returns :Returns :

0 on success or a negative value otherwise.


xmlSecCryptoAppDefaultKeysMngrInit ()

-
int                 xmlSecCryptoAppDefaultKeysMngrInit  (xmlSecKeysMngrPtr mngr);
+
int                 xmlSecCryptoAppDefaultKeysMngrInit  (xmlSecKeysMngrPtr mngr);

Initializes mngr with simple keys store xmlSecSimpleKeysStoreId and a default crypto key data stores.

+

- - + + - +
mngr :

the pointer to keys manager.

mngr :

the pointer to keys manager.

Returns :Returns :

0 on success or a negative value otherwise.

@@ -1148,23 +1240,24 @@ and a default crypto key data stores.


xmlSecCryptoAppDefaultKeysMngrAdoptKey ()

-
int                 xmlSecCryptoAppDefaultKeysMngrAdoptKey
-                                                        (xmlSecKeysMngrPtr mngr,
-                                                         xmlSecKeyPtr key);
+
int                 xmlSecCryptoAppDefaultKeysMngrAdoptKey
+                                                        (xmlSecKeysMngrPtr mngr,
+                                                         xmlSecKeyPtr key);

Adds key to the keys manager mngr created with xmlSecCryptoAppDefaultKeysMngrInit function.

+

- - + + - - + + - +
mngr :

the pointer to keys manager.

mngr :

the pointer to keys manager.

key :

the pointer to key.

key :

the pointer to key.

Returns :Returns :

0 on success or a negative value otherwise.

@@ -1172,22 +1265,23 @@ function.


xmlSecCryptoAppDefaultKeysMngrLoad ()

-
int                 xmlSecCryptoAppDefaultKeysMngrLoad  (xmlSecKeysMngrPtr mngr,
-                                                         const char *uri);
-

Loads XML keys file from uri to the keys manager mngr created +

int                 xmlSecCryptoAppDefaultKeysMngrLoad  (xmlSecKeysMngrPtr mngr,
+                                                         const char *uri);
+

Loads XML keys file from uri to the keys manager mngr created with xmlSecCryptoAppDefaultKeysMngrInit function.

+

- - + + - - + + - +
mngr :

the pointer to keys manager.

mngr :

the pointer to keys manager.

uri :

the uri.

uri :

the uri.

Returns :Returns :

0 on success or a negative value otherwise.

@@ -1195,26 +1289,27 @@ with

xmlSecCryptoAppDefaultKeysMngrSave ()

-
int                 xmlSecCryptoAppDefaultKeysMngrSave  (xmlSecKeysMngrPtr mngr,
-                                                         const char *filename,
-                                                         xmlSecKeyDataType type);
+
int                 xmlSecCryptoAppDefaultKeysMngrSave  (xmlSecKeysMngrPtr mngr,
+                                                         const char *filename,
+                                                         xmlSecKeyDataType type);

Saves keys from mngr to XML keys file.

+

- - + + - - + + - - + + - +
mngr :

the pointer to keys manager.

mngr :

the pointer to keys manager.

filename :

the destination filename.

filename :

the destination filename.

type :

the type of keys to save (public/private/symmetric).

type :

the type of keys to save (public/private/symmetric).

Returns :Returns :

0 on success or a negative value otherwise.

@@ -1222,33 +1317,34 @@ with

xmlSecCryptoAppKeysMngrCertLoad ()

-
int                 xmlSecCryptoAppKeysMngrCertLoad     (xmlSecKeysMngrPtr mngr,
-                                                         const char *filename,
-                                                         xmlSecKeyDataFormat format,
-                                                         xmlSecKeyDataType type);
+
int                 xmlSecCryptoAppKeysMngrCertLoad     (xmlSecKeysMngrPtr mngr,
+                                                         const char *filename,
+                                                         xmlSecKeyDataFormat format,
+                                                         xmlSecKeyDataType type);

Reads cert from filename and adds to the list of trusted or known untrusted certs in store.

+

- - + + - - + + - - + + - - + + - +
mngr :

the keys manager.

mngr :

the keys manager.

filename :

the certificate file.

filename :

the certificate file.

format :

the certificate file format.

format :

the certificate file format.

type :

the flag that indicates is the certificate in filename - trusted or not.

type :

the flag that indicates is the certificate in filename + trusted or not.

Returns :Returns :

0 on success or a negative value otherwise.

@@ -1256,38 +1352,39 @@ untrusted certs in store.


xmlSecCryptoAppKeysMngrCertLoadMemory ()

-
int                 xmlSecCryptoAppKeysMngrCertLoadMemory
-                                                        (xmlSecKeysMngrPtr mngr,
-                                                         const xmlSecByte *data,
-                                                         xmlSecSize dataSize,
-                                                         xmlSecKeyDataFormat format,
-                                                         xmlSecKeyDataType type);
+
int                 xmlSecCryptoAppKeysMngrCertLoadMemory
+                                                        (xmlSecKeysMngrPtr mngr,
+                                                         const xmlSecByte *data,
+                                                         xmlSecSize dataSize,
+                                                         xmlSecKeyDataFormat format,
+                                                         xmlSecKeyDataType type);

Reads cert from binary buffer data and adds to the list of trusted or known untrusted certs in store.

+

- - + + - - + + - - + + - - + + - - + + - +
mngr :

the keys manager.

mngr :

the keys manager.

data :

the certificate binary data.

data :

the certificate binary data.

dataSize :

the certificate binary data size.

dataSize :

the certificate binary data size.

format :

the certificate file format.

format :

the certificate file format.

type :

the flag that indicates is the certificate trusted or not.

type :

the flag that indicates is the certificate trusted or not.

Returns :Returns :

0 on success or a negative value otherwise.

@@ -1295,36 +1392,37 @@ untrusted certs in store.


xmlSecCryptoAppKeyLoad ()

-
xmlSecKeyPtr        xmlSecCryptoAppKeyLoad              (const char *filename,
-                                                         xmlSecKeyDataFormat format,
-                                                         const char *pwd,
-                                                         void *pwdCallback,
-                                                         void *pwdCallbackCtx);
+
xmlSecKeyPtr        xmlSecCryptoAppKeyLoad              (const char *filename,
+                                                         xmlSecKeyDataFormat format,
+                                                         const char *pwd,
+                                                         void *pwdCallback,
+                                                         void *pwdCallbackCtx);

Reads key from the a file.

+

- - + + - - + + - - + + - - + + - - + + - +
filename :

the key filename.

filename :

the key filename.

format :

the key file format.

format :

the key file format.

pwd :

the key file password.

pwd :

the key file password.

pwdCallback :

the key password callback.

pwdCallback :

the key password callback.

pwdCallbackCtx :

the user context for password callback.

pwdCallbackCtx :

the user context for password callback.

Returns :Returns :

pointer to the key or NULL if an error occurs.

@@ -1332,41 +1430,42 @@ untrusted certs in store.


xmlSecCryptoAppKeyLoadMemory ()

-
xmlSecKeyPtr        xmlSecCryptoAppKeyLoadMemory        (const xmlSecByte *data,
-                                                         xmlSecSize dataSize,
-                                                         xmlSecKeyDataFormat format,
-                                                         const char *pwd,
-                                                         void *pwdCallback,
-                                                         void *pwdCallbackCtx);
+
xmlSecKeyPtr        xmlSecCryptoAppKeyLoadMemory        (const xmlSecByte *data,
+                                                         xmlSecSize dataSize,
+                                                         xmlSecKeyDataFormat format,
+                                                         const char *pwd,
+                                                         void *pwdCallback,
+                                                         void *pwdCallbackCtx);

Reads key from the memory buffer.

+

- - + + - - + + - - + + - - + + - - + + - - + + - +
data :

the binary key data.

data :

the binary key data.

dataSize :

the size of binary key.

dataSize :

the size of binary key.

format :

the key file format.

format :

the key file format.

pwd :

the key file password.

pwd :

the key file password.

pwdCallback :

the key password callback.

pwdCallback :

the key password callback.

pwdCallbackCtx :

the user context for password callback.

pwdCallbackCtx :

the user context for password callback.

Returns :Returns :

pointer to the key or NULL if an error occurs.

@@ -1374,33 +1473,34 @@ untrusted certs in store.


xmlSecCryptoAppPkcs12Load ()

-
xmlSecKeyPtr        xmlSecCryptoAppPkcs12Load           (const char *filename,
-                                                         const char *pwd,
-                                                         void *pwdCallback,
-                                                         void *pwdCallbackCtx);
+
xmlSecKeyPtr        xmlSecCryptoAppPkcs12Load           (const char *filename,
+                                                         const char *pwd,
+                                                         void *pwdCallback,
+                                                         void *pwdCallbackCtx);

Reads key and all associated certificates from the PKCS12 file. For uniformity, call xmlSecCryptoAppKeyLoad instead of this function. Pass in format=xmlSecKeyDataFormatPkcs12.

+

- - + + - - + + - - + + - - + + - +
filename :

the PKCS12 key filename.

filename :

the PKCS12 key filename.

pwd :

the PKCS12 file password.

pwd :

the PKCS12 file password.

pwdCallback :

the password callback.

pwdCallback :

the password callback.

pwdCallbackCtx :

the user context for password callback.

pwdCallbackCtx :

the user context for password callback.

Returns :Returns :

pointer to the key or NULL if an error occurs.

@@ -1408,38 +1508,39 @@ in format=xmlSecKeyDataFormatPkcs12.


xmlSecCryptoAppPkcs12LoadMemory ()

-
xmlSecKeyPtr        xmlSecCryptoAppPkcs12LoadMemory     (const xmlSecByte *data,
-                                                         xmlSecSize dataSize,
-                                                         const char *pwd,
-                                                         void *pwdCallback,
-                                                         void *pwdCallbackCtx);
+
xmlSecKeyPtr        xmlSecCryptoAppPkcs12LoadMemory     (const xmlSecByte *data,
+                                                         xmlSecSize dataSize,
+                                                         const char *pwd,
+                                                         void *pwdCallback,
+                                                         void *pwdCallbackCtx);

Reads key and all associated certificates from the PKCS12 data in memory buffer. For uniformity, call xmlSecCryptoAppKeyLoadMemory instead of this function. Pass in format=xmlSecKeyDataFormatPkcs12.

+

- - + + - - + + - - + + - - + + - - + + - +
data :

the PKCS12 binary data.

data :

the PKCS12 binary data.

dataSize :

the PKCS12 binary data size.

dataSize :

the PKCS12 binary data size.

pwd :

the PKCS12 file password.

pwd :

the PKCS12 file password.

pwdCallback :

the password callback.

pwdCallback :

the password callback.

pwdCallbackCtx :

the user context for password callback.

pwdCallbackCtx :

the user context for password callback.

Returns :Returns :

pointer to the key or NULL if an error occurs.

@@ -1447,26 +1548,27 @@ in format=xmlSecKeyDataFormatPkcs12.


xmlSecCryptoAppKeyCertLoad ()

-
int                 xmlSecCryptoAppKeyCertLoad          (xmlSecKeyPtr key,
-                                                         const char *filename,
-                                                         xmlSecKeyDataFormat format);
+
int                 xmlSecCryptoAppKeyCertLoad          (xmlSecKeyPtr key,
+                                                         const char *filename,
+                                                         xmlSecKeyDataFormat format);

Reads the certificate from $filename and adds it to key.

+

- - + + - - + + - - + + - +
key :

the pointer to key.

key :

the pointer to key.

filename :

the certificate filename.

filename :

the certificate filename.

format :

the certificate file format.

format :

the certificate file format.

Returns :Returns :

0 on success or a negative value otherwise.

@@ -1474,31 +1576,32 @@ in format=xmlSecKeyDataFormatPkcs12.


xmlSecCryptoAppKeyCertLoadMemory ()

-
int                 xmlSecCryptoAppKeyCertLoadMemory    (xmlSecKeyPtr key,
-                                                         const xmlSecByte *data,
-                                                         xmlSecSize dataSize,
-                                                         xmlSecKeyDataFormat format);
+
int                 xmlSecCryptoAppKeyCertLoadMemory    (xmlSecKeyPtr key,
+                                                         const xmlSecByte *data,
+                                                         xmlSecSize dataSize,
+                                                         xmlSecKeyDataFormat format);

Reads the certificate from memory buffer and adds it to key.

+

- - + + - - + + - - + + - - + + - +
key :

the pointer to key.

key :

the pointer to key.

data :

the certificate binary data.

data :

the certificate binary data.

dataSize :

the certificate binary data size.

dataSize :

the certificate binary data size.

format :

the certificate file format.

format :

the certificate file format.

Returns :Returns :

0 on success or a negative value otherwise.

@@ -1506,12 +1609,13 @@ in format=xmlSecKeyDataFormatPkcs12.


xmlSecCryptoAppGetDefaultPwdCallback ()

-
void*               xmlSecCryptoAppGetDefaultPwdCallback
-                                                        (void);
+
void*               xmlSecCryptoAppGetDefaultPwdCallback
+                                                        (void);

Gets default password callback.

+

- +
Returns :Returns :

default password callback.

diff --git a/docs/api/xmlsec-base64.html b/docs/api/xmlsec-base64.html index c755f3c..d63cac1 100644 --- a/docs/api/xmlsec-base64.html +++ b/docs/api/xmlsec-base64.html @@ -87,33 +87,33 @@

base64

-

Name

base64 -- Base64 encoding/decoding functions.
+

Name

base64 -- Base64 encoding/decoding functions.

Synopsis

-
#define             XMLSEC_BASE64_LINESIZE
-intxmlSecBase64GetDefaultLineSize      (void);
-voidxmlSecBase64SetDefaultLineSize      (int columns);
-xmlSecBase64CtxPtrxmlSecBase64CtxCreate               (int encode,
-                                                         int columns);
-voidxmlSecBase64CtxDestroy              (xmlSecBase64CtxPtr ctx);
-intxmlSecBase64CtxInitialize           (xmlSecBase64CtxPtr ctx,
-                                                         int encode,
-                                                         int columns);
-voidxmlSecBase64CtxFinalize             (xmlSecBase64CtxPtr ctx);
-intxmlSecBase64CtxUpdate               (xmlSecBase64CtxPtr ctx,
-                                                         const xmlSecByte *in,
-                                                         xmlSecSize inSize,
-                                                         xmlSecByte *out,
-                                                         xmlSecSize outSize);
-intxmlSecBase64CtxFinal                (xmlSecBase64CtxPtr ctx,
-                                                         xmlSecByte *out,
-                                                         xmlSecSize outSize);
-xmlChar*            xmlSecBase64Encode                  (const xmlSecByte *buf,
-                                                         xmlSecSize len,
-                                                         int columns);
-intxmlSecBase64Decode                  (const xmlChar *str,
-                                                         xmlSecByte *buf,
-                                                         xmlSecSize len);
+
#define             XMLSEC_BASE64_LINESIZE
+int                 xmlSecBase64GetDefaultLineSize      (void);
+void                xmlSecBase64SetDefaultLineSize      (int columns);
+xmlSecBase64CtxPtr  xmlSecBase64CtxCreate               (int encode,
+                                                         int columns);
+void                xmlSecBase64CtxDestroy              (xmlSecBase64CtxPtr ctx);
+int                 xmlSecBase64CtxInitialize           (xmlSecBase64CtxPtr ctx,
+                                                         int encode,
+                                                         int columns);
+void                xmlSecBase64CtxFinalize             (xmlSecBase64CtxPtr ctx);
+int                 xmlSecBase64CtxUpdate               (xmlSecBase64CtxPtr ctx,
+                                                         const xmlSecByte *in,
+                                                         xmlSecSize inSize,
+                                                         xmlSecByte *out,
+                                                         xmlSecSize outSize);
+int                 xmlSecBase64CtxFinal                (xmlSecBase64CtxPtr ctx,
+                                                         xmlSecByte *out,
+                                                         xmlSecSize outSize);
+xmlChar*            xmlSecBase64Encode                  (const xmlSecByte *buf,
+                                                         xmlSecSize len,
+                                                         int columns);
+int                 xmlSecBase64Decode                  (const xmlChar *str,
+                                                         xmlSecByte *buf,
+                                                         xmlSecSize len);

Description

@@ -122,50 +122,54 @@

Details

-

XMLSEC_BASE64_LINESIZE

-
#define XMLSEC_BASE64_LINESIZE                          64
+

XMLSEC_BASE64_LINESIZE

+
#define XMLSEC_BASE64_LINESIZE				64

The default maximum base64 encoded line size.

+


xmlSecBase64GetDefaultLineSize ()

-
int                 xmlSecBase64GetDefaultLineSize      (void);
+
int                 xmlSecBase64GetDefaultLineSize      (void);

Gets the current default line size.

+

- +
Returns :Returns :

the current default line size.


xmlSecBase64SetDefaultLineSize ()

-
void                xmlSecBase64SetDefaultLineSize      (int columns);
+
void                xmlSecBase64SetDefaultLineSize      (int columns);

Sets the current default line size.

+

- - + +
columns :

number of columns

columns :

number of columns


xmlSecBase64CtxCreate ()

-
xmlSecBase64CtxPtr  xmlSecBase64CtxCreate               (int encode,
-                                                         int columns);
+
xmlSecBase64CtxPtr  xmlSecBase64CtxCreate               (int encode,
+                                                         int columns);

Allocates and initializes new base64 context.

+

- - + + - - + + - + @@ -174,37 +178,39 @@ or NULL if an error occurs.


xmlSecBase64CtxDestroy ()

-
void                xmlSecBase64CtxDestroy              (xmlSecBase64CtxPtr ctx);
+
void                xmlSecBase64CtxDestroy              (xmlSecBase64CtxPtr ctx);

Destroys base64 context.

+

encode :

the encode/decode flag (1 - encode, 0 - decode)

encode :

the encode/decode flag (1 - encode, 0 - decode)

columns :

the max line length.

columns :

the max line length.

Returns :Returns :

a pointer to newly created xmlSecBase64Ctx structure or NULL if an error occurs.

- - + +
ctx :

the pointer to xmlSecBase64Ctx structure.

ctx :

the pointer to xmlSecBase64Ctx structure.


xmlSecBase64CtxInitialize ()

-
int                 xmlSecBase64CtxInitialize           (xmlSecBase64CtxPtr ctx,
-                                                         int encode,
-                                                         int columns);
+
int                 xmlSecBase64CtxInitialize           (xmlSecBase64CtxPtr ctx,
+                                                         int encode,
+                                                         int columns);

Initializes new base64 context.

+

- - + + - - + + - - + + - +
ctx :

the pointer to xmlSecBase64Ctx structure,

ctx :

the pointer to xmlSecBase64Ctx structure,

encode :

the encode/decode flag (1 - encode, 0 - decode)

encode :

the encode/decode flag (1 - encode, 0 - decode)

columns :

the max line length.

columns :

the max line length.

Returns :Returns :

0 on success and a negative value otherwise.

@@ -212,48 +218,50 @@ or NULL if an error occurs.


xmlSecBase64CtxFinalize ()

-
void                xmlSecBase64CtxFinalize             (xmlSecBase64CtxPtr ctx);
+
void                xmlSecBase64CtxFinalize             (xmlSecBase64CtxPtr ctx);

Frees all the resources allocated by ctx.

+

- - + +
ctx :

the pointer to xmlSecBase64Ctx structure,

ctx :

the pointer to xmlSecBase64Ctx structure,


xmlSecBase64CtxUpdate ()

-
int                 xmlSecBase64CtxUpdate               (xmlSecBase64CtxPtr ctx,
-                                                         const xmlSecByte *in,
-                                                         xmlSecSize inSize,
-                                                         xmlSecByte *out,
-                                                         xmlSecSize outSize);
+
int                 xmlSecBase64CtxUpdate               (xmlSecBase64CtxPtr ctx,
+                                                         const xmlSecByte *in,
+                                                         xmlSecSize inSize,
+                                                         xmlSecByte *out,
+                                                         xmlSecSize outSize);

Encodes or decodes the next piece of data from input buffer.

+

- - + + - - + + - - + + - - + + - - + + - - +
ctx :

the pointer to xmlSecBase64Ctx structure

ctx :

the pointer to xmlSecBase64Ctx structure

in :

the input buffer

in :

the input buffer

inSize :

the input buffer size

inSize :

the input buffer size

out :

the output buffer

out :

the output buffer

outSize :

the output buffer size

outSize :

the output buffer size

Returns :

the number of bytes written to output buffer or +

Returns :

the number of bytes written to output buffer or -1 if an error occurs.

@@ -261,28 +269,29 @@ or NULL if an error occurs.


xmlSecBase64CtxFinal ()

-
int                 xmlSecBase64CtxFinal                (xmlSecBase64CtxPtr ctx,
-                                                         xmlSecByte *out,
-                                                         xmlSecSize outSize);
+
int                 xmlSecBase64CtxFinal                (xmlSecBase64CtxPtr ctx,
+                                                         xmlSecByte *out,
+                                                         xmlSecSize outSize);

Encodes or decodes the last piece of data stored in the context and finalizes the result.

+

- - + + - - + + - - + + - - +
ctx :

the pointer to xmlSecBase64Ctx structure

ctx :

the pointer to xmlSecBase64Ctx structure

out :

the output buffer

out :

the output buffer

outSize :

the output buffer size

outSize :

the output buffer size

Returns :

the number of bytes written to output buffer or +

Returns :

the number of bytes written to output buffer or -1 if an error occurs.

@@ -290,30 +299,31 @@ and finalizes the result.


xmlSecBase64Encode ()

-
xmlChar*            xmlSecBase64Encode                  (const xmlSecByte *buf,
-                                                         xmlSecSize len,
-                                                         int columns);
+
xmlChar*            xmlSecBase64Encode                  (const xmlSecByte *buf,
+                                                         xmlSecSize len,
+                                                         int columns);

Encodes the data from input buffer and allocates the string for the result. The caller is responsible for freeing returned buffer using xmlFree() function.

+

- - + + - - + + - - + + - - +
buf :

the input buffer.

buf :

the input buffer.

len :

the input buffer size.

len :

the input buffer size.

columns :

the output max line length (if 0 then no line breaks - would be inserted)

columns :

the output max line length (if 0 then no line breaks + would be inserted)

Returns :

newly allocated string with base64 encoded data +

Returns :

newly allocated string with base64 encoded data or NULL if an error occurs.

@@ -321,29 +331,30 @@ or NULL if an error occurs.


xmlSecBase64Decode ()

-
int                 xmlSecBase64Decode                  (const xmlChar *str,
-                                                         xmlSecByte *buf,
-                                                         xmlSecSize len);
+
int                 xmlSecBase64Decode                  (const xmlChar *str,
+                                                         xmlSecByte *buf,
+                                                         xmlSecSize len);

Decodes input base64 encoded string and puts result into the output buffer.

+

- - + + - - + + - - + + - - + +
str :

the input buffer with base64 encoded string

str :

the input buffer with base64 encoded string

buf :

the output buffer

buf :

the output buffer

len :

the output buffer size

len :

the output buffer size

Returns :

the number of bytes written to the output buffer or -a negative value if an error occurs

Returns :

the number of bytes written to the output buffer or +a negative value if an error occurs

diff --git a/docs/api/xmlsec-bn.html b/docs/api/xmlsec-bn.html index 9eabf58..8eed405 100644 --- a/docs/api/xmlsec-bn.html +++ b/docs/api/xmlsec-bn.html @@ -87,61 +87,61 @@

bn

-

Name

bn -- Big numbers support functions.
+

Name

bn -- Big numbers support functions.

Synopsis

enum                xmlSecBnFormat;
-xmlSecBnPtrxmlSecBnCreate                      (xmlSecSize size);
-voidxmlSecBnDestroy                     (xmlSecBnPtr bn);
-intxmlSecBnInitialize                  (xmlSecBnPtr bn,
-                                                         xmlSecSize size);
-voidxmlSecBnFinalize                    (xmlSecBnPtr bn);
-xmlSecByte*         xmlSecBnGetData                     (xmlSecBnPtr bn);
-intxmlSecBnSetData                     (xmlSecBnPtr bn,
-                                                         const xmlSecByte *data,
-                                                         xmlSecSize size);
-xmlSecSize          xmlSecBnGetSize                     (xmlSecBnPtr bn);
-voidxmlSecBnZero                        (xmlSecBnPtr bn);
-intxmlSecBnFromString                  (xmlSecBnPtr bn,
-                                                         const xmlChar *str,
-                                                         xmlSecSize base);
-xmlChar*            xmlSecBnToString                    (xmlSecBnPtr bn,
-                                                         xmlSecSize base);
-intxmlSecBnFromHexString               (xmlSecBnPtr bn,
-                                                         const xmlChar *str);
-xmlChar*            xmlSecBnToHexString                 (xmlSecBnPtr bn);
-intxmlSecBnFromDecString               (xmlSecBnPtr bn,
-                                                         const xmlChar *str);
-xmlChar*            xmlSecBnToDecString                 (xmlSecBnPtr bn);
-intxmlSecBnMul                         (xmlSecBnPtr bn,
-                                                         int multiplier);
-intxmlSecBnDiv                         (xmlSecBnPtr bn,
-                                                         int divider,
-                                                         int *mod);
-intxmlSecBnAdd                         (xmlSecBnPtr bn,
-                                                         int delta);
-intxmlSecBnReverse                     (xmlSecBnPtr bn);
-intxmlSecBnCompare                     (xmlSecBnPtr bn,
-                                                         const xmlSecByte *data,
-                                                         xmlSecSize dataSize);
-intxmlSecBnCompareReverse              (xmlSecBnPtr bn,
-                                                         const xmlSecByte *data,
-                                                         xmlSecSize dataSize);
-intxmlSecBnGetNodeValue                (xmlSecBnPtr bn,
-                                                         xmlNodePtr cur,
-                                                         xmlSecBnFormat format,
-                                                         int reverse);
-intxmlSecBnSetNodeValue                (xmlSecBnPtr bn,
-                                                         xmlNodePtr cur,
-                                                         xmlSecBnFormat format,
-                                                         int reverse,
-                                                         int addLineBreaks);
-intxmlSecBnBlobSetNodeValue            (const xmlSecByte *data,
-                                                         xmlSecSize dataSize,
-                                                         xmlNodePtr cur,
-                                                         xmlSecBnFormat format,
-                                                         int reverse,
-                                                         int addLineBreaks);
+xmlSecBnPtr xmlSecBnCreate (xmlSecSize size); +void xmlSecBnDestroy (xmlSecBnPtr bn); +int xmlSecBnInitialize (xmlSecBnPtr bn, + xmlSecSize size); +void xmlSecBnFinalize (xmlSecBnPtr bn); +xmlSecByte* xmlSecBnGetData (xmlSecBnPtr bn); +int xmlSecBnSetData (xmlSecBnPtr bn, + const xmlSecByte *data, + xmlSecSize size); +xmlSecSize xmlSecBnGetSize (xmlSecBnPtr bn); +void xmlSecBnZero (xmlSecBnPtr bn); +int xmlSecBnFromString (xmlSecBnPtr bn, + const xmlChar *str, + xmlSecSize base); +xmlChar* xmlSecBnToString (xmlSecBnPtr bn, + xmlSecSize base); +int xmlSecBnFromHexString (xmlSecBnPtr bn, + const xmlChar *str); +xmlChar* xmlSecBnToHexString (xmlSecBnPtr bn); +int xmlSecBnFromDecString (xmlSecBnPtr bn, + const xmlChar *str); +xmlChar* xmlSecBnToDecString (xmlSecBnPtr bn); +int xmlSecBnMul (xmlSecBnPtr bn, + int multiplier); +int xmlSecBnDiv (xmlSecBnPtr bn, + int divider, + int *mod); +int xmlSecBnAdd (xmlSecBnPtr bn, + int delta); +int xmlSecBnReverse (xmlSecBnPtr bn); +int xmlSecBnCompare (xmlSecBnPtr bn, + const xmlSecByte *data, + xmlSecSize dataSize); +int xmlSecBnCompareReverse (xmlSecBnPtr bn, + const xmlSecByte *data, + xmlSecSize dataSize); +int xmlSecBnGetNodeValue (xmlSecBnPtr bn, + xmlNodePtr cur, + xmlSecBnFormat format, + int reverse); +int xmlSecBnSetNodeValue (xmlSecBnPtr bn, + xmlNodePtr cur, + xmlSecBnFormat format, + int reverse, + int addLineBreaks); +int xmlSecBnBlobSetNodeValue (const xmlSecByte *data, + xmlSecSize dataSize, + xmlNodePtr cur, + xmlSecBnFormat format, + int reverse, + int addLineBreaks);

Description

@@ -158,35 +158,37 @@ } xmlSecBnFormat;

The big numbers formats.

+

- + - + - +
xmlSecBnBase64

the base64 decoded binary blob.

the base64 decoded binary blob.

xmlSecBnHex

the hex number.

the hex number.

xmlSecBnDec

the decimal number.

the decimal number.


xmlSecBnCreate ()

-
xmlSecBnPtr         xmlSecBnCreate                      (xmlSecSize size);
+
xmlSecBnPtr         xmlSecBnCreate                      (xmlSecSize size);

Creates a new BN object. Caller is responsible for destroying it by calling xmlSecBnDestroy function.

+

- - + + - +
size :

the initial allocated BN size.

size :

the initial allocated BN size.

Returns :Returns :

the newly BN or a NULL if an error occurs.

@@ -194,33 +196,35 @@ by calling xmlSecBnDestroy function.


xmlSecBnDestroy ()

-
void                xmlSecBnDestroy                     (xmlSecBnPtr bn);
+
void                xmlSecBnDestroy                     (xmlSecBnPtr bn);

Destroys bn object created with xmlSecBnCreate function.

+

- - + +
bn :

the pointer to BN.

bn :

the pointer to BN.


xmlSecBnInitialize ()

-
int                 xmlSecBnInitialize                  (xmlSecBnPtr bn,
-                                                         xmlSecSize size);
+
int                 xmlSecBnInitialize                  (xmlSecBnPtr bn,
+                                                         xmlSecSize size);

Initializes a BN object. Caller is responsible for destroying it by calling xmlSecBnFinalize function.

+

- - + + - - + + - +
bn :

the pointer to BN.

bn :

the pointer to BN.

size :

the initial allocated BN size.

size :

the initial allocated BN size.

Returns :Returns :

0 on success or a negative value if an error occurs.

@@ -228,27 +232,29 @@ by calling xmlSecBnFinalize function.


xmlSecBnFinalize ()

-
void                xmlSecBnFinalize                    (xmlSecBnPtr bn);
+
void                xmlSecBnFinalize                    (xmlSecBnPtr bn);

Destroys bn object created with xmlSecBnInitialize function.

+

- - + +
bn :

the pointer to BN.

bn :

the pointer to BN.


xmlSecBnGetData ()

-
xmlSecByte*         xmlSecBnGetData                     (xmlSecBnPtr bn);
+
xmlSecByte*         xmlSecBnGetData                     (xmlSecBnPtr bn);

Gets pointer to the binary bn representation.

+

- - + + - +
bn :

the pointer to BN.

bn :

the pointer to BN.

Returns :Returns :

pointer to binary BN data or NULL if an error occurs.

@@ -256,26 +262,27 @@ by calling xmlSecBnFinalize function.


xmlSecBnSetData ()

-
int                 xmlSecBnSetData                     (xmlSecBnPtr bn,
-                                                         const xmlSecByte *data,
-                                                         xmlSecSize size);
+
int                 xmlSecBnSetData                     (xmlSecBnPtr bn,
+                                                         const xmlSecByte *data,
+                                                         xmlSecSize size);

Sets the value of bn to data.

+

- - + + - - + + - - + + - +
bn :

the pointer to BN.

bn :

the pointer to BN.

data :

the pointer to new BN binary data.

data :

the pointer to new BN binary data.

size :

the size of new BN data.

size :

the size of new BN data.

Returns :Returns :

0 on success or a negative value if an error occurs.

@@ -283,16 +290,17 @@ by calling xmlSecBnFinalize function.


xmlSecBnGetSize ()

-
xmlSecSize          xmlSecBnGetSize                     (xmlSecBnPtr bn);
+
xmlSecSize          xmlSecBnGetSize                     (xmlSecBnPtr bn);

Gets the size of binary data in bn.

+

- - + + - +
bn :

the pointer to BN.

bn :

the pointer to BN.

Returns :Returns :

the size of binary data.

@@ -300,37 +308,39 @@ by calling xmlSecBnFinalize function.


xmlSecBnZero ()

-
void                xmlSecBnZero                        (xmlSecBnPtr bn);
+
void                xmlSecBnZero                        (xmlSecBnPtr bn);

Sets the value of bn to zero.

+

- - + +
bn :

the pointer to BN.

bn :

the pointer to BN.


xmlSecBnFromString ()

-
int                 xmlSecBnFromString                  (xmlSecBnPtr bn,
-                                                         const xmlChar *str,
-                                                         xmlSecSize base);
+
int                 xmlSecBnFromString                  (xmlSecBnPtr bn,
+                                                         const xmlChar *str,
+                                                         xmlSecSize base);

Reads bn from string str assuming it has base base.

+

- - + + - - + + - - + + - +
bn :

the pointer to BN.

bn :

the pointer to BN.

str :

the string with BN.

str :

the string with BN.

base :

the base for str.

base :

the base for str.

Returns :Returns :

0 on success or a negative value if an error occurs.

@@ -338,22 +348,23 @@ by calling xmlSecBnFinalize function.


xmlSecBnToString ()

-
xmlChar*            xmlSecBnToString                    (xmlSecBnPtr bn,
-                                                         xmlSecSize base);
-

Writes bn to string with base base. Caller is responsible for +

xmlChar*            xmlSecBnToString                    (xmlSecBnPtr bn,
+                                                         xmlSecSize base);
+

Writes bn to string with base base. Caller is responsible for freeing returned string with xmlFree.

+

- - + + - - + + - +
bn :

the pointer to BN.

bn :

the pointer to BN.

base :

the base for returned string.

base :

the base for returned string.

Returns :Returns :

the string represenataion if BN or a NULL if an error occurs.

@@ -361,21 +372,22 @@ freeing returned string with xmlFree.


xmlSecBnFromHexString ()

-
int                 xmlSecBnFromHexString               (xmlSecBnPtr bn,
-                                                         const xmlChar *str);
+
int                 xmlSecBnFromHexString               (xmlSecBnPtr bn,
+                                                         const xmlChar *str);

Reads bn from hex string str.

+

- - + + - - + + - +
bn :

the pointer to BN.

bn :

the pointer to BN.

str :

the string with BN.

str :

the string with BN.

Returns :Returns :

0 on success or a negative value if an error occurs.

@@ -383,17 +395,18 @@ freeing returned string with xmlFree.


xmlSecBnToHexString ()

-
xmlChar*            xmlSecBnToHexString                 (xmlSecBnPtr bn);
-

Writes bn to hex string. Caller is responsible for +

xmlChar*            xmlSecBnToHexString                 (xmlSecBnPtr bn);
+

Writes bn to hex string. Caller is responsible for freeing returned string with xmlFree.

+

- - + + - +
bn :

the pointer to BN.

bn :

the pointer to BN.

Returns :Returns :

the string represenataion if BN or a NULL if an error occurs.

@@ -401,21 +414,22 @@ freeing returned string with xmlFree.


xmlSecBnFromDecString ()

-
int                 xmlSecBnFromDecString               (xmlSecBnPtr bn,
-                                                         const xmlChar *str);
+
int                 xmlSecBnFromDecString               (xmlSecBnPtr bn,
+                                                         const xmlChar *str);

Reads bn from decimal string str.

+

- - + + - - + + - +
bn :

the pointer to BN.

bn :

the pointer to BN.

str :

the string with BN.

str :

the string with BN.

Returns :Returns :

0 on success or a negative value if an error occurs.

@@ -423,17 +437,18 @@ freeing returned string with xmlFree.


xmlSecBnToDecString ()

-
xmlChar*            xmlSecBnToDecString                 (xmlSecBnPtr bn);
-

Writes bn to decimal string. Caller is responsible for +

xmlChar*            xmlSecBnToDecString                 (xmlSecBnPtr bn);
+

Writes bn to decimal string. Caller is responsible for freeing returned string with xmlFree.

+

- - + + - +
bn :

the pointer to BN.

bn :

the pointer to BN.

Returns :Returns :

the string represenataion if BN or a NULL if an error occurs.

@@ -441,21 +456,22 @@ freeing returned string with xmlFree.


xmlSecBnMul ()

-
int                 xmlSecBnMul                         (xmlSecBnPtr bn,
-                                                         int multiplier);
+
int                 xmlSecBnMul                         (xmlSecBnPtr bn,
+                                                         int multiplier);

Multiplies bn with multiplier.

+

- - + + - - + + - +
bn :

the pointer to BN.

bn :

the pointer to BN.

multiplier :

the multiplier.

multiplier :

the multiplier.

Returns :Returns :

0 on success or a negative value if an error occurs.

@@ -463,26 +479,27 @@ freeing returned string with xmlFree.


xmlSecBnDiv ()

-
int                 xmlSecBnDiv                         (xmlSecBnPtr bn,
-                                                         int divider,
-                                                         int *mod);
+
int                 xmlSecBnDiv                         (xmlSecBnPtr bn,
+                                                         int divider,
+                                                         int *mod);

Divides bn by divider and places modulus into mod.

+

- - + + - - + + - - + + - +
bn :

the pointer to BN.

bn :

the pointer to BN.

divider :

the divider

divider :

the divider

mod :

the pointer for modulus result.

mod :

the pointer for modulus result.

Returns :Returns :

0 on success or a negative value if an error occurs.

@@ -490,21 +507,22 @@ freeing returned string with xmlFree.


xmlSecBnAdd ()

-
int                 xmlSecBnAdd                         (xmlSecBnPtr bn,
-                                                         int delta);
+
int                 xmlSecBnAdd                         (xmlSecBnPtr bn,
+                                                         int delta);

Adds delta to bn.

+

- - + + - - + + - +
bn :

the pointer to BN.

bn :

the pointer to BN.

delta :

the delta.

delta :

the delta.

Returns :Returns :

0 on success or a negative value if an error occurs.

@@ -512,16 +530,17 @@ freeing returned string with xmlFree.


xmlSecBnReverse ()

-
int                 xmlSecBnReverse                     (xmlSecBnPtr bn);
+
int                 xmlSecBnReverse                     (xmlSecBnPtr bn);

Reverses bytes order in bn.

+

- - + + - +
bn :

the pointer to BN.

bn :

the pointer to BN.

Returns :Returns :

0 on success or a negative value if an error occurs.

@@ -529,26 +548,27 @@ freeing returned string with xmlFree.


xmlSecBnCompare ()

-
int                 xmlSecBnCompare                     (xmlSecBnPtr bn,
-                                                         const xmlSecByte *data,
-                                                         xmlSecSize dataSize);
+
int                 xmlSecBnCompare                     (xmlSecBnPtr bn,
+                                                         const xmlSecByte *data,
+                                                         xmlSecSize dataSize);

Compares the bn with data.

+

- - + + - - + + - - + + - + @@ -557,26 +577,27 @@ is greater than data.


xmlSecBnCompareReverse ()

-
int                 xmlSecBnCompareReverse              (xmlSecBnPtr bn,
-                                                         const xmlSecByte *data,
-                                                         xmlSecSize dataSize);
+
int                 xmlSecBnCompareReverse              (xmlSecBnPtr bn,
+                                                         const xmlSecByte *data,
+                                                         xmlSecSize dataSize);

Compares the bn with reverse data.

+

bn :

the pointer to BN.

bn :

the pointer to BN.

data :

the data to compare BN to.

data :

the data to compare BN to.

dataSize :

the data size.

dataSize :

the data size.

Returns :Returns :

0 if data is equal, negative value if bn is less or positive value if bn is greater than data.

- - + + - - + + - - + + - + @@ -585,31 +606,32 @@ is greater than data.


xmlSecBnGetNodeValue ()

-
int                 xmlSecBnGetNodeValue                (xmlSecBnPtr bn,
-                                                         xmlNodePtr cur,
-                                                         xmlSecBnFormat format,
-                                                         int reverse);
+
int                 xmlSecBnGetNodeValue                (xmlSecBnPtr bn,
+                                                         xmlNodePtr cur,
+                                                         xmlSecBnFormat format,
+                                                         int reverse);

Converts the node content from format to bn.

+

bn :

the pointer to BN.

bn :

the pointer to BN.

data :

the data to compare BN to.

data :

the data to compare BN to.

dataSize :

the data size.

dataSize :

the data size.

Returns :Returns :

0 if data is equal, negative value if bn is less or positive value if bn is greater than data.

- - + + - - + + - - + + - - + + - +
bn :

the pointer to BN.

bn :

the pointer to BN.

cur :

the poitner to an XML node.

cur :

the poitner to an XML node.

format :

the BN format.

format :

the BN format.

reverse :

if set then reverse read buffer after reading.

reverse :

if set then reverse read buffer after reading.

Returns :Returns :

0 on success and a negative values if an error occurs.

@@ -617,36 +639,37 @@ is greater than data.


xmlSecBnSetNodeValue ()

-
int                 xmlSecBnSetNodeValue                (xmlSecBnPtr bn,
-                                                         xmlNodePtr cur,
-                                                         xmlSecBnFormat format,
-                                                         int reverse,
-                                                         int addLineBreaks);
+
int                 xmlSecBnSetNodeValue                (xmlSecBnPtr bn,
+                                                         xmlNodePtr cur,
+                                                         xmlSecBnFormat format,
+                                                         int reverse,
+                                                         int addLineBreaks);

Converts the bn and sets it to node content.

+

- - + + - - + + - - + + - - + + - - + + - +
bn :

the pointer to BN.

bn :

the pointer to BN.

cur :

the poitner to an XML node.

cur :

the poitner to an XML node.

format :

the BN format.

format :

the BN format.

reverse :

the flag that indicates whether to reverse the buffer before writing.

reverse :

the flag that indicates whether to reverse the buffer before writing.

addLineBreaks :

the flag; it is equal to 1 then linebreaks will be added before and after new buffer content.

addLineBreaks :

the flag; it is equal to 1 then linebreaks will be added before and after new buffer content.

Returns :Returns :

0 on success and a negative values if an error occurs.

@@ -654,43 +677,44 @@ is greater than data.


xmlSecBnBlobSetNodeValue ()

-
int                 xmlSecBnBlobSetNodeValue            (const xmlSecByte *data,
-                                                         xmlSecSize dataSize,
-                                                         xmlNodePtr cur,
-                                                         xmlSecBnFormat format,
-                                                         int reverse,
-                                                         int addLineBreaks);
+
int                 xmlSecBnBlobSetNodeValue            (const xmlSecByte *data,
+                                                         xmlSecSize dataSize,
+                                                         xmlNodePtr cur,
+                                                         xmlSecBnFormat format,
+                                                         int reverse,
+                                                         int addLineBreaks);

Converts the blob and sets it to node content.

+

- - + + - - + + - - + + - - + + - - + + - - + + - +
data :

the pointer to BN blob.

data :

the pointer to BN blob.

dataSize :

the size of BN blob.

dataSize :

the size of BN blob.

cur :

the poitner to an XML node.

cur :

the poitner to an XML node.

format :

the BN format.

format :

the BN format.

reverse :

the flag that indicates whether to reverse the buffer before writing.

reverse :

the flag that indicates whether to reverse the buffer before writing.

addLineBreaks :

if the flag is equal to 1 then - linebreaks will be added before and after - new buffer content.

addLineBreaks :

if the flag is equal to 1 then + linebreaks will be added before and after + new buffer content.

Returns :Returns :

0 on success and a negative values if an error occurs.

diff --git a/docs/api/xmlsec-buffer.html b/docs/api/xmlsec-buffer.html index 72d3d6b..69dab38 100644 --- a/docs/api/xmlsec-buffer.html +++ b/docs/api/xmlsec-buffer.html @@ -87,47 +87,47 @@

buffer

-

Name

buffer -- Binary buffer implementation.
+

Name

buffer -- Binary buffer implementation.

Synopsis

enum                xmlSecAllocMode;
 struct              xmlSecBuffer;
-voidxmlSecBufferSetDefaultAllocMode     (xmlSecAllocMode defAllocMode,
-                                                         xmlSecSize defInitialSize);
-xmlSecBufferPtr     xmlSecBufferCreate                  (xmlSecSize size);
-voidxmlSecBufferDestroy                 (xmlSecBufferPtr buf);
-intxmlSecBufferInitialize              (xmlSecBufferPtr buf,
-                                                         xmlSecSize size);
-voidxmlSecBufferFinalize                (xmlSecBufferPtr buf);
-xmlSecByte*         xmlSecBufferGetData                 (xmlSecBufferPtr buf);
-intxmlSecBufferSetData                 (xmlSecBufferPtr buf,
-                                                         const xmlSecByte *data,
-                                                         xmlSecSize size);
-xmlSecSize          xmlSecBufferGetSize                 (xmlSecBufferPtr buf);
-intxmlSecBufferSetSize                 (xmlSecBufferPtr buf,
-                                                         xmlSecSize size);
-xmlSecSize          xmlSecBufferGetMaxSize              (xmlSecBufferPtr buf);
-intxmlSecBufferSetMaxSize              (xmlSecBufferPtr buf,
-                                                         xmlSecSize size);
-voidxmlSecBufferEmpty                   (xmlSecBufferPtr buf);
-intxmlSecBufferAppend                  (xmlSecBufferPtr buf,
-                                                         const xmlSecByte *data,
-                                                         xmlSecSize size);
-intxmlSecBufferPrepend                 (xmlSecBufferPtr buf,
-                                                         const xmlSecByte *data,
-                                                         xmlSecSize size);
-intxmlSecBufferRemoveHead              (xmlSecBufferPtr buf,
-                                                         xmlSecSize size);
-intxmlSecBufferRemoveTail              (xmlSecBufferPtr buf,
-                                                         xmlSecSize size);
-intxmlSecBufferReadFile                (xmlSecBufferPtr buf,
-                                                         const char *filename);
-intxmlSecBufferBase64NodeContentRead   (xmlSecBufferPtr buf,
-                                                         xmlNodePtr node);
-intxmlSecBufferBase64NodeContentWrite  (xmlSecBufferPtr buf,
-                                                         xmlNodePtr node,
-                                                         int columns);
-xmlOutputBufferPtrxmlSecBufferCreateOutputBuffer      (xmlSecBufferPtr buf);
+void xmlSecBufferSetDefaultAllocMode (xmlSecAllocMode defAllocMode, + xmlSecSize defInitialSize); +xmlSecBufferPtr xmlSecBufferCreate (xmlSecSize size); +void xmlSecBufferDestroy (xmlSecBufferPtr buf); +int xmlSecBufferInitialize (xmlSecBufferPtr buf, + xmlSecSize size); +void xmlSecBufferFinalize (xmlSecBufferPtr buf); +xmlSecByte* xmlSecBufferGetData (xmlSecBufferPtr buf); +int xmlSecBufferSetData (xmlSecBufferPtr buf, + const xmlSecByte *data, + xmlSecSize size); +xmlSecSize xmlSecBufferGetSize (xmlSecBufferPtr buf); +int xmlSecBufferSetSize (xmlSecBufferPtr buf, + xmlSecSize size); +xmlSecSize xmlSecBufferGetMaxSize (xmlSecBufferPtr buf); +int xmlSecBufferSetMaxSize (xmlSecBufferPtr buf, + xmlSecSize size); +void xmlSecBufferEmpty (xmlSecBufferPtr buf); +int xmlSecBufferAppend (xmlSecBufferPtr buf, + const xmlSecByte *data, + xmlSecSize size); +int xmlSecBufferPrepend (xmlSecBufferPtr buf, + const xmlSecByte *data, + xmlSecSize size); +int xmlSecBufferRemoveHead (xmlSecBufferPtr buf, + xmlSecSize size); +int xmlSecBufferRemoveTail (xmlSecBufferPtr buf, + xmlSecSize size); +int xmlSecBufferReadFile (xmlSecBufferPtr buf, + const char *filename); +int xmlSecBufferBase64NodeContentRead (xmlSecBufferPtr buf, + xmlNodePtr node); +int xmlSecBufferBase64NodeContentWrite (xmlSecBufferPtr buf, + xmlNodePtr node, + int columns); +xmlOutputBufferPtr xmlSecBufferCreateOutputBuffer (xmlSecBufferPtr buf);

Description

@@ -143,16 +143,17 @@ struct xmlSecBuffer; } xmlSecAllocMode;

The memory allocation mode (used by xmlSecBuffer and xmlSecList).

+

- + - +
xmlSecAllocModeExact

the memory allocation mode that minimizes total - allocated memory size.

the memory allocation mode that minimizes total + allocated memory size.

xmlSecAllocModeDouble

the memory allocation mode that tries to minimize - the number of malloc calls.

the memory allocation mode that tries to minimize + the number of malloc calls.

@@ -160,65 +161,68 @@ struct xmlSecBuffer;

struct xmlSecBuffer

struct xmlSecBuffer {
-    xmlSecByte*         data;
-    xmlSecSize          size;
-    xmlSecSize          maxSize;
-    xmlSecAllocMode     allocMode;
+    xmlSecByte* 	data;
+    xmlSecSize 		size;
+    xmlSecSize		maxSize;
+    xmlSecAllocMode 	allocMode;
 };

Binary data buffer.

+

- - + + - - + + - - + + - - + +
xmlSecByte *data;

the pointer to buffer data.

xmlSecByte *data;

the pointer to buffer data.

xmlSecSize size;

the current data size.

xmlSecSize size;

the current data size.

xmlSecSize maxSize;

the max data size (allocated buffer size).

xmlSecSize maxSize;

the max data size (allocated buffer size).

xmlSecAllocMode allocMode;

the buffer memory allocation mode.

xmlSecAllocMode allocMode;

the buffer memory allocation mode.


xmlSecBufferSetDefaultAllocMode ()

-
void                xmlSecBufferSetDefaultAllocMode     (xmlSecAllocMode defAllocMode,
-                                                         xmlSecSize defInitialSize);
+
void                xmlSecBufferSetDefaultAllocMode     (xmlSecAllocMode defAllocMode,
+                                                         xmlSecSize defInitialSize);

Sets new global default allocation mode and minimal intial size.

+

- - + + - - + +
defAllocMode :

the new default buffer allocation mode.

defAllocMode :

the new default buffer allocation mode.

defInitialSize :

the new default buffer minimal intial size.

defInitialSize :

the new default buffer minimal intial size.


xmlSecBufferCreate ()

-
xmlSecBufferPtr     xmlSecBufferCreate                  (xmlSecSize size);
+
xmlSecBufferPtr     xmlSecBufferCreate                  (xmlSecSize size);

Allocates and initalizes new memory buffer with given size. Caller is responsible for calling xmlSecBufferDestroy function to free the buffer.

+

- - + + - +
size :

the intial size.

size :

the intial size.

Returns :Returns :

pointer to newly allocated buffer or NULL if an error occurs.

@@ -226,33 +230,35 @@ to free the buffer.


xmlSecBufferDestroy ()

-
void                xmlSecBufferDestroy                 (xmlSecBufferPtr buf);
+
void                xmlSecBufferDestroy                 (xmlSecBufferPtr buf);

Desrtoys buffer object created with xmlSecBufferCreate function.

+

- - + +
buf :

the pointer to buffer object.

buf :

the pointer to buffer object.


xmlSecBufferInitialize ()

-
int                 xmlSecBufferInitialize              (xmlSecBufferPtr buf,
-                                                         xmlSecSize size);
+
int                 xmlSecBufferInitialize              (xmlSecBufferPtr buf,
+                                                         xmlSecSize size);

Initializes buffer object buf. Caller is responsible for calling xmlSecBufferFinalize function to free allocated resources.

+

- - + + - - + + - +
buf :

the pointer to buffer object.

buf :

the pointer to buffer object.

size :

the initial buffer size.

size :

the initial buffer size.

Returns :Returns :

0 on success or a negative value if an error occurs.

@@ -260,28 +266,30 @@ to free the buffer.


xmlSecBufferFinalize ()

-
void                xmlSecBufferFinalize                (xmlSecBufferPtr buf);
+
void                xmlSecBufferFinalize                (xmlSecBufferPtr buf);

Frees allocated resource for a buffer intialized with xmlSecBufferInitialize function.

+

- - + +
buf :

the pointer to buffer object.

buf :

the pointer to buffer object.


xmlSecBufferGetData ()

-
xmlSecByte*         xmlSecBufferGetData                 (xmlSecBufferPtr buf);
+
xmlSecByte*         xmlSecBufferGetData                 (xmlSecBufferPtr buf);

Gets pointer to buffer's data.

+

- - + + - +
buf :

the pointer to buffer object.

buf :

the pointer to buffer object.

Returns :Returns :

pointer to buffer's data.

@@ -289,26 +297,27 @@ function.


xmlSecBufferSetData ()

-
int                 xmlSecBufferSetData                 (xmlSecBufferPtr buf,
-                                                         const xmlSecByte *data,
-                                                         xmlSecSize size);
+
int                 xmlSecBufferSetData                 (xmlSecBufferPtr buf,
+                                                         const xmlSecByte *data,
+                                                         xmlSecSize size);

Sets the value of the buffer to data.

+

- - + + - - + + - - + + - +
buf :

the pointer to buffer object.

buf :

the pointer to buffer object.

data :

the data.

data :

the data.

size :

the data size.

size :

the data size.

Returns :Returns :

0 on success or a negative value if an error occurs.

@@ -316,16 +325,17 @@ function.


xmlSecBufferGetSize ()

-
xmlSecSize          xmlSecBufferGetSize                 (xmlSecBufferPtr buf);
+
xmlSecSize          xmlSecBufferGetSize                 (xmlSecBufferPtr buf);

Gets the current buffer data size.

+

- - + + - +
buf :

the pointer to buffer object.

buf :

the pointer to buffer object.

Returns :Returns :

the current data size.

@@ -333,22 +343,23 @@ function.


xmlSecBufferSetSize ()

-
int                 xmlSecBufferSetSize                 (xmlSecBufferPtr buf,
-                                                         xmlSecSize size);
-

Sets new buffer data size. If necessary, buffer grows to +

int                 xmlSecBufferSetSize                 (xmlSecBufferPtr buf,
+                                                         xmlSecSize size);
+

Sets new buffer data size. If necessary, buffer grows to have at least size bytes.

+

- - + + - - + + - +
buf :

the pointer to buffer object.

buf :

the pointer to buffer object.

size :

the new data size.

size :

the new data size.

Returns :Returns :

0 on success or a negative value if an error occurs.

@@ -356,16 +367,17 @@ have at least size bytes.


xmlSecBufferGetMaxSize ()

-
xmlSecSize          xmlSecBufferGetMaxSize              (xmlSecBufferPtr buf);
+
xmlSecSize          xmlSecBufferGetMaxSize              (xmlSecBufferPtr buf);

Gets the maximum (allocated) buffer size.

+

- - + + - +
buf :

the pointer to buffer object.

buf :

the pointer to buffer object.

Returns :Returns :

the maximum (allocated) buffer size.

@@ -373,22 +385,23 @@ have at least size bytes.


xmlSecBufferSetMaxSize ()

-
int                 xmlSecBufferSetMaxSize              (xmlSecBufferPtr buf,
-                                                         xmlSecSize size);
-

Sets new buffer maximum size. If necessary, buffer grows to +

int                 xmlSecBufferSetMaxSize              (xmlSecBufferPtr buf,
+                                                         xmlSecSize size);
+

Sets new buffer maximum size. If necessary, buffer grows to have at least size bytes.

+

- - + + - - + + - +
buf :

the pointer to buffer object.

buf :

the pointer to buffer object.

size :

the new maximum size.

size :

the new maximum size.

Returns :Returns :

0 on success or a negative value if an error occurs.

@@ -396,37 +409,39 @@ have at least size bytes.


xmlSecBufferEmpty ()

-
void                xmlSecBufferEmpty                   (xmlSecBufferPtr buf);
+
void                xmlSecBufferEmpty                   (xmlSecBufferPtr buf);

Empties the buffer.

+

- - + +
buf :

the pointer to buffer object.

buf :

the pointer to buffer object.


xmlSecBufferAppend ()

-
int                 xmlSecBufferAppend                  (xmlSecBufferPtr buf,
-                                                         const xmlSecByte *data,
-                                                         xmlSecSize size);
+
int                 xmlSecBufferAppend                  (xmlSecBufferPtr buf,
+                                                         const xmlSecByte *data,
+                                                         xmlSecSize size);

Appends the data after the current data stored in the buffer.

+

- - + + - - + + - - + + - +
buf :

the pointer to buffer object.

buf :

the pointer to buffer object.

data :

the data.

data :

the data.

size :

the data size.

size :

the data size.

Returns :Returns :

0 on success or a negative value if an error occurs.

@@ -434,26 +449,27 @@ have at least size bytes.


xmlSecBufferPrepend ()

-
int                 xmlSecBufferPrepend                 (xmlSecBufferPtr buf,
-                                                         const xmlSecByte *data,
-                                                         xmlSecSize size);
+
int                 xmlSecBufferPrepend                 (xmlSecBufferPtr buf,
+                                                         const xmlSecByte *data,
+                                                         xmlSecSize size);

Prepends the data before the current data stored in the buffer.

+

- - + + - - + + - - + + - +
buf :

the pointer to buffer object.

buf :

the pointer to buffer object.

data :

the data.

data :

the data.

size :

the data size.

size :

the data size.

Returns :Returns :

0 on success or a negative value if an error occurs.

@@ -461,21 +477,22 @@ have at least size bytes.


xmlSecBufferRemoveHead ()

-
int                 xmlSecBufferRemoveHead              (xmlSecBufferPtr buf,
-                                                         xmlSecSize size);
+
int                 xmlSecBufferRemoveHead              (xmlSecBufferPtr buf,
+                                                         xmlSecSize size);

Removes size bytes from the beginning of the current buffer.

+

- - + + - - + + - +
buf :

the pointer to buffer object.

buf :

the pointer to buffer object.

size :

the number of bytes to be removed.

size :

the number of bytes to be removed.

Returns :Returns :

0 on success or a negative value if an error occurs.

@@ -483,21 +500,22 @@ have at least size bytes.


xmlSecBufferRemoveTail ()

-
int                 xmlSecBufferRemoveTail              (xmlSecBufferPtr buf,
-                                                         xmlSecSize size);
+
int                 xmlSecBufferRemoveTail              (xmlSecBufferPtr buf,
+                                                         xmlSecSize size);

Removes size bytes from the end of current buffer.

+

- - + + - - + + - +
buf :

the pointer to buffer object.

buf :

the pointer to buffer object.

size :

the number of bytes to be removed.

size :

the number of bytes to be removed.

Returns :Returns :

0 on success or a negative value if an error occurs.

@@ -505,21 +523,22 @@ have at least size bytes.


xmlSecBufferReadFile ()

-
int                 xmlSecBufferReadFile                (xmlSecBufferPtr buf,
-                                                         const char *filename);
+
int                 xmlSecBufferReadFile                (xmlSecBufferPtr buf,
+                                                         const char *filename);

Reads the content of the file filename in the buffer.

+

- - + + - - + + - +
buf :

the pointer to buffer object.

buf :

the pointer to buffer object.

filename :

the filename.

filename :

the filename.

Returns :Returns :

0 on success or a negative value if an error occurs.

@@ -527,22 +546,23 @@ have at least size bytes.


xmlSecBufferBase64NodeContentRead ()

-
int                 xmlSecBufferBase64NodeContentRead   (xmlSecBufferPtr buf,
-                                                         xmlNodePtr node);
+
int                 xmlSecBufferBase64NodeContentRead   (xmlSecBufferPtr buf,
+                                                         xmlNodePtr node);

Reads the content of the node, base64 decodes it and stores the result in the buffer.

+

- - + + - - + + - +
buf :

the pointer to buffer object.

buf :

the pointer to buffer object.

node :

the pointer to node.

node :

the pointer to node.

Returns :Returns :

0 on success or a negative value if an error occurs.

@@ -550,26 +570,27 @@ result in the buffer.


xmlSecBufferBase64NodeContentWrite ()

-
int                 xmlSecBufferBase64NodeContentWrite  (xmlSecBufferPtr buf,
-                                                         xmlNodePtr node,
-                                                         int columns);
+
int                 xmlSecBufferBase64NodeContentWrite  (xmlSecBufferPtr buf,
+                                                         xmlNodePtr node,
+                                                         int columns);

Sets the content of the node to the base64 encoded buffer data.

+

- - + + - - + + - - + + - +
buf :

the pointer to buffer object.

buf :

the pointer to buffer object.

node :

the pointer to a node.

node :

the pointer to a node.

columns :

the max line size fro base64 encoded data.

columns :

the max line size fro base64 encoded data.

Returns :Returns :

0 on success or a negative value if an error occurs.

@@ -577,17 +598,18 @@ result in the buffer.


xmlSecBufferCreateOutputBuffer ()

-
xmlOutputBufferPtr  xmlSecBufferCreateOutputBuffer      (xmlSecBufferPtr buf);
-

Creates new LibXML output buffer to store data in the buf. Caller is +

xmlOutputBufferPtr  xmlSecBufferCreateOutputBuffer      (xmlSecBufferPtr buf);
+

Creates new LibXML output buffer to store data in the buf. Caller is responsible for destroying buf when processing is done.

+

- - + + - + diff --git a/docs/api/xmlsec-custom-keys-manager.html b/docs/api/xmlsec-custom-keys-manager.html index f58125b..3332262 100644 --- a/docs/api/xmlsec-custom-keys-manager.html +++ b/docs/api/xmlsec-custom-keys-manager.html @@ -99,11 +99,11 @@ * key's file name in the current folder. * * Usage: - * ./decrypt3 <xml-enc> + * ./decrypt3 <xml-enc> * * Example: - * ./decrypt3 encrypt1-res.xml - * ./decrypt3 encrypt2-res.xml + * ./decrypt3 encrypt1-res.xml + * ./decrypt3 encrypt2-res.xml * * This is free software; see Copyright file in the source * distribution for preciese wording. @@ -121,7 +121,6 @@ #ifndef XMLSEC_NO_XSLT #include <libxslt/xslt.h> -#include <libxslt/security.h> #endif /* XMLSEC_NO_XSLT */ #include <xmlsec/xmlsec.h> @@ -136,16 +135,13 @@ int decrypt_file(xmlSecKeysMngrPtr mngr, const char* enc_file); int main(int argc, char **argv) { xmlSecKeysMngrPtr mngr; -#ifndef XMLSEC_NO_XSLT - xsltSecurityPrefsPtr xsltSecPrefs = NULL; -#endif /* XMLSEC_NO_XSLT */ assert(argv); if(argc != 2) { - fprintf(stderr, "Error: wrong number of arguments.\n"); - fprintf(stderr, "Usage: %s <enc-file>\n", argv[0]); - return(1); + fprintf(stderr, "Error: wrong number of arguments.\n"); + fprintf(stderr, "Usage: %s <enc-file>\n", argv[0]); + return(1); } /* Init libxml and libxslt libraries */ @@ -156,29 +152,17 @@ main(int argc, char **argv) { #ifndef XMLSEC_NO_XSLT xmlIndentTreeOutput = 1; #endif /* XMLSEC_NO_XSLT */ - - /* Init libxslt */ -#ifndef XMLSEC_NO_XSLT - /* disable everything */ - xsltSecPrefs = xsltNewSecurityPrefs(); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_READ_FILE, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_WRITE_FILE, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_CREATE_DIRECTORY, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_READ_NETWORK, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_WRITE_NETWORK, xsltSecurityForbid); - xsltSetDefaultSecurityPrefs(xsltSecPrefs); -#endif /* XMLSEC_NO_XSLT */ - + /* Init xmlsec library */ if(xmlSecInit() < 0) { - fprintf(stderr, "Error: xmlsec initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: xmlsec initialization failed.\n"); + return(-1); } /* Check loaded library version */ if(xmlSecCheckVersion() != 1) { - fprintf(stderr, "Error: loaded xmlsec library version is not compatible.\n"); - return(-1); + fprintf(stderr, "Error: loaded xmlsec library version is not compatible.\n"); + return(-1); } /* Load default crypto engine if we are supporting dynamic @@ -188,34 +172,34 @@ main(int argc, char **argv) { */ #ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) { - fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n" - "that you have it installed and check shared libraries path\n" - "(LD_LIBRARY_PATH) envornment variable.\n"); - return(-1); + fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n" + "that you have it installed and check shared libraries path\n" + "(LD_LIBRARY_PATH) envornment variable.\n"); + return(-1); } #endif /* XMLSEC_CRYPTO_DYNAMIC_LOADING */ /* Init crypto library */ if(xmlSecCryptoAppInit(NULL) < 0) { - fprintf(stderr, "Error: crypto initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: crypto initialization failed.\n"); + return(-1); } /* Init xmlsec-crypto library */ if(xmlSecCryptoInit() < 0) { - fprintf(stderr, "Error: xmlsec-crypto initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: xmlsec-crypto initialization failed.\n"); + return(-1); } /* create keys manager and load keys */ mngr = create_files_keys_mngr(); if(mngr == NULL) { - return(-1); + return(-1); } if(decrypt_file(mngr, argv[1]) < 0) { - xmlSecKeysMngrDestroy(mngr); - return(-1); + xmlSecKeysMngrDestroy(mngr); + return(-1); } /* destroy keys manager */ @@ -232,7 +216,6 @@ main(int argc, char **argv) { /* Shutdown libxslt/libxml */ #ifndef XMLSEC_NO_XSLT - xsltFreeSecurityPrefs(xsltSecPrefs); xsltCleanupGlobals(); #endif /* XMLSEC_NO_XSLT */ xmlCleanupParser(); @@ -242,8 +225,8 @@ main(int argc, char **argv) { /** * decrypt_file: - * @mngr: the pointer to keys manager. - * @enc_file: the encrypted XML file name. + * @mngr: the pointer to keys manager. + * @enc_file: the encrypted XML file name. * * Decrypts the XML file #enc_file using DES key from #key_file and * prints results to stdout. @@ -263,42 +246,42 @@ decrypt_file(xmlSecKeysMngrPtr mngr, const char* enc_file) { /* load template */ doc = xmlParseFile(enc_file); if ((doc == NULL) || (xmlDocGetRootElement(doc) == NULL)){ - fprintf(stderr, "Error: unable to parse file \"%s\"\n", enc_file); - goto done; + fprintf(stderr, "Error: unable to parse file \"%s\"\n", enc_file); + goto done; } /* find start node */ node = xmlSecFindNode(xmlDocGetRootElement(doc), xmlSecNodeEncryptedData, xmlSecEncNs); if(node == NULL) { - fprintf(stderr, "Error: start node not found in \"%s\"\n", enc_file); - goto done; + fprintf(stderr, "Error: start node not found in \"%s\"\n", enc_file); + goto done; } /* create encryption context */ encCtx = xmlSecEncCtxCreate(mngr); if(encCtx == NULL) { fprintf(stderr,"Error: failed to create encryption context\n"); - goto done; + goto done; } /* decrypt the data */ if((xmlSecEncCtxDecrypt(encCtx, node) < 0) || (encCtx->result == NULL)) { fprintf(stderr,"Error: decryption failed\n"); - goto done; + goto done; } /* print decrypted data to stdout */ if(encCtx->resultReplaced != 0) { - fprintf(stdout, "Decrypted XML data:\n"); - xmlDocDump(stdout, doc); + fprintf(stdout, "Decrypted XML data:\n"); + xmlDocDump(stdout, doc); } else { - fprintf(stdout, "Decrypted binary data (%d bytes):\n", xmlSecBufferGetSize(encCtx->result)); - if(xmlSecBufferGetData(encCtx->result) != NULL) { - fwrite(xmlSecBufferGetData(encCtx->result), - 1, - xmlSecBufferGetSize(encCtx->result), - stdout); - } + fprintf(stdout, "Decrypted binary data (%d bytes):\n", xmlSecBufferGetSize(encCtx->result)); + if(xmlSecBufferGetData(encCtx->result) != NULL) { + fwrite(xmlSecBufferGetData(encCtx->result), + 1, + xmlSecBufferGetSize(encCtx->result), + stdout); + } } fprintf(stdout, "\n"); @@ -308,11 +291,11 @@ decrypt_file(xmlSecKeysMngrPtr mngr, const char* enc_file) { done: /* cleanup */ if(encCtx != NULL) { - xmlSecEncCtxDestroy(encCtx); + xmlSecEncCtxDestroy(encCtx); } if(doc != NULL) { - xmlFreeDoc(doc); + xmlFreeDoc(doc); } return(res); } @@ -333,31 +316,31 @@ create_files_keys_mngr(void) { /* create files based keys store */ keysStore = xmlSecKeyStoreCreate(files_keys_store_get_klass()); if(keysStore == NULL) { - fprintf(stderr, "Error: failed to create keys store.\n"); - return(NULL); + fprintf(stderr, "Error: failed to create keys store.\n"); + return(NULL); } /* create keys manager */ mngr = xmlSecKeysMngrCreate(); if(mngr == NULL) { - fprintf(stderr, "Error: failed to create keys manager.\n"); - xmlSecKeyStoreDestroy(keysStore); - return(NULL); + fprintf(stderr, "Error: failed to create keys manager.\n"); + xmlSecKeyStoreDestroy(keysStore); + return(NULL); } /* add store to keys manager, from now on keys manager destroys the store if needed */ if(xmlSecKeysMngrAdoptKeysStore(mngr, keysStore) < 0) { - fprintf(stderr, "Error: failed to add keys store to keys manager.\n"); - xmlSecKeyStoreDestroy(keysStore); - xmlSecKeysMngrDestroy(mngr); - return(NULL); + fprintf(stderr, "Error: failed to add keys store to keys manager.\n"); + xmlSecKeyStoreDestroy(keysStore); + xmlSecKeysMngrDestroy(mngr); + return(NULL); } /* initialize crypto library specific data in keys manager */ if(xmlSecCryptoKeysMngrInit(mngr) < 0) { - fprintf(stderr, "Error: failed to initialize crypto data in keys manager.\n"); - xmlSecKeysMngrDestroy(mngr); - return(NULL); + fprintf(stderr, "Error: failed to initialize crypto data in keys manager.\n"); + xmlSecKeysMngrDestroy(mngr); + return(NULL); } /* set the get key callback */ @@ -373,20 +356,20 @@ create_files_keys_mngr(void) { * Attention: this probably not a good solution for high traffic systems. * ***************************************************************************/ -static xmlSecKeyPtr files_keys_store_find_key (xmlSecKeyStorePtr store, - const xmlChar* name, - xmlSecKeyInfoCtxPtr keyInfoCtx); +static xmlSecKeyPtr files_keys_store_find_key (xmlSecKeyStorePtr store, + const xmlChar* name, + xmlSecKeyInfoCtxPtr keyInfoCtx); static xmlSecKeyStoreKlass files_keys_store_klass = { sizeof(xmlSecKeyStoreKlass), sizeof(xmlSecKeyStore), - BAD_CAST "files-based-keys-store", /* const xmlChar* name; */ - NULL, /* xmlSecKeyStoreInitializeMethod initialize; */ - NULL, /* xmlSecKeyStoreFinalizeMethod finalize; */ - files_keys_store_find_key, /* xmlSecKeyStoreFindKeyMethod findKey; */ + BAD_CAST "files-based-keys-store", /* const xmlChar* name; */ + NULL, /* xmlSecKeyStoreInitializeMethod initialize; */ + NULL, /* xmlSecKeyStoreFinalizeMethod finalize; */ + files_keys_store_find_key, /* xmlSecKeyStoreFindKeyMethod findKey; */ /* reserved for the future */ - NULL, /* void* reserved0; */ - NULL, /* void* reserved1; */ + NULL, /* void* reserved0; */ + NULL, /* void* reserved1; */ }; /** @@ -404,9 +387,9 @@ files_keys_store_get_klass(void) { /** * files_keys_store_find_key: - * @store: the pointer to simple keys store. - * @name: the desired key name. - * @keyInfoCtx: the pointer to <dsig:KeyInfo/> node processing context. + * @store: the pointer to simple keys store. + * @name: the desired key name. + * @keyInfoCtx: the pointer to <dsig:KeyInfo/> node processing context. * * Lookups key in the @store. The caller is responsible for destroying * returned key with #xmlSecKeyDestroy function. @@ -424,7 +407,7 @@ files_keys_store_find_key(xmlSecKeyStorePtr store, const xmlChar* name, xmlSecKe /* it's possible to do not have the key name or desired key type * but we could do nothing in this case */ if((name == NULL) || (keyInfoCtx->keyReq.keyId == xmlSecKeyDataIdUnknown)){ - return(NULL); + return(NULL); } /* we don't want to open files in a folder other than "current"; @@ -432,32 +415,32 @@ files_keys_store_find_key(xmlSecKeyStorePtr store, const xmlChar* name, xmlSecKe * '.', '-' or '_'. */ for(p = name; (*p) != '\0'; ++p) { - if(!isalnum((*p)) && ((*p) != '.') && ((*p) != '-') && ((*p) != '_')) { - return(NULL); - } + if(!isalnum((*p)) && ((*p) != '.') && ((*p) != '-') && ((*p) != '_')) { + return(NULL); + } } if((keyInfoCtx->keyReq.keyId == xmlSecKeyDataDsaId) || (keyInfoCtx->keyReq.keyId == xmlSecKeyDataRsaId)) { - /* load key from a pem file, if key is not found then it's an error (is it?) */ - key = xmlSecCryptoAppKeyLoad(name, xmlSecKeyDataFormatPem, NULL, NULL, NULL); - if(key == NULL) { - fprintf(stderr,"Error: failed to load public pem key from \"%s\"\n", name); - return(NULL); - } + /* load key from a pem file, if key is not found then it's an error (is it?) */ + key = xmlSecCryptoAppKeyLoad(name, xmlSecKeyDataFormatPem, NULL, NULL, NULL); + if(key == NULL) { + fprintf(stderr,"Error: failed to load public pem key from \"%s\"\n", name); + return(NULL); + } } else { - /* otherwise it's a binary key, if key is not found then it's an error (is it?) */ - key = xmlSecKeyReadBinaryFile(keyInfoCtx->keyReq.keyId, name); - if(key == NULL) { - fprintf(stderr,"Error: failed to load key from binary file \"%s\"\n", name); - return(NULL); - } + /* otherwise it's a binary key, if key is not found then it's an error (is it?) */ + key = xmlSecKeyReadBinaryFile(keyInfoCtx->keyReq.keyId, name); + if(key == NULL) { + fprintf(stderr,"Error: failed to load key from binary file \"%s\"\n", name); + return(NULL); + } } /* set key name */ if(xmlSecKeySetName(key, name) < 0) { fprintf(stderr,"Error: failed to set key name for key from \"%s\"\n", name); xmlSecKeyDestroy(key); - return(NULL); + return(NULL); } return(key); diff --git a/docs/api/xmlsec-decrypt-with-keys-mngr.html b/docs/api/xmlsec-decrypt-with-keys-mngr.html index d980ff5..c638354 100644 --- a/docs/api/xmlsec-decrypt-with-keys-mngr.html +++ b/docs/api/xmlsec-decrypt-with-keys-mngr.html @@ -98,11 +98,11 @@ * DES key from a binary file * * Usage: - * ./decrypt2 <xml-enc> <des-key-file1> [<des-key-file2> [...]] + * ./decrypt2 <xml-enc> <des-key-file1> [<des-key-file2> [...]] * * Example: - * ./decrypt2 encrypt1-res.xml deskey.bin - * ./decrypt2 encrypt2-res.xml deskey.bin + * ./decrypt2 encrypt1-res.xml deskey.bin + * ./decrypt2 encrypt2-res.xml deskey.bin * * This is free software; see Copyright file in the source * distribution for preciese wording. @@ -119,7 +119,6 @@ #ifndef XMLSEC_NO_XSLT #include <libxslt/xslt.h> -#include <libxslt/security.h> #endif /* XMLSEC_NO_XSLT */ #include <xmlsec/xmlsec.h> @@ -133,16 +132,13 @@ int decrypt_file(xmlSecKeysMngrPtr mngr, const char* enc_file); int main(int argc, char **argv) { xmlSecKeysMngrPtr mngr; -#ifndef XMLSEC_NO_XSLT - xsltSecurityPrefsPtr xsltSecPrefs = NULL; -#endif /* XMLSEC_NO_XSLT */ assert(argv); if(argc != 3) { - fprintf(stderr, "Error: wrong number of arguments.\n"); - fprintf(stderr, "Usage: %s <enc-file> <key-file1> [<key-file2> [...]]\n", argv[0]); - return(1); + fprintf(stderr, "Error: wrong number of arguments.\n"); + fprintf(stderr, "Usage: %s <enc-file> <key-file1> [<key-file2> [...]]\n", argv[0]); + return(1); } /* Init libxml and libxslt libraries */ @@ -153,30 +149,17 @@ main(int argc, char **argv) { #ifndef XMLSEC_NO_XSLT xmlIndentTreeOutput = 1; #endif /* XMLSEC_NO_XSLT */ - - /* Init libxslt */ -#ifndef XMLSEC_NO_XSLT - /* disable everything */ - xsltSecPrefs = xsltNewSecurityPrefs(); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_READ_FILE, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_WRITE_FILE, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_CREATE_DIRECTORY, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_READ_NETWORK, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_WRITE_NETWORK, xsltSecurityForbid); - xsltSetDefaultSecurityPrefs(xsltSecPrefs); -#endif /* XMLSEC_NO_XSLT */ - - + /* Init xmlsec library */ if(xmlSecInit() < 0) { - fprintf(stderr, "Error: xmlsec initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: xmlsec initialization failed.\n"); + return(-1); } /* Check loaded library version */ if(xmlSecCheckVersion() != 1) { - fprintf(stderr, "Error: loaded xmlsec library version is not compatible.\n"); - return(-1); + fprintf(stderr, "Error: loaded xmlsec library version is not compatible.\n"); + return(-1); } /* Load default crypto engine if we are supporting dynamic @@ -186,34 +169,34 @@ main(int argc, char **argv) { */ #ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) { - fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n" - "that you have it installed and check shared libraries path\n" - "(LD_LIBRARY_PATH) envornment variable.\n"); - return(-1); + fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n" + "that you have it installed and check shared libraries path\n" + "(LD_LIBRARY_PATH) envornment variable.\n"); + return(-1); } #endif /* XMLSEC_CRYPTO_DYNAMIC_LOADING */ /* Init crypto library */ if(xmlSecCryptoAppInit(NULL) < 0) { - fprintf(stderr, "Error: crypto initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: crypto initialization failed.\n"); + return(-1); } /* Init xmlsec-crypto library */ if(xmlSecCryptoInit() < 0) { - fprintf(stderr, "Error: xmlsec-crypto initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: xmlsec-crypto initialization failed.\n"); + return(-1); } /* create keys manager and load keys */ mngr = load_des_keys(&(argv[2]), argc - 2); if(mngr == NULL) { - return(-1); + return(-1); } if(decrypt_file(mngr, argv[1]) < 0) { - xmlSecKeysMngrDestroy(mngr); - return(-1); + xmlSecKeysMngrDestroy(mngr); + return(-1); } /* destroy keys manager */ @@ -230,7 +213,6 @@ main(int argc, char **argv) { /* Shutdown libxslt/libxml */ #ifndef XMLSEC_NO_XSLT - xsltFreeSecurityPrefs(xsltSecPrefs); xsltCleanupGlobals(); #endif /* XMLSEC_NO_XSLT */ xmlCleanupParser(); @@ -240,8 +222,8 @@ main(int argc, char **argv) { /** * load_des_keys: - * @files: the list of filenames. - * @files_size: the number of filenames in #files. + * @files: the list of filenames. + * @files_size: the number of filenames in #files. * * Creates simple keys manager and load DES keys from #files in it. * The caller is responsible for destroing returned keys manager using @@ -265,43 +247,43 @@ load_des_keys(char** files, int files_size) { */ mngr = xmlSecKeysMngrCreate(); if(mngr == NULL) { - fprintf(stderr, "Error: failed to create keys manager.\n"); - return(NULL); + fprintf(stderr, "Error: failed to create keys manager.\n"); + return(NULL); } if(xmlSecCryptoAppDefaultKeysMngrInit(mngr) < 0) { - fprintf(stderr, "Error: failed to initialize keys manager.\n"); - xmlSecKeysMngrDestroy(mngr); - return(NULL); + fprintf(stderr, "Error: failed to initialize keys manager.\n"); + xmlSecKeysMngrDestroy(mngr); + return(NULL); } for(i = 0; i < files_size; ++i) { - assert(files[i]); + assert(files[i]); - /* load DES key */ - key = xmlSecKeyReadBinaryFile(xmlSecKeyDataDesId, files[i]); - if(key == NULL) { - fprintf(stderr,"Error: failed to load des key from binary file \"%s\"\n", files[i]); - xmlSecKeysMngrDestroy(mngr); - return(NULL); - } + /* load DES key */ + key = xmlSecKeyReadBinaryFile(xmlSecKeyDataDesId, files[i]); + if(key == NULL) { + fprintf(stderr,"Error: failed to load des key from binary file \"%s\"\n", files[i]); + xmlSecKeysMngrDestroy(mngr); + return(NULL); + } - /* set key name to the file name, this is just an example! */ - if(xmlSecKeySetName(key, BAD_CAST files[i]) < 0) { - fprintf(stderr,"Error: failed to set key name for key from \"%s\"\n", files[i]); - xmlSecKeyDestroy(key); - xmlSecKeysMngrDestroy(mngr); - return(NULL); - } - - /* add key to keys manager, from now on keys manager is responsible - * for destroying key - */ - if(xmlSecCryptoAppDefaultKeysMngrAdoptKey(mngr, key) < 0) { - fprintf(stderr,"Error: failed to add key from \"%s\" to keys manager\n", files[i]); - xmlSecKeyDestroy(key); - xmlSecKeysMngrDestroy(mngr); - return(NULL); - } + /* set key name to the file name, this is just an example! */ + if(xmlSecKeySetName(key, BAD_CAST files[i]) < 0) { + fprintf(stderr,"Error: failed to set key name for key from \"%s\"\n", files[i]); + xmlSecKeyDestroy(key); + xmlSecKeysMngrDestroy(mngr); + return(NULL); + } + + /* add key to keys manager, from now on keys manager is responsible + * for destroying key + */ + if(xmlSecCryptoAppDefaultKeysMngrAdoptKey(mngr, key) < 0) { + fprintf(stderr,"Error: failed to add key from \"%s\" to keys manager\n", files[i]); + xmlSecKeyDestroy(key); + xmlSecKeysMngrDestroy(mngr); + return(NULL); + } } return(mngr); @@ -309,8 +291,8 @@ load_des_keys(char** files, int files_size) { /** * decrypt_file: - * @mngr: the pointer to keys manager. - * @enc_file: the encrypted XML file name. + * @mngr: the pointer to keys manager. + * @enc_file: the encrypted XML file name. * * Decrypts the XML file #enc_file using DES key from #key_file and * prints results to stdout. @@ -330,42 +312,42 @@ decrypt_file(xmlSecKeysMngrPtr mngr, const char* enc_file) { /* load template */ doc = xmlParseFile(enc_file); if ((doc == NULL) || (xmlDocGetRootElement(doc) == NULL)){ - fprintf(stderr, "Error: unable to parse file \"%s\"\n", enc_file); - goto done; + fprintf(stderr, "Error: unable to parse file \"%s\"\n", enc_file); + goto done; } /* find start node */ node = xmlSecFindNode(xmlDocGetRootElement(doc), xmlSecNodeEncryptedData, xmlSecEncNs); if(node == NULL) { - fprintf(stderr, "Error: start node not found in \"%s\"\n", enc_file); - goto done; + fprintf(stderr, "Error: start node not found in \"%s\"\n", enc_file); + goto done; } /* create encryption context */ encCtx = xmlSecEncCtxCreate(mngr); if(encCtx == NULL) { fprintf(stderr,"Error: failed to create encryption context\n"); - goto done; + goto done; } /* decrypt the data */ if((xmlSecEncCtxDecrypt(encCtx, node) < 0) || (encCtx->result == NULL)) { fprintf(stderr,"Error: decryption failed\n"); - goto done; + goto done; } /* print decrypted data to stdout */ if(encCtx->resultReplaced != 0) { - fprintf(stdout, "Decrypted XML data:\n"); - xmlDocDump(stdout, doc); + fprintf(stdout, "Decrypted XML data:\n"); + xmlDocDump(stdout, doc); } else { - fprintf(stdout, "Decrypted binary data (%d bytes):\n", xmlSecBufferGetSize(encCtx->result)); - if(xmlSecBufferGetData(encCtx->result) != NULL) { - fwrite(xmlSecBufferGetData(encCtx->result), - 1, - xmlSecBufferGetSize(encCtx->result), - stdout); - } + fprintf(stdout, "Decrypted binary data (%d bytes):\n", xmlSecBufferGetSize(encCtx->result)); + if(xmlSecBufferGetData(encCtx->result) != NULL) { + fwrite(xmlSecBufferGetData(encCtx->result), + 1, + xmlSecBufferGetSize(encCtx->result), + stdout); + } } fprintf(stdout, "\n"); @@ -375,11 +357,11 @@ decrypt_file(xmlSecKeysMngrPtr mngr, const char* enc_file) { done: /* cleanup */ if(encCtx != NULL) { - xmlSecEncCtxDestroy(encCtx); + xmlSecEncCtxDestroy(encCtx); } if(doc != NULL) { - xmlFreeDoc(doc); + xmlFreeDoc(doc); } return(res); } diff --git a/docs/api/xmlsec-decrypt-with-signle-key.html b/docs/api/xmlsec-decrypt-with-signle-key.html index 1a5e348..8ab5476 100644 --- a/docs/api/xmlsec-decrypt-with-signle-key.html +++ b/docs/api/xmlsec-decrypt-with-signle-key.html @@ -97,11 +97,11 @@ * Decrypts encrypted XML file using a single DES key from a binary file * * Usage: - * ./decrypt1 <xml-enc> <des-key-file> + * ./decrypt1 <xml-enc> <des-key-file> * * Example: - * ./decrypt1 encrypt1-res.xml deskey.bin - * ./decrypt1 encrypt2-res.xml deskey.bin + * ./decrypt1 encrypt1-res.xml deskey.bin + * ./decrypt1 encrypt2-res.xml deskey.bin * * This is free software; see Copyright file in the source * distribution for preciese wording. @@ -118,7 +118,6 @@ #ifndef XMLSEC_NO_XSLT #include <libxslt/xslt.h> -#include <libxslt/security.h> #endif /* XMLSEC_NO_XSLT */ #include <xmlsec/xmlsec.h> @@ -130,16 +129,12 @@ int decrypt_file(const char* enc_file, const char* key_file); int main(int argc, char **argv) { -#ifndef XMLSEC_NO_XSLT - xsltSecurityPrefsPtr xsltSecPrefs = NULL; -#endif /* XMLSEC_NO_XSLT */ - assert(argv); if(argc != 3) { - fprintf(stderr, "Error: wrong number of arguments.\n"); - fprintf(stderr, "Usage: %s <enc-file> <key-file>\n", argv[0]); - return(1); + fprintf(stderr, "Error: wrong number of arguments.\n"); + fprintf(stderr, "Usage: %s <enc-file> <key-file>\n", argv[0]); + return(1); } /* Init libxml and libxslt libraries */ @@ -150,30 +145,17 @@ main(int argc, char **argv) { #ifndef XMLSEC_NO_XSLT xmlIndentTreeOutput = 1; #endif /* XMLSEC_NO_XSLT */ - - /* Init libxslt */ -#ifndef XMLSEC_NO_XSLT - /* disable everything */ - xsltSecPrefs = xsltNewSecurityPrefs(); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_READ_FILE, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_WRITE_FILE, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_CREATE_DIRECTORY, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_READ_NETWORK, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_WRITE_NETWORK, xsltSecurityForbid); - xsltSetDefaultSecurityPrefs(xsltSecPrefs); -#endif /* XMLSEC_NO_XSLT */ - - + /* Init xmlsec library */ if(xmlSecInit() < 0) { - fprintf(stderr, "Error: xmlsec initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: xmlsec initialization failed.\n"); + return(-1); } /* Check loaded library version */ if(xmlSecCheckVersion() != 1) { - fprintf(stderr, "Error: loaded xmlsec library version is not compatible.\n"); - return(-1); + fprintf(stderr, "Error: loaded xmlsec library version is not compatible.\n"); + return(-1); } /* Load default crypto engine if we are supporting dynamic @@ -183,27 +165,27 @@ main(int argc, char **argv) { */ #ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) { - fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n" - "that you have it installed and check shared libraries path\n" - "(LD_LIBRARY_PATH) envornment variable.\n"); - return(-1); + fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n" + "that you have it installed and check shared libraries path\n" + "(LD_LIBRARY_PATH) envornment variable.\n"); + return(-1); } #endif /* XMLSEC_CRYPTO_DYNAMIC_LOADING */ /* Init crypto library */ if(xmlSecCryptoAppInit(NULL) < 0) { - fprintf(stderr, "Error: crypto initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: crypto initialization failed.\n"); + return(-1); } /* Init xmlsec-crypto library */ if(xmlSecCryptoInit() < 0) { - fprintf(stderr, "Error: xmlsec-crypto initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: xmlsec-crypto initialization failed.\n"); + return(-1); } if(decrypt_file(argv[1], argv[2]) < 0) { - return(-1); + return(-1); } /* Shutdown xmlsec-crypto library */ @@ -226,8 +208,8 @@ main(int argc, char **argv) { /** * decrypt_file: - * @enc_file: the encrypted XML file name. - * @key_file: the Triple DES key file. + * @enc_file: the encrypted XML file name. + * @key_file: the Triple DES key file. * * Decrypts the XML file #enc_file using DES key from #key_file and * prints results to stdout. @@ -247,55 +229,55 @@ decrypt_file(const char* enc_file, const char* key_file) { /* load template */ doc = xmlParseFile(enc_file); if ((doc == NULL) || (xmlDocGetRootElement(doc) == NULL)){ - fprintf(stderr, "Error: unable to parse file \"%s\"\n", enc_file); - goto done; + fprintf(stderr, "Error: unable to parse file \"%s\"\n", enc_file); + goto done; } /* find start node */ node = xmlSecFindNode(xmlDocGetRootElement(doc), xmlSecNodeEncryptedData, xmlSecEncNs); if(node == NULL) { - fprintf(stderr, "Error: start node not found in \"%s\"\n", enc_file); - goto done; + fprintf(stderr, "Error: start node not found in \"%s\"\n", enc_file); + goto done; } /* create encryption context, we don't need keys manager in this example */ encCtx = xmlSecEncCtxCreate(NULL); if(encCtx == NULL) { fprintf(stderr,"Error: failed to create encryption context\n"); - goto done; + goto done; } /* load DES key */ encCtx->encKey = xmlSecKeyReadBinaryFile(xmlSecKeyDataDesId, key_file); if(encCtx->encKey == NULL) { fprintf(stderr,"Error: failed to load des key from binary file \"%s\"\n", key_file); - goto done; + goto done; } /* set key name to the file name, this is just an example! */ if(xmlSecKeySetName(encCtx->encKey, key_file) < 0) { - fprintf(stderr,"Error: failed to set key name for key from \"%s\"\n", key_file); - goto done; + fprintf(stderr,"Error: failed to set key name for key from \"%s\"\n", key_file); + goto done; } /* decrypt the data */ if((xmlSecEncCtxDecrypt(encCtx, node) < 0) || (encCtx->result == NULL)) { fprintf(stderr,"Error: decryption failed\n"); - goto done; + goto done; } /* print decrypted data to stdout */ if(encCtx->resultReplaced != 0) { - fprintf(stdout, "Decrypted XML data:\n"); - xmlDocDump(stdout, doc); + fprintf(stdout, "Decrypted XML data:\n"); + xmlDocDump(stdout, doc); } else { - fprintf(stdout, "Decrypted binary data (%d bytes):\n", xmlSecBufferGetSize(encCtx->result)); - if(xmlSecBufferGetData(encCtx->result) != NULL) { - fwrite(xmlSecBufferGetData(encCtx->result), - 1, - xmlSecBufferGetSize(encCtx->result), - stdout); - } + fprintf(stdout, "Decrypted binary data (%d bytes):\n", xmlSecBufferGetSize(encCtx->result)); + if(xmlSecBufferGetData(encCtx->result) != NULL) { + fwrite(xmlSecBufferGetData(encCtx->result), + 1, + xmlSecBufferGetSize(encCtx->result), + stdout); + } } fprintf(stdout, "\n"); @@ -305,11 +287,11 @@ decrypt_file(const char* enc_file, const char* key_file) { done: /* cleanup */ if(encCtx != NULL) { - xmlSecEncCtxDestroy(encCtx); + xmlSecEncCtxDestroy(encCtx); } if(doc != NULL) { - xmlFreeDoc(doc); + xmlFreeDoc(doc); } return(res); } diff --git a/docs/api/xmlsec-dl.html b/docs/api/xmlsec-dl.html index 9c343a1..1c0702a 100644 --- a/docs/api/xmlsec-dl.html +++ b/docs/api/xmlsec-dl.html @@ -87,19 +87,19 @@

dl

-

Name

dl -- Dynamic crypto-engine library loading support.
+

Name

dl -- Dynamic crypto-engine library loading support.

Synopsis

-
intxmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms
-                                                        (xmlSecCryptoDLFunctionsPtr functions);
-intxmlSecCryptoDLInit                  (void);
-intxmlSecCryptoDLShutdown              (void);
-intxmlSecCryptoDLLoadLibrary           (const xmlChar *crypto);
-xmlSecCryptoDLFunctionsPtrxmlSecCryptoDLGetLibraryFunctions
-                                                        (const xmlChar *crypto);
-intxmlSecCryptoDLUnloadLibrary         (const xmlChar *crypto);
-intxmlSecCryptoDLSetFunctions          (xmlSecCryptoDLFunctionsPtr functions);
-xmlSecCryptoDLFunctionsPtrxmlSecCryptoDLGetFunctions  (void);
+
int                 xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms
+                                                        (xmlSecCryptoDLFunctionsPtr functions);
+int                 xmlSecCryptoDLInit                  (void);
+int                 xmlSecCryptoDLShutdown              (void);
+int                 xmlSecCryptoDLLoadLibrary           (const xmlChar *crypto);
+xmlSecCryptoDLFunctionsPtr  xmlSecCryptoDLGetLibraryFunctions
+                                                        (const xmlChar *crypto);
+int                 xmlSecCryptoDLUnloadLibrary         (const xmlChar *crypto);
+int                 xmlSecCryptoDLSetFunctions          (xmlSecCryptoDLFunctionsPtr functions);
+xmlSecCryptoDLFunctionsPtr  xmlSecCryptoDLGetFunctions  (void);

Description

@@ -109,17 +109,18 @@

Details

xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms ()

-
int                 xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms
-                                                        (xmlSecCryptoDLFunctionsPtr functions);
+
int                 xmlSecCryptoDLFunctionsRegisterKeyDataAndTransforms
+                                                        (xmlSecCryptoDLFunctionsPtr functions);

Registers the key data and transforms klasses from functions table in xmlsec.

+

buf :

the pointer to buffer.

buf :

the pointer to buffer.

Returns :Returns :

pointer to newly allocated output buffer or NULL if an error occurs.

- - + + - +
functions :

the functions table.

functions :

the functions table.

Returns :Returns :

0 on success or a negative value if an error occurs.

@@ -127,42 +128,45 @@

xmlSecCryptoDLInit ()

-
int                 xmlSecCryptoDLInit                  (void);
+
int                 xmlSecCryptoDLInit                  (void);

Initializes dynamic loading engine. This is an internal function and should not be called by application directly.

+

- +
Returns :Returns :

0 on success or a negative value if an error occurs.


xmlSecCryptoDLShutdown ()

-
int                 xmlSecCryptoDLShutdown              (void);
+
int                 xmlSecCryptoDLShutdown              (void);

Shutdowns dynamic loading engine. This is an internal function and should not be called by application directly.

+

- +
Returns :Returns :

0 on success or a negative value if an error occurs.


xmlSecCryptoDLLoadLibrary ()

-
int                 xmlSecCryptoDLLoadLibrary           (const xmlChar *crypto);
-

Loads the xmlsec-<crypto> library. This function is NOT thread safe, +

int                 xmlSecCryptoDLLoadLibrary           (const xmlChar *crypto);
+

Loads the xmlsec-<crypto> library. This function is NOT thread safe, application MUST NOT call xmlSecCryptoDLLoadLibrary, xmlSecCryptoDLGetLibraryFunctions, and xmlSecCryptoDLUnloadLibrary functions from multiple threads.

+

- - + + - +
crypto :

the desired crypto library name ("openssl", "nss", ...).

crypto :

the desired crypto library name ("openssl", "nss", ...).

Returns :Returns :

0 on success or a negative value if an error occurs.

@@ -170,19 +174,20 @@ and xmlS

xmlSecCryptoDLGetLibraryFunctions ()

-
xmlSecCryptoDLFunctionsPtr  xmlSecCryptoDLGetLibraryFunctions
-                                                        (const xmlChar *crypto);
-

Loads the xmlsec-<crypto> library and gets global crypto functions/transforms/keys data/keys store -table. This function is NOT thread safe, application MUST NOT call xmlSecCryptoDLLoadLibrary, +

xmlSecCryptoDLFunctionsPtr  xmlSecCryptoDLGetLibraryFunctions
+                                                        (const xmlChar *crypto);
+

Loads the xmlsec-<crypto> library and gets global crypto functions/transforms/keys data/keys store +table. This function is NOT thread safe, application MUST NOT call xmlSecCryptoDLLoadLibrary, xmlSecCryptoDLGetLibraryFunctions, and xmlSecCryptoDLUnloadLibrary functions from multiple threads.

+

- - + + - +
crypto :

the desired crypto library name ("openssl", "nss", ...).

crypto :

the desired crypto library name ("openssl", "nss", ...).

Returns :Returns :

the table or NULL if an error occurs.

@@ -190,19 +195,20 @@ table. This function is NOT thread safe, application MUST NOT call

xmlSecCryptoDLUnloadLibrary ()

-
int                 xmlSecCryptoDLUnloadLibrary         (const xmlChar *crypto);
+
int                 xmlSecCryptoDLUnloadLibrary         (const xmlChar *crypto);

Unloads the xmlsec-<crypto> library. All pointers to this library -functions tables became invalid. This function is NOT thread safe, +functions tables became invalid. This function is NOT thread safe, application MUST NOT call xmlSecCryptoDLLoadLibrary, xmlSecCryptoDLGetLibraryFunctions, and xmlSecCryptoDLUnloadLibrary functions from multiple threads.

+

- - + + - +
crypto :

the desired crypto library name ("openssl", "nss", ...).

crypto :

the desired crypto library name ("openssl", "nss", ...).

Returns :Returns :

0 on success or a negative value if an error occurs.

@@ -210,16 +216,17 @@ and xmlS

xmlSecCryptoDLSetFunctions ()

-
int                 xmlSecCryptoDLSetFunctions          (xmlSecCryptoDLFunctionsPtr functions);
+
int                 xmlSecCryptoDLSetFunctions          (xmlSecCryptoDLFunctionsPtr functions);

Sets global crypto functions/transforms/keys data/keys store table.

+

- - + + - +
functions :

the new table

functions :

the new table

Returns :Returns :

0 on success or a negative value if an error occurs.

@@ -227,11 +234,12 @@ and xmlS

xmlSecCryptoDLGetFunctions ()

-
xmlSecCryptoDLFunctionsPtr  xmlSecCryptoDLGetFunctions  (void);
+
xmlSecCryptoDLFunctionsPtr  xmlSecCryptoDLGetFunctions  (void);

Gets global crypto functions/transforms/keys data/keys store table.

+

- +
Returns :Returns :

the table.

diff --git a/docs/api/xmlsec-encrypt-dynamic-template.html b/docs/api/xmlsec-encrypt-dynamic-template.html index b9e2679..729ebd1 100644 --- a/docs/api/xmlsec-encrypt-dynamic-template.html +++ b/docs/api/xmlsec-encrypt-dynamic-template.html @@ -98,13 +98,13 @@ * from a binary file * * Usage: - * ./encrypt2 <xml-doc> <des-key-file> + * ./encrypt2 <xml-doc> <des-key-file> * * Example: - * ./encrypt2 encrypt2-doc.xml deskey.bin > encrypt2-res.xml + * ./encrypt2 encrypt2-doc.xml deskey.bin > encrypt2-res.xml * * The result could be decrypted with decrypt1 example: - * ./decrypt1 encrypt2-res.xml deskey.bin + * ./decrypt1 encrypt2-res.xml deskey.bin * * This is free software; see Copyright file in the source * distribution for preciese wording. @@ -121,7 +121,6 @@ #ifndef XMLSEC_NO_XSLT #include <libxslt/xslt.h> -#include <libxslt/security.h> #endif /* XMLSEC_NO_XSLT */ #include <xmlsec/xmlsec.h> @@ -134,16 +133,12 @@ int encrypt_file(const char* xml_file, const char* key_file); int main(int argc, char **argv) { -#ifndef XMLSEC_NO_XSLT - xsltSecurityPrefsPtr xsltSecPrefs = NULL; -#endif /* XMLSEC_NO_XSLT */ - assert(argv); if(argc != 3) { - fprintf(stderr, "Error: wrong number of arguments.\n"); - fprintf(stderr, "Usage: %s <xml-file> <key-file>\n", argv[0]); - return(1); + fprintf(stderr, "Error: wrong number of arguments.\n"); + fprintf(stderr, "Usage: %s <xml-file> <key-file>\n", argv[0]); + return(1); } /* Init libxml and libxslt libraries */ @@ -154,29 +149,17 @@ main(int argc, char **argv) { #ifndef XMLSEC_NO_XSLT xmlIndentTreeOutput = 1; #endif /* XMLSEC_NO_XSLT */ - - /* Init libxslt */ -#ifndef XMLSEC_NO_XSLT - /* disable everything */ - xsltSecPrefs = xsltNewSecurityPrefs(); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_READ_FILE, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_WRITE_FILE, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_CREATE_DIRECTORY, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_READ_NETWORK, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_WRITE_NETWORK, xsltSecurityForbid); - xsltSetDefaultSecurityPrefs(xsltSecPrefs); -#endif /* XMLSEC_NO_XSLT */ - + /* Init xmlsec library */ if(xmlSecInit() < 0) { - fprintf(stderr, "Error: xmlsec initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: xmlsec initialization failed.\n"); + return(-1); } /* Check loaded library version */ if(xmlSecCheckVersion() != 1) { - fprintf(stderr, "Error: loaded xmlsec library version is not compatible.\n"); - return(-1); + fprintf(stderr, "Error: loaded xmlsec library version is not compatible.\n"); + return(-1); } /* Load default crypto engine if we are supporting dynamic @@ -186,27 +169,27 @@ main(int argc, char **argv) { */ #ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) { - fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n" - "that you have it installed and check shared libraries path\n" - "(LD_LIBRARY_PATH) envornment variable.\n"); - return(-1); + fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n" + "that you have it installed and check shared libraries path\n" + "(LD_LIBRARY_PATH) envornment variable.\n"); + return(-1); } #endif /* XMLSEC_CRYPTO_DYNAMIC_LOADING */ /* Init crypto library */ if(xmlSecCryptoAppInit(NULL) < 0) { - fprintf(stderr, "Error: crypto initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: crypto initialization failed.\n"); + return(-1); } /* Init xmlsec-crypto library */ if(xmlSecCryptoInit() < 0) { - fprintf(stderr, "Error: xmlsec-crypto initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: xmlsec-crypto initialization failed.\n"); + return(-1); } if(encrypt_file(argv[1], argv[2]) < 0) { - return(-1); + return(-1); } /* Shutdown xmlsec-crypto library */ @@ -220,7 +203,6 @@ main(int argc, char **argv) { /* Shutdown libxslt/libxml */ #ifndef XMLSEC_NO_XSLT - xsltFreeSecurityPrefs(xsltSecPrefs); xsltCleanupGlobals(); #endif /* XMLSEC_NO_XSLT */ xmlCleanupParser(); @@ -230,8 +212,8 @@ main(int argc, char **argv) { /** * encrypt_file: - * @xml_file: the encryption template file name. - * @key_file: the Triple DES key file. + * @xml_file: the encryption template file name. + * @key_file: the Triple DES key file. * * Encrypts #xml_file using a dynamicaly created template and DES key from * #key_file. @@ -252,61 +234,61 @@ encrypt_file(const char* xml_file, const char* key_file) { /* load template */ doc = xmlParseFile(xml_file); if ((doc == NULL) || (xmlDocGetRootElement(doc) == NULL)){ - fprintf(stderr, "Error: unable to parse file \"%s\"\n", xml_file); - goto done; + fprintf(stderr, "Error: unable to parse file \"%s\"\n", xml_file); + goto done; } /* create encryption template to encrypt XML file and replace * its content with encryption result */ encDataNode = xmlSecTmplEncDataCreate(doc, xmlSecTransformDes3CbcId, - NULL, xmlSecTypeEncElement, NULL, NULL); + NULL, xmlSecTypeEncElement, NULL, NULL); if(encDataNode == NULL) { - fprintf(stderr, "Error: failed to create encryption template\n"); - goto done; + fprintf(stderr, "Error: failed to create encryption template\n"); + goto done; } /* we want to put encrypted data in the <enc:CipherValue/> node */ if(xmlSecTmplEncDataEnsureCipherValue(encDataNode) == NULL) { - fprintf(stderr, "Error: failed to add CipherValue node\n"); - goto done; + fprintf(stderr, "Error: failed to add CipherValue node\n"); + goto done; } /* add <dsig:KeyInfo/> and <dsig:KeyName/> nodes to put key name in the signed document */ keyInfoNode = xmlSecTmplEncDataEnsureKeyInfo(encDataNode, NULL); if(keyInfoNode == NULL) { - fprintf(stderr, "Error: failed to add key info\n"); - goto done; + fprintf(stderr, "Error: failed to add key info\n"); + goto done; } if(xmlSecTmplKeyInfoAddKeyName(keyInfoNode, NULL) == NULL) { - fprintf(stderr, "Error: failed to add key name\n"); - goto done; + fprintf(stderr, "Error: failed to add key name\n"); + goto done; } /* create encryption context, we don't need keys manager in this example */ encCtx = xmlSecEncCtxCreate(NULL); if(encCtx == NULL) { fprintf(stderr,"Error: failed to create encryption context\n"); - goto done; + goto done; } /* load DES key, assuming that there is not password */ encCtx->encKey = xmlSecKeyReadBinaryFile(xmlSecKeyDataDesId, key_file); if(encCtx->encKey == NULL) { fprintf(stderr,"Error: failed to load des key from binary file \"%s\"\n", key_file); - goto done; + goto done; } /* set key name to the file name, this is just an example! */ if(xmlSecKeySetName(encCtx->encKey, key_file) < 0) { - fprintf(stderr,"Error: failed to set key name for key from \"%s\"\n", key_file); - goto done; + fprintf(stderr,"Error: failed to set key name for key from \"%s\"\n", key_file); + goto done; } /* encrypt the data */ if(xmlSecEncCtxXmlEncrypt(encCtx, encDataNode, xmlDocGetRootElement(doc)) < 0) { fprintf(stderr,"Error: encryption failed\n"); - goto done; + goto done; } /* we template is inserted in the doc */ @@ -322,15 +304,15 @@ done: /* cleanup */ if(encCtx != NULL) { - xmlSecEncCtxDestroy(encCtx); + xmlSecEncCtxDestroy(encCtx); } if(encDataNode != NULL) { - xmlFreeNode(encDataNode); + xmlFreeNode(encDataNode); } if(doc != NULL) { - xmlFreeDoc(doc); + xmlFreeDoc(doc); } return(res); } diff --git a/docs/api/xmlsec-encrypt-template-file.html b/docs/api/xmlsec-encrypt-template-file.html index 1bb8ab4..810e8fb 100644 --- a/docs/api/xmlsec-encrypt-template-file.html +++ b/docs/api/xmlsec-encrypt-template-file.html @@ -97,13 +97,13 @@ * Encrypts binary data using a template file and a DES key from a binary file * * Usage: - * ./encrypt1 <xml-tmpl> <des-key-file> + * ./encrypt1 <xml-tmpl> <des-key-file> * * Example: - * ./encrypt1 encrypt1-tmpl.xml deskey.bin > encrypt1-res.xml + * ./encrypt1 encrypt1-tmpl.xml deskey.bin > encrypt1-res.xml * * The result could be decrypted with decrypt1 example: - * ./decrypt1 encrypt1-res.xml deskey.bin + * ./decrypt1 encrypt1-res.xml deskey.bin * * This is free software; see Copyright file in the source * distribution for preciese wording. @@ -120,7 +120,6 @@ #ifndef XMLSEC_NO_XSLT #include <libxslt/xslt.h> -#include <libxslt/security.h> #endif /* XMLSEC_NO_XSLT */ #include <xmlsec/xmlsec.h> @@ -129,20 +128,17 @@ #include <xmlsec/crypto.h> int encrypt_file(const char* tmpl_file, const char* key_file, - const unsigned char* data, size_t dataSize); + const unsigned char* data, size_t dataSize); int main(int argc, char **argv) { static const char secret_data[] = "Big secret"; -#ifndef XMLSEC_NO_XSLT - xsltSecurityPrefsPtr xsltSecPrefs = NULL; -#endif /* XMLSEC_NO_XSLT */ - + assert(argv); if(argc != 3) { - fprintf(stderr, "Error: wrong number of arguments.\n"); - fprintf(stderr, "Usage: %s <tmpl-file> <key-file>\n", argv[0]); - return(1); + fprintf(stderr, "Error: wrong number of arguments.\n"); + fprintf(stderr, "Usage: %s <tmpl-file> <key-file>\n", argv[0]); + return(1); } /* Init libxml and libxslt libraries */ @@ -153,29 +149,17 @@ main(int argc, char **argv) { #ifndef XMLSEC_NO_XSLT xmlIndentTreeOutput = 1; #endif /* XMLSEC_NO_XSLT */ - - /* Init libxslt */ -#ifndef XMLSEC_NO_XSLT - /* disable everything */ - xsltSecPrefs = xsltNewSecurityPrefs(); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_READ_FILE, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_WRITE_FILE, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_CREATE_DIRECTORY, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_READ_NETWORK, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_WRITE_NETWORK, xsltSecurityForbid); - xsltSetDefaultSecurityPrefs(xsltSecPrefs); -#endif /* XMLSEC_NO_XSLT */ - + /* Init xmlsec library */ if(xmlSecInit() < 0) { - fprintf(stderr, "Error: xmlsec initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: xmlsec initialization failed.\n"); + return(-1); } /* Check loaded library version */ if(xmlSecCheckVersion() != 1) { - fprintf(stderr, "Error: loaded xmlsec library version is not compatible.\n"); - return(-1); + fprintf(stderr, "Error: loaded xmlsec library version is not compatible.\n"); + return(-1); } /* Load default crypto engine if we are supporting dynamic @@ -185,27 +169,27 @@ main(int argc, char **argv) { */ #ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) { - fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n" - "that you have it installed and check shared libraries path\n" - "(LD_LIBRARY_PATH) envornment variable.\n"); - return(-1); + fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n" + "that you have it installed and check shared libraries path\n" + "(LD_LIBRARY_PATH) envornment variable.\n"); + return(-1); } #endif /* XMLSEC_CRYPTO_DYNAMIC_LOADING */ /* Init crypto library */ if(xmlSecCryptoAppInit(NULL) < 0) { - fprintf(stderr, "Error: crypto initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: crypto initialization failed.\n"); + return(-1); } /* Init xmlsec-crypto library */ if(xmlSecCryptoInit() < 0) { - fprintf(stderr, "Error: xmlsec-crypto initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: xmlsec-crypto initialization failed.\n"); + return(-1); } if(encrypt_file(argv[1], argv[2], secret_data, strlen(secret_data)) < 0) { - return(-1); + return(-1); } /* Shutdown xmlsec-crypto library */ @@ -219,7 +203,6 @@ main(int argc, char **argv) { /* Shutdown libxslt/libxml */ #ifndef XMLSEC_NO_XSLT - xsltFreeSecurityPrefs(xsltSecPrefs); xsltCleanupGlobals(); #endif /* XMLSEC_NO_XSLT */ xmlCleanupParser(); @@ -229,10 +212,10 @@ main(int argc, char **argv) { /** * encrypt_file: - * @tmpl_file: the encryption template file name. - * @key_file: the Triple DES key file. - * @data: the binary data to encrypt. - * @dataSize: the binary data size. + * @tmpl_file: the encryption template file name. + * @key_file: the Triple DES key file. + * @data: the binary data to encrypt. + * @dataSize: the binary data size. * * Encrypts binary #data using template from #tmpl_file and DES key from * #key_file. @@ -241,7 +224,7 @@ main(int argc, char **argv) { */ int encrypt_file(const char* tmpl_file, const char* key_file, - const unsigned char* data, size_t dataSize) { + const unsigned char* data, size_t dataSize) { xmlDocPtr doc = NULL; xmlNodePtr node = NULL; xmlSecEncCtxPtr encCtx = NULL; @@ -254,41 +237,41 @@ encrypt_file(const char* tmpl_file, const char* key_file, /* load template */ doc = xmlParseFile(tmpl_file); if ((doc == NULL) || (xmlDocGetRootElement(doc) == NULL)){ - fprintf(stderr, "Error: unable to parse file \"%s\"\n", tmpl_file); - goto done; + fprintf(stderr, "Error: unable to parse file \"%s\"\n", tmpl_file); + goto done; } /* find start node */ node = xmlSecFindNode(xmlDocGetRootElement(doc), xmlSecNodeEncryptedData, xmlSecEncNs); if(node == NULL) { - fprintf(stderr, "Error: start node not found in \"%s\"\n", tmpl_file); - goto done; + fprintf(stderr, "Error: start node not found in \"%s\"\n", tmpl_file); + goto done; } /* create encryption context, we don't need keys manager in this example */ encCtx = xmlSecEncCtxCreate(NULL); if(encCtx == NULL) { fprintf(stderr,"Error: failed to create encryption context\n"); - goto done; + goto done; } /* load DES key, assuming that there is not password */ encCtx->encKey = xmlSecKeyReadBinaryFile(xmlSecKeyDataDesId, key_file); if(encCtx->encKey == NULL) { fprintf(stderr,"Error: failed to load des key from binary file \"%s\"\n", key_file); - goto done; + goto done; } /* set key name to the file name, this is just an example! */ if(xmlSecKeySetName(encCtx->encKey, key_file) < 0) { - fprintf(stderr,"Error: failed to set key name for key from \"%s\"\n", key_file); - goto done; + fprintf(stderr,"Error: failed to set key name for key from \"%s\"\n", key_file); + goto done; } /* encrypt the data */ if(xmlSecEncCtxBinaryEncrypt(encCtx, node, data, dataSize) < 0) { fprintf(stderr,"Error: encryption failed\n"); - goto done; + goto done; } /* print encrypted data with document to stdout */ @@ -301,11 +284,11 @@ done: /* cleanup */ if(encCtx != NULL) { - xmlSecEncCtxDestroy(encCtx); + xmlSecEncCtxDestroy(encCtx); } if(doc != NULL) { - xmlFreeDoc(doc); + xmlFreeDoc(doc); } return(res); } diff --git a/docs/api/xmlsec-encrypt-with-session-key.html b/docs/api/xmlsec-encrypt-with-session-key.html index 7b9ed51..d0081d6 100644 --- a/docs/api/xmlsec-encrypt-with-session-key.html +++ b/docs/api/xmlsec-encrypt-with-session-key.html @@ -98,13 +98,13 @@ * DES key (encrypted with an RSA key). * * Usage: - * ./encrypt3 <xml-doc> <rsa-pem-key-file> + * ./encrypt3 <xml-doc> <rsa-pem-key-file> * * Example: - * ./encrypt3 encrypt3-doc.xml rsakey.pem > encrypt3-res.xml + * ./encrypt3 encrypt3-doc.xml rsakey.pem > encrypt3-res.xml * * The result could be decrypted with decrypt3 example: - * ./decrypt3 encrypt3-res.xml + * ./decrypt3 encrypt3-res.xml * * This is free software; see Copyright file in the source * distribution for preciese wording. @@ -121,7 +121,6 @@ #ifndef XMLSEC_NO_XSLT #include <libxslt/xslt.h> -#include <libxslt/security.h> #endif /* XMLSEC_NO_XSLT */ #include <xmlsec/xmlsec.h> @@ -136,16 +135,13 @@ int encrypt_file(xmlSecKeysMngrPtr mngr, const char* xml_file, const char* key_n int main(int argc, char **argv) { xmlSecKeysMngrPtr mngr; -#ifndef XMLSEC_NO_XSLT - xsltSecurityPrefsPtr xsltSecPrefs = NULL; -#endif /* XMLSEC_NO_XSLT */ assert(argv); if(argc != 3) { - fprintf(stderr, "Error: wrong number of arguments.\n"); - fprintf(stderr, "Usage: %s <xml-file> <key-file>\n", argv[0]); - return(1); + fprintf(stderr, "Error: wrong number of arguments.\n"); + fprintf(stderr, "Usage: %s <xml-file> <key-file>\n", argv[0]); + return(1); } /* Init libxml and libxslt libraries */ @@ -156,29 +152,17 @@ main(int argc, char **argv) { #ifndef XMLSEC_NO_XSLT xmlIndentTreeOutput = 1; #endif /* XMLSEC_NO_XSLT */ - - /* Init libxslt */ -#ifndef XMLSEC_NO_XSLT - /* disable everything */ - xsltSecPrefs = xsltNewSecurityPrefs(); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_READ_FILE, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_WRITE_FILE, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_CREATE_DIRECTORY, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_READ_NETWORK, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_WRITE_NETWORK, xsltSecurityForbid); - xsltSetDefaultSecurityPrefs(xsltSecPrefs); -#endif /* XMLSEC_NO_XSLT */ - + /* Init xmlsec library */ if(xmlSecInit() < 0) { - fprintf(stderr, "Error: xmlsec initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: xmlsec initialization failed.\n"); + return(-1); } /* Check loaded library version */ if(xmlSecCheckVersion() != 1) { - fprintf(stderr, "Error: loaded xmlsec library version is not compatible.\n"); - return(-1); + fprintf(stderr, "Error: loaded xmlsec library version is not compatible.\n"); + return(-1); } /* Load default crypto engine if we are supporting dynamic @@ -188,35 +172,35 @@ main(int argc, char **argv) { */ #ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) { - fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n" - "that you have it installed and check shared libraries path\n" - "(LD_LIBRARY_PATH) envornment variable.\n"); - return(-1); + fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n" + "that you have it installed and check shared libraries path\n" + "(LD_LIBRARY_PATH) envornment variable.\n"); + return(-1); } #endif /* XMLSEC_CRYPTO_DYNAMIC_LOADING */ /* Init crypto library */ if(xmlSecCryptoAppInit(NULL) < 0) { - fprintf(stderr, "Error: crypto initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: crypto initialization failed.\n"); + return(-1); } /* Init xmlsec-crypto library */ if(xmlSecCryptoInit() < 0) { - fprintf(stderr, "Error: xmlsec-crypto initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: xmlsec-crypto initialization failed.\n"); + return(-1); } /* create keys manager and load keys */ mngr = load_rsa_keys(argv[2]); if(mngr == NULL) { - return(-1); + return(-1); } /* we use key filename as key name here */ if(encrypt_file(mngr, argv[1], argv[2]) < 0) { - xmlSecKeysMngrDestroy(mngr); - return(-1); + xmlSecKeysMngrDestroy(mngr); + return(-1); } /* destroy keys manager */ @@ -233,7 +217,6 @@ main(int argc, char **argv) { /* Shutdown libxslt/libxml */ #ifndef XMLSEC_NO_XSLT - xsltFreeSecurityPrefs(xsltSecPrefs); xsltCleanupGlobals(); #endif /* XMLSEC_NO_XSLT */ xmlCleanupParser(); @@ -243,7 +226,7 @@ main(int argc, char **argv) { /** * load_rsa_keys: - * @key_file: the key filename. + * @key_file: the key filename. * * Creates simple keys manager and load RSA key from #key_file in it. * The caller is responsible for destroing returned keys manager using @@ -265,13 +248,13 @@ load_rsa_keys(char* key_file) { */ mngr = xmlSecKeysMngrCreate(); if(mngr == NULL) { - fprintf(stderr, "Error: failed to create keys manager.\n"); - return(NULL); + fprintf(stderr, "Error: failed to create keys manager.\n"); + return(NULL); } if(xmlSecCryptoAppDefaultKeysMngrInit(mngr) < 0) { - fprintf(stderr, "Error: failed to initialize keys manager.\n"); - xmlSecKeysMngrDestroy(mngr); - return(NULL); + fprintf(stderr, "Error: failed to initialize keys manager.\n"); + xmlSecKeysMngrDestroy(mngr); + return(NULL); } /* load private RSA key */ @@ -285,11 +268,11 @@ load_rsa_keys(char* key_file) { /* set key name to the file name, this is just an example! */ if(xmlSecKeySetName(key, BAD_CAST key_file) < 0) { fprintf(stderr,"Error: failed to set key name for key from \"%s\"\n", key_file); - xmlSecKeyDestroy(key); - xmlSecKeysMngrDestroy(mngr); - return(NULL); + xmlSecKeyDestroy(key); + xmlSecKeysMngrDestroy(mngr); + return(NULL); } - + /* add key to keys manager, from now on keys manager is responsible * for destroying key */ @@ -305,9 +288,9 @@ load_rsa_keys(char* key_file) { /** * encrypt_file: - * @mngr: the pointer to keys manager. - * @xml_file: the encryption template file name. - * @key_name: the RSA key name. + * @mngr: the pointer to keys manager. + * @xml_file: the encryption template file name. + * @key_name: the RSA key name. * * Encrypts #xml_file using a dynamicaly created template, a session DES key * and an RSA key from keys manager. @@ -331,78 +314,78 @@ encrypt_file(xmlSecKeysMngrPtr mngr, const char* xml_file, const char* key_name) /* load template */ doc = xmlParseFile(xml_file); if ((doc == NULL) || (xmlDocGetRootElement(doc) == NULL)){ - fprintf(stderr, "Error: unable to parse file \"%s\"\n", xml_file); - goto done; + fprintf(stderr, "Error: unable to parse file \"%s\"\n", xml_file); + goto done; } /* create encryption template to encrypt XML file and replace * its content with encryption result */ encDataNode = xmlSecTmplEncDataCreate(doc, xmlSecTransformDes3CbcId, - NULL, xmlSecTypeEncElement, NULL, NULL); + NULL, xmlSecTypeEncElement, NULL, NULL); if(encDataNode == NULL) { - fprintf(stderr, "Error: failed to create encryption template\n"); - goto done; + fprintf(stderr, "Error: failed to create encryption template\n"); + goto done; } /* we want to put encrypted data in the <enc:CipherValue/> node */ if(xmlSecTmplEncDataEnsureCipherValue(encDataNode) == NULL) { - fprintf(stderr, "Error: failed to add CipherValue node\n"); - goto done; + fprintf(stderr, "Error: failed to add CipherValue node\n"); + goto done; } /* add <dsig:KeyInfo/> */ keyInfoNode = xmlSecTmplEncDataEnsureKeyInfo(encDataNode, NULL); if(keyInfoNode == NULL) { - fprintf(stderr, "Error: failed to add key info\n"); - goto done; + fprintf(stderr, "Error: failed to add key info\n"); + goto done; } /* add <enc:EncryptedKey/> to store the encrypted session key */ encKeyNode = xmlSecTmplKeyInfoAddEncryptedKey(keyInfoNode, - xmlSecTransformRsaPkcs1Id, - NULL, NULL, NULL); + xmlSecTransformRsaPkcs1Id, + NULL, NULL, NULL); if(encKeyNode == NULL) { - fprintf(stderr, "Error: failed to add key info\n"); - goto done; + fprintf(stderr, "Error: failed to add key info\n"); + goto done; } /* we want to put encrypted key in the <enc:CipherValue/> node */ if(xmlSecTmplEncDataEnsureCipherValue(encKeyNode) == NULL) { - fprintf(stderr, "Error: failed to add CipherValue node\n"); - goto done; + fprintf(stderr, "Error: failed to add CipherValue node\n"); + goto done; } /* add <dsig:KeyInfo/> and <dsig:KeyName/> nodes to <enc:EncryptedKey/> */ keyInfoNode2 = xmlSecTmplEncDataEnsureKeyInfo(encKeyNode, NULL); if(keyInfoNode2 == NULL) { - fprintf(stderr, "Error: failed to add key info\n"); - goto done; + fprintf(stderr, "Error: failed to add key info\n"); + goto done; } /* set key name so we can lookup key when needed */ if(xmlSecTmplKeyInfoAddKeyName(keyInfoNode2, key_name) == NULL) { - fprintf(stderr, "Error: failed to add key name\n"); - goto done; + fprintf(stderr, "Error: failed to add key name\n"); + goto done; } /* create encryption context */ encCtx = xmlSecEncCtxCreate(mngr); if(encCtx == NULL) { fprintf(stderr,"Error: failed to create encryption context\n"); - goto done; + goto done; } /* generate a Triple DES key */ encCtx->encKey = xmlSecKeyGenerate(xmlSecKeyDataDesId, 192, xmlSecKeyDataTypeSession); if(encCtx->encKey == NULL) { fprintf(stderr,"Error: failed to generate session des key\n"); - goto done; + goto done; } /* encrypt the data */ if(xmlSecEncCtxXmlEncrypt(encCtx, encDataNode, xmlDocGetRootElement(doc)) < 0) { fprintf(stderr,"Error: encryption failed\n"); - goto done; + goto done; } /* we template is inserted in the doc */ @@ -418,15 +401,15 @@ done: /* cleanup */ if(encCtx != NULL) { - xmlSecEncCtxDestroy(encCtx); + xmlSecEncCtxDestroy(encCtx); } if(encDataNode != NULL) { - xmlFreeNode(encDataNode); + xmlFreeNode(encDataNode); } if(doc != NULL) { - xmlFreeDoc(doc); + xmlFreeDoc(doc); } return(res); } diff --git a/docs/api/xmlsec-errors.html b/docs/api/xmlsec-errors.html index 03c9776..80788e6 100644 --- a/docs/api/xmlsec-errors.html +++ b/docs/api/xmlsec-errors.html @@ -87,92 +87,91 @@

errors

-

Name

errors -- Error/log messages support.
+

Name

errors -- Error/log messages support.

Synopsis

-
#define             XMLSEC_ERRORS_R_XMLSEC_FAILED
-#define             XMLSEC_ERRORS_R_MALLOC_FAILED
-#define             XMLSEC_ERRORS_R_STRDUP_FAILED
-#define             XMLSEC_ERRORS_R_CRYPTO_FAILED
-#define             XMLSEC_ERRORS_R_XML_FAILED
-#define             XMLSEC_ERRORS_R_XSLT_FAILED
-#define             XMLSEC_ERRORS_R_IO_FAILED
-#define             XMLSEC_ERRORS_R_DISABLED
-#define             XMLSEC_ERRORS_R_NOT_IMPLEMENTED
-#define             XMLSEC_ERRORS_R_INVALID_SIZE
-#define             XMLSEC_ERRORS_R_INVALID_DATA
-#define             XMLSEC_ERRORS_R_INVALID_RESULT
-#define             XMLSEC_ERRORS_R_INVALID_TYPE
-#define             XMLSEC_ERRORS_R_INVALID_OPERATION
-#define             XMLSEC_ERRORS_R_INVALID_STATUS
-#define             XMLSEC_ERRORS_R_INVALID_FORMAT
-#define             XMLSEC_ERRORS_R_DATA_NOT_MATCH
-#define             XMLSEC_ERRORS_R_INVALID_NODE
-#define             XMLSEC_ERRORS_R_INVALID_NODE_CONTENT
-#define             XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE
-#define             XMLSEC_ERRORS_R_MISSING_NODE_ATTRIBUTE
-#define             XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT
-#define             XMLSEC_ERRORS_R_UNEXPECTED_NODE
-#define             XMLSEC_ERRORS_R_NODE_NOT_FOUND
-#define             XMLSEC_ERRORS_R_INVALID_TRANSFORM
-#define             XMLSEC_ERRORS_R_INVALID_TRANSFORM_KEY
-#define             XMLSEC_ERRORS_R_INVALID_URI_TYPE
-#define             XMLSEC_ERRORS_R_TRANSFORM_SAME_DOCUMENT_REQUIRED
-#define             XMLSEC_ERRORS_R_TRANSFORM_DISABLED
-#define             XMLSEC_ERRORS_R_INVALID_KEY_DATA
-#define             XMLSEC_ERRORS_R_KEY_DATA_NOT_FOUND
-#define             XMLSEC_ERRORS_R_KEY_DATA_ALREADY_EXIST
-#define             XMLSEC_ERRORS_R_INVALID_KEY_DATA_SIZE
-#define             XMLSEC_ERRORS_R_KEY_NOT_FOUND
-#define             XMLSEC_ERRORS_R_KEYDATA_DISABLED
-#define             XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL
-#define             XMLSEC_ERRORS_R_MAX_RETRIEVAL_TYPE_MISMATCH
-#define             XMLSEC_ERRORS_R_MAX_ENCKEY_LEVEL
-#define             XMLSEC_ERRORS_R_CERT_VERIFY_FAILED
-#define             XMLSEC_ERRORS_R_CERT_NOT_FOUND
-#define             XMLSEC_ERRORS_R_CERT_REVOKED
-#define             XMLSEC_ERRORS_R_CERT_ISSUER_FAILED
-#define             XMLSEC_ERRORS_R_CERT_NOT_YET_VALID
-#define             XMLSEC_ERRORS_R_CERT_HAS_EXPIRED
-#define             XMLSEC_ERRORS_R_DSIG_NO_REFERENCES
-#define             XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE
-#define             XMLSEC_ERRORS_R_ASSERTION
-#define             XMLSEC_ERRORS_MAX_NUMBER
-void                (*xmlSecErrorsCallback)             (const char *file,
-                                                         int line,
-                                                         const char *func,
-                                                         const char *errorObject,
-                                                         const char *errorSubject,
-                                                         int reason,
-                                                         const char *msg);
-voidxmlSecErrorsInit                    (void);
-voidxmlSecErrorsShutdown                (void);
-voidxmlSecErrorsSetCallback             (xmlSecErrorsCallback callback);
-voidxmlSecErrorsDefaultCallback         (const char *file,
-                                                         int line,
-                                                         const char *func,
-                                                         const char *errorObject,
-                                                         const char *errorSubject,
-                                                         int reason,
-                                                         const char *msg);
-voidxmlSecErrorsDefaultCallbackEnableOutput
-                                                        (int enabled);
-intxmlSecErrorsGetCode                 (xmlSecSize pos);
-const char*         xmlSecErrorsGetMsg                  (xmlSecSize pos);
-#define             XMLSEC_ERRORS_HERE
+
#define             XMLSEC_ERRORS_R_XMLSEC_FAILED
+#define             XMLSEC_ERRORS_R_MALLOC_FAILED
+#define             XMLSEC_ERRORS_R_STRDUP_FAILED
+#define             XMLSEC_ERRORS_R_CRYPTO_FAILED
+#define             XMLSEC_ERRORS_R_XML_FAILED
+#define             XMLSEC_ERRORS_R_XSLT_FAILED
+#define             XMLSEC_ERRORS_R_IO_FAILED
+#define             XMLSEC_ERRORS_R_DISABLED
+#define             XMLSEC_ERRORS_R_NOT_IMPLEMENTED
+#define             XMLSEC_ERRORS_R_INVALID_SIZE
+#define             XMLSEC_ERRORS_R_INVALID_DATA
+#define             XMLSEC_ERRORS_R_INVALID_RESULT
+#define             XMLSEC_ERRORS_R_INVALID_TYPE
+#define             XMLSEC_ERRORS_R_INVALID_OPERATION
+#define             XMLSEC_ERRORS_R_INVALID_STATUS
+#define             XMLSEC_ERRORS_R_INVALID_FORMAT
+#define             XMLSEC_ERRORS_R_DATA_NOT_MATCH
+#define             XMLSEC_ERRORS_R_INVALID_NODE
+#define             XMLSEC_ERRORS_R_INVALID_NODE_CONTENT
+#define             XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE
+#define             XMLSEC_ERRORS_R_MISSING_NODE_ATTRIBUTE
+#define             XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT
+#define             XMLSEC_ERRORS_R_UNEXPECTED_NODE
+#define             XMLSEC_ERRORS_R_NODE_NOT_FOUND
+#define             XMLSEC_ERRORS_R_INVALID_TRANSFORM
+#define             XMLSEC_ERRORS_R_INVALID_TRANSFORM_KEY
+#define             XMLSEC_ERRORS_R_INVALID_URI_TYPE
+#define             XMLSEC_ERRORS_R_TRANSFORM_SAME_DOCUMENT_REQUIRED
+#define             XMLSEC_ERRORS_R_TRANSFORM_DISABLED
+#define             XMLSEC_ERRORS_R_INVALID_KEY_DATA
+#define             XMLSEC_ERRORS_R_KEY_DATA_NOT_FOUND
+#define             XMLSEC_ERRORS_R_KEY_DATA_ALREADY_EXIST
+#define             XMLSEC_ERRORS_R_INVALID_KEY_DATA_SIZE
+#define             XMLSEC_ERRORS_R_KEY_NOT_FOUND
+#define             XMLSEC_ERRORS_R_KEYDATA_DISABLED
+#define             XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL
+#define             XMLSEC_ERRORS_R_MAX_RETRIEVAL_TYPE_MISMATCH
+#define             XMLSEC_ERRORS_R_MAX_ENCKEY_LEVEL
+#define             XMLSEC_ERRORS_R_CERT_VERIFY_FAILED
+#define             XMLSEC_ERRORS_R_CERT_NOT_FOUND
+#define             XMLSEC_ERRORS_R_CERT_REVOKED
+#define             XMLSEC_ERRORS_R_CERT_ISSUER_FAILED
+#define             XMLSEC_ERRORS_R_CERT_NOT_YET_VALID
+#define             XMLSEC_ERRORS_R_CERT_HAS_EXPIRED
+#define             XMLSEC_ERRORS_R_DSIG_NO_REFERENCES
+#define             XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE
+#define             XMLSEC_ERRORS_R_ASSERTION
+#define             XMLSEC_ERRORS_MAX_NUMBER
+void                (*xmlSecErrorsCallback)             (const char *file,
+                                                         int line,
+                                                         const char *func,
+                                                         const char *errorObject,
+                                                         const char *errorSubject,
+                                                         int reason,
+                                                         const char *msg);
+void                xmlSecErrorsInit                    (void);
+void                xmlSecErrorsShutdown                (void);
+void                xmlSecErrorsSetCallback             (xmlSecErrorsCallback callback);
+void                xmlSecErrorsDefaultCallback         (const char *file,
+                                                         int line,
+                                                         const char *func,
+                                                         const char *errorObject,
+                                                         const char *errorSubject,
+                                                         int reason,
+                                                         const char *msg);
+void                xmlSecErrorsDefaultCallbackEnableOutput
+                                                        (int enabled);
+int                 xmlSecErrorsGetCode                 (xmlSecSize pos);
+const char*         xmlSecErrorsGetMsg                  (xmlSecSize pos);
+#define             XMLSEC_ERRORS_HERE
 #define             xmlSecErrorsSafeString              (str)
-#define             XMLSEC_ERRORS_NO_MESSAGE
-voidxmlSecError                         (const char *file,
-                                                         int line,
-                                                         const char *func,
-                                                         const char *errorObject,
-                                                         const char *errorSubject,
-                                                         int reason,
-                                                         const char *msg,
-                                                         ...);
-#define             xmlSecAssert                        (p)
-#define             xmlSecAssert2                       (p,
-                                                         ret)
+#define XMLSEC_ERRORS_NO_MESSAGE +void xmlSecError (const char *file, + int line, + const char *func, + const char *errorObject, + const char *errorSubject, + int reason, + const char *msg, + ...); +#define xmlSecAssert ( p ) +#define xmlSecAssert2 ( p, ret )

Description

@@ -181,435 +180,490 @@ const char

Details

-

XMLSEC_ERRORS_R_XMLSEC_FAILED

-
#define XMLSEC_ERRORS_R_XMLSEC_FAILED                   1
+

XMLSEC_ERRORS_R_XMLSEC_FAILED

+
#define XMLSEC_ERRORS_R_XMLSEC_FAILED		 	1

An XMLSec function failed (error subject is the failed function).

+


-

XMLSEC_ERRORS_R_MALLOC_FAILED

-
#define XMLSEC_ERRORS_R_MALLOC_FAILED                   2
+

XMLSEC_ERRORS_R_MALLOC_FAILED

+
#define XMLSEC_ERRORS_R_MALLOC_FAILED		 	2

Failed to allocate memory error.

+


-

XMLSEC_ERRORS_R_STRDUP_FAILED

-
#define XMLSEC_ERRORS_R_STRDUP_FAILED                   3
+

XMLSEC_ERRORS_R_STRDUP_FAILED

+
#define XMLSEC_ERRORS_R_STRDUP_FAILED		 	3

Failed to duplicate string error.

+


-

XMLSEC_ERRORS_R_CRYPTO_FAILED

-
#define XMLSEC_ERRORS_R_CRYPTO_FAILED                   4
+

XMLSEC_ERRORS_R_CRYPTO_FAILED

+
#define XMLSEC_ERRORS_R_CRYPTO_FAILED		 	4

Crypto (OpenSSL) function failed (error subject is the failed function).

+


-

XMLSEC_ERRORS_R_XML_FAILED

-
#define XMLSEC_ERRORS_R_XML_FAILED                      5
+

XMLSEC_ERRORS_R_XML_FAILED

+
#define XMLSEC_ERRORS_R_XML_FAILED		 	5

LibXML function failed (error subject is the failed function).

+


-

XMLSEC_ERRORS_R_XSLT_FAILED

-
#define XMLSEC_ERRORS_R_XSLT_FAILED                     6
+

XMLSEC_ERRORS_R_XSLT_FAILED

+
#define XMLSEC_ERRORS_R_XSLT_FAILED		 	6

LibXSLT function failed (error subject is the failed function).

+


-

XMLSEC_ERRORS_R_IO_FAILED

-
#define XMLSEC_ERRORS_R_IO_FAILED                       7
+

XMLSEC_ERRORS_R_IO_FAILED

+
#define XMLSEC_ERRORS_R_IO_FAILED		 	7

IO operation failed.

+


-

XMLSEC_ERRORS_R_DISABLED

-
#define XMLSEC_ERRORS_R_DISABLED                        8
+

XMLSEC_ERRORS_R_DISABLED

+
#define XMLSEC_ERRORS_R_DISABLED		 	8

The feature is disabled during compilation. Check './configure --help' for details on how to enable it.

+


-

XMLSEC_ERRORS_R_NOT_IMPLEMENTED

-
#define XMLSEC_ERRORS_R_NOT_IMPLEMENTED                 9
+

XMLSEC_ERRORS_R_NOT_IMPLEMENTED

+
#define XMLSEC_ERRORS_R_NOT_IMPLEMENTED		 	9

Feature is not implemented.

+


-

XMLSEC_ERRORS_R_INVALID_SIZE

-
#define XMLSEC_ERRORS_R_INVALID_SIZE                    11
+

XMLSEC_ERRORS_R_INVALID_SIZE

+
#define XMLSEC_ERRORS_R_INVALID_SIZE		 	11

Invalid size.

+


-

XMLSEC_ERRORS_R_INVALID_DATA

-
#define XMLSEC_ERRORS_R_INVALID_DATA                    12
+

XMLSEC_ERRORS_R_INVALID_DATA

+
#define XMLSEC_ERRORS_R_INVALID_DATA		 	12

Invalid data.

+


-

XMLSEC_ERRORS_R_INVALID_RESULT

-
#define XMLSEC_ERRORS_R_INVALID_RESULT                  13
+

XMLSEC_ERRORS_R_INVALID_RESULT

+
#define XMLSEC_ERRORS_R_INVALID_RESULT		 	13

Invalid result.

+


-

XMLSEC_ERRORS_R_INVALID_TYPE

-
#define XMLSEC_ERRORS_R_INVALID_TYPE                    14
+

XMLSEC_ERRORS_R_INVALID_TYPE

+
#define XMLSEC_ERRORS_R_INVALID_TYPE		 	14

Invalid type.

+


-

XMLSEC_ERRORS_R_INVALID_OPERATION

-
#define XMLSEC_ERRORS_R_INVALID_OPERATION               15
+

XMLSEC_ERRORS_R_INVALID_OPERATION

+
#define XMLSEC_ERRORS_R_INVALID_OPERATION	 	15

Invalid operation.

+


-

XMLSEC_ERRORS_R_INVALID_STATUS

-
#define XMLSEC_ERRORS_R_INVALID_STATUS                  16
+

XMLSEC_ERRORS_R_INVALID_STATUS

+
#define XMLSEC_ERRORS_R_INVALID_STATUS 			16

Invalid status.

+


-

XMLSEC_ERRORS_R_INVALID_FORMAT

-
#define XMLSEC_ERRORS_R_INVALID_FORMAT                  17
+

XMLSEC_ERRORS_R_INVALID_FORMAT

+
#define XMLSEC_ERRORS_R_INVALID_FORMAT 			17

Invalid format.

+


-

XMLSEC_ERRORS_R_DATA_NOT_MATCH

-
#define XMLSEC_ERRORS_R_DATA_NOT_MATCH                  18
+

XMLSEC_ERRORS_R_DATA_NOT_MATCH

+
#define XMLSEC_ERRORS_R_DATA_NOT_MATCH		 	18

The data do not match our expectation.

+


-

XMLSEC_ERRORS_R_INVALID_NODE

-
#define XMLSEC_ERRORS_R_INVALID_NODE                    21
+

XMLSEC_ERRORS_R_INVALID_NODE

+
#define XMLSEC_ERRORS_R_INVALID_NODE	 	 	21

Invalid node (error subject is the node name).

+


-

XMLSEC_ERRORS_R_INVALID_NODE_CONTENT

-
#define XMLSEC_ERRORS_R_INVALID_NODE_CONTENT            22
+

XMLSEC_ERRORS_R_INVALID_NODE_CONTENT

+
#define XMLSEC_ERRORS_R_INVALID_NODE_CONTENT	 	22

Invalid node content (error subject is the node name).

+


-

XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE

-
#define XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE          23
+

XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE

+
#define XMLSEC_ERRORS_R_INVALID_NODE_ATTRIBUTE	 	23

Invalid node attribute (error subject is the node name).

+


-

XMLSEC_ERRORS_R_MISSING_NODE_ATTRIBUTE

-
#define XMLSEC_ERRORS_R_MISSING_NODE_ATTRIBUTE          25
+

XMLSEC_ERRORS_R_MISSING_NODE_ATTRIBUTE

+
#define XMLSEC_ERRORS_R_MISSING_NODE_ATTRIBUTE	 	25

Missing node attribute (error subject is the node name).

+


-

XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT

-
#define XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT            26
+

XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT

+
#define XMLSEC_ERRORS_R_NODE_ALREADY_PRESENT	 	26

Node already present,

+


-

XMLSEC_ERRORS_R_UNEXPECTED_NODE

-
#define XMLSEC_ERRORS_R_UNEXPECTED_NODE                 27
+

XMLSEC_ERRORS_R_UNEXPECTED_NODE

+
#define XMLSEC_ERRORS_R_UNEXPECTED_NODE	 	 	27

Unexpected node (error subject is the node name).

+


-

XMLSEC_ERRORS_R_NODE_NOT_FOUND

-
#define XMLSEC_ERRORS_R_NODE_NOT_FOUND                  28
+

XMLSEC_ERRORS_R_NODE_NOT_FOUND

+
#define XMLSEC_ERRORS_R_NODE_NOT_FOUND 	 	 	28

Node not found (error subject is the required node name).

+


-

XMLSEC_ERRORS_R_INVALID_TRANSFORM

-
#define XMLSEC_ERRORS_R_INVALID_TRANSFORM               31
+

XMLSEC_ERRORS_R_INVALID_TRANSFORM

+
#define XMLSEC_ERRORS_R_INVALID_TRANSFORM	 	31

This transform is invlaid here.

+


-

XMLSEC_ERRORS_R_INVALID_TRANSFORM_KEY

-
#define XMLSEC_ERRORS_R_INVALID_TRANSFORM_KEY           32
+

XMLSEC_ERRORS_R_INVALID_TRANSFORM_KEY

+
#define XMLSEC_ERRORS_R_INVALID_TRANSFORM_KEY		32

Key is invalid for this transform.

+


-

XMLSEC_ERRORS_R_INVALID_URI_TYPE

-
#define XMLSEC_ERRORS_R_INVALID_URI_TYPE                33
+

XMLSEC_ERRORS_R_INVALID_URI_TYPE

+
#define XMLSEC_ERRORS_R_INVALID_URI_TYPE 	 	33

Invalid URI type.

+


-

XMLSEC_ERRORS_R_TRANSFORM_SAME_DOCUMENT_REQUIRED

-
#define XMLSEC_ERRORS_R_TRANSFORM_SAME_DOCUMENT_REQUIRED        34
+

XMLSEC_ERRORS_R_TRANSFORM_SAME_DOCUMENT_REQUIRED

+
#define XMLSEC_ERRORS_R_TRANSFORM_SAME_DOCUMENT_REQUIRED 	34

The transform requires the input document to be the same as context.

+


-

XMLSEC_ERRORS_R_TRANSFORM_DISABLED

-
#define XMLSEC_ERRORS_R_TRANSFORM_DISABLED              35
+

XMLSEC_ERRORS_R_TRANSFORM_DISABLED

+
#define XMLSEC_ERRORS_R_TRANSFORM_DISABLED		35

The transform is disabled.

+


-

XMLSEC_ERRORS_R_INVALID_KEY_DATA

-
#define XMLSEC_ERRORS_R_INVALID_KEY_DATA                41
+

XMLSEC_ERRORS_R_INVALID_KEY_DATA

+
#define XMLSEC_ERRORS_R_INVALID_KEY_DATA	 	41

Key data is invalid.

+


-

XMLSEC_ERRORS_R_KEY_DATA_NOT_FOUND

-
#define XMLSEC_ERRORS_R_KEY_DATA_NOT_FOUND              42
+

XMLSEC_ERRORS_R_KEY_DATA_NOT_FOUND

+
#define XMLSEC_ERRORS_R_KEY_DATA_NOT_FOUND		42

Data is not found (error subject is the data name).

+


-

XMLSEC_ERRORS_R_KEY_DATA_ALREADY_EXIST

-
#define XMLSEC_ERRORS_R_KEY_DATA_ALREADY_EXIST          43
+

XMLSEC_ERRORS_R_KEY_DATA_ALREADY_EXIST

+
#define XMLSEC_ERRORS_R_KEY_DATA_ALREADY_EXIST	 	43

The key data is already exist.

+


-

XMLSEC_ERRORS_R_INVALID_KEY_DATA_SIZE

-
#define XMLSEC_ERRORS_R_INVALID_KEY_DATA_SIZE           44
+

XMLSEC_ERRORS_R_INVALID_KEY_DATA_SIZE

+
#define XMLSEC_ERRORS_R_INVALID_KEY_DATA_SIZE	 	44

Invalid key size.

+


-

XMLSEC_ERRORS_R_KEY_NOT_FOUND

-
#define XMLSEC_ERRORS_R_KEY_NOT_FOUND                   45
+

XMLSEC_ERRORS_R_KEY_NOT_FOUND

+
#define XMLSEC_ERRORS_R_KEY_NOT_FOUND		 	45

Key not found.

+


-

XMLSEC_ERRORS_R_KEYDATA_DISABLED

-
#define XMLSEC_ERRORS_R_KEYDATA_DISABLED                46
+

XMLSEC_ERRORS_R_KEYDATA_DISABLED

+
#define XMLSEC_ERRORS_R_KEYDATA_DISABLED		46

The key data type disabled.

+


-

XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL

-
#define XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL            51
+

XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL

+
#define XMLSEC_ERRORS_R_MAX_RETRIEVALS_LEVEL	 	51

Max allowed retrievals level reached.

+


-

XMLSEC_ERRORS_R_MAX_RETRIEVAL_TYPE_MISMATCH

-
#define XMLSEC_ERRORS_R_MAX_RETRIEVAL_TYPE_MISMATCH     52
-

The retrieved key data type does not match the one specified +

XMLSEC_ERRORS_R_MAX_RETRIEVAL_TYPE_MISMATCH

+
#define XMLSEC_ERRORS_R_MAX_RETRIEVAL_TYPE_MISMATCH	52
+

The retrieved key data type does not match the one specified in the <dsig:RetrievalMethod/> node.

+


-

XMLSEC_ERRORS_R_MAX_ENCKEY_LEVEL

-
#define XMLSEC_ERRORS_R_MAX_ENCKEY_LEVEL                61
+

XMLSEC_ERRORS_R_MAX_ENCKEY_LEVEL

+
#define XMLSEC_ERRORS_R_MAX_ENCKEY_LEVEL	 	61

Max EncryptedKey level reached.

+


-

XMLSEC_ERRORS_R_CERT_VERIFY_FAILED

-
#define XMLSEC_ERRORS_R_CERT_VERIFY_FAILED              71
+

XMLSEC_ERRORS_R_CERT_VERIFY_FAILED

+
#define XMLSEC_ERRORS_R_CERT_VERIFY_FAILED	 	71

Certificate verification failed.

+


-

XMLSEC_ERRORS_R_CERT_NOT_FOUND

-
#define XMLSEC_ERRORS_R_CERT_NOT_FOUND                  72
+

XMLSEC_ERRORS_R_CERT_NOT_FOUND

+
#define XMLSEC_ERRORS_R_CERT_NOT_FOUND		 	72

Requested certificate is not found.

+


-

XMLSEC_ERRORS_R_CERT_REVOKED

-
#define XMLSEC_ERRORS_R_CERT_REVOKED                    73
+

XMLSEC_ERRORS_R_CERT_REVOKED

+
#define XMLSEC_ERRORS_R_CERT_REVOKED		 	73

The certificate is revoked.

+


-

XMLSEC_ERRORS_R_CERT_ISSUER_FAILED

-
#define XMLSEC_ERRORS_R_CERT_ISSUER_FAILED              74
+

XMLSEC_ERRORS_R_CERT_ISSUER_FAILED

+
#define XMLSEC_ERRORS_R_CERT_ISSUER_FAILED	 	74

Failed to get certificate issuer.

+


-

XMLSEC_ERRORS_R_CERT_NOT_YET_VALID

-
#define XMLSEC_ERRORS_R_CERT_NOT_YET_VALID              75
+

XMLSEC_ERRORS_R_CERT_NOT_YET_VALID

+
#define XMLSEC_ERRORS_R_CERT_NOT_YET_VALID	 	75

"Not valid before" verification failed.

+


-

XMLSEC_ERRORS_R_CERT_HAS_EXPIRED

-
#define XMLSEC_ERRORS_R_CERT_HAS_EXPIRED                76
+

XMLSEC_ERRORS_R_CERT_HAS_EXPIRED

+
#define XMLSEC_ERRORS_R_CERT_HAS_EXPIRED	 	76

"Not valid after" verification failed.

+


-

XMLSEC_ERRORS_R_DSIG_NO_REFERENCES

-
#define XMLSEC_ERRORS_R_DSIG_NO_REFERENCES              81
+

XMLSEC_ERRORS_R_DSIG_NO_REFERENCES

+
#define XMLSEC_ERRORS_R_DSIG_NO_REFERENCES 	 	81

The <dsig:Reference> nodes not found.

+


-

XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE

-
#define XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE          82
+

XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE

+
#define XMLSEC_ERRORS_R_DSIG_INVALID_REFERENCE 	 	82

The <dsig:Reference> validation failed.

+


-

XMLSEC_ERRORS_R_ASSERTION

-
#define XMLSEC_ERRORS_R_ASSERTION                       100
+

XMLSEC_ERRORS_R_ASSERTION

+
#define XMLSEC_ERRORS_R_ASSERTION		 	100

Invalid assertion.

+


-

XMLSEC_ERRORS_MAX_NUMBER

-
#define XMLSEC_ERRORS_MAX_NUMBER                        256
+

XMLSEC_ERRORS_MAX_NUMBER

+
#define XMLSEC_ERRORS_MAX_NUMBER			256

The maximum xmlsec errors number.

+


xmlSecErrorsCallback ()

-
void                (*xmlSecErrorsCallback)             (const char *file,
-                                                         int line,
-                                                         const char *func,
-                                                         const char *errorObject,
-                                                         const char *errorSubject,
-                                                         int reason,
-                                                         const char *msg);
+
void                (*xmlSecErrorsCallback)             (const char *file,
+                                                         int line,
+                                                         const char *func,
+                                                         const char *errorObject,
+                                                         const char *errorSubject,
+                                                         int reason,
+                                                         const char *msg);

The errors reporting callback function.

+

- - + + - - + + - - + + - - + + - - + + - - + + - - + +
file :

the error location file name (__FILE__ macro).

file :

the error location file name (__FILE__ macro).

line :

the error location line number (__LINE__ macro).

line :

the error location line number (__LINE__ macro).

func :

the error location function name (__FUNCTION__ macro).

func :

the error location function name (__FUNCTION__ macro).

errorObject :

the error specific error object

errorObject :

the error specific error object

errorSubject :

the error specific error subject.

errorSubject :

the error specific error subject.

reason :

the error code.

reason :

the error code.

msg :

the additional error message.

msg :

the additional error message.


xmlSecErrorsInit ()

-
void                xmlSecErrorsInit                    (void);
+
void                xmlSecErrorsInit                    (void);

Initializes the errors reporting. It is called from xmlSecInit function. and applications must not call this function directly.

+


xmlSecErrorsShutdown ()

-
void                xmlSecErrorsShutdown                (void);
+
void                xmlSecErrorsShutdown                (void);

Cleanups the errors reporting. It is called from xmlSecShutdown function. and applications must not call this function directly.

+


xmlSecErrorsSetCallback ()

-
void                xmlSecErrorsSetCallback             (xmlSecErrorsCallback callback);
-

Sets the errors callback function to callback that will be called +

void                xmlSecErrorsSetCallback             (xmlSecErrorsCallback callback);
+

Sets the errors callback function to callback that will be called every time an error occurs.

+

- - + +
callback :

the new errors callback function.

callback :

the new errors callback function.


xmlSecErrorsDefaultCallback ()

-
void                xmlSecErrorsDefaultCallback         (const char *file,
-                                                         int line,
-                                                         const char *func,
-                                                         const char *errorObject,
-                                                         const char *errorSubject,
-                                                         int reason,
-                                                         const char *msg);
+
void                xmlSecErrorsDefaultCallback         (const char *file,
+                                                         int line,
+                                                         const char *func,
+                                                         const char *errorObject,
+                                                         const char *errorSubject,
+                                                         int reason,
+                                                         const char *msg);

The default error reporting callback that utilizes LibXML error reporting xmlGenericError function.

+

- - + + - - + + - - + + - - + + - - + + - - + + - - + +
file :

the error location file name (__FILE__ macro).

file :

the error location file name (__FILE__ macro).

line :

the error location line number (__LINE__ macro).

line :

the error location line number (__LINE__ macro).

func :

the error location function name (__FUNCTION__ macro).

func :

the error location function name (__FUNCTION__ macro).

errorObject :

the error specific error object

errorObject :

the error specific error object

errorSubject :

the error specific error subject.

errorSubject :

the error specific error subject.

reason :

the error code.

reason :

the error code.

msg :

the additional error message.

msg :

the additional error message.


xmlSecErrorsDefaultCallbackEnableOutput ()

-
void                xmlSecErrorsDefaultCallbackEnableOutput
-                                                        (int enabled);
+
void                xmlSecErrorsDefaultCallbackEnableOutput
+                                                        (int enabled);

Enables or disables calling LibXML2 callback from the default errors callback.

+

- - + +
enabled :

the flag.

enabled :

the flag.


xmlSecErrorsGetCode ()

-
int                 xmlSecErrorsGetCode                 (xmlSecSize pos);
+
int                 xmlSecErrorsGetCode                 (xmlSecSize pos);

Gets the known error code at position pos.

+

- - + + - - +
pos :

the error position.

pos :

the error position.

Returns :

the known error code or 0 if pos is greater than +

Returns :

the known error code or 0 if pos is greater than total number of known error codes.

@@ -617,27 +671,29 @@ total number of known error codes.


xmlSecErrorsGetMsg ()

-
const char*         xmlSecErrorsGetMsg                  (xmlSecSize pos);
+
const char*         xmlSecErrorsGetMsg                  (xmlSecSize pos);

Gets the known error message at position pos.

+

- - + + - - +
pos :

the error position.

pos :

the error position.

Returns :

the known error message or NULL if pos is greater than +

Returns :

the known error message or NULL if pos is greater than total number of known error codes.


-

XMLSEC_ERRORS_HERE

-
#define XMLSEC_ERRORS_HERE                      __FILE__,__LINE__,__XMLSEC_FUNCTION__
+

XMLSEC_ERRORS_HERE

+
#define XMLSEC_ERRORS_HERE			__FILE__,__LINE__,__XMLSEC_FUNCTION__

The macro that specifies the location (file, line and function) for the xmlSecError() function.

+



-

XMLSEC_ERRORS_NO_MESSAGE

-
#define XMLSEC_ERRORS_NO_MESSAGE                " "
+

XMLSEC_ERRORS_NO_MESSAGE

+
#define XMLSEC_ERRORS_NO_MESSAGE 		" "

Empty error message " ".

+


xmlSecError ()

-
void                xmlSecError                         (const char *file,
-                                                         int line,
-                                                         const char *func,
-                                                         const char *errorObject,
-                                                         const char *errorSubject,
-                                                         int reason,
-                                                         const char *msg,
-                                                         ...);
-

Reports an error to the default (xmlSecErrorsDefaultCallback) or -application specific callback installed using xmlSecErrorsSetCallback +

void                xmlSecError                         (const char *file,
+                                                         int line,
+                                                         const char *func,
+                                                         const char *errorObject,
+                                                         const char *errorSubject,
+                                                         int reason,
+                                                         const char *msg,
+                                                         ...);
+

Reports an error to the default (xmlSecErrorsDefaultCallback) or +application specific callback installed using xmlSecErrorsSetCallback function.

+

- - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + +
file :

the error location filename (__FILE__).

file :

the error location filename (__FILE__).

line :

the error location line number (__LINE__).

line :

the error location line number (__LINE__).

func :

the error location function (__FUNCTIION__).

func :

the error location function (__FUNCTIION__).

errorObject :

the error specific error object

errorObject :

the error specific error object

errorSubject :

the error specific error subject.

errorSubject :

the error specific error subject.

reason :

the error code.

reason :

the error code.

msg :

the error message in printf format.

msg :

the error message in printf format.

... :

the parameters for the msg.

... :

the parameters for the msg.

@@ -712,9 +771,10 @@ function.

#define             xmlSecAssert( p )

Macro. Verifies that p is true and calls return() otherwise.

+

- - + +
p :

the expression.

p :

the expression.


@@ -723,14 +783,15 @@ function.

#define             xmlSecAssert2( p, ret )

Macro. Verifies that p is true and calls return(ret) otherwise.

+

- - + + - - + +
p :

the expression.

p :

the expression.

ret :

the return value.

ret :

the return value.

diff --git a/docs/api/xmlsec-examples-sign-dynamimc-template.html b/docs/api/xmlsec-examples-sign-dynamimc-template.html index 2d47acd..51064dd 100644 --- a/docs/api/xmlsec-examples-sign-dynamimc-template.html +++ b/docs/api/xmlsec-examples-sign-dynamimc-template.html @@ -99,13 +99,13 @@ * the whole document except the <dsig:Signature/> node itself. * * Usage: - * sign2 <xml-doc> <pem-key> + * sign2 <xml-doc> <pem-key> * * Example: - * ./sign2 sign2-doc.xml rsakey.pem > sign2-res.xml + * ./sign2 sign2-doc.xml rsakey.pem > sign2-res.xml * * The result signature could be validated using verify1 example: - * ./verify1 sign2-res.xml rsapub.pem + * ./verify1 sign2-res.xml rsapub.pem * * This is free software; see Copyright file in the source * distribution for preciese wording. @@ -122,7 +122,6 @@ #ifndef XMLSEC_NO_XSLT #include <libxslt/xslt.h> -#include <libxslt/security.h> #endif /* XMLSEC_NO_XSLT */ #include <xmlsec/xmlsec.h> @@ -135,16 +134,12 @@ int sign_file(const char* xml_file, const char* key_file); int main(int argc, char **argv) { -#ifndef XMLSEC_NO_XSLT - xsltSecurityPrefsPtr xsltSecPrefs = NULL; -#endif /* XMLSEC_NO_XSLT */ - assert(argv); if(argc != 3) { - fprintf(stderr, "Error: wrong number of arguments.\n"); - fprintf(stderr, "Usage: %s <xml-file> <key-file>\n", argv[0]); - return(1); + fprintf(stderr, "Error: wrong number of arguments.\n"); + fprintf(stderr, "Usage: %s <xml-file> <key-file>\n", argv[0]); + return(1); } /* Init libxml and libxslt libraries */ @@ -155,29 +150,17 @@ main(int argc, char **argv) { #ifndef XMLSEC_NO_XSLT xmlIndentTreeOutput = 1; #endif /* XMLSEC_NO_XSLT */ - - /* Init libxslt */ -#ifndef XMLSEC_NO_XSLT - /* disable everything */ - xsltSecPrefs = xsltNewSecurityPrefs(); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_READ_FILE, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_WRITE_FILE, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_CREATE_DIRECTORY, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_READ_NETWORK, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_WRITE_NETWORK, xsltSecurityForbid); - xsltSetDefaultSecurityPrefs(xsltSecPrefs); -#endif /* XMLSEC_NO_XSLT */ - + /* Init xmlsec library */ if(xmlSecInit() < 0) { - fprintf(stderr, "Error: xmlsec initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: xmlsec initialization failed.\n"); + return(-1); } /* Check loaded library version */ if(xmlSecCheckVersion() != 1) { - fprintf(stderr, "Error: loaded xmlsec library version is not compatible.\n"); - return(-1); + fprintf(stderr, "Error: loaded xmlsec library version is not compatible.\n"); + return(-1); } /* Load default crypto engine if we are supporting dynamic @@ -187,27 +170,27 @@ main(int argc, char **argv) { */ #ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) { - fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n" - "that you have it installed and check shared libraries path\n" - "(LD_LIBRARY_PATH) envornment variable.\n"); - return(-1); + fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n" + "that you have it installed and check shared libraries path\n" + "(LD_LIBRARY_PATH) envornment variable.\n"); + return(-1); } #endif /* XMLSEC_CRYPTO_DYNAMIC_LOADING */ /* Init crypto library */ if(xmlSecCryptoAppInit(NULL) < 0) { - fprintf(stderr, "Error: crypto initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: crypto initialization failed.\n"); + return(-1); } /* Init xmlsec-crypto library */ if(xmlSecCryptoInit() < 0) { - fprintf(stderr, "Error: xmlsec-crypto initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: xmlsec-crypto initialization failed.\n"); + return(-1); } if(sign_file(argv[1], argv[2]) < 0) { - return(-1); + return(-1); } /* Shutdown xmlsec-crypto library */ @@ -221,7 +204,6 @@ main(int argc, char **argv) { /* Shutdown libxslt/libxml */ #ifndef XMLSEC_NO_XSLT - xsltFreeSecurityPrefs(xsltSecPrefs); xsltCleanupGlobals(); #endif /* XMLSEC_NO_XSLT */ xmlCleanupParser(); @@ -231,8 +213,8 @@ main(int argc, char **argv) { /** * sign_file: - * @xml_file: the XML file name. - * @key_file: the PEM private key file name. + * @xml_file: the XML file name. + * @key_file: the PEM private key file name. * * Signs the #xml_file using private key from #key_file and dynamicaly * created enveloped signature template. @@ -254,16 +236,16 @@ sign_file(const char* xml_file, const char* key_file) { /* load doc file */ doc = xmlParseFile(xml_file); if ((doc == NULL) || (xmlDocGetRootElement(doc) == NULL)){ - fprintf(stderr, "Error: unable to parse file \"%s\"\n", xml_file); - goto done; + fprintf(stderr, "Error: unable to parse file \"%s\"\n", xml_file); + goto done; } /* create signature template for RSA-SHA1 enveloped signature */ signNode = xmlSecTmplSignatureCreate(doc, xmlSecTransformExclC14NId, - xmlSecTransformRsaSha1Id, NULL); + xmlSecTransformRsaSha1Id, NULL); if(signNode == NULL) { - fprintf(stderr, "Error: failed to create signature template\n"); - goto done; + fprintf(stderr, "Error: failed to create signature template\n"); + goto done; } /* add <dsig:Signature/> node to the doc */ @@ -271,54 +253,54 @@ sign_file(const char* xml_file, const char* key_file) { /* add reference */ refNode = xmlSecTmplSignatureAddReference(signNode, xmlSecTransformSha1Id, - NULL, NULL, NULL); + NULL, NULL, NULL); if(refNode == NULL) { - fprintf(stderr, "Error: failed to add reference to signature template\n"); - goto done; + fprintf(stderr, "Error: failed to add reference to signature template\n"); + goto done; } /* add enveloped transform */ if(xmlSecTmplReferenceAddTransform(refNode, xmlSecTransformEnvelopedId) == NULL) { - fprintf(stderr, "Error: failed to add enveloped transform to reference\n"); - goto done; + fprintf(stderr, "Error: failed to add enveloped transform to reference\n"); + goto done; } /* add <dsig:KeyInfo/> and <dsig:KeyName/> nodes to put key name in the signed document */ keyInfoNode = xmlSecTmplSignatureEnsureKeyInfo(signNode, NULL); if(keyInfoNode == NULL) { - fprintf(stderr, "Error: failed to add key info\n"); - goto done; + fprintf(stderr, "Error: failed to add key info\n"); + goto done; } if(xmlSecTmplKeyInfoAddKeyName(keyInfoNode, NULL) == NULL) { - fprintf(stderr, "Error: failed to add key name\n"); - goto done; + fprintf(stderr, "Error: failed to add key name\n"); + goto done; } /* create signature context, we don't need keys manager in this example */ dsigCtx = xmlSecDSigCtxCreate(NULL); if(dsigCtx == NULL) { fprintf(stderr,"Error: failed to create signature context\n"); - goto done; + goto done; } /* load private key, assuming that there is not password */ dsigCtx->signKey = xmlSecCryptoAppKeyLoad(key_file, xmlSecKeyDataFormatPem, NULL, NULL, NULL); if(dsigCtx->signKey == NULL) { fprintf(stderr,"Error: failed to load private pem key from \"%s\"\n", key_file); - goto done; + goto done; } /* set key name to the file name, this is just an example! */ if(xmlSecKeySetName(dsigCtx->signKey, key_file) < 0) { - fprintf(stderr,"Error: failed to set key name for key from \"%s\"\n", key_file); - goto done; + fprintf(stderr,"Error: failed to set key name for key from \"%s\"\n", key_file); + goto done; } /* sign the template */ if(xmlSecDSigCtxSign(dsigCtx, signNode) < 0) { fprintf(stderr,"Error: signature failed\n"); - goto done; + goto done; } /* print signed document to stdout */ @@ -330,11 +312,11 @@ sign_file(const char* xml_file, const char* key_file) { done: /* cleanup */ if(dsigCtx != NULL) { - xmlSecDSigCtxDestroy(dsigCtx); + xmlSecDSigCtxDestroy(dsigCtx); } if(doc != NULL) { - xmlFreeDoc(doc); + xmlFreeDoc(doc); } return(res); } diff --git a/docs/api/xmlsec-examples-sign-template-file.html b/docs/api/xmlsec-examples-sign-template-file.html index a6cf34e..48b06e8 100644 --- a/docs/api/xmlsec-examples-sign-template-file.html +++ b/docs/api/xmlsec-examples-sign-template-file.html @@ -97,13 +97,13 @@ * Signs a template file using a key from PEM file * * Usage: - * ./sign1 <xml-tmpl> <pem-key> + * ./sign1 <xml-tmpl> <pem-key> * * Example: - * ./sign1 sign1-tmpl.xml rsakey.pem > sign1-res.xml + * ./sign1 sign1-tmpl.xml rsakey.pem > sign1-res.xml * * The result signature could be validated using verify1 example: - * ./verify1 sign1-res.xml rsapub.pem + * ./verify1 sign1-res.xml rsapub.pem * * This is free software; see Copyright file in the source * distribution for preciese wording. @@ -120,7 +120,6 @@ #ifndef XMLSEC_NO_XSLT #include <libxslt/xslt.h> -#include <libxslt/security.h> #endif /* XMLSEC_NO_XSLT */ #include <xmlsec/xmlsec.h> @@ -132,16 +131,12 @@ int sign_file(const char* tmpl_file, const char* key_file); int main(int argc, char **argv) { -#ifndef XMLSEC_NO_XSLT - xsltSecurityPrefsPtr xsltSecPrefs = NULL; -#endif /* XMLSEC_NO_XSLT */ - assert(argv); if(argc != 3) { - fprintf(stderr, "Error: wrong number of arguments.\n"); - fprintf(stderr, "Usage: %s <tmpl-file> <key-file>\n", argv[0]); - return(1); + fprintf(stderr, "Error: wrong number of arguments.\n"); + fprintf(stderr, "Usage: %s <tmpl-file> <key-file>\n", argv[0]); + return(1); } /* Init libxml and libxslt libraries */ @@ -152,29 +147,17 @@ main(int argc, char **argv) { #ifndef XMLSEC_NO_XSLT xmlIndentTreeOutput = 1; #endif /* XMLSEC_NO_XSLT */ - - /* Init libxslt */ -#ifndef XMLSEC_NO_XSLT - /* disable everything */ - xsltSecPrefs = xsltNewSecurityPrefs(); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_READ_FILE, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_WRITE_FILE, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_CREATE_DIRECTORY, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_READ_NETWORK, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_WRITE_NETWORK, xsltSecurityForbid); - xsltSetDefaultSecurityPrefs(xsltSecPrefs); -#endif /* XMLSEC_NO_XSLT */ - + /* Init xmlsec library */ if(xmlSecInit() < 0) { - fprintf(stderr, "Error: xmlsec initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: xmlsec initialization failed.\n"); + return(-1); } /* Check loaded library version */ if(xmlSecCheckVersion() != 1) { - fprintf(stderr, "Error: loaded xmlsec library version is not compatible.\n"); - return(-1); + fprintf(stderr, "Error: loaded xmlsec library version is not compatible.\n"); + return(-1); } /* Load default crypto engine if we are supporting dynamic @@ -184,27 +167,27 @@ main(int argc, char **argv) { */ #ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) { - fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n" - "that you have it installed and check shared libraries path\n" - "(LD_LIBRARY_PATH) envornment variable.\n"); - return(-1); + fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n" + "that you have it installed and check shared libraries path\n" + "(LD_LIBRARY_PATH) envornment variable.\n"); + return(-1); } #endif /* XMLSEC_CRYPTO_DYNAMIC_LOADING */ /* Init crypto library */ if(xmlSecCryptoAppInit(NULL) < 0) { - fprintf(stderr, "Error: crypto initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: crypto initialization failed.\n"); + return(-1); } /* Init xmlsec-crypto library */ if(xmlSecCryptoInit() < 0) { - fprintf(stderr, "Error: xmlsec-crypto initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: xmlsec-crypto initialization failed.\n"); + return(-1); } if(sign_file(argv[1], argv[2]) < 0) { - return(-1); + return(-1); } /* Shutdown xmlsec-crypto library */ @@ -218,8 +201,7 @@ main(int argc, char **argv) { /* Shutdown libxslt/libxml */ #ifndef XMLSEC_NO_XSLT - xsltFreeSecurityPrefs(xsltSecPrefs); - xsltCleanupGlobals(); + xsltCleanupGlobals(); #endif /* XMLSEC_NO_XSLT */ xmlCleanupParser(); @@ -228,8 +210,8 @@ main(int argc, char **argv) { /** * sign_file: - * @tmpl_file: the signature template file name. - * @key_file: the PEM private key file name. + * @tmpl_file: the signature template file name. + * @key_file: the PEM private key file name. * * Signs the #tmpl_file using private key from #key_file. * @@ -248,41 +230,41 @@ sign_file(const char* tmpl_file, const char* key_file) { /* load template */ doc = xmlParseFile(tmpl_file); if ((doc == NULL) || (xmlDocGetRootElement(doc) == NULL)){ - fprintf(stderr, "Error: unable to parse file \"%s\"\n", tmpl_file); - goto done; + fprintf(stderr, "Error: unable to parse file \"%s\"\n", tmpl_file); + goto done; } /* find start node */ node = xmlSecFindNode(xmlDocGetRootElement(doc), xmlSecNodeSignature, xmlSecDSigNs); if(node == NULL) { - fprintf(stderr, "Error: start node not found in \"%s\"\n", tmpl_file); - goto done; + fprintf(stderr, "Error: start node not found in \"%s\"\n", tmpl_file); + goto done; } /* create signature context, we don't need keys manager in this example */ dsigCtx = xmlSecDSigCtxCreate(NULL); if(dsigCtx == NULL) { fprintf(stderr,"Error: failed to create signature context\n"); - goto done; + goto done; } /* load private key, assuming that there is not password */ dsigCtx->signKey = xmlSecCryptoAppKeyLoad(key_file, xmlSecKeyDataFormatPem, NULL, NULL, NULL); if(dsigCtx->signKey == NULL) { fprintf(stderr,"Error: failed to load private pem key from \"%s\"\n", key_file); - goto done; + goto done; } /* set key name to the file name, this is just an example! */ if(xmlSecKeySetName(dsigCtx->signKey, key_file) < 0) { - fprintf(stderr,"Error: failed to set key name for key from \"%s\"\n", key_file); - goto done; + fprintf(stderr,"Error: failed to set key name for key from \"%s\"\n", key_file); + goto done; } /* sign the template */ if(xmlSecDSigCtxSign(dsigCtx, node) < 0) { fprintf(stderr,"Error: signature failed\n"); - goto done; + goto done; } /* print signed document to stdout */ @@ -294,11 +276,11 @@ sign_file(const char* tmpl_file, const char* key_file) { done: /* cleanup */ if(dsigCtx != NULL) { - xmlSecDSigCtxDestroy(dsigCtx); + xmlSecDSigCtxDestroy(dsigCtx); } if(doc != NULL) { - xmlFreeDoc(doc); + xmlFreeDoc(doc); } return(res); } diff --git a/docs/api/xmlsec-examples-sign-x509.html b/docs/api/xmlsec-examples-sign-x509.html index 796c5f6..c40a182 100644 --- a/docs/api/xmlsec-examples-sign-x509.html +++ b/docs/api/xmlsec-examples-sign-x509.html @@ -103,13 +103,13 @@ * certificates management policies for another crypto library may break it. * * Usage: - * sign3 <xml-doc> <pem-key> + * sign3 <xml-doc> <pem-key> * * Example: - * ./sign3 sign3-doc.xml rsakey.pem rsacert.pem > sign3-res.xml + * ./sign3 sign3-doc.xml rsakey.pem rsacert.pem > sign3-res.xml * * The result signature could be validated using verify3 example: - * ./verify3 sign3-res.xml rootcert.pem + * ./verify3 sign3-res.xml rootcert.pem * * This is free software; see Copyright file in the source * distribution for preciese wording. @@ -126,7 +126,6 @@ #ifndef XMLSEC_NO_XSLT #include <libxslt/xslt.h> -#include <libxslt/security.h> #endif /* XMLSEC_NO_XSLT */ #include <xmlsec/xmlsec.h> @@ -139,16 +138,12 @@ int sign_file(const char* xml_file, const char* key_file, const char* cert_file) int main(int argc, char **argv) { -#ifndef XMLSEC_NO_XSLT - xsltSecurityPrefsPtr xsltSecPrefs = NULL; -#endif /* XMLSEC_NO_XSLT */ - assert(argv); if(argc != 4) { - fprintf(stderr, "Error: wrong number of arguments.\n"); - fprintf(stderr, "Usage: %s <xml-file> <key-file> <cert-file>\n", argv[0]); - return(1); + fprintf(stderr, "Error: wrong number of arguments.\n"); + fprintf(stderr, "Usage: %s <xml-file> <key-file> <cert-file>\n", argv[0]); + return(1); } /* Init libxml and libxslt libraries */ @@ -159,29 +154,17 @@ main(int argc, char **argv) { #ifndef XMLSEC_NO_XSLT xmlIndentTreeOutput = 1; #endif /* XMLSEC_NO_XSLT */ - - /* Init libxslt */ -#ifndef XMLSEC_NO_XSLT - /* disable everything */ - xsltSecPrefs = xsltNewSecurityPrefs(); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_READ_FILE, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_WRITE_FILE, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_CREATE_DIRECTORY, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_READ_NETWORK, xsltSecurityForbid); - xsltSetSecurityPrefs(xsltSecPrefs, XSLT_SECPREF_WRITE_NETWORK, xsltSecurityForbid); - xsltSetDefaultSecurityPrefs(xsltSecPrefs); -#endif /* XMLSEC_NO_XSLT */ - + /* Init xmlsec library */ if(xmlSecInit() < 0) { - fprintf(stderr, "Error: xmlsec initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: xmlsec initialization failed.\n"); + return(-1); } /* Check loaded library version */ if(xmlSecCheckVersion() != 1) { - fprintf(stderr, "Error: loaded xmlsec library version is not compatible.\n"); - return(-1); + fprintf(stderr, "Error: loaded xmlsec library version is not compatible.\n"); + return(-1); } /* Load default crypto engine if we are supporting dynamic @@ -191,27 +174,27 @@ main(int argc, char **argv) { */ #ifdef XMLSEC_CRYPTO_DYNAMIC_LOADING if(xmlSecCryptoDLLoadLibrary(BAD_CAST XMLSEC_CRYPTO) < 0) { - fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n" - "that you have it installed and check shared libraries path\n" - "(LD_LIBRARY_PATH) envornment variable.\n"); - return(-1); + fprintf(stderr, "Error: unable to load default xmlsec-crypto library. Make sure\n" + "that you have it installed and check shared libraries path\n" + "(LD_LIBRARY_PATH) envornment variable.\n"); + return(-1); } #endif /* XMLSEC_CRYPTO_DYNAMIC_LOADING */ /* Init crypto library */ if(xmlSecCryptoAppInit(NULL) < 0) { - fprintf(stderr, "Error: crypto initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: crypto initialization failed.\n"); + return(-1); } /* Init xmlsec-crypto library */ if(xmlSecCryptoInit() < 0) { - fprintf(stderr, "Error: xmlsec-crypto initialization failed.\n"); - return(-1); + fprintf(stderr, "Error: xmlsec-crypto initialization failed.\n"); + return(-1); } if(sign_file(argv[1], argv[2], argv[3]) < 0) { - return(-1); + return(-1); } /* Shutdown xmlsec-crypto library */ @@ -225,7 +208,6 @@ main(int argc, char **argv) { /* Shutdown libxslt/libxml */ #ifndef XMLSEC_NO_XSLT - xsltFreeSecurityPrefs(xsltSecPrefs); xsltCleanupGlobals(); #endif /* XMLSEC_NO_XSLT */ xmlCleanupParser(); @@ -235,9 +217,9 @@ main(int argc, char **argv) { /** * sign_file: - * @xml_file: the XML file name. - * @key_file: the PEM private key file name. - * @cert_file: the x509 certificate PEM file. + * @xml_file: the XML file name. + * @key_file: the PEM private key file name. + * @cert_file: the x509 certificate PEM file. * * Signs the @xml_file using private key from @key_file and dynamicaly * created enveloped signature template. The certificate from @cert_file @@ -261,16 +243,16 @@ sign_file(const char* xml_file, const char* key_file, const char* cert_file) { /* load doc file */ doc = xmlParseFile(xml_file); if ((doc == NULL) || (xmlDocGetRootElement(doc) == NULL)){ - fprintf(stderr, "Error: unable to parse file \"%s\"\n", xml_file); - goto done; + fprintf(stderr, "Error: unable to parse file \"%s\"\n", xml_file); + goto done; } /* create signature template for RSA-SHA1 enveloped signature */ signNode = xmlSecTmplSignatureCreate(doc, xmlSecTransformExclC14NId, - xmlSecTransformRsaSha1Id, NULL); + xmlSecTransformRsaSha1Id, NULL); if(signNode == NULL) { - fprintf(stderr, "Error: failed to create signature template\n"); - goto done; + fprintf(stderr, "Error: failed to create signature template\n"); + goto done; } /* add <dsig:Signature/> node to the doc */ @@ -278,60 +260,60 @@ sign_file(const char* xml_file, const char* key_file, const char* cert_file) { /* add reference */ refNode = xmlSecTmplSignatureAddReference(signNode, xmlSecTransformSha1Id, - NULL, NULL, NULL); + NULL, NULL, NULL); if(refNode == NULL) { - fprintf(stderr, "Error: failed to add reference to signature template\n"); - goto done; + fprintf(stderr, "Error: failed to add reference to signature template\n"); + goto done; } /* add enveloped transform */ if(xmlSecTmplReferenceAddTransform(refNode, xmlSecTransformEnvelopedId) == NULL) { - fprintf(stderr, "Error: failed to add enveloped transform to reference\n"); - goto done; + fprintf(stderr, "Error: failed to add enveloped transform to reference\n"); + goto done; } /* add <dsig:KeyInfo/> and <dsig:X509Data/> */ keyInfoNode = xmlSecTmplSignatureEnsureKeyInfo(signNode, NULL); if(keyInfoNode == NULL) { - fprintf(stderr, "Error: failed to add key info\n"); - goto done; + fprintf(stderr, "Error: failed to add key info\n"); + goto done; } if(xmlSecTmplKeyInfoAddX509Data(keyInfoNode) == NULL) { - fprintf(stderr, "Error: failed to add X509Data node\n"); - goto done; + fprintf(stderr, "Error: failed to add X509Data node\n"); + goto done; } /* create signature context, we don't need keys manager in this example */ dsigCtx = xmlSecDSigCtxCreate(NULL); if(dsigCtx == NULL) { fprintf(stderr,"Error: failed to create signature context\n"); - goto done; + goto done; } /* load private key, assuming that there is not password */ dsigCtx->signKey = xmlSecCryptoAppKeyLoad(key_file, xmlSecKeyDataFormatPem, NULL, NULL, NULL); if(dsigCtx->signKey == NULL) { fprintf(stderr,"Error: failed to load private pem key from \"%s\"\n", key_file); - goto done; + goto done; } /* load certificate and add to the key */ if(xmlSecCryptoAppKeyCertLoad(dsigCtx->signKey, cert_file, xmlSecKeyDataFormatPem) < 0) { fprintf(stderr,"Error: failed to load pem certificate \"%s\"\n", cert_file); - goto done; + goto done; } /* set key name to the file name, this is just an example! */ if(xmlSecKeySetName(dsigCtx->signKey, key_file) < 0) { - fprintf(stderr,"Error: failed to set key name for key from \"%s\"\n", key_file); - goto done; + fprintf(stderr,"Error: failed to set key name for key from \"%s\"\n", key_file); + goto done; } /* sign the template */ if(xmlSecDSigCtxSign(dsigCtx, signNode) < 0) { fprintf(stderr,"Error: signature failed\n"); - goto done; + goto done; } /* print signed document to stdout */ @@ -343,11 +325,11 @@ sign_file(const char* xml_file, const char* key_file, const char* cert_file) { done: /* cleanup */ if(dsigCtx != NULL) { - xmlSecDSigCtxDestroy(dsigCtx); + xmlSecDSigCtxDestroy(dsigCtx); } if(doc != NULL) { - xmlFreeDoc(doc); + xmlFreeDoc(doc); } return(res); } diff --git a/docs/api/xmlsec-gcrypt-app.html b/docs/api/xmlsec-gcrypt-app.html deleted file mode 100644 index e2b3a1a..0000000 --- a/docs/api/xmlsec-gcrypt-app.html +++ /dev/null @@ -1,578 +0,0 @@ - - - -app - - - - - - - - - - -
-XML Security Library

- - - - - - - - - - - - - - - -
LibXML2
LibXSLT
OpenSSL
-
- - - - - - - -

-app

-
-

Name

app -- Application functions implementation for GnuTLS.
-
-

Synopsis

-
intxmlSecGCryptAppInit                 (const char *config);
-intxmlSecGCryptAppShutdown             (void);
-intxmlSecGCryptAppDefaultKeysMngrInit  (xmlSecKeysMngrPtr mngr);
-intxmlSecGCryptAppDefaultKeysMngrAdoptKey
-                                                        (xmlSecKeysMngrPtr mngr,
-                                                         xmlSecKeyPtr key);
-intxmlSecGCryptAppDefaultKeysMngrLoad  (xmlSecKeysMngrPtr mngr,
-                                                         const char *uri);
-intxmlSecGCryptAppDefaultKeysMngrSave  (xmlSecKeysMngrPtr mngr,
-                                                         const char *filename,
-                                                         xmlSecKeyDataType type);
-intxmlSecGCryptAppKeysMngrCertLoad     (xmlSecKeysMngrPtr mngr,
-                                                         const char *filename,
-                                                         xmlSecKeyDataFormat format,
-                                                         xmlSecKeyDataType type);
-intxmlSecGCryptAppKeysMngrCertLoadMemory
-                                                        (xmlSecKeysMngrPtr mngr,
-                                                         const xmlSecByte *data,
-                                                         xmlSecSize dataSize,
-                                                         xmlSecKeyDataFormat format,
-                                                         xmlSecKeyDataType type);
-xmlSecKeyPtr        xmlSecGCryptAppKeyLoad              (const char *filename,
-                                                         xmlSecKeyDataFormat format,
-                                                         const char *pwd,
-                                                         void *pwdCallback,
-                                                         void *pwdCallbackCtx);
-xmlSecKeyPtr        xmlSecGCryptAppKeyLoadMemory        (const xmlSecByte *data,
-                                                         xmlSecSize dataSize,
-                                                         xmlSecKeyDataFormat format,
-                                                         const char *pwd,
-                                                         void *pwdCallback,
-                                                         void *pwdCallbackCtx);
-xmlSecKeyPtr        xmlSecGCryptAppPkcs12Load           (const char *filename,
-                                                         const char *pwd,
-                                                         void *pwdCallback,
-                                                         void *pwdCallbackCtx);
-xmlSecKeyPtr        xmlSecGCryptAppPkcs12LoadMemory     (const xmlSecByte *data,
-                                                         xmlSecSize dataSize,
-                                                         const char *pwd,
-                                                         void *pwdCallback,
-                                                         void *pwdCallbackCtx);
-intxmlSecGCryptAppKeyCertLoad          (xmlSecKeyPtr key,
-                                                         const char *filename,
-                                                         xmlSecKeyDataFormat format);
-intxmlSecGCryptAppKeyCertLoadMemory    (xmlSecKeyPtr key,
-                                                         const xmlSecByte *data,
-                                                         xmlSecSize dataSize,
-                                                         xmlSecKeyDataFormat format);
-void*               xmlSecGCryptAppGetDefaultPwdCallback
-                                                        (void);
-
-
-

Description

-

Application functions implementation for GCrypt.

-
-
-

Details

-
-

xmlSecGCryptAppInit ()

-
int                 xmlSecGCryptAppInit                 (const char *config);
-

General crypto engine initialization. This function is used -by XMLSec command line utility and called before -xmlSecInit function.

-

- - - - - - - - - -
config :

the path to GCrypt configuration (unused).

Returns :

0 on success or a negative value otherwise.

-
-
-
-

xmlSecGCryptAppShutdown ()

-
int                 xmlSecGCryptAppShutdown             (void);
-

General crypto engine shutdown. This function is used -by XMLSec command line utility and called after -xmlSecShutdown function.

-

- - - -
Returns :

0 on success or a negative value otherwise.

-
-
-
-

xmlSecGCryptAppDefaultKeysMngrInit ()

-
int                 xmlSecGCryptAppDefaultKeysMngrInit  (xmlSecKeysMngrPtr mngr);
-

Initializes mngr with simple keys store xmlSecSimpleKeysStoreId -and a default GCrypt crypto key data stores.

-

- - - - - - - - - -
mngr :

the pointer to keys manager.

Returns :

0 on success or a negative value otherwise.

-
-
-
-

xmlSecGCryptAppDefaultKeysMngrAdoptKey ()

-
int                 xmlSecGCryptAppDefaultKeysMngrAdoptKey
-                                                        (xmlSecKeysMngrPtr mngr,
-                                                         xmlSecKeyPtr key);
-

Adds key to the keys manager mngr created with xmlSecGCryptAppDefaultKeysMngrInit -function.

-

- - - - - - - - - - - - - -
mngr :

the pointer to keys manager.

key :

the pointer to key.

Returns :

0 on success or a negative value otherwise.

-
-
-
-

xmlSecGCryptAppDefaultKeysMngrLoad ()

-
int                 xmlSecGCryptAppDefaultKeysMngrLoad  (xmlSecKeysMngrPtr mngr,
-                                                         const char *uri);
-

Loads XML keys file from uri to the keys manager mngr created -with xmlSecGCryptAppDefaultKeysMngrInit function.

-

- - - - - - - - - - - - - -
mngr :

the pointer to keys manager.

uri :

the uri.

Returns :

0 on success or a negative value otherwise.

-
-
-
-

xmlSecGCryptAppDefaultKeysMngrSave ()

-
int                 xmlSecGCryptAppDefaultKeysMngrSave  (xmlSecKeysMngrPtr mngr,
-                                                         const char *filename,
-                                                         xmlSecKeyDataType type);
-

Saves keys from mngr to XML keys file.

-

- - - - - - - - - - - - - - - - - -
mngr :

the pointer to keys manager.

filename :

the destination filename.

type :

the type of keys to save (public/private/symmetric).

Returns :

0 on success or a negative value otherwise.

-
-
-
-

xmlSecGCryptAppKeysMngrCertLoad ()

-
int                 xmlSecGCryptAppKeysMngrCertLoad     (xmlSecKeysMngrPtr mngr,
-                                                         const char *filename,
-                                                         xmlSecKeyDataFormat format,
-                                                         xmlSecKeyDataType type);
-

Reads cert from filename and adds to the list of trusted or known -untrusted certs in store (not implemented yet).

-

- - - - - - - - - - - - - - - - - - - - - -
mngr :

the keys manager.

filename :

the certificate file.

format :

the certificate file format.

type :

the flag that indicates is the certificate in filename - trusted or not.

Returns :

0 on success or a negative value otherwise.

-
-
-
-

xmlSecGCryptAppKeysMngrCertLoadMemory ()

-
int                 xmlSecGCryptAppKeysMngrCertLoadMemory
-                                                        (xmlSecKeysMngrPtr mngr,
-                                                         const xmlSecByte *data,
-                                                         xmlSecSize dataSize,
-                                                         xmlSecKeyDataFormat format,
-                                                         xmlSecKeyDataType type);
-

Reads cert from binary buffer data and adds to the list of trusted or known -untrusted certs in store (not implemented yet).

-

- - - - - - - - - - - - - - - - - - - - - - - - - -
mngr :

the keys manager.

data :

the certificate binary data.

dataSize :

the certificate binary data size.

format :

the certificate file format.

type :

the flag that indicates is the certificate trusted or not.

Returns :

0 on success or a negative value otherwise.

-
-
-
-

xmlSecGCryptAppKeyLoad ()

-
xmlSecKeyPtr        xmlSecGCryptAppKeyLoad              (const char *filename,
-                                                         xmlSecKeyDataFormat format,
-                                                         const char *pwd,
-                                                         void *pwdCallback,
-                                                         void *pwdCallbackCtx);
-

Reads key from the a file.

-

- - - - - - - - - - - - - - - - - - - - - - - - - -
filename :

the key filename.

format :

the key file format.

pwd :

the key file password.

pwdCallback :

the key password callback.

pwdCallbackCtx :

the user context for password callback.

Returns :

pointer to the key or NULL if an error occurs.

-
-
-
-

xmlSecGCryptAppKeyLoadMemory ()

-
xmlSecKeyPtr        xmlSecGCryptAppKeyLoadMemory        (const xmlSecByte *data,
-                                                         xmlSecSize dataSize,
-                                                         xmlSecKeyDataFormat format,
-                                                         const char *pwd,
-                                                         void *pwdCallback,
-                                                         void *pwdCallbackCtx);
-

Reads key from the memory buffer.

-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
data :

the binary key data.

dataSize :

the size of binary key.

format :

the key file format.

pwd :

the key file password.

pwdCallback :

the key password callback.

pwdCallbackCtx :

the user context for password callback.

Returns :

pointer to the key or NULL if an error occurs.

-
-
-
-

xmlSecGCryptAppPkcs12Load ()

-
xmlSecKeyPtr        xmlSecGCryptAppPkcs12Load           (const char *filename,
-                                                         const char *pwd,
-                                                         void *pwdCallback,
-                                                         void *pwdCallbackCtx);
-

Reads key and all associated certificates from the PKCS12 file -(not implemented yet). -For uniformity, call xmlSecGCryptAppKeyLoad instead of this function. Pass -in format=xmlSecKeyDataFormatPkcs12.

-

- - - - - - - - - - - - - - - - - - - - - -
filename :

the PKCS12 key filename.

pwd :

the PKCS12 file password.

pwdCallback :

the password callback.

pwdCallbackCtx :

the user context for password callback.

Returns :

pointer to the key or NULL if an error occurs.

-
-
-
-

xmlSecGCryptAppPkcs12LoadMemory ()

-
xmlSecKeyPtr        xmlSecGCryptAppPkcs12LoadMemory     (const xmlSecByte *data,
-                                                         xmlSecSize dataSize,
-                                                         const char *pwd,
-                                                         void *pwdCallback,
-                                                         void *pwdCallbackCtx);
-

Reads key and all associated certificates from the PKCS12 data in memory buffer. -For uniformity, call xmlSecGCryptAppKeyLoadMemory instead of this function. Pass -in format=xmlSecKeyDataFormatPkcs12 (not implemented yet).

-

- - - - - - - - - - - - - - - - - - - - - - - - - -
data :

the PKCS12 binary data.

dataSize :

the PKCS12 binary data size.

pwd :

the PKCS12 file password.

pwdCallback :

the password callback.

pwdCallbackCtx :

the user context for password callback.

Returns :

pointer to the key or NULL if an error occurs.

-
-
-
-

xmlSecGCryptAppKeyCertLoad ()

-
int                 xmlSecGCryptAppKeyCertLoad          (xmlSecKeyPtr key,
-                                                         const char *filename,
-                                                         xmlSecKeyDataFormat format);
-

Reads the certificate from $filename and adds it to key -(not implemented yet).

-

- - - - - - - - - - - - - - - - - -
key :

the pointer to key.

filename :

the certificate filename.

format :

the certificate file format.

Returns :

0 on success or a negative value otherwise.

-
-
-
-

xmlSecGCryptAppKeyCertLoadMemory ()

-
int                 xmlSecGCryptAppKeyCertLoadMemory    (xmlSecKeyPtr key,
-                                                         const xmlSecByte *data,
-                                                         xmlSecSize dataSize,
-                                                         xmlSecKeyDataFormat format);
-

Reads the certificate from memory buffer and adds it to key (not implemented yet).

-

- - - - - - - - - - - - - - - - - - - - - -
key :

the pointer to key.

data :

the certificate binary data.

dataSize :

the certificate binary data size.

format :

the certificate file format.

Returns :

0 on success or a negative value otherwise.

-
-
-
-

xmlSecGCryptAppGetDefaultPwdCallback ()

-
void*               xmlSecGCryptAppGetDefaultPwdCallback
-                                                        (void);
-

Gets default password callback.

-

- - - -
Returns :

default password callback.

-
-
- - - - -
- diff --git a/docs/api/xmlsec-gcrypt-crypto.html b/docs/api/xmlsec-gcrypt-crypto.html deleted file mode 100644 index 2c3aa94..0000000 --- a/docs/api/xmlsec-gcrypt-crypto.html +++ /dev/null @@ -1,1128 +0,0 @@ - - - -crypto - - - - - - - - - - -
-XML Security Library

- - - - - - - - - - - - - - - -
LibXML2
LibXSLT
OpenSSL
-
- - - - - - - -

-crypto

-
-

Name

crypto -- Crypto transforms implementation for GCrypt.
-
-

Synopsis

-
xmlSecCryptoDLFunctionsPtrxmlSecCryptoGetFunctions_gcrypt
-                                                        (void);
-intxmlSecGCryptInit                    (void);
-intxmlSecGCryptShutdown                (void);
-intxmlSecGCryptKeysMngrInit            (xmlSecKeysMngrPtr mngr);
-intxmlSecGCryptGenerateRandom          (xmlSecBufferPtr buffer,
-                                                         xmlSecSize size);
-#define             xmlSecGCryptKeyDataAesId
-xmlSecKeyDataIdxmlSecGCryptKeyDataAesGetKlass      (void);
-intxmlSecGCryptKeyDataAesSet           (xmlSecKeyDataPtr data,
-                                                         const xmlSecByte *buf,
-                                                         xmlSecSize bufSize);
-#define             xmlSecGCryptTransformAes128CbcId
-xmlSecTransformIdxmlSecGCryptTransformAes128CbcGetKlass
-                                                        (void);
-#define             xmlSecGCryptTransformAes192CbcId
-xmlSecTransformIdxmlSecGCryptTransformAes192CbcGetKlass
-                                                        (void);
-#define             xmlSecGCryptTransformAes256CbcId
-xmlSecTransformIdxmlSecGCryptTransformAes256CbcGetKlass
-                                                        (void);
-#define             xmlSecGCryptTransformKWAes128Id
-xmlSecTransformIdxmlSecGCryptTransformKWAes128GetKlass
-                                                        (void);
-#define             xmlSecGCryptTransformKWAes192Id
-xmlSecTransformIdxmlSecGCryptTransformKWAes192GetKlass
-                                                        (void);
-#define             xmlSecGCryptTransformKWAes256Id
-xmlSecTransformIdxmlSecGCryptTransformKWAes256GetKlass
-                                                        (void);
-#define             xmlSecGCryptKeyDataDesId
-xmlSecKeyDataIdxmlSecGCryptKeyDataDesGetKlass      (void);
-intxmlSecGCryptKeyDataDesSet           (xmlSecKeyDataPtr data,
-                                                         const xmlSecByte *buf,
-                                                         xmlSecSize bufSize);
-#define             xmlSecGCryptTransformDes3CbcId
-xmlSecTransformIdxmlSecGCryptTransformDes3CbcGetKlass
-                                                        (void);
-#define             xmlSecGCryptTransformKWDes3Id
-xmlSecTransformIdxmlSecGCryptTransformKWDes3GetKlass (void);
-#define             xmlSecGCryptKeyDataDsaId
-xmlSecKeyDataIdxmlSecGCryptKeyDataDsaGetKlass      (void);
-intxmlSecGCryptKeyDataDsaAdoptKey      (xmlSecKeyDataPtr data,
-                                                         gcry_sexp_t dsa_key);
-intxmlSecGCryptKeyDataDsaAdoptKeyPair  (xmlSecKeyDataPtr data,
-                                                         gcry_sexp_t pub_key,
-                                                         gcry_sexp_t priv_key);
-gcry_sexp_txmlSecGCryptKeyDataDsaGetPublicKey  (xmlSecKeyDataPtr data);
-gcry_sexp_txmlSecGCryptKeyDataDsaGetPrivateKey (xmlSecKeyDataPtr data);
-#define             xmlSecGCryptTransformDsaSha1Id
-xmlSecTransformIdxmlSecGCryptTransformDsaSha1GetKlass
-                                                        (void);
-intxmlSecGCryptHmacGetMinOutputLength  (void);
-voidxmlSecGCryptHmacSetMinOutputLength  (int min_length);
-#define             xmlSecGCryptKeyDataHmacId
-xmlSecKeyDataIdxmlSecGCryptKeyDataHmacGetKlass     (void);
-intxmlSecGCryptKeyDataHmacSet          (xmlSecKeyDataPtr data,
-                                                         const xmlSecByte *buf,
-                                                         xmlSecSize bufSize);
-#define             xmlSecGCryptTransformHmacMd5Id
-xmlSecTransformIdxmlSecGCryptTransformHmacMd5GetKlass
-                                                        (void);
-#define             xmlSecGCryptTransformHmacRipemd160Id
-xmlSecTransformIdxmlSecGCryptTransformHmacRipemd160GetKlass
-                                                        (void);
-#define             xmlSecGCryptTransformHmacSha1Id
-xmlSecTransformIdxmlSecGCryptTransformHmacSha1GetKlass
-                                                        (void);
-#define             xmlSecGCryptTransformHmacSha256Id
-xmlSecTransformIdxmlSecGCryptTransformHmacSha256GetKlass
-                                                        (void);
-#define             xmlSecGCryptTransformHmacSha384Id
-xmlSecTransformIdxmlSecGCryptTransformHmacSha384GetKlass
-                                                        (void);
-#define             xmlSecGCryptTransformHmacSha512Id
-xmlSecTransformIdxmlSecGCryptTransformHmacSha512GetKlass
-                                                        (void);
-#define             xmlSecGCryptKeyDataRsaId
-xmlSecKeyDataIdxmlSecGCryptKeyDataRsaGetKlass      (void);
-intxmlSecGCryptKeyDataRsaAdoptKey      (xmlSecKeyDataPtr data,
-                                                         gcry_sexp_t rsa_key);
-intxmlSecGCryptKeyDataRsaAdoptKeyPair  (xmlSecKeyDataPtr data,
-                                                         gcry_sexp_t pub_key,
-                                                         gcry_sexp_t priv_key);
-gcry_sexp_txmlSecGCryptKeyDataRsaGetPublicKey  (xmlSecKeyDataPtr data);
-gcry_sexp_txmlSecGCryptKeyDataRsaGetPrivateKey (xmlSecKeyDataPtr data);
-#define             xmlSecGCryptTransformRsaMd5Id
-xmlSecTransformIdxmlSecGCryptTransformRsaMd5GetKlass (void);
-#define             xmlSecGCryptTransformRsaRipemd160Id
-xmlSecTransformIdxmlSecGCryptTransformRsaRipemd160GetKlass
-                                                        (void);
-#define             xmlSecGCryptTransformRsaSha1Id
-xmlSecTransformIdxmlSecGCryptTransformRsaSha1GetKlass
-                                                        (void);
-#define             xmlSecGCryptTransformRsaSha256Id
-xmlSecTransformIdxmlSecGCryptTransformRsaSha256GetKlass
-                                                        (void);
-#define             xmlSecGCryptTransformRsaSha384Id
-xmlSecTransformIdxmlSecGCryptTransformRsaSha384GetKlass
-                                                        (void);
-#define             xmlSecGCryptTransformRsaSha512Id
-xmlSecTransformIdxmlSecGCryptTransformRsaSha512GetKlass
-                                                        (void);
-#define             xmlSecGCryptTransformSha1Id
-xmlSecTransformIdxmlSecGCryptTransformSha1GetKlass   (void);
-#define             xmlSecGCryptTransformSha256Id
-xmlSecTransformIdxmlSecGCryptTransformSha256GetKlass (void);
-#define             xmlSecGCryptTransformSha384Id
-xmlSecTransformIdxmlSecGCryptTransformSha384GetKlass (void);
-#define             xmlSecGCryptTransformSha512Id
-xmlSecTransformIdxmlSecGCryptTransformSha512GetKlass (void);
-#define             xmlSecGCryptTransformMd5Id
-xmlSecTransformIdxmlSecGCryptTransformMd5GetKlass    (void);
-#define             xmlSecGCryptTransformRipemd160Id
-xmlSecTransformIdxmlSecGCryptTransformRipemd160GetKlass
-                                                        (void);
-
-
-

Description

-

Crypto transforms implementation for GCrypt.

-
-
-

Details

-
-

xmlSecCryptoGetFunctions_gcrypt ()

-
xmlSecCryptoDLFunctionsPtr  xmlSecCryptoGetFunctions_gcrypt
-                                                        (void);
-

Gets the pointer to xmlsec-gcrypt functions table.

-

- - - -
Returns :

the xmlsec-gcrypt functions table or NULL if an error occurs.

-
-
-
-

xmlSecGCryptInit ()

-
int                 xmlSecGCryptInit                    (void);
-

XMLSec library specific crypto engine initialization.

-

- - - -
Returns :

0 on success or a negative value otherwise.

-
-
-
-

xmlSecGCryptShutdown ()

-
int                 xmlSecGCryptShutdown                (void);
-

XMLSec library specific crypto engine shutdown.

-

- - - -
Returns :

0 on success or a negative value otherwise.

-
-
-
-

xmlSecGCryptKeysMngrInit ()

-
int                 xmlSecGCryptKeysMngrInit            (xmlSecKeysMngrPtr mngr);
-

Adds GCrypt specific key data stores in keys manager.

-

- - - - - - - - - -
mngr :

the pointer to keys manager.

Returns :

0 on success or a negative value otherwise.

-
-
-
-

xmlSecGCryptGenerateRandom ()

-
int                 xmlSecGCryptGenerateRandom          (xmlSecBufferPtr buffer,
-                                                         xmlSecSize size);
-

Generates size random bytes and puts result in buffer.

-

- - - - - - - - - - - - - -
buffer :

the destination buffer.

size :

the numer of bytes to generate.

Returns :

0 on success or a negative value otherwise.

-
-
-
-

xmlSecGCryptKeyDataAesId

-
#define             xmlSecGCryptKeyDataAesId
-

The AES key data klass.

-
-
-
-

xmlSecGCryptKeyDataAesGetKlass ()

-
xmlSecKeyDataId     xmlSecGCryptKeyDataAesGetKlass      (void);
-

The AES key data klass.

-

- - - -
Returns :

AES key data klass.

-
-
-
-

xmlSecGCryptKeyDataAesSet ()

-
int                 xmlSecGCryptKeyDataAesSet           (xmlSecKeyDataPtr data,
-                                                         const xmlSecByte *buf,
-                                                         xmlSecSize bufSize);
-

Sets the value of AES key data.

-

- - - - - - - - - - - - - - - - - -
data :

the pointer to AES key data.

buf :

the pointer to key value.

bufSize :

the key value size (in bytes).

Returns :

0 on success or a negative value if an error occurs.

-
-
-
-

xmlSecGCryptTransformAes128CbcId

-
#define             xmlSecGCryptTransformAes128CbcId
-

The AES128 CBC cipher transform klass.

-
-
-
-

xmlSecGCryptTransformAes128CbcGetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformAes128CbcGetKlass
-                                                        (void);
-

AES 128 CBC encryption transform klass.

-

- - - -
Returns :

pointer to AES 128 CBC encryption transform.

-
-
-
-

xmlSecGCryptTransformAes192CbcId

-
#define             xmlSecGCryptTransformAes192CbcId
-

The AES192 CBC cipher transform klass.

-
-
-
-

xmlSecGCryptTransformAes192CbcGetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformAes192CbcGetKlass
-                                                        (void);
-

AES 192 CBC encryption transform klass.

-

- - - -
Returns :

pointer to AES 192 CBC encryption transform.

-
-
-
-

xmlSecGCryptTransformAes256CbcId

-
#define             xmlSecGCryptTransformAes256CbcId
-

The AES256 CBC cipher transform klass.

-
-
-
-

xmlSecGCryptTransformAes256CbcGetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformAes256CbcGetKlass
-                                                        (void);
-

AES 256 CBC encryption transform klass.

-

- - - -
Returns :

pointer to AES 256 CBC encryption transform.

-
-
-
-

xmlSecGCryptTransformKWAes128Id

-
#define             xmlSecGCryptTransformKWAes128Id
-

The AES 128 key wrap transform klass.

-
-
-
-

xmlSecGCryptTransformKWAes128GetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformKWAes128GetKlass
-                                                        (void);
-

The AES-128 kew wrapper transform klass.

-

- - - -
Returns :

AES-128 kew wrapper transform klass.

-
-
-
-

xmlSecGCryptTransformKWAes192Id

-
#define             xmlSecGCryptTransformKWAes192Id
-

The AES 192 key wrap transform klass.

-
-
-
-

xmlSecGCryptTransformKWAes192GetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformKWAes192GetKlass
-                                                        (void);
-

The AES-192 kew wrapper transform klass.

-

- - - -
Returns :

AES-192 kew wrapper transform klass.

-
-
-
-

xmlSecGCryptTransformKWAes256Id

-
#define             xmlSecGCryptTransformKWAes256Id
-

The AES 256 key wrap transform klass.

-
-
-
-

xmlSecGCryptTransformKWAes256GetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformKWAes256GetKlass
-                                                        (void);
-

The AES-256 kew wrapper transform klass.

-

- - - -
Returns :

AES-256 kew wrapper transform klass.

-
-
-
-

xmlSecGCryptKeyDataDesId

-
#define             xmlSecGCryptKeyDataDesId
-

The DES key data klass.

-
-
-
-

xmlSecGCryptKeyDataDesGetKlass ()

-
xmlSecKeyDataId     xmlSecGCryptKeyDataDesGetKlass      (void);
-

The DES key data klass.

-

- - - -
Returns :

DES key data klass.

-
-
-
-

xmlSecGCryptKeyDataDesSet ()

-
int                 xmlSecGCryptKeyDataDesSet           (xmlSecKeyDataPtr data,
-                                                         const xmlSecByte *buf,
-                                                         xmlSecSize bufSize);
-

Sets the value of DES key data.

-

- - - - - - - - - - - - - - - - - -
data :

the pointer to DES key data.

buf :

the pointer to key value.

bufSize :

the key value size (in bytes).

Returns :

0 on success or a negative value if an error occurs.

-
-
-
-

xmlSecGCryptTransformDes3CbcId

-
#define             xmlSecGCryptTransformDes3CbcId
-

The DES3 CBC cipher transform klass.

-
-
-
-

xmlSecGCryptTransformDes3CbcGetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformDes3CbcGetKlass
-                                                        (void);
-

Triple DES CBC encryption transform klass.

-

- - - -
Returns :

pointer to Triple DES encryption transform.

-
-
-
-

xmlSecGCryptTransformKWDes3Id

-
#define             xmlSecGCryptTransformKWDes3Id
-

The DES3 KW transform klass.

-
-
-
-

xmlSecGCryptTransformKWDes3GetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformKWDes3GetKlass (void);
-

The Triple DES key wrapper transform klass.

-

- - - -
Returns :

Triple DES key wrapper transform klass.

-
-
-
-

xmlSecGCryptKeyDataDsaId

-
#define             xmlSecGCryptKeyDataDsaId
-

The DSA key klass.

-
-
-
-

xmlSecGCryptKeyDataDsaGetKlass ()

-
xmlSecKeyDataId     xmlSecGCryptKeyDataDsaGetKlass      (void);
-

The DSA key data klass.

-

- - - -
Returns :

pointer to DSA key data klass.

-
-
-
-

xmlSecGCryptKeyDataDsaAdoptKey ()

-
int                 xmlSecGCryptKeyDataDsaAdoptKey      (xmlSecKeyDataPtr data,
-                                                         gcry_sexp_t dsa_key);
-

Sets the value of DSA key data.

-

- - - - - - - - - - - - - -
data :

the pointer to DSA key data.

dsa_key :

the pointer to GCrypt DSA key.

Returns :

0 on success or a negative value otherwise.

-
-
-
-

xmlSecGCryptKeyDataDsaAdoptKeyPair ()

-
int                 xmlSecGCryptKeyDataDsaAdoptKeyPair  (xmlSecKeyDataPtr data,
-                                                         gcry_sexp_t pub_key,
-                                                         gcry_sexp_t priv_key);
-

Sets the value of DSA key data.

-

- - - - - - - - - - - - - - - - - -
data :

the pointer to DSA key data.

pub_key :

the pointer to GCrypt DSA pub key.

priv_key :

the pointer to GCrypt DSA priv key.

Returns :

0 on success or a negative value otherwise.

-
-
-
-

xmlSecGCryptKeyDataDsaGetPublicKey ()

-
gcry_sexp_t         xmlSecGCryptKeyDataDsaGetPublicKey  (xmlSecKeyDataPtr data);
-

Gets the GCrypt DSA public key from DSA key data.

-

- - - - - - - - - -
data :

the pointer to DSA key data.

Returns :

pointer to GCrypt public DSA key or NULL if an error occurs.

-
-
-
-

xmlSecGCryptKeyDataDsaGetPrivateKey ()

-
gcry_sexp_t         xmlSecGCryptKeyDataDsaGetPrivateKey (xmlSecKeyDataPtr data);
-

Gets the GCrypt DSA private key from DSA key data.

-

- - - - - - - - - -
data :

the pointer to DSA key data.

Returns :

pointer to GCrypt private DSA key or NULL if an error occurs.

-
-
-
-

xmlSecGCryptTransformDsaSha1Id

-
#define             xmlSecGCryptTransformDsaSha1Id
-

The DSA SHA1 signature transform klass.

-
-
-
-

xmlSecGCryptTransformDsaSha1GetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformDsaSha1GetKlass
-                                                        (void);
-

The DSA-SHA1 signature transform klass.

-

- - - -
Returns :

DSA-SHA1 signature transform klass.

-
-
-
-

xmlSecGCryptHmacGetMinOutputLength ()

-
int                 xmlSecGCryptHmacGetMinOutputLength  (void);
-

Gets the value of min HMAC length.

-

- - - -
Returns :

the min HMAC output length

-
-
-
-

xmlSecGCryptHmacSetMinOutputLength ()

-
void                xmlSecGCryptHmacSetMinOutputLength  (int min_length);
-

Sets the min HMAC output length

-

- - - -
min_length :

the new min length

-
-
-
-

xmlSecGCryptKeyDataHmacId

-
#define             xmlSecGCryptKeyDataHmacId
-

The HMAC key klass.

-
-
-
-

xmlSecGCryptKeyDataHmacGetKlass ()

-
xmlSecKeyDataId     xmlSecGCryptKeyDataHmacGetKlass     (void);
-

The HMAC key data klass.

-

- - - -
Returns :

HMAC key data klass.

-
-
-
-

xmlSecGCryptKeyDataHmacSet ()

-
int                 xmlSecGCryptKeyDataHmacSet          (xmlSecKeyDataPtr data,
-                                                         const xmlSecByte *buf,
-                                                         xmlSecSize bufSize);
-

Sets the value of HMAC key data.

-

- - - - - - - - - - - - - - - - - -
data :

the pointer to HMAC key data.

buf :

the pointer to key value.

bufSize :

the key value size (in bytes).

Returns :

0 on success or a negative value if an error occurs.

-
-
-
-

xmlSecGCryptTransformHmacMd5Id

-
#define             xmlSecGCryptTransformHmacMd5Id
-

The HMAC with MD5 signature transform klass.

-
-
-
-

xmlSecGCryptTransformHmacMd5GetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformHmacMd5GetKlass
-                                                        (void);
-

The HMAC-MD5 transform klass.

-

- - - -
Returns :

the HMAC-MD5 transform klass.

-
-
-
-

xmlSecGCryptTransformHmacRipemd160Id

-
#define             xmlSecGCryptTransformHmacRipemd160Id
-

The HMAC with RipeMD160 signature transform klass.

-
-
-
-

xmlSecGCryptTransformHmacRipemd160GetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformHmacRipemd160GetKlass
-                                                        (void);
-

The HMAC-RIPEMD160 transform klass.

-

- - - -
Returns :

the HMAC-RIPEMD160 transform klass.

-
-
-
-

xmlSecGCryptTransformHmacSha1Id

-
#define             xmlSecGCryptTransformHmacSha1Id
-

The HMAC with SHA1 signature transform klass.

-
-
-
-

xmlSecGCryptTransformHmacSha1GetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformHmacSha1GetKlass
-                                                        (void);
-

The HMAC-SHA1 transform klass.

-

- - - -
Returns :

the HMAC-SHA1 transform klass.

-
-
-
-

xmlSecGCryptTransformHmacSha256Id

-
#define             xmlSecGCryptTransformHmacSha256Id
-

The HMAC with SHA256 signature transform klass.

-
-
-
-

xmlSecGCryptTransformHmacSha256GetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformHmacSha256GetKlass
-                                                        (void);
-

The HMAC-SHA256 transform klass.

-

- - - -
Returns :

the HMAC-SHA256 transform klass.

-
-
-
-

xmlSecGCryptTransformHmacSha384Id

-
#define             xmlSecGCryptTransformHmacSha384Id
-

The HMAC with SHA384 signature transform klass.

-
-
-
-

xmlSecGCryptTransformHmacSha384GetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformHmacSha384GetKlass
-                                                        (void);
-

The HMAC-SHA384 transform klass.

-

- - - -
Returns :

the HMAC-SHA384 transform klass.

-
-
-
-

xmlSecGCryptTransformHmacSha512Id

-
#define             xmlSecGCryptTransformHmacSha512Id
-

The HMAC with SHA512 signature transform klass.

-
-
-
-

xmlSecGCryptTransformHmacSha512GetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformHmacSha512GetKlass
-                                                        (void);
-

The HMAC-SHA512 transform klass.

-

- - - -
Returns :

the HMAC-SHA512 transform klass.

-
-
-
-

xmlSecGCryptKeyDataRsaId

-
#define             xmlSecGCryptKeyDataRsaId
-

The RSA key klass.

-
-
-
-

xmlSecGCryptKeyDataRsaGetKlass ()

-
xmlSecKeyDataId     xmlSecGCryptKeyDataRsaGetKlass      (void);
-

The GCrypt RSA key data klass.

-

- - - -
Returns :

pointer to GCrypt RSA key data klass.

-
-
-
-

xmlSecGCryptKeyDataRsaAdoptKey ()

-
int                 xmlSecGCryptKeyDataRsaAdoptKey      (xmlSecKeyDataPtr data,
-                                                         gcry_sexp_t rsa_key);
-

Sets the value of RSA key data.

-

- - - - - - - - - - - - - -
data :

the pointer to RSA key data.

rsa_key :

the pointer to GCrypt RSA key.

Returns :

0 on success or a negative value otherwise.

-
-
-
-

xmlSecGCryptKeyDataRsaAdoptKeyPair ()

-
int                 xmlSecGCryptKeyDataRsaAdoptKeyPair  (xmlSecKeyDataPtr data,
-                                                         gcry_sexp_t pub_key,
-                                                         gcry_sexp_t priv_key);
-

Sets the value of RSA key data.

-

- - - - - - - - - - - - - - - - - -
data :

the pointer to RSA key data.

pub_key :

the pointer to GCrypt RSA pub key.

priv_key :

the pointer to GCrypt RSA priv key.

Returns :

0 on success or a negative value otherwise.

-
-
-
-

xmlSecGCryptKeyDataRsaGetPublicKey ()

-
gcry_sexp_t         xmlSecGCryptKeyDataRsaGetPublicKey  (xmlSecKeyDataPtr data);
-

Gets the GCrypt RSA public key from RSA key data.

-

- - - - - - - - - -
data :

the pointer to RSA key data.

Returns :

pointer to GCrypt public RSA key or NULL if an error occurs.

-
-
-
-

xmlSecGCryptKeyDataRsaGetPrivateKey ()

-
gcry_sexp_t         xmlSecGCryptKeyDataRsaGetPrivateKey (xmlSecKeyDataPtr data);
-

Gets the GCrypt RSA private key from RSA key data.

-

- - - - - - - - - -
data :

the pointer to RSA key data.

Returns :

pointer to GCrypt private RSA key or NULL if an error occurs.

-
-
-
-

xmlSecGCryptTransformRsaMd5Id

-
#define             xmlSecGCryptTransformRsaMd5Id
-

The RSA-MD5 signature transform klass.

-
-
-
-

xmlSecGCryptTransformRsaMd5GetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformRsaMd5GetKlass (void);
-

The RSA-MD5 signature transform klass.

-

- - - -
Returns :

RSA-MD5 signature transform klass.

-
-
-
-

xmlSecGCryptTransformRsaRipemd160Id

-
#define             xmlSecGCryptTransformRsaRipemd160Id
-

The RSA-RIPEMD160 signature transform klass.

-
-
-
-

xmlSecGCryptTransformRsaRipemd160GetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformRsaRipemd160GetKlass
-                                                        (void);
-

The RSA-RIPEMD160 signature transform klass.

-

- - - -
Returns :

RSA-RIPEMD160 signature transform klass.

-
-
-
-

xmlSecGCryptTransformRsaSha1Id

-
#define             xmlSecGCryptTransformRsaSha1Id
-

The RSA-SHA1 signature transform klass.

-
-
-
-

xmlSecGCryptTransformRsaSha1GetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformRsaSha1GetKlass
-                                                        (void);
-

The RSA-SHA1 signature transform klass.

-

- - - -
Returns :

RSA-SHA1 signature transform klass.

-
-
-
-

xmlSecGCryptTransformRsaSha256Id

-
#define             xmlSecGCryptTransformRsaSha256Id
-

The RSA-SHA256 signature transform klass.

-
-
-
-

xmlSecGCryptTransformRsaSha256GetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformRsaSha256GetKlass
-                                                        (void);
-

The RSA-SHA256 signature transform klass.

-

- - - -
Returns :

RSA-SHA256 signature transform klass.

-
-
-
-

xmlSecGCryptTransformRsaSha384Id

-
#define             xmlSecGCryptTransformRsaSha384Id
-

The RSA-SHA384 signature transform klass.

-
-
-
-

xmlSecGCryptTransformRsaSha384GetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformRsaSha384GetKlass
-                                                        (void);
-

The RSA-SHA384 signature transform klass.

-

- - - -
Returns :

RSA-SHA384 signature transform klass.

-
-
-
-

xmlSecGCryptTransformRsaSha512Id

-
#define             xmlSecGCryptTransformRsaSha512Id
-

The RSA-SHA512 signature transform klass.

-
-
-
-

xmlSecGCryptTransformRsaSha512GetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformRsaSha512GetKlass
-                                                        (void);
-

The RSA-SHA512 signature transform klass.

-

- - - -
Returns :

RSA-SHA512 signature transform klass.

-
-
-
-

xmlSecGCryptTransformSha1Id

-
#define             xmlSecGCryptTransformSha1Id
-

The HMAC with SHA1 signature transform klass.

-
-
-
-

xmlSecGCryptTransformSha1GetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformSha1GetKlass   (void);
-

SHA-1 digest transform klass.

-

- - - -
Returns :

pointer to SHA-1 digest transform klass.

-
-
-
-

xmlSecGCryptTransformSha256Id

-
#define             xmlSecGCryptTransformSha256Id
-

The HMAC with SHA256 signature transform klass.

-
-
-
-

xmlSecGCryptTransformSha256GetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformSha256GetKlass (void);
-

SHA256 digest transform klass.

-

- - - -
Returns :

pointer to SHA256 digest transform klass.

-
-
-
-

xmlSecGCryptTransformSha384Id

-
#define             xmlSecGCryptTransformSha384Id
-

The HMAC with SHA384 signature transform klass.

-
-
-
-

xmlSecGCryptTransformSha384GetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformSha384GetKlass (void);
-

SHA384 digest transform klass.

-

- - - -
Returns :

pointer to SHA384 digest transform klass.

-
-
-
-

xmlSecGCryptTransformSha512Id

-
#define             xmlSecGCryptTransformSha512Id
-

The HMAC with SHA512 signature transform klass.

-
-
-
-

xmlSecGCryptTransformSha512GetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformSha512GetKlass (void);
-

SHA512 digest transform klass.

-

- - - -
Returns :

pointer to SHA512 digest transform klass.

-
-
-
-

xmlSecGCryptTransformMd5Id

-
#define             xmlSecGCryptTransformMd5Id
-

The MD5 digest transform klass.

-
-
-
-

xmlSecGCryptTransformMd5GetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformMd5GetKlass    (void);
-

MD5 digest transform klass.

-

- - - -
Returns :

pointer to MD5 digest transform klass.

-
-
-
-

xmlSecGCryptTransformRipemd160Id

-
#define             xmlSecGCryptTransformRipemd160Id
-

The RIPEMD160 digest transform klass.

-
-
-
-

xmlSecGCryptTransformRipemd160GetKlass ()

-
xmlSecTransformId   xmlSecGCryptTransformRipemd160GetKlass
-                                                        (void);
-

RIPEMD160 digest transform klass.

-

- - - -
Returns :

pointer to RIPEMD160 digest transform klass.

-
-
- - - - -
- diff --git a/docs/api/xmlsec-gcrypt-ref.html b/docs/api/xmlsec-gcrypt-ref.html deleted file mode 100644 index 592f12a..0000000 --- a/docs/api/xmlsec-gcrypt-ref.html +++ /dev/null @@ -1,107 +0,0 @@ - - - -XML Security Library for GCrypt API Reference. - - - - - - - - - - -
-XML Security Library

- - - - - - - - - - - - - - - -
LibXML2
LibXSLT
OpenSSL
-
- - - - - - - -
-

-XML Security Library for GCrypt API Reference.

-
-
Table of Contents
-
-app -- Application functions implementation for GnuTLS.
-
-crypto -- Crypto transforms implementation for GCrypt.
-
-

This section contains the API reference for xmlsec-gcrypt. All - the public interfaces are documented here. This reference guide is - build by extracting comments from the code sources.

-
- - - - -
- diff --git a/docs/api/xmlsec-gcrypt.sgml b/docs/api/xmlsec-gcrypt.sgml deleted file mode 100644 index 5c33c60..0000000 --- a/docs/api/xmlsec-gcrypt.sgml +++ /dev/null @@ -1,15 +0,0 @@ - - -]> - - - [Insert name here] Reference Manual - - - - [Insert title here] - &xmlsec-gcrypt-app; - &xmlsec-gcrypt-crypto; - - diff --git a/docs/api/xmlsec-gnutls-app.html b/docs/api/xmlsec-gnutls-app.html index 52255ea..fe1a348 100644 --- a/docs/api/xmlsec-gnutls-app.html +++ b/docs/api/xmlsec-gnutls-app.html @@ -87,59 +87,59 @@

app

-

Name

app -- Application functions implementation for GnuTLS.
+

Name

app -- Application functions implementation for GnuTLS.

Synopsis

-
intxmlSecGnuTLSAppInit                 (const char *config);
-intxmlSecGnuTLSAppShutdown             (void);
-intxmlSecGnuTLSAppDefaultKeysMngrInit  (xmlSecKeysMngrPtr mngr);
-intxmlSecGnuTLSAppDefaultKeysMngrAdoptKey
-                                                        (xmlSecKeysMngrPtr mngr,
-                                                         xmlSecKeyPtr key);
-intxmlSecGnuTLSAppDefaultKeysMngrLoad  (xmlSecKeysMngrPtr mngr,
-                                                         const char *uri);
-intxmlSecGnuTLSAppDefaultKeysMngrSave  (xmlSecKeysMngrPtr mngr,
-                                                         const char *filename,
-                                                         xmlSecKeyDataType type);
-intxmlSecGnuTLSAppKeysMngrCertLoad     (xmlSecKeysMngrPtr mngr,
-                                                         const char *filename,
-                                                         xmlSecKeyDataFormat format,
-                                                         xmlSecKeyDataType type);
-intxmlSecGnuTLSAppKeysMngrCertLoadMemory
-                                                        (xmlSecKeysMngrPtr mngr,
-                                                         const xmlSecByte *data,
-                                                         xmlSecSize dataSize,
-                                                         xmlSecKeyDataFormat format,
-                                                         xmlSecKeyDataType type);
-xmlSecKeyPtr        xmlSecGnuTLSAppKeyLoad              (const char *filename,
-                                                         xmlSecKeyDataFormat format,
-                                                         const char *pwd,
-                                                         void *pwdCallback,
-                                                         void *pwdCallbackCtx);
-xmlSecKeyPtr        xmlSecGnuTLSAppKeyLoadMemory        (const xmlSecByte *data,
-                                                         xmlSecSize dataSize,
-                                                         xmlSecKeyDataFormat format,
-                                                         const char *pwd,
-                                                         void *pwdCallback,
-                                                         void *pwdCallbackCtx);
-xmlSecKeyPtr        xmlSecGnuTLSAppPkcs12Load           (const char *filename,
-                                                         const char *pwd,
-                                                         void *pwdCallback,
-                                                         void *pwdCallbackCtx);
-xmlSecKeyPtr        xmlSecGnuTLSAppPkcs12LoadMemory     (const xmlSecByte *data,
-                                                         xmlSecSize dataSize,
-                                                         const char *pwd,
-                                                         void *pwdCallback,
-                                                         void *pwdCallbackCtx);
-intxmlSecGnuTLSAppKeyCertLoad          (xmlSecKeyPtr key,
-                                                         const char *filename,
-                                                         xmlSecKeyDataFormat format);
-intxmlSecGnuTLSAppKeyCertLoadMemory    (xmlSecKeyPtr key,
-                                                         const xmlSecByte *data,
-                                                         xmlSecSize dataSize,
-                                                         xmlSecKeyDataFormat format);
-void*               xmlSecGnuTLSAppGetDefaultPwdCallback
-                                                        (void);
+
int                 xmlSecGnuTLSAppInit                 (const char *config);
+int                 xmlSecGnuTLSAppShutdown             (void);
+int                 xmlSecGnuTLSAppDefaultKeysMngrInit  (xmlSecKeysMngrPtr mngr);
+int                 xmlSecGnuTLSAppDefaultKeysMngrAdoptKey
+                                                        (xmlSecKeysMngrPtr mngr,
+                                                         xmlSecKeyPtr key);
+int                 xmlSecGnuTLSAppDefaultKeysMngrLoad  (xmlSecKeysMngrPtr mngr,
+                                                         const char *uri);
+int                 xmlSecGnuTLSAppDefaultKeysMngrSave  (xmlSecKeysMngrPtr mngr,
+                                                         const char *filename,
+                                                         xmlSecKeyDataType type);
+int                 xmlSecGnuTLSAppKeysMngrCertLoad     (xmlSecKeysMngrPtr mngr,
+                                                         const char *filename,
+                                                         xmlSecKeyDataFormat format,
+                                                         xmlSecKeyDataType type);
+int                 xmlSecGnuTLSAppKeysMngrCertLoadMemory
+                                                        (xmlSecKeysMngrPtr mngr,
+                                                         const xmlSecByte *data,
+                                                         xmlSecSize dataSize,
+                                                         xmlSecKeyDataFormat format,
+                                                         xmlSecKeyDataType type);
+xmlSecKeyPtr        xmlSecGnuTLSAppKeyLoad              (const char *filename,
+                                                         xmlSecKeyDataFormat format,
+                                                         const char *pwd,
+                                                         void *pwdCallback,
+                                                         void *pwdCallbackCtx);
+xmlSecKeyPtr        xmlSecGnuTLSAppKeyLoadMemory        (const xmlSecByte *data,
+                                                         xmlSecSize dataSize,
+                                                         xmlSecKeyDataFormat format,
+                                                         const char *pwd,
+                                                         void *pwdCallback,
+                                                         void *pwdCallbackCtx);
+xmlSecKeyPtr        xmlSecGnuTLSAppPkcs12Load           (const char *filename,
+                                                         const char *pwd,
+                                                         void *pwdCallback,
+                                                         void *pwdCallbackCtx);
+xmlSecKeyPtr        xmlSecGnuTLSAppPkcs12LoadMemory     (const xmlSecByte *data,
+                                                         xmlSecSize dataSize,
+                                                         const char *pwd,
+                                                         void *pwdCallback,
+                                                         void *pwdCallbackCtx);
+int                 xmlSecGnuTLSAppKeyCertLoad          (xmlSecKeyPtr key,
+                                                         const char *filename,
+                                                         xmlSecKeyDataFormat format);
+int                 xmlSecGnuTLSAppKeyCertLoadMemory    (xmlSecKeyPtr key,
+                                                         const xmlSecByte *data,
+                                                         xmlSecSize dataSize,
+                                                         xmlSecKeyDataFormat format);
+void*               xmlSecGnuTLSAppGetDefaultPwdCallback
+                                                        (void);

Description

@@ -149,18 +149,19 @@

Details

xmlSecGnuTLSAppInit ()

-
int                 xmlSecGnuTLSAppInit                 (const char *config);
+
int                 xmlSecGnuTLSAppInit                 (const char *config);

General crypto engine initialization. This function is used -by XMLSec command line utility and called before +by XMLSec command line utility and called before xmlSecInit function.

+

- - + + - +
config :

the path to GnuTLS configuration (unused).

config :

the path to GnuTLS configuration (unused).

Returns :Returns :

0 on success or a negative value otherwise.

@@ -168,30 +169,32 @@ by XMLSec command line utility and called before

xmlSecGnuTLSAppShutdown ()

-
int                 xmlSecGnuTLSAppShutdown             (void);
+
int                 xmlSecGnuTLSAppShutdown             (void);

General crypto engine shutdown. This function is used -by XMLSec command line utility and called after +by XMLSec command line utility and called after xmlSecShutdown function.

+

- +
Returns :Returns :

0 on success or a negative value otherwise.


xmlSecGnuTLSAppDefaultKeysMngrInit ()

-
int                 xmlSecGnuTLSAppDefaultKeysMngrInit  (xmlSecKeysMngrPtr mngr);
+
int                 xmlSecGnuTLSAppDefaultKeysMngrInit  (xmlSecKeysMngrPtr mngr);

Initializes mngr with simple keys store xmlSecSimpleKeysStoreId and a default GnuTLS crypto key data stores.

+

- - + + - +
mngr :

the pointer to keys manager.

mngr :

the pointer to keys manager.

Returns :Returns :

0 on success or a negative value otherwise.

@@ -199,23 +202,24 @@ and a default GnuTLS crypto key data stores.


xmlSecGnuTLSAppDefaultKeysMngrAdoptKey ()

-
int                 xmlSecGnuTLSAppDefaultKeysMngrAdoptKey
-                                                        (xmlSecKeysMngrPtr mngr,
-                                                         xmlSecKeyPtr key);
+
int                 xmlSecGnuTLSAppDefaultKeysMngrAdoptKey
+                                                        (xmlSecKeysMngrPtr mngr,
+                                                         xmlSecKeyPtr key);

Adds key to the keys manager mngr created with xmlSecGnuTLSAppDefaultKeysMngrInit function.

+

- - + + - - + + - +
mngr :

the pointer to keys manager.

mngr :

the pointer to keys manager.

key :

the pointer to key.

key :

the pointer to key.

Returns :Returns :

0 on success or a negative value otherwise.

@@ -223,22 +227,23 @@ function.


xmlSecGnuTLSAppDefaultKeysMngrLoad ()

-
int                 xmlSecGnuTLSAppDefaultKeysMngrLoad  (xmlSecKeysMngrPtr mngr,
-                                                         const char *uri);
-

Loads XML keys file from uri to the keys manager mngr created +

int                 xmlSecGnuTLSAppDefaultKeysMngrLoad  (xmlSecKeysMngrPtr mngr,
+                                                         const char *uri);
+

Loads XML keys file from uri to the keys manager mngr created with xmlSecGnuTLSAppDefaultKeysMngrInit function.

+

- - + + - - + + - +
mngr :

the pointer to keys manager.

mngr :

the pointer to keys manager.

uri :

the uri.

uri :

the uri.

Returns :Returns :

0 on success or a negative value otherwise.

@@ -246,26 +251,27 @@ with

xmlSecGnuTLSAppDefaultKeysMngrSave ()

-
int                 xmlSecGnuTLSAppDefaultKeysMngrSave  (xmlSecKeysMngrPtr mngr,
-                                                         const char *filename,
-                                                         xmlSecKeyDataType type);
+
int                 xmlSecGnuTLSAppDefaultKeysMngrSave  (xmlSecKeysMngrPtr mngr,
+                                                         const char *filename,
+                                                         xmlSecKeyDataType type);

Saves keys from mngr to XML keys file.

+

- - + + - - + + - - + + - +
mngr :

the pointer to keys manager.

mngr :

the pointer to keys manager.

filename :

the destination filename.

filename :

the destination filename.

type :

the type of keys to save (public/private/symmetric).

type :

the type of keys to save (public/private/symmetric).

Returns :Returns :

0 on success or a negative value otherwise.

@@ -273,33 +279,34 @@ with

xmlSecGnuTLSAppKeysMngrCertLoad ()

-
int                 xmlSecGnuTLSAppKeysMngrCertLoad     (xmlSecKeysMngrPtr mngr,
-                                                         const char *filename,
-                                                         xmlSecKeyDataFormat format,
-                                                         xmlSecKeyDataType type);
+
int                 xmlSecGnuTLSAppKeysMngrCertLoad     (xmlSecKeysMngrPtr mngr,
+                                                         const char *filename,
+                                                         xmlSecKeyDataFormat format,
+                                                         xmlSecKeyDataType type);

Reads cert from filename and adds to the list of trusted or known -untrusted certs in store.

+untrusted certs in store (not implemented yet).

+

- - + + - - + + - - + + - - + + - +
mngr :

the keys manager.

mngr :

the keys manager.

filename :

the certificate file.

filename :

the certificate file.

format :

the certificate file format.

format :

the certificate file format.

type :

the flag that indicates is the certificate in filename - trusted or not.

type :

the flag that indicates is the certificate in filename + trusted or not.

Returns :Returns :

0 on success or a negative value otherwise.

@@ -307,38 +314,39 @@ untrusted certs in store.


xmlSecGnuTLSAppKeysMngrCertLoadMemory ()

-
int                 xmlSecGnuTLSAppKeysMngrCertLoadMemory
-                                                        (xmlSecKeysMngrPtr mngr,
-                                                         const xmlSecByte *data,
-                                                         xmlSecSize dataSize,
-                                                         xmlSecKeyDataFormat format,
-                                                         xmlSecKeyDataType type);
+
int                 xmlSecGnuTLSAppKeysMngrCertLoadMemory
+                                                        (xmlSecKeysMngrPtr mngr,
+                                                         const xmlSecByte *data,
+                                                         xmlSecSize dataSize,
+                                                         xmlSecKeyDataFormat format,
+                                                         xmlSecKeyDataType type);

Reads cert from binary buffer data and adds to the list of trusted or known -untrusted certs in store.

+untrusted certs in store (not implemented yet).

+

- - + + - - + + - - + + - - + + - - + + - +
mngr :

the keys manager.

mngr :

the keys manager.

data :

the certificate binary data.

data :

the certificate binary data.

dataSize :

the certificate binary data size.

dataSize :

the certificate binary data size.

format :

the certificate file format.

format :

the certificate file format.

type :

the flag that indicates is the certificate trusted or not.

type :

the flag that indicates is the certificate trusted or not.

Returns :Returns :

0 on success or a negative value otherwise.

@@ -346,36 +354,37 @@ untrusted certs in store.


xmlSecGnuTLSAppKeyLoad ()

-
xmlSecKeyPtr        xmlSecGnuTLSAppKeyLoad              (const char *filename,
-                                                         xmlSecKeyDataFormat format,
-                                                         const char *pwd,
-                                                         void *pwdCallback,
-                                                         void *pwdCallbackCtx);
-

Reads key from the a file.

+
xmlSecKeyPtr        xmlSecGnuTLSAppKeyLoad              (const char *filename,
+                                                         xmlSecKeyDataFormat format,
+                                                         const char *pwd,
+                                                         void *pwdCallback,
+                                                         void *pwdCallbackCtx);
+

Reads key from the a file (not implemented yet).

+

- - + + - - + + - - + + - - + + - - + + - +
filename :

the key filename.

filename :

the key filename.

format :

the key file format.

format :

the key file format.

pwd :

the key file password.

pwd :

the key file password.

pwdCallback :

the key password callback.

pwdCallback :

the key password callback.

pwdCallbackCtx :

the user context for password callback.

pwdCallbackCtx :

the user context for password callback.

Returns :Returns :

pointer to the key or NULL if an error occurs.

@@ -383,41 +392,42 @@ untrusted certs in store.


xmlSecGnuTLSAppKeyLoadMemory ()

-
xmlSecKeyPtr        xmlSecGnuTLSAppKeyLoadMemory        (const xmlSecByte *data,
-                                                         xmlSecSize dataSize,
-                                                         xmlSecKeyDataFormat format,
-                                                         const char *pwd,
-                                                         void *pwdCallback,
-                                                         void *pwdCallbackCtx);
-

Reads key from the memory buffer.

+
xmlSecKeyPtr        xmlSecGnuTLSAppKeyLoadMemory        (const xmlSecByte *data,
+                                                         xmlSecSize dataSize,
+                                                         xmlSecKeyDataFormat format,
+                                                         const char *pwd,
+                                                         void *pwdCallback,
+                                                         void *pwdCallbackCtx);
+

Reads key from the memory buffer (not implemented yet).

+

- - + + - - + + - - + + - - + + - - + + - - + + - +
data :

the binary key data.

data :

the binary key data.

dataSize :

the size of binary key.

dataSize :

the size of binary key.

format :

the key file format.

format :

the key file format.

pwd :

the key file password.

pwd :

the key file password.

pwdCallback :

the key password callback.

pwdCallback :

the key password callback.

pwdCallbackCtx :

the user context for password callback.

pwdCallbackCtx :

the user context for password callback.

Returns :Returns :

pointer to the key or NULL if an error occurs.

@@ -425,33 +435,35 @@ untrusted certs in store.


xmlSecGnuTLSAppPkcs12Load ()

-
xmlSecKeyPtr        xmlSecGnuTLSAppPkcs12Load           (const char *filename,
-                                                         const char *pwd,
-                                                         void *pwdCallback,
-                                                         void *pwdCallbackCtx);
-

Reads key and all associated certificates from the PKCS12 file. +

xmlSecKeyPtr        xmlSecGnuTLSAppPkcs12Load           (const char *filename,
+                                                         const char *pwd,
+                                                         void *pwdCallback,
+                                                         void *pwdCallbackCtx);
+

Reads key and all associated certificates from the PKCS12 file +(not implemented yet). For uniformity, call xmlSecGnuTLSAppKeyLoad instead of this function. Pass in format=xmlSecKeyDataFormatPkcs12.

+

- - + + - - + + - - + + - - + + - +
filename :

the PKCS12 key filename.

filename :

the PKCS12 key filename.

pwd :

the PKCS12 file password.

pwd :

the PKCS12 file password.

pwdCallback :

the password callback.

pwdCallback :

the password callback.

pwdCallbackCtx :

the user context for password callback.

pwdCallbackCtx :

the user context for password callback.

Returns :Returns :

pointer to the key or NULL if an error occurs.

@@ -459,38 +471,39 @@ in format=xmlSecKeyDataFormatPkcs12.


xmlSecGnuTLSAppPkcs12LoadMemory ()

-
xmlSecKeyPtr        xmlSecGnuTLSAppPkcs12LoadMemory     (const xmlSecByte *data,
-                                                         xmlSecSize dataSize,
-                                                         const char *pwd,
-                                                         void *pwdCallback,
-                                                         void *pwdCallbackCtx);
+
xmlSecKeyPtr        xmlSecGnuTLSAppPkcs12LoadMemory     (const xmlSecByte *data,
+                                                         xmlSecSize dataSize,
+                                                         const char *pwd,
+                                                         void *pwdCallback,
+                                                         void *pwdCallbackCtx);

Reads key and all associated certificates from the PKCS12 data in memory buffer. For uniformity, call xmlSecGnuTLSAppKeyLoadMemory instead of this function. Pass -in format=xmlSecKeyDataFormatPkcs12.

+in format=xmlSecKeyDataFormatPkcs12 (not implemented yet).

+

- - + + - - + + - - + + - - + + - - + + - +
data :

the PKCS12 binary data.

data :

the PKCS12 binary data.

dataSize :

the PKCS12 binary data size.

dataSize :

the PKCS12 binary data size.

pwd :

the PKCS12 file password.

pwd :

the PKCS12 file password.

pwdCallback :

the password callback.

pwdCallback :

the password callback.

pwdCallbackCtx :

the user context for password callback.

pwdCallbackCtx :

the user context for password callback.

Returns :Returns :

pointer to the key or NULL if an error occurs.

@@ -498,26 +511,28 @@ in format=xmlSecKeyDataFormatPkcs12.


xmlSecGnuTLSAppKeyCertLoad ()

-
int                 xmlSecGnuTLSAppKeyCertLoad          (xmlSecKeyPtr key,
-                                                         const char *filename,
-                                                         xmlSecKeyDataFormat format);
-

Reads the certificate from $filename and adds it to key.

+
int                 xmlSecGnuTLSAppKeyCertLoad          (xmlSecKeyPtr key,
+                                                         const char *filename,
+                                                         xmlSecKeyDataFormat format);
+

Reads the certificate from $filename and adds it to key +(not implemented yet).

+

- - + + - - + + - - + + - +
key :

the pointer to key.

key :

the pointer to key.

filename :

the certificate filename.

filename :

the certificate filename.

format :

the certificate file format.

format :

the certificate file format.

Returns :Returns :

0 on success or a negative value otherwise.

@@ -525,31 +540,32 @@ in format=xmlSecKeyDataFormatPkcs12.


xmlSecGnuTLSAppKeyCertLoadMemory ()

-
int                 xmlSecGnuTLSAppKeyCertLoadMemory    (xmlSecKeyPtr key,
-                                                         const xmlSecByte *data,
-                                                         xmlSecSize dataSize,
-                                                         xmlSecKeyDataFormat format);
-

Reads the certificate from memory buffer and adds it to key.

+
int                 xmlSecGnuTLSAppKeyCertLoadMemory    (xmlSecKeyPtr key,
+                                                         const xmlSecByte *data,
+                                                         xmlSecSize dataSize,
+                                                         xmlSecKeyDataFormat format);
+

Reads the certificate from memory buffer and adds it to key (not implemented yet).

+

- - + + - - + + - - + + - - + + - +
key :

the pointer to key.

key :

the pointer to key.

data :

the certificate binary data.

data :

the certificate binary data.

dataSize :

the certificate binary data size.

dataSize :

the certificate binary data size.

format :

the certificate file format.

format :

the certificate file format.

Returns :Returns :

0 on success or a negative value otherwise.

@@ -557,12 +573,13 @@ in format=xmlSecKeyDataFormatPkcs12.


xmlSecGnuTLSAppGetDefaultPwdCallback ()

-
void*               xmlSecGnuTLSAppGetDefaultPwdCallback
-                                                        (void);
+
void*               xmlSecGnuTLSAppGetDefaultPwdCallback
+                                                        (void);

Gets default password callback.

+

- +
Returns :Returns :

default password callback.

diff --git a/docs/api/xmlsec-gnutls-crypto.html b/docs/api/xmlsec-gnutls-crypto.html index e490d60..39966dc 100644 --- a/docs/api/xmlsec-gnutls-crypto.html +++ b/docs/api/xmlsec-gnutls-crypto.html @@ -6,7 +6,7 @@ - +