Blame NEWS

Packit 228f82
NEWS
Packit 228f82
====
Packit 228f82
Packit 228f82
2.6.0 - June 1st 2018
Packit 228f82
---------------------
Packit 228f82
32 commits, 73 files changed, 1920 insertions, 696 deletions
Packit 228f82
Packit 228f82
- add inline implementation of lasso_log
Packit 228f82
- Choose the Reference transform based on the chosen Signature transform (fixes #10155)
Packit 228f82
- add support for C14N 1.1 methods and C14N withComments methods (fixes #4863)
Packit 228f82
- remove DGME specific commented out code
Packit 228f82
- add docstring on SHA-2 signature method enum
Packit 228f82
- tests: silence unused variable warning
Packit 228f82
- check node names in lasso_node_impl_init_from_xml() (fixes #47)
Packit 228f82
- fix segfault when parsed node has no namespace (#47)
Packit 228f82
- do not call xmlSecKeyDuplicate is source key is NULL
Packit 228f82
- enable user supplied CFLAGS
Packit 228f82
- Fix ecp test validate_idp_list() (fixes #11421)
Packit 228f82
- tests: convert log level as string
Packit 228f82
- fix definitions of error, critical and warning macros (fixes #12830)
Packit 228f82
- jenkins.sh: add V=1
Packit 228f82
- add defined for the XML namespace
Packit 228f82
- ignore unknown attributes from the xsi: namespace
Packit 228f82
- saml-2.0: improve support for free content inside samlp2:Extensions (fixes #18581)
Packit 228f82
- debian: initialize stretch packaging with a copy of upstream debian (#21772)
Packit 228f82
- replace use of <xmlsec/soap.h> which is deprecated (fixes #18771)
Packit 228f82
- fix get_issuer and get_in_response_to
Packit 228f82
- route logs from libxml2 and libxmlsec through GLib logging
Packit 228f82
- tests: prevent crash in glib caused by abort on recursive logging
Packit 228f82
- java: stop setting a bytecode version target
Packit 228f82
- add xmlsec_soap.h to Makefile
Packit 228f82
- python: route logs for libxml2 and libxmlsec2 to their own logger
Packit 228f82
- perl: force use of the in-tree lasso when running tests (fixes #23276)
Packit 228f82
- perl: set DESTDIR and PREFIX at Makefile's creation
Packit 228f82
- Replace xmlSecSoap functions with lasso implementations
Packit 228f82
- add a pem-public-key runtime flag
Packit 228f82
- deprecate loading PEM formatted public keys in lasso_xmlsec_load_key_info
Packit 228f82
- perl/tests: build Makefile.perl before running the tests
Packit 228f82
Packit 228f82
2.5.1 - February 19th 2016
Packit 228f82
---------------------------
Packit 228f82
17 commits, 16 files changed, 1096 insertions, 42 deletions
Packit 228f82
Packit 228f82
 - Add missing urn constants used in PAOS HTTP header
Packit 228f82
 - Set NotBefore in SAML 2.0 login assertions
Packit 228f82
 - tests: fix leak in test test16_test_get_issuer
Packit 228f82
 - id-ff: fix leak of profile->private_data->message_id
Packit 228f82
 - saml-2.0: fix leak of message_id in lasso_profile_saml20_build_paos_request_msg
Packit 228f82
 - tests: fix leaks in test_ecp
Packit 228f82
 - xml: fix wrong termination of comment
Packit 228f82
 - xml: fix leak in lasso_soap_envelope_new_full
Packit 228f82
 - profile: fix leak of private idp_list field
Packit 228f82
 - saml-2.0: fix leaks of url
Packit 228f82
 - tests: fix leak
Packit 228f82
 - tests: update valgrind suppressions
Packit 228f82
 - perl: remove quotes from $PERL -V::ccflags: output (#9572)
Packit 228f82
 - Fix wrong snippet type (fixes #9616). Thanks to Brett Gardner for the patch.
Packit 228f82
 - tools.c: use correct NID and digest length when building RSA signature using SHA-2 digest
Packit 228f82
   (fixes #10019) Thanks to Brett Gardner for the patch.
Packit 228f82
 - bindings/php5: fix enum getters and setters (fixes #10032). Thanks to Brett Gardner for the bug
Packit 228f82
   report.
Packit 228f82
 - fix warning about INCLUDES directive
Packit 228f82
Packit 228f82
2.5.0 - September 2nd 2015
Packit 228f82
--------------------------
Packit 228f82
151 commits, 180 files changed, 8391 insertions, 1339 deletions
Packit 228f82
Packit 228f82
 - lots of bugfixes (reported by static analysis tools like clang,
Packit 228f82
   coverity and manual inspection) thanks to Simo Sorce and John Dennis from
Packit 228f82
   RedHat
Packit 228f82
 - xsd:choices are now parsed correctly by implementing a real finite automata
Packit 228f82
   for parsing XML documents. New flag for jumping forward and backward in
Packit 228f82
   schema snippets have been added. It fixes parsing of message from third
Packit 228f82
   party not following the ordre from the schema (they are entitled to do it but
Packit 228f82
   most SAML implementations do not)
Packit 228f82
 - added C CGI examples for SP and IdP side
Packit 228f82
 - removed the _POSIX_SOURCE declaration
Packit 228f82
 - added support for the SHA-2 family of hash functions
Packit 228f82
 - fixed protocol profile selection when parsing AuthnRequest
Packit 228f82
 - added support for Python 3, thanks to Houzéfa Abbasbhay from XCG Consulting
Packit 228f82
 - fixed default value of WantAuthnRequestSigned in metadata parsing
Packit 228f82
 - SAML 2.0 ECP is now functionnal, thanks to John Dennis from RedHat
Packit 228f82
 - added two new API function to LassoProfile to extract the Issuer and
Packit 228f82
   InResponseTo attribute of messages, allowing pre-treatment before parsing
Packit 228f82
   the message, to load the metadata of the remote provider, or find the request
Packit 228f82
   which the response matches.
Packit 228f82
 - fixed segfault when parsing HTTP-Redirect marlformed base64 content
Packit 228f82
 - added support for automake 1.15 (jdennis)
Packit 228f82
Packit 228f82
2.4.1 - August 28th 2014
Packit 228f82
---------------------------
Packit 228f82
56 commits, 35 files changed, 12590 insertions(+), 31117 deletions(-)
Packit 228f82
Packit 228f82
 - fix bug #4455 runtime bug in perl binding on debian wheezy 32bits #
Packit 228f82
 - fix warning on g_type_init() on GLib > 2.36
Packit 228f82
 - lot of null pointer, boundary checks, and dead code removal after validation
Packit 228f82
	 using Coverity and Clang static analyzer (Simo Sorce)
Packit 228f82
 - always set NotOnOrAfter on the Condition element
Packit 228f82
 - fix pkg-config typo (Simon Josefsson)
Packit 228f82
 - Python binding now conserve the order of session indexes values
Packit 228f82
 - fix memory leaks
Packit 228f82
 - Python bindings now automatically convert unicode values to UTF-8
Packit 228f82
Packit 228f82
2.4.0 - January 7th 2014
Packit 228f82
------------------------
Packit 228f82
281 commits, 933 files changed, 45384 insertions, 6313 deletions
Packit 228f82
Packit 228f82
Minor version number increase since ABI was extended (new methods).
Packit 228f82
Packit 228f82
 - Key rollover support:
Packit 228f82
   Lasso is now able to accept messages signed by any key declared as a signing
Packit 228f82
   key in a metadata and not just the last one. You can also decrypt encrypted
Packit 228f82
   nodes using any of a list of private keys, allowing roll-over of encryption
Packit 228f82
   certificates. Signing key roll-over is automatic, your provider just have to
Packit 228f82
   provide the new signing key in their metadata. For multiple-encryption key
Packit 228f82
   you can load another private key than the one loaded in the LassoServer
Packit 228f82
   constuctor with code like that:
Packit 228f82
Packit 228f82
      >>> import lasso
Packit 228f82
      >>> server = lasso.Server(our_metadata, first_private_key_path)
Packit 228f82
      >>> server.setEncryptionPrivateKey(second_private_key_path)
Packit 228f82
Packit 228f82
   See the FAQ file for the workflow of a proper key roll-over.
Packit 228f82
Packit 228f82
 - Partial logout response now produces a specific error code when parsed by
Packit 228f82
   lasso_logout_process_response_msg()
Packit 228f82
 - Bugs in lasso_assertion_query_build_request_msg() were fixed
Packit 228f82
 - Processing of assertions is not stopped when checking that first level
Packit 228f82
   status code is not success, so that later code can check the second level
Packit 228f82
   status code.
Packit 228f82
 - A new generic error for denied request was added,
Packit 228f82
   LASSO_PROFILE_ERROR_REQUEST_DENIED
Packit 228f82
 - A new API lasso_server_load_metadata() was added to load federation files
Packit 228f82
   (XML files containing metadata from multiple providers) and to check
Packit 228f82
   signatures on them.
Packit 228f82
 - Better warning and errors are reported in logs when failing to load a
Packit 228f82
   metadata file.
Packit 228f82
 - Bugs around missing namespace declaration for dump file were fixed, it
Packit 228f82
   prevented reloading dumped object (like LassoLogin).
Packit 228f82
 - lasso_node_get_xml_node_for_any_type() must be able to copy the content of
Packit 228f82
   an XML node to another (namespace, attribute and children). It did not, now
Packit 228f82
   it is fixed. It can be used for example to add specific attribute like «
Packit 228f82
   xsi:type="string" » to a Saml2AttributeValue. Here is a python snippet to do that:
Packit 228f82
Packit 228f82
      >>> import lasso
Packit 228f82
      >>> a = lasso.Saml2AttributeValue()
Packit 228f82
      >>> a.setOriginalXmlnode('<Dummy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="string">Value</Dummy>')
Packit 228f82
      >>> print a.debug(0)
Packit 228f82
      <saml:AttributeValue xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="string">Value</saml:AttributeValue>
Packit 228f82
 - support for symetric keys signatures: for a long time XMLDsig standard has
Packit 228f82
   supported HMAC signature, or signature based on a shared secret key an hash
Packit 228f82
   algorithm. Lasso now supports to share a key with another Lasso using
Packit 228f82
   service or identity provider and to verify and sign SAML exchange using this
Packit 228f82
   key. Performance can be 100 times more than with assymetric cryptography,
Packit 228f82
   i.e. RSA.
Packit 228f82
 - nodes able to hold any XML attribyte (like saml:AttributeValue) contains a
Packit 228f82
   hashtable to for holding those attributes, those hashtable have a new syntax
Packit 228f82
   for attributes of another namespace than the current node namespace,
Packit 228f82
   inspired by the Python ElementTree library:
Packit 228f82
Packit 228f82
    {the_namespace}the_attribute_name
Packit 228f82
Packit 228f82
   ex:
Packit 228f82
Packit 228f82
    {http://www.w3.org/2001/XMLSchema-instance}type
Packit 228f82
Packit 228f82
   for the classic xsi:type attribute.
Packit 228f82
 - xmldsig:X509Data node now possess a binding as a Lasso object. You can use
Packit 228f82
   it combined with the new class LassoSaml2KeyInformationDataType to use the
Packit 228f82
   holder-of-key subject confirmation method.
Packit 228f82
 - The perfs benchmarking tools now allows to select a different metadata set
Packit 228f82
   (for example to test with different public key sizes).
Packit 228f82
 - Perl minimal version for the binding was downgraded to 5
Packit 228f82
 - pseudo-XSchema validation: the new XML deserializer does more to enforce
Packit 228f82
   constraints of the schema defining SAML messages. It means Lasso is less
Packit 228f82
   forgiving with non-conform implementation of SAML.
Packit 228f82
 - thin-sessions mode: A new flag was added named thin-session, you can set it
Packit 228f82
   using lasso_set_flag("thin-sessions") or by setting the LASSO_FLAG
Packit 228f82
   environement variable to the string "thin-sessions". The effect of this flag
Packit 228f82
   is to remove complete storage of assertions in the LassoSession object,
Packit 228f82
   which was made mainly to support logout and the artifact binding for ID-FF
Packit 228f82
   1.2. A new thinner structure is used for supporting logout, and ID-FF 1.2
Packit 228f82
   can now use the same storage mechanism as the SAML 2 implementation for the
Packit 228f82
   artifact binding (i.e. using lasso_profile_get_artifact_message after
Packit 228f82
   artifact generation and lasso_profile_set_artifact_message before artifact
Packit 228f82
   retrieval).
Packit 228f82
 - better initialization and access to SessionIndex in logout requests:
Packit 228f82
   LassoSession now store all generated SessionIndex for a session using a
Packit 228f82
   small structure, using it the LassoLogout profile can now initialize
Packit 228f82
   LassoLogout message with all of them. It's not necessary to implement this
Packit 228f82
   functionnalitý in your service or identity provider anymore.
Packit 228f82
 - new LassoKey object: this new class was introduced to simplify management of
Packit 228f82
   keys when using shared key signature. But you can also use it to load
Packit 228f82
   assymetric keys. In the future it should gain API to do XML signature and
Packit 228f82
   encryptiong independently of any SAML 2.0 or ID-FF 1.2 exchange. Providing
Packit 228f82
   the first simple binding of libxmlsec to Python.
Packit 228f82
 - Improvements to autoconf and automake files to compile under Darwin (Mac Os
Packit 228f82
   X) and Fedora.
Packit 228f82
 - a FAQ file was started.
Packit 228f82
 - added API:
Packit 228f82
	LASSO_LOGOUT_ERROR_PARTIAL_LOGOUT
Packit 228f82
	LASSO_PROFILE_ERROR_ENDPOINT_INDEX_NOT_FOUND
Packit 228f82
	LASSO_PROFILE_ERROR_REQUEST_DENIED
Packit 228f82
	LASSO_PROVIDER_ROLE_ALL
Packit 228f82
	LASSO_SERVER_ERROR_NO_PROVIDER_LOADED
Packit 228f82
	LASSO_SERVER_LOAD_METADATA_FLAG_CHECK_ENTITIES_DESCRIPTOR_SIGNATURE
Packit 228f82
	LASSO_SERVER_LOAD_METADATA_FLAG_CHECK_ENTITY_DESCRIPTOR_SIGNATURE
Packit 228f82
	LASSO_SERVER_LOAD_METADATA_FLAG_DEFAULT
Packit 228f82
	LASSO_SERVER_LOAD_METADATA_FLAG_INHERIT_SIGNATURE
Packit 228f82
	LASSO_SIGNATURE_METHOD_HMAC_SHA1
Packit 228f82
	LASSO_SIGNATURE_METHOD_NONE
Packit 228f82
	LASSO_XMLENC_ERROR_INVALID_ENCRYPTED_DATA
Packit 228f82
	LASSO_XMLENC_HREF
Packit 228f82
	LASSO_XMLENC_PREFIX
Packit 228f82
	struct LassoDsX509Data {  LassoDsX509DataPrivate* private_data  }
Packit 228f82
	struct LassoKey {  LassoKeyPrivate* private_data  }
Packit 228f82
	struct LassoSaml2KeyInfoConfirmationDataType {  LassoSaml2KeyInfoConfirmationDataTypePrivate* private_data  }
Packit 228f82
	LassoServerLoadMetadataFlag
Packit 228f82
	LassoDsX509Data*   lasso_ds_key_value_get_x509_data ( LassoDsKeyValue* key_value )
Packit 228f82
	None   lasso_ds_key_value_set_x509_data ( LassoDsKeyValue* key_value, LassoDsX509Data* x509_data )
Packit 228f82
	const char*   lasso_ds_x509_data_get_certificate ( LassoDsX509Data* x509_data )
Packit 228f82
	const char*   lasso_ds_x509_data_get_crl ( LassoDsX509Data* x509_data )
Packit 228f82
	const char*   lasso_ds_x509_data_get_subject_name ( LassoDsX509Data* x509_data )
Packit 228f82
	GType   lasso_ds_x509_data_get_type (  )
Packit 228f82
	LassoDsX509Data*   lasso_ds_x509_data_new (  )
Packit 228f82
	None   lasso_ds_x509_data_set_certificate ( LassoDsX509Data* x509_data, const char* certificate )
Packit 228f82
	None   lasso_ds_x509_data_set_crl ( LassoDsX509Data* x509_data, const char* crl )
Packit 228f82
	None   lasso_ds_x509_data_set_subject_name ( LassoDsX509Data* x509_data, const char* subject_name )
Packit 228f82
	GType   lasso_key_get_type (  )
Packit 228f82
	LassoKey*   lasso_key_new_for_signature_from_base64_string ( char* base64_string, char* password, LassoSignatureMethod signature_method, char* certificate )
Packit 228f82
	LassoKey*   lasso_key_new_for_signature_from_file ( char* filename_or_buffer, char* password, LassoSignatureMethod signature_method, char* certificate )
Packit 228f82
	char*   lasso_key_query_sign ( LassoKey* key, const char* query )
Packit 228f82
	lasso_error_t   lasso_key_query_verify ( LassoKey* key, const char* query )
Packit 228f82
	xmlNode*   lasso_key_saml2_xml_sign ( LassoKey* key, const char* id, xmlNode* document )
Packit 228f82
	lasso_error_t   lasso_key_saml2_xml_verify ( LassoKey* key, char* id, xmlNode* document )
Packit 228f82
	GList*   lasso_lib_logout_request_get_session_indexes ( LassoLibLogoutRequest* lib_logout_request )
Packit 228f82
	None   lasso_lib_logout_request_set_session_indexes ( LassoLibLogoutRequest* lib_logout_request, GList* session_indexes )
Packit 228f82
	lasso_error_t   lasso_provider_add_key ( LassoProvider* provider, LassoKey* key, gboolean after )
Packit 228f82
	lasso_error_t   lasso_provider_set_server_signing_key ( LassoProvider* provider, LassoKey* key )
Packit 228f82
	int   lasso_provider_verify_signature ( LassoProvider* provider, const char* message, const char* id_attr_name, LassoMessageFormat format )
Packit 228f82
	GList*   lasso_saml2_key_info_confirmation_data_type_get_key_info ( LassoSaml2KeyInfoConfirmationDataType* kicdt )
Packit 228f82
	GType   lasso_saml2_key_info_confirmation_data_type_get_type (  )
Packit 228f82
	LassoNode*   lasso_saml2_key_info_confirmation_data_type_new (  )
Packit 228f82
	None   lasso_saml2_key_info_confirmation_data_type_set_key_info ( LassoSaml2KeyInfoConfirmationDataType* kicdt, GList* key_infos )
Packit 228f82
	gboolean   lasso_saml_name_identifier_equals ( LassoSamlNameIdentifier* a, LassoSamlNameIdentifier* b )
Packit 228f82
	lasso_error_t   lasso_server_add_provider2 ( LassoServer* server, LassoProvider* provider )
Packit 228f82
	lasso_error_t   lasso_server_load_metadata ( LassoServer* server, LassoProviderRole role, const gchar* federation_file, const gchar* trusted_roots, GList* blacklisted_entity_ids, GList** loaded_entity_ids, LassoServerLoadMetadataFlag flags )
Packit 228f82
	GList*   lasso_session_get_assertion_ids ( LassoSession* session, const gchar* providerID )
Packit 228f82
	GList*   lasso_session_get_name_ids ( LassoSession* session, const gchar* providerID )
Packit 228f82
	GList*   lasso_session_get_session_indexes ( LassoSession* session, const gchar* providerID, LassoNode* name_id )
Packit 228f82
Packit 228f82
Packit 228f82
2.3.6 - November 29th 2011
Packit 228f82
--------------------------
Packit 228f82
Packit 228f82
2 commits, 2 files changed, 28 insertions, 2 deletions
Packit 228f82
Packit 228f82
 * fix a bug when receiving a signature using the InclusiveNamespaces
Packit 228f82
   PrefixList by copying namespace declaration from upper level at the level of
Packit 228f82
   the signed node.
Packit 228f82
 * fix compilation warning on recent version of GCC
Packit 228f82
Packit 228f82
Packit 228f82
2.3.5 - January 11th 2010
Packit 228f82
-------------------------
Packit 228f82
Packit 228f82
36 commits, 31 files changed, 240 insertions, 92 deletions
Packit 228f82
Packit 228f82
Generic:
Packit 228f82
 * add more backward compatible replacement for GHashTable methods (to compile
Packit 228f82
   under centos5)
Packit 228f82
 * a generic way to attach encryption parameters to LassoNode has been added, a
Packit 228f82
   future major release should see the removal of specific field for storing
Packit 228f82
   those parameters in node supporting encryption.
Packit 228f82
 * The way we format encrypted node is now more compatible with Shibboleth and
Packit 228f82
   I hope with other implementations: the KeyInfo is kept inside the
Packit 228f82
   EncryptedData element, and not repeated inside a child of the EncryptedElement.
Packit 228f82
 * Fixed: LASSO_SIGNATURE_VERIFY_HINT_FORCE did not force checking signature on
Packit 228f82
   messages
Packit 228f82
 * Fixed: lasso_provider_get_first_http_method broke when an unknown binding
Packit 228f82
   was found in an endpoint declaration
Packit 228f82
Packit 228f82
SAMLv2:
Packit 228f82
 * Fixed: segfault when checking signature on logout responses (introduced in 2.3.4)
Packit 228f82
 * SPNameQualifier is more set on subject NameID of assertions, as it should be
Packit 228f82
   reserved for Affiliation members (and it broke shibboleth which only expect
Packit 228f82
   this to be used for affiliation, wrongly I think).
Packit 228f82
 * Conditions->notBefore/notOnOrAfter is motre setted by
Packit 228f82
   lasso_login_build_assertion, only notOnOrAfter on SubjectConfirmationData,
Packit 228f82
   which is more inline with the specification.
Packit 228f82
 * the logout profile now use the session to initialize the NameID in requests,
Packit 228f82
   not the identity. It allow to have a transient federation in the session but
Packit 228f82
   a persistent one in the identity
Packit 228f82
 * fixed support for the POST binding
Packit 228f82
 * Fixed: it seems that strtol does not reset errno under Centos 5, we do it by hand.
Packit 228f82
Packit 228f82
Python binding:
Packit 228f82
 * constructors now raise a lasso.Error instead of a simple Exception when failing
Packit 228f82
Packit 228f82
PHP5 binding:
Packit 228f82
 * removed dependency upon an internal function of liblasso3
Packit 228f82
Packit 228f82
Packit 228f82
2.3.4 - Otober 8th 2010
Packit 228f82
-----------------------
Packit 228f82
Packit 228f82
21 commits, 18 files changed, 312 insertions, 58 deletions
Packit 228f82
Packit 228f82
Generic
Packit 228f82
 * fix warning for compiling on Pardus and EL5
Packit 228f82
 * the release tarball now contains the figures for the documentation
Packit 228f82
 * lasso_login_process_authn_request documentation gained details on returned errors
Packit 228f82
Packit 228f82
SAMLv2:
Packit 228f82
 * report unknown provider instead of an error on parameter value when
Packit 228f82
   resolving and artifact in an assertionConsumer endpoint and the provider is
Packit 228f82
   not registered into the server object.
Packit 228f82
 * lasso_provider_get_assertion_consumer_url now use specific SAMLv2 methods
Packit 228f82
 * fixed a bug in the ordering of indexed endpoints which produced error when
Packit 228f82
   looking up the default assertion consumer. It also improved ordering in
Packit 228f82
   presence of the attribute isDefault="false". A non-regression test was
Packit 228f82
   added for this functionality.
Packit 228f82
Packit 228f82
ID-FFv1.2:
Packit 228f82
 * respect the signature verify hint when handling authn requests
Packit 228f82
Packit 228f82
2.3.3 - October 1st 2010
Packit 228f82
------------------------
Packit 228f82
Packit 228f82
44 commits, 264 files changed, 858 insertions, 401 deletions
Packit 228f82
Packit 228f82
Generic:
Packit 228f82
 * Fixed a lot of memleaks thanks to valgrind, the greatest tool on earth (with
Packit 228f82
   coccinelle).
Packit 228f82
 * Add missing annotation creating memleaks in python binding (on lasso_*_dump king   of methods).
Packit 228f82
 * Fix bad inclusion of an ID-WSF include file when ID-WSF support is not enabled
Packit 228f82
 * Benchmarking program was updated to measure each part of a WebSSO
Packit 228f82
   independently (AuthnRequest generation/processing, AuthnResponse
Packit 228f82
   generation/processing).
Packit 228f82
 * Add new macro lasso_strisequal and lasso_strisnotequal to avoid errors with
Packit 228f82
   strcmp. (Thanks to coccinelle semantic patches).
Packit 228f82
Packit 228f82
SAMLv2:
Packit 228f82
 * Add uniform support for LassoProfileVerifySignatureHint for other profiles
Packit 228f82
   than WebSSO.
Packit 228f82
 * Report signature errors in response to NameIDNanagement requests
Packit 228f82
 * Fix wrong use of macro lasso_foreach breaking the mecanism for finding a
Packit 228f82
   default assertion consumer.
Packit 228f82
 * Behaviour of lasso_login_build_assertion was modified:
Packit 228f82
   - when the NameIDPolicy lacks a Format attribute or the Format attribute is
Packit 228f82
     the unspecified format (see the spec for the corresponding URN). Now it
Packit 228f82
     results in a transient nameid being generated. If you want it to be
Packit 228f82
     persistent you must change it before calling this method.
Packit 228f82
   - the setting of the SubjectConfirmationData->NotOnOrAfter attribute was
Packit 228f82
     restored as it is mandated by the WebSSO profile. It's the same value as
Packit 228f82
     Conditions->NotOnOrAfter.
Packit 228f82
 * Fix missing initialization of Destination attribute on Samlp2StatusResponse
Packit 228f82
   object for synchronous bindings (Redirect & Post)
Packit 228f82
Packit 228f82
2.3.2 - September 7th 2010
Packit 228f82
--------------------------
Packit 228f82
Packit 228f82
 * Fix bug in increment of the libtool version info, increasing the SONAME
Packit 228f82
   uselessly.
Packit 228f82
Packit 228f82
2.3.1 - September 7th 2010
Packit 228f82
--------------------------
Packit 228f82
Packit 228f82
31 commits, 23 files changed, 523 insertions, 356 deletions
Packit 228f82
Packit 228f82
 * An ABI breakage was introduced in 2.3.0 with change of value for enumeration
Packit 228f82
   values LASSO_PROVIDER_ROLE_SP and LASSO_PROVIDER_ROLE_IDP, it breaked code
Packit 228f82
   compiled with previous version and dumps of server objects. This release fix
Packit 228f82
   it.
Packit 228f82
 * SAMLv2 handling of the artifact binding for the WebSSO profile is now
Packit 228f82
   simpler, no more dumping of the response nodes and signing at the artifact
Packit 228f82
   building time, the final response is signed when the artifact is generated
Packit 228f82
   and when unserialized later it is only manipulated as XML for not breaking
Packit 228f82
   the signature. It fixes usage of ciphered private keys with the
Packit 228f82
   HTTP-Artifact binding.
Packit 228f82
 * SAMLv2 internal storage of endpoints was modified to better keep the
Packit 228f82
   ordering between endpoints, which is espacially important for
Packit 228f82
   AssertionConsumerService endpoints and difficult to implement well.
Packit 228f82
Packit 228f82
2.3.0 - July 21th 2010
Packit 228f82
----------------------
Packit 228f82
Packit 228f82
391 commits, 332 files changed, 13919 insertions, 7137 deletions
Packit 228f82
Packit 228f82
So what's new ?
Packit 228f82
Packit 228f82
 * Misc:
Packit 228f82
	- a public key is no more mandatory for building a LassoProvider
Packit 228f82
	- date parsing now conforms to XSD and ISO8601 specification,
Packit 228f82
	  especially with respect to milliseconds (they are just ignored, but
Packit 228f82
	  parsing do not fails now).
Packit 228f82
	- the encryption private key can be loaded with a password (SAMLv2
Packit 228f82
	  support only)
Packit 228f82
	- keep on replacing direct glib data structure manipulation function by
Packit 228f82
	  safer lasso macros.
Packit 228f82
	- remove useless verbosity when there is already some error reporting
Packit 228f82
	  through method return value.
Packit 228f82
	- add a signature_verify_hint parameter to all profiles, which can be
Packit 228f82
	  used to specify the policy for verifying signatures. The choices are:
Packit 228f82
	  - maybe, i.e. let Lasso decides,
Packit 228f82
	  - force, i.e. always verify, even when it is not needed by the spec,
Packit 228f82
	  - ignore, i.e. verify, but do not block processing on signature
Packit 228f82
	    verifications error.
Packit 228f82
	- add a new snippet type: SNIPPET_COLLECT_NAMESPACES, to collect all
Packit 228f82
	  declared namespaces in the context of a node. It is needed for
Packit 228f82
	  interpreting a string value which depend on the locally declared
Packit 228f82
	  namespaces (like XPath queries).
Packit 228f82
	- support full syntax for query strings (lasso missed support for
Packit 228f82
	  semi-colon separator between query string key-value pairs).
Packit 228f82
	- make LassoServer load its public key like LassoProvider
Packit 228f82
	- lasso_build_unique_id is now part of the public API
Packit 228f82
	- add lasso_profile_sso_role_with to decide on the role we have toward
Packit 228f82
	  another provider (depending on the Identity, the Session or the
Packit 228f82
	  Server object in this order).
Packit 228f82
	- add a lasso_node_debug method wich output a human friendly dump (i.e.
Packit 228f82
	  indented) of a serialized LassoNode, contrary to dump which returns a
Packit 228f82
	  computer friendly one (dump will conserve signature values, not
Packit 228f82
	  debug).
Packit 228f82
Packit 228f82
 * SAMLv2:
Packit 228f82
	- constraint on the number of SessionIndex value in a LogoutRequest was
Packit 228f82
	  worked-around (see
Packit 228f82
	  lasso_samlp2_logout_request_get/set_session_indexes)
Packit 228f82
	- full support for encrypted signing key (ID-FFv1.2 is coming in next
Packit 228f82
	  release)
Packit 228f82
	- The treatment of assertions consumer endpoints metadata was improved to be
Packit 228f82
	  what the specification says, i.e find the best default.
Packit 228f82
	- lasso_assertion_query_build_request_msg now properly initialize the Subject
Packit 228f82
	  of the query from all possibles sources (first profile->nameIdentifier, then
Packit 228f82
	  from the identity dump and finally from the session).
Packit 228f82
	- when a parsed Assertion contains a signature, we return the
Packit 228f82
	  original_xmlnode instead of serializing the LassoNode content when
Packit 228f82
	  calling lasso_node_get_xmlNode. This is in order to keep canonical
Packit 228f82
	  representation of signed assertions. The result is that parsed and
Packit 228f82
	  signed assertions should be considered read-only with respect to
Packit 228f82
	  serialization.
Packit 228f82
	- lasso_login_build_assertion no longer initialize sessionNotOnOrAfter,
Packit 228f82
	  it must be done explicitely by the IdP implementation. Only the
Packit 228f82
	  assertion lifetime is set by the arguments.
Packit 228f82
	- when loading metadata for a provider, we verify that a role
Packit 228f82
	  descriptor exists for the prescribed role: i.e if you do
Packit 228f82
	  server.addProvider(lasso.PROVIDER_ROLE_SP, "metadata.xml"), lasso
Packit 228f82
	  checks that the metadata contain a descriptor for the role "SPSSO".
Packit 228f82
	- new helper methods to manipulate and check conditions on
Packit 228f82
	  SAMLv2 assertions.
Packit 228f82
	- move strings to their own header (but keep retro-compatibility
Packit 228f82
	  through inclusion in xml/strings.h).
Packit 228f82
Packit 228f82
 * Bindings:
Packit 228f82
	- improve general use of bindings/utils.py module inside the bindings
Packit 228f82
	  to share type matching logic.
Packit 228f82
Packit 228f82
 * Python binding:
Packit 228f82
	- Glib warning are tunneled through python logging API
Packit 228f82
	- camelcasing of uppercase starting fields for python and java bindings has
Packit 228f82
	  been fixed, old orthograph has been also kept for compatibility. The problem
Packit 228f82
	  could be seen on LassoAssertion object where the field ID was renamed iD
Packit 228f82
	  which was difficult to guess.
Packit 228f82
	- node class now supports pickling by leveraging existing XML
Packit 228f82
	  serialization. It posseses the same limitations as the existing XML
Packit 228f82
	  serialization, for example serializing a LassProfile is not an
Packit 228f82
	  idempotent operation, it will miss the server, identity and session
Packit 228f82
	  fields.
Packit 228f82
	- empty GList now return an empty tuple, not None (it fixes a lot
Packit 228f82
	  list traversal codes)
Packit 228f82
	- do not forget to emit 'pass' in declaration of class without any
Packit 228f82
	  content (no method, no field, no constructor)
Packit 228f82
	- the code to emit 'freeing' code for values was factorized and improved.
Packit 228f82
	- for empty lists returns an empty pyhon list, not None.
Packit 228f82
Packit 228f82
 * Perl binding:
Packit 228f82
	- support for out parameters was added.
Packit 228f82
	- better memory freeing
Packit 228f82
Packit 228f82
 * Java binding:
Packit 228f82
	- finished exception support for error returning methods.
Packit 228f82
	- optimize the makefile for file listing generation
Packit 228f82
	- for NULL GList returns an empty ArrayList object, not null.
Packit 228f82
Packit 228f82
 * Documentation:
Packit 228f82
	- add examples to LassoLogout documentation
Packit 228f82
	- fix missing or deprecated methods in lasso-sections.txt
Packit 228f82
	- document LassoIdWsf2Profile methods
Packit 228f82
	- document runtime flags
Packit 228f82
Packit 228f82
 * Tests:
Packit 228f82
	- new macros to help in testing (see tests/tests.h), they also make
Packit 228f82
	  better error reporting (when comparing values, they show the expected
Packit 228f82
	  and the obtained value).
Packit 228f82
	- SAMLv2 AuthnRequest through HTTP-Artifact binding is tested
Packit 228f82
	- SAMLv2 LogoutRequest with multiple SessionIndex is tested
Packit 228f82
	- force C locale for integration test (we match UI strings, so it is
Packit 228f82
	  needed).
Packit 228f82
	- SAMLv2, test websso with encrypted private keys (idp and sp side)
Packit 228f82
	- SAMLv2, add a python test for attribute authority
Packit 228f82
Packit 228f82
 * ID-WSF 2.0:
Packit 228f82
	- constant strings were moved to their own header
Packit 228f82
	  (lasso/xml/id-wsf-2.0/idwsf2_strings.h)
Packit 228f82
	- add helper method to retrieve the bootstrap EPR from an assertion and
Packit 228f82
	  to mint assertion to use as WS-Security tokens.
Packit 228f82
	- add method lasso_idwsf2_data_service_get_query_item_result_content to
Packit 228f82
	  retrieve DST query result as text
Packit 228f82
	- sign SAMLv2 assertion used as WS-Security tokens
Packit 228f82
Packit 228f82
And many minor bug-fixes...
Packit 228f82
Packit 228f82
2.2.91 - January 26th 2010
Packit 228f82
--------------------------
Packit 228f82
Packit 228f82
A new Perl binding, fix for backward compatibility with old versions of glib,
Packit 228f82
LassoLogout API is more robust since it does not need anymore for all SP logout
Packit 228f82
to finish to work, new macro lasso_list_add_new_xml_node, add support for
Packit 228f82
WS-Security UsernameToken (equivalent of poor man HTTP Digest Authentication),
Packit 228f82
make public internal APIs: lasso_session_add_assertion,
Packit 228f82
lasso_session_get_assertion and lasso_session_remove_assertion.
Packit 228f82
Packit 228f82
2.2.90 - January 18th 2010
Packit 228f82
--------------------------
Packit 228f82
Packit 228f82
Lots of internal changes and some external one too.
Packit 228f82
Packit 228f82
There is a new api to force, forbid or let Lasso sign messages, it is called
Packit 228f82
lasso_profile_set_signature_hint.
Packit 228f82
Packit 228f82
Big overhaul of the ID-WSF 1 and 2 codes, and of the SAML 2.0 profiles. Now all
Packit 228f82
SAML 2.0 profile use common internal functions from the lasso_saml20_profile_
Packit 228f82
namespace to handle bindings (SOAP,Redirect,POST,Artifact,PAOS). New internal
Packit 228f82
API to load SSL keys from many more formats from the public API.
Packit 228f82
Packit 228f82
In ID-WSF 2.0, Data Service Template has been simplified, we no more try to
Packit 228f82
apply queries, it is the responsability of the using code to handle them.
Packit 228f82
Packit 228f82
In bindings land, the file bindings/utils.py has been stuffed with utility
Packit 228f82
function to manipulate 'type' tuple, with are now used to transfer argument and
Packit 228f82
type description, their schema is (name, C-type, { dictionary of options } ),
Packit 228f82
they are now used everywhere in the different bindings. We support output
Packit 228f82
argument in PHP5, Python and Java, i.e. pointer of pointer arguments with are
Packit 228f82
written to in order to return multiple values. For language where the binding
Packit 228f82
convert error codes to exceptions (all of them now), the ouput value is
Packit 228f82
returned as the normal return value of the method, so only one output argument
Packit 228f82
is handled for now.
Packit 228f82
Packit 228f82
We now use GObject-introspection annotations in the documentation to transfer
Packit 228f82
to the binding generator the necessary metadata about the API (content of
Packit 228f82
lists, hashtables, wheter pointer are caller/callee owned, can be NULL or if
Packit 228f82
argument have a default value). The file bindings/override.xml is now
Packit 228f82
deprecated.
Packit 228f82
Packit 228f82
In documentation land, the main reference documentation was reorganizaed and
Packit 228f82
more symbols have been added to it. Many more functions are documented.
Packit 228f82
Packit 228f82
There is now tools to control the evolution of the ABI/API of Lasso.
Packit 228f82
Packit 228f82
2.2.2 - March 24th 2009
Packit 228f82
-----------------------
Packit 228f82
Packit 228f82
Many fixes and improvements to the ID-WSF 1 support, new API to load SSL keys
Packit 228f82
off memory, documentation for ID-WSF methods, general robustness and memory
Packit 228f82
leak fixes.
Packit 228f82
Packit 228f82
2.2.1 - July 22nd 2008
Packit 228f82
----------------------
Packit 228f82
Packit 228f82
Fixed problems with signed SAML 2.0 URL strings and checks against existing
Packit 228f82
assertions to tell if authentication was required.
Packit 228f82
Packit 228f82
2.2.0 - May 28th 2008
Packit 228f82
---------------------
Packit 228f82
Packit 228f82
Added support for encrypted NameIdentifier in ID-FF 1.2, fixed various minor
Packit 228f82
issues with ID-WSF support and several bugs and memory management issues; also
Packit 228f82
replaced bindings for Java, PHP 5 and Python with new ones, created by a custom
Packit 228f82
code generator.
Packit 228f82
Packit 228f82
2.1.1 - August 21st 2007
Packit 228f82
------------------------
Packit 228f82
Packit 228f82
Added support for LassoSignatureType to bindings (support was already but
Packit 228f82
implicitely present for Python), fixed references to Node and String lists
Packit 228f82
in all bindings.
Packit 228f82
Packit 228f82
2.1.0 - August 13rd 2007
Packit 228f82
------------------------
Packit 228f82
Packit 228f82
Added preliminary support for ID-WSF 2, Discovery and Data Service Template,
Packit 228f82
added missing accessors for class elements in SAML 2 language bindings, fixed
Packit 228f82
potential DoS in message parsing.
Packit 228f82
Packit 228f82
Packit 228f82
2.0.0 - January 16th 2007
Packit 228f82
-------------------------
Packit 228f82
Packit 228f82
Completed SAMLv2 support, passed conformance event organized by the Liberty
Packit 228f82
Alliance from December 4th to 8th 2006.  Gratuitous giant version bump to
Packit 228f82
mark this step.  Fixed memory leaks and potential segmentation faults.
Packit 228f82
Packit 228f82
Packit 228f82
1.9.9 - December 19th 2006
Packit 228f82
--------------------------
Packit 228f82
Packit 228f82
  [Test version, news copied over to 2.0.0]
Packit 228f82
Packit 228f82
Packit 228f82
0.6.6 - October 16th 2006
Packit 228f82
-----------------------
Packit 228f82
Packit 228f82
Fixed issues in ID-WSF Data and Interaction services support, fixed a few
Packit 228f82
robustness issues in corner cases.
Packit 228f82
Packit 228f82
  [This version was finally not released due to decision to first finish
Packit 228f82
   SAMLv2 support and pass the conformance tests.]
Packit 228f82
Packit 228f82
Packit 228f82
0.6.5 - March 21st 2006
Packit 228f82
-----------------------
Packit 228f82
Packit 228f82
Fixed support for SWIG 1.3.28 (now required), fixed a win32 build issue, fixed
Packit 228f82
documentation.
Packit 228f82
Packit 228f82
Packit 228f82
0.6.4 - March 8th 2006
Packit 228f82
----------------------
Packit 228f82
Packit 228f82
Added first draft of ID-WSF Interaction Service support, added message
Packit 228f82
signatures to ID-WSF messages, added first draft of SAML 2 support (only
Packit 228f82
Web-SSO and part of Single Logout for the moment), fixed some corner cases,
Packit 228f82
improved error detection in different places, upgraded SWIG support to 1.3.28
Packit 228f82
and generally improved the bindings.
Packit 228f82
Packit 228f82
Packit 228f82
0.6.3 - September 30th 2005
Packit 228f82
---------------------------
Packit 228f82
Packit 228f82
Improved behaviour when confronted to other Liberty providers that do not
Packit 228f82
implement all the mandatory Liberty requirements, improved error status code
Packit 228f82
reporting, completed support for public keys embedded in metadata files, fixed
Packit 228f82
a few corner case bugs.  Also continued work on ID-WSF support, implementing
Packit 228f82
Discovery and DST services but still considered experimental and disabled by
Packit 228f82
default.
Packit 228f82
	  
Packit 228f82
Packit 228f82
0.6.2 - May 26th 2005
Packit 228f82
---------------------
Packit 228f82
Packit 228f82
Fixed usage of NameIdentifiers after calls to Register Name Identifier profile,
Packit 228f82
improved robustness against other Liberty implementations, improved loading of
Packit 228f82
metadata, fixed minor bugs and memory leaks.  Continued work on ID-WSF support,
Packit 228f82
still partial and disabled by default.
Packit 228f82
Packit 228f82
Packit 228f82
0.6.1 - February 22nd 2005
Packit 228f82
--------------------------
Packit 228f82
Packit 228f82
Completed <lib:Extension> support, added full bidirectional query string support
Packit 228f82
for AuthnContextStatementRef, AuthnContextClassRef and AuthnContextComparison,
Packit 228f82
fixed a crasher-bug in a rare case of single sign on profile, tested and
Packit 228f82
shipped with Microsoft Visual Studio project files.
Packit 228f82
Packit 228f82
Packit 228f82
0.6.0 - January 27th 2005
Packit 228f82
-------------------------
Packit 228f82
Packit 228f82
Rewrote library internals to use standard structures instead of libxml2 nodes;
Packit 228f82
this allows faster processing, more flexibility and better support for language
Packit 228f82
bindings.  Documented all the API functions.  Fixed and improved the rest.
Packit 228f82
Packit 228f82
Packit 228f82
0.5.0 - November 9th 2004
Packit 228f82
-------------------------
Packit 228f82
Packit 228f82
All features of SP Basic, SP, IDP, and LECP profiles for Liberty IDFF 1.2
Packit 228f82
Static Conformance are now implemented, except for "Backward Compatibility".
Packit 228f82
Extended features are also supported, except for "Affiliations".  Compatible
Packit 228f82
with the demo application of the last Beta version of SourceID Liberty 2.0.
Packit 228f82
Packit 228f82
Improved metadata support, a lot of new feature and bugfixes.
Packit 228f82
Packit 228f82
API, ABI, and dump format of messages have changed, so this release is not
Packit 228f82
compatible with previous versions.
Packit 228f82
Packit 228f82
Packit 228f82
0.4.1 - September 7th 2004
Packit 228f82
--------------------------
Packit 228f82
Packit 228f82
Small bug fixes. Windows DLL are now linked with standard call aliases.
Packit 228f82
Packit 228f82
Packit 228f82
0.4.0 - September 6th 2004
Packit 228f82
--------------------------
Packit 228f82
Packit 228f82
Complete support for the main profiles of Liberty Alliance IF-FF 1.2 (Single
Packit 228f82
Sign On, Single Logout, and Federation Termination).  Revamped language
Packit 228f82
bindings to use SWIG (supported languages are noew Python, PHP, Java and C#).
Packit 228f82
More unit tests.  Bugs fixed.
Packit 228f82
Packit 228f82
Packit 228f82
0.3.0 - July 27th 2004
Packit 228f82
----------------------
Packit 228f82
Packit 228f82
Improved support for Single Sign On and Single Logout profiles.  Python and
Packit 228f82
Java bindings.  Unit tests.  Bugs fixed.
Packit 228f82
Packit 228f82
Packit 228f82
0.2.0 - June 1st 2004
Packit 228f82
---------------------
Packit 228f82
Packit 228f82
First release as a C library.
Packit 228f82