The OpenSAML V2 software has reached its End of Life and is no longer supported. This documentation is available for historical purposes only.


XML-Security-C is the C++ XML Signature and Encryption library from the Apache Software Foundation. It is used for all XML Signature and Encryption processing in OpenSAML and Shibboleth.

Project Website:

Shibboleth 1.3.x generally supports any recent version of this library.

OpenSAML and Shibboleth 2.x require at least version 1.4.0, and version 1.5.1 or later are recommended.

Use of Xerces 3.x requires at least version 1.5.0 of this library.


This package requires Xerces-C and OpenSSL, and can be built with or without Xalan-C, the Apache XSLT library. Shibboleth does not rely on that, so a typical non-Xalan command might be:

./configure --disable-static --without-xalan

Older versions have significant problems on some non-Linux platforms, and you may run into problems during the make install step on some of them, especially Solaris. Installing various GNU utilities may help, but you might have to manually copy headers and libraries yourself. If there are known issues with the latest version, let them know.

On Mac OS X, you may need to have the DYLD_LIBRARY_PATH set to the location of the ICU libraries, or run (where LDFLAGS points to the location of the ICU libraries):

LDFLAGS='-L/opt/shibboleth-sp/lib' ./configure --without-xalan --prefix=/opt/shibboleth-sp


For the SPV3 documentation. Go to the WindowsBuild page...

The source distribution contains usable project files for VS 2008 and VS6.  The No Xalan configurations are the ones used my XMLTooling.

Note that the distribution does not include support for OpenSSL (which is required).  The simplest way to turn on OpenSSL (and to suppress WINCAPI) is to use the ForceImportBeforeCppTargets hook.

set ForceImportBeforeCppTargets=H:\cpp-msbuild\dependencies\xsec.props

This File contains an example which will act as a suitable template.  Note that for OpenSSL 1.1 the <AdditionalLibraryDirectories>  stanzas should be changed as appropriate