OpenSAML-C++

OpenSAML-C++ is a low-level library written in C++ that provides support for producing and consuming SAML messages, creating and evaluating digitally signed and encrypted content, and working with SAML bindings. Extensive support for consuming SAML metadata is also provided, along with an API for establishing security policies around the consumption of SAML messages.

This library is intended for people needing to write SAML identity providers, service providers, and certain types of advanced clients. It is not by itself an implementation of any of those things, and developers are strongly encouraged to evaluate existing products before creating their own as doing so is a lot of work and prone to error unless you have significant expertise in SAML. The low-level nature of the library and lack of documentation makes the software a poor choice for beginners or those without extensive background in the area.

Please note that there is no C-only API provided, only C++, with extensive use of the STL. Extensive experience with C++ is a requirement for using the library.