summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS75
-rw-r--r--abi/abi-2.3.31114
-rw-r--r--abi/abi-2.3.41114
-rw-r--r--abi/abi-2.3.51115
-rw-r--r--abi/abi-2.4.01125
-rw-r--r--bindings/php5/php_code.py51
-rw-r--r--configure.ac4
-rw-r--r--lasso/key.c153
-rw-r--r--lasso/key.h10
-rw-r--r--lasso/saml-2.0/provider.c26
-rw-r--r--lasso/saml-2.0/saml2_helper.c12
-rw-r--r--lasso/xml/private.h8
-rw-r--r--lasso/xml/tools.c120
-rw-r--r--lasso/xml/xml.c143
-rw-r--r--lasso/xml/xml.h5
-rw-r--r--tests/basic_tests.c2
-rw-r--r--tests/random_tests.c104
17 files changed, 5087 insertions, 94 deletions
diff --git a/NEWS b/NEWS
index 7f5dba28..7cfe9e1d 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,81 @@
NEWS
====
+2.4.0 - June 6th 2011
+---------------------
+93 files changed, 32160 insertions(+), 607 deletions(-)
+
+Minor version number increase since ABI was extended (new methods).
+
+ - Improvements to autoconf and automake files to compile under Darwin (Mac Os
+ X).
+ - Key rollover support:
+ Lasso is now able to accept messages signed by any key declared as a signing
+ key in a metadata and not just the last one. You can also decrypt encrypted
+ nodes using any of a list of private keys, allowing roll-over of encryption
+ certificates. Signing key roll-over is automatic, your provider just have to
+ provide the new signing key in their metadata. For multiple-encryption key
+ you can load another private key than the one loaded in the LassoServer
+ constuctor with code like that:
+
+ >>> import lasso
+ >>> server = lasso.Server(our_metadata, first_private_key_path)
+ >>> server.setEncryptionPrivateKey(second_private_key_path)
+
+ See the FAQ file for the workflow of a proper key roll-over.
+
+ - Partial logout reponse now produces a specific error code when parsed by
+ lasso_logout_process_response_msg()
+ - Bugs in lasso_assertion_query_build_request_msg() were fixed
+ - Processing of assertions is not stopped when checking that first level
+ status code is not success, so that later code can check the second level
+ status code.
+ - A new generic error for denied request was added,
+ LASSO_PROFILE_ERROR_REQUEST_DENIED
+ - A new API lasso_server_load_metadata() was added to load federation files
+ (XML files containing metadata from multiple providers) and to check
+ signatures on them.
+ - Better warning and errors are reported in logs when failing to load a
+ metadata file.
+ - Bugs around missing namespace declaration for dump file were fixed, it
+ prevented reloading dumped object (like LassoLogin).
+ - lasso_node_get_xml_node_for_any_type() must be able to copy the content of
+ an XML node to another (namespace, attribute and children). It did not, now
+ it is fixed. It can be used for example to add specific attribute like «
+ xsi:type="string" » to a Saml2AttributeValue. Here is a python snippet to do that:
+
+ >>> import lasso
+ >>> a = lasso.Saml2AttributeValue()
+ >>> a.setOriginalXmlnode('<Dummy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="string">Value</Dummy>')
+ >>> print a.debug(0)
+ <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>
+ - support for symetric keys signatures: for a long time XMLDisg standard has
+ supported HMAC signature, or signature based on a shared secret key an hash
+ algorithm. Lasso now does support to share a key with another Lasso using
+ service or identity provider and to verify and sign SAML exchange using this
+ key. Performance can be 100 times more than with assymetric cryptography,
+ i.e. RSA.
+ - nodes able to hold any XML attribyte (like saml:AttributeValue) contains a
+ hashtable to for holding those attributes, those hashtable have a new syntax
+ for attributes of another namespace than the current node namespace,
+ inspired by the Python ElementTree library:
+
+ {the_namespace}the_attribute_name
+
+ ex:
+
+ {http://www.w3.org/2001/XMLSchema-instance}type
+
+ for the classic xsi:type attribute.
+ - The perfs benchmarking tools now allows to select a different metadata set
+ (for example to test with different public key sizes).
+ - Perl minimal version for the binding was downgraded to 5
+ - pseudo-XSchema validation: the new XML deserializer does more to enforce
+ constraints of the schema defining SAML messages. It means Lasso is less
+ forgiving with non-conform implementation of SAML.
+ - a FAQ file was started.
+
+
2.3.6 - November 29th 2011
--------------------------
diff --git a/abi/abi-2.3.3 b/abi/abi-2.3.3
new file mode 100644
index 00000000..bd6d5799
--- /dev/null
+++ b/abi/abi-2.3.3
@@ -0,0 +1,1114 @@
+BACKWARD_COMP_H
+LASSO_ASSERTION_QUERY_ERROR_ATTRIBUTE_REQUEST_ALREADY_EXIST
+LASSO_ASSERTION_QUERY_ERROR_NOT_AN_ATTRIBUTE_QUERY
+LASSO_ASSERTION_QUERY_REQUEST_TYPE_ASSERTION_ID
+LASSO_ASSERTION_QUERY_REQUEST_TYPE_ATTRIBUTE
+LASSO_ASSERTION_QUERY_REQUEST_TYPE_AUTHN
+LASSO_ASSERTION_QUERY_REQUEST_TYPE_AUTHZ_DECISION
+LASSO_ASSERTION_QUERY_REQUEST_TYPE_LAST
+LASSO_ASSERTION_QUERY_REQUEST_TYPE_UNSET
+LASSO_CERTIFICATE_ATTRIBUTE
+LASSO_CHECK_VERSIONABI_COMPATIBLE
+LASSO_CHECK_VERSION_EXACT
+LASSO_CHECK_VERSION_NUMERIC
+LASSO_DATA_SERVICE_ERROR_CANNOT_ADD_ITEM
+LASSO_DATA_SERVICE_ERROR_UNREGISTERED_DST
+LASSO_DEFEDERATION_ERROR_MISSING_NAME_IDENTIFIER
+LASSO_DISCOVERY_ERROR_FAILED_TO_BUILD_ENDPOINT_REFERENCE
+LASSO_DISCOVERY_ERROR_MISSING_REQUESTED_SERVICE
+LASSO_DISCOVERY_ERROR_SVC_METADATA_ASSOCIATION_ADD_FAILED
+LASSO_DISCOVERY_ERROR_SVC_METADATA_REGISTER_FAILED
+LASSO_DST_ERROR_EMPTY_REQUEST
+LASSO_DST_ERROR_MALFORMED_QUERY
+LASSO_DST_ERROR_MISSING_SERVICE_DATA
+LASSO_DST_ERROR_MODIFY_FAILED
+LASSO_DST_ERROR_MODIFY_PARTIALLY_FAILED
+LASSO_DST_ERROR_NEW_DATA_MISSING
+LASSO_DST_ERROR_NO_DATA
+LASSO_DST_ERROR_QUERY_FAILED
+LASSO_DST_ERROR_QUERY_NOT_FOUND
+LASSO_DST_ERROR_QUERY_PARTIALLY_FAILED
+LASSO_DS_ERROR_CA_CERT_CHAIN_LOAD_FAILED
+LASSO_DS_ERROR_CERTIFICATE_LOAD_FAILED
+LASSO_DS_ERROR_CONTEXT_CREATION_FAILED
+LASSO_DS_ERROR_DECRYPTION_FAILED
+LASSO_DS_ERROR_DECRYPTION_FAILED_MISSING_PRIVATE_KEY
+LASSO_DS_ERROR_DIGEST_COMPUTE_FAILED
+LASSO_DS_ERROR_ENCRYPTION_FAILED
+LASSO_DS_ERROR_INVALID_REFERENCE_FOR_SAML
+LASSO_DS_ERROR_INVALID_SIGALG
+LASSO_DS_ERROR_INVALID_SIGNATURE
+LASSO_DS_ERROR_KEYS_MNGR_CREATION_FAILED
+LASSO_DS_ERROR_KEYS_MNGR_INIT_FAILED
+LASSO_DS_ERROR_PRIVATE_KEY_LOAD_FAILED
+LASSO_DS_ERROR_PUBLIC_KEY_LOAD_FAILED
+LASSO_DS_ERROR_SIGNATURE_FAILED
+LASSO_DS_ERROR_SIGNATURE_NOT_FOUND
+LASSO_DS_ERROR_SIGNATURE_TEMPLATE_NOT_FOUND
+LASSO_DS_ERROR_SIGNATURE_TMPL_CREATION_FAILED
+LASSO_DS_ERROR_SIGNATURE_VERIFICATION_FAILED
+LASSO_DS_ERROR_TOO_MUCH_REFERENCES
+LASSO_DS_HREF
+LASSO_DS_PREFIX
+LASSO_DURATION_DAY
+LASSO_DURATION_HOUR
+LASSO_DURATION_MINUTE
+LASSO_DURATION_WEEK
+LASSO_ECP_HREF
+LASSO_ECP_PREFIX
+LASSO_ENCRYPTION_MODE_ASSERTION
+LASSO_ENCRYPTION_MODE_NAMEID
+LASSO_ENCRYPTION_MODE_NONE
+LASSO_ENCRYPTION_SYM_KEY_TYPE_3DES
+LASSO_ENCRYPTION_SYM_KEY_TYPE_AES_128
+LASSO_ENCRYPTION_SYM_KEY_TYPE_AES_256
+LASSO_ENCRYPTION_SYM_KEY_TYPE_DEFAULT
+LASSO_ERROR_CAST_FAILED
+LASSO_ERROR_OUT_OF_MEMORY
+LASSO_ERROR_UNDEFINED
+LASSO_ERROR_UNIMPLEMENTED
+LASSO_HTTP_METHOD_ANY
+LASSO_HTTP_METHOD_ARTIFACT_GET
+LASSO_HTTP_METHOD_ARTIFACT_POST
+LASSO_HTTP_METHOD_GET
+LASSO_HTTP_METHOD_IDP_INITIATED
+LASSO_HTTP_METHOD_LAST
+LASSO_HTTP_METHOD_NONE
+LASSO_HTTP_METHOD_PAOS
+LASSO_HTTP_METHOD_POST
+LASSO_HTTP_METHOD_REDIRECT
+LASSO_HTTP_METHOD_SOAP
+LASSO_IDWSF2_DISCOVERY_ERROR_DUPLICATE
+LASSO_IDWSF2_DISCOVERY_ERROR_FAILED
+LASSO_IDWSF2_DISCOVERY_ERROR_FORBIDDEN
+LASSO_IDWSF2_DISCOVERY_ERROR_LOGICAL_DUPLICATE
+LASSO_IDWSF2_DISCOVERY_ERROR_NOT_FOUND
+LASSO_IDWSF2_DISCOVERY_ERROR_NO_RESULTS
+LASSO_IDWSF2_DST_ERROR_DUPLICATE_ITEM
+LASSO_IDWSF2_DST_ERROR_ITEM_NOT_FOUND
+LASSO_IDWSF2_DST_ERROR_PARTIAL_FAILURE
+LASSO_IDWSF2_DST_ERROR_UNKNOWN_STATUS_CODE
+LASSO_LASSO_HREF
+LASSO_LASSO_PREFIX
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_INTERNET_PROTOCOL
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_INTERNET_PROTOCOL_PASSWORD
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_MOBILE_ONE_FACTOR_CONTRACT
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_MOBILE_ONE_FACTOR_UNREGISTERED
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_MOBILE_TWO_FACTOR_CONTRACT
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_MOBILE_TWO_FACTOR_UNREGISTERED
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_PASSWORD
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_PASSWORD_PROTECTED_TRANSPORT
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_PREVIOUS_SESSION
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_SMARTCARD
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_SMARTCARD_PKI
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_SOFTWARE_PKI
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_TIME_SYNC_TOKEN
+LASSO_LIB_AUTHN_CONTEXT_COMPARISON_BETTER
+LASSO_LIB_AUTHN_CONTEXT_COMPARISON_EXACT
+LASSO_LIB_AUTHN_CONTEXT_COMPARISON_MAXIMUM
+LASSO_LIB_AUTHN_CONTEXT_COMPARISON_MINIMUM
+LASSO_LIB_CONSENT_INAPPLICABLE
+LASSO_LIB_CONSENT_OBTAINED
+LASSO_LIB_CONSENT_OBTAINED_CURRENT_EXPLICIT
+LASSO_LIB_CONSENT_OBTAINED_CURRENT_IMPLICIT
+LASSO_LIB_CONSENT_OBTAINED_PRIOR
+LASSO_LIB_CONSENT_UNAVAILABLE
+LASSO_LIB_HREF
+LASSO_LIB_MAJOR_VERSION_N
+LASSO_LIB_MINOR_VERSION_N
+LASSO_LIB_NAMEID_POLICY_TYPE_ANY
+LASSO_LIB_NAMEID_POLICY_TYPE_FEDERATED
+LASSO_LIB_NAMEID_POLICY_TYPE_NONE
+LASSO_LIB_NAMEID_POLICY_TYPE_ONE_TIME
+LASSO_LIB_NAME_IDENTIFIER_FORMAT_ENCRYPTED
+LASSO_LIB_NAME_IDENTIFIER_FORMAT_ENTITYID
+LASSO_LIB_NAME_IDENTIFIER_FORMAT_FEDERATED
+LASSO_LIB_NAME_IDENTIFIER_FORMAT_ONE_TIME
+LASSO_LIB_PREFIX
+LASSO_LIB_PROTOCOL_PROFILE_BRWS_ART
+LASSO_LIB_PROTOCOL_PROFILE_BRWS_LECP
+LASSO_LIB_PROTOCOL_PROFILE_BRWS_POST
+LASSO_LIB_PROTOCOL_PROFILE_FED_TERM_IDP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_FED_TERM_IDP_SOAP
+LASSO_LIB_PROTOCOL_PROFILE_FED_TERM_SP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_FED_TERM_SP_SOAP
+LASSO_LIB_PROTOCOL_PROFILE_NIM_SP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_RNI_IDP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_RNI_IDP_SOAP
+LASSO_LIB_PROTOCOL_PROFILE_RNI_SP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_RNI_SP_SOAP
+LASSO_LIB_PROTOCOL_PROFILE_SLO_IDP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_SLO_IDP_SOAP
+LASSO_LIB_PROTOCOL_PROFILE_SLO_SP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_SLO_SP_SOAP
+LASSO_LIB_STATUS_CODE_FEDERATION_DOES_NOT_EXIST
+LASSO_LIB_STATUS_CODE_INVALID_ASSERTION_CONSUMER_SERVICE_INDEX
+LASSO_LIB_STATUS_CODE_INVALID_SIGNATURE
+LASSO_LIB_STATUS_CODE_NO_AUTHN_CONTEXT
+LASSO_LIB_STATUS_CODE_NO_AVAILABLEIDP
+LASSO_LIB_STATUS_CODE_NO_PASSIVE
+LASSO_LIB_STATUS_CODE_NO_SUPPORTEDIDP
+LASSO_LIB_STATUS_CODE_PROXY_COUNT_EXCEEDED
+LASSO_LIB_STATUS_CODE_UNKNOWN_PRINCIPAL
+LASSO_LIB_STATUS_CODE_UNSIGNED_AUTHN_REQUEST
+LASSO_LIB_STATUS_CODE_UNSUPPORTED_PROFILE
+LASSO_LOGIN_ERROR_ASSERTION_DOES_NOT_MATCH_REQUEST_ID
+LASSO_LOGIN_ERROR_ASSERTION_REPLAY
+LASSO_LOGIN_ERROR_CONSENT_NOT_OBTAINED
+LASSO_LOGIN_ERROR_FEDERATION_NOT_FOUND
+LASSO_LOGIN_ERROR_INVALID_ASSERTION_SIGNATURE
+LASSO_LOGIN_ERROR_INVALID_NAMEIDPOLICY
+LASSO_LOGIN_ERROR_INVALID_SIGNATURE
+LASSO_LOGIN_ERROR_NO_DEFAULT_ENDPOINT
+LASSO_LOGIN_ERROR_REQUEST_DENIED
+LASSO_LOGIN_ERROR_STATUS_NOT_SUCCESS
+LASSO_LOGIN_ERROR_UNKNOWN_PRINCIPAL
+LASSO_LOGIN_ERROR_UNSIGNED_AUTHN_REQUEST
+LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_ART
+LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_LECP
+LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_POST
+LASSO_LOGIN_PROTOCOL_PROFILE_REDIRECT
+LASSO_LOGOUT_ERROR_FEDERATION_NOT_FOUND
+LASSO_LOGOUT_ERROR_REQUEST_DENIED
+LASSO_LOGOUT_ERROR_UNKNOWN_PRINCIPAL
+LASSO_LOGOUT_ERROR_UNSUPPORTED_PROFILE
+LASSO_MD_PROTOCOL_TYPE_ARTIFACT_RESOLUTION
+LASSO_MD_PROTOCOL_TYPE_ASSERTION_ID_REQUEST
+LASSO_MD_PROTOCOL_TYPE_ATTRIBUTE
+LASSO_MD_PROTOCOL_TYPE_AUTHN_QUERY
+LASSO_MD_PROTOCOL_TYPE_AUTHZ
+LASSO_MD_PROTOCOL_TYPE_FEDERATION_TERMINATION
+LASSO_MD_PROTOCOL_TYPE_LAST
+LASSO_MD_PROTOCOL_TYPE_MANAGE_NAME_ID
+LASSO_MD_PROTOCOL_TYPE_NAME_IDENTIFIER_MAPPING
+LASSO_MD_PROTOCOL_TYPE_REGISTER_NAME_IDENTIFIER
+LASSO_MD_PROTOCOL_TYPE_SINGLE_LOGOUT
+LASSO_MD_PROTOCOL_TYPE_SINGLE_SIGN_ON
+LASSO_MESSAGE_FORMAT_BASE64
+LASSO_MESSAGE_FORMAT_ERROR
+LASSO_MESSAGE_FORMAT_QUERY
+LASSO_MESSAGE_FORMAT_SOAP
+LASSO_MESSAGE_FORMAT_UNKNOWN
+LASSO_MESSAGE_FORMAT_XML
+LASSO_MESSAGE_FORMAT_XSCHEMA_ERROR
+LASSO_METADATA_HREF
+LASSO_METADATA_PREFIX
+LASSO_NAME_IDENTIFIER_MAPPING_ERROR_FORBIDDEN_CALL_ON_THIS_SIDE
+LASSO_NAME_IDENTIFIER_MAPPING_ERROR_MISSING_TARGET_IDENTIFIER
+LASSO_NAME_IDENTIFIER_MAPPING_ERROR_MISSING_TARGET_NAMESPACE
+LASSO_PAOS_HREF
+LASSO_PAOS_PREFIX
+LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ
+LASSO_PARAM_ERROR_CHECK_FAILED
+LASSO_PARAM_ERROR_INVALID_VALUE
+LASSO_PARAM_ERROR_NON_INITIALIZED_OBJECT
+LASSO_PRIVATE_KEY_ATTRIBUTE
+LASSO_PRIVATE_KEY_PASSWORD_ATTRIBUTE
+LASSO_PRIVATE_STATUS_CODE_FAILED_TO_RESTORE_ARTIFACT
+LASSO_PROFILE_ERROR_BAD_IDENTITY_DUMP
+LASSO_PROFILE_ERROR_BAD_SESSION_DUMP
+LASSO_PROFILE_ERROR_BUILDING_MESSAGE_FAILED
+LASSO_PROFILE_ERROR_BUILDING_QUERY_FAILED
+LASSO_PROFILE_ERROR_BUILDING_REQUEST_FAILED
+LASSO_PROFILE_ERROR_BUILDING_RESPONSE_FAILED
+LASSO_PROFILE_ERROR_CANNOT_FIND_A_PROVIDER
+LASSO_PROFILE_ERROR_CANNOT_VERIFY_SIGNATURE
+LASSO_PROFILE_ERROR_FEDERATION_NOT_FOUND
+LASSO_PROFILE_ERROR_IDENTITY_NOT_FOUND
+LASSO_PROFILE_ERROR_INVALID_ARTIFACT
+LASSO_PROFILE_ERROR_INVALID_ASSERTION
+LASSO_PROFILE_ERROR_INVALID_ASSERTION_CONDITIONS
+LASSO_PROFILE_ERROR_INVALID_HTTP_METHOD
+LASSO_PROFILE_ERROR_INVALID_ISSUER
+LASSO_PROFILE_ERROR_INVALID_MSG
+LASSO_PROFILE_ERROR_INVALID_POST_MSG
+LASSO_PROFILE_ERROR_INVALID_PROTOCOLPROFILE
+LASSO_PROFILE_ERROR_INVALID_QUERY
+LASSO_PROFILE_ERROR_INVALID_REQUEST
+LASSO_PROFILE_ERROR_INVALID_RESPONSE
+LASSO_PROFILE_ERROR_INVALID_SOAP_MSG
+LASSO_PROFILE_ERROR_ISSUER_IS_NOT_AN_IDP
+LASSO_PROFILE_ERROR_MISSING_ARTIFACT
+LASSO_PROFILE_ERROR_MISSING_ASSERTION
+LASSO_PROFILE_ERROR_MISSING_ENCRYPTION_PRIVATE_KEY
+LASSO_PROFILE_ERROR_MISSING_ENDPOINT_REFERENCE
+LASSO_PROFILE_ERROR_MISSING_ENDPOINT_REFERENCE_ADDRESS
+LASSO_PROFILE_ERROR_MISSING_ISSUER
+LASSO_PROFILE_ERROR_MISSING_NAME_IDENTIFIER
+LASSO_PROFILE_ERROR_MISSING_REMOTE_PROVIDERID
+LASSO_PROFILE_ERROR_MISSING_REQUEST
+LASSO_PROFILE_ERROR_MISSING_RESOURCE_OFFERING
+LASSO_PROFILE_ERROR_MISSING_RESPONSE
+LASSO_PROFILE_ERROR_MISSING_SERVER
+LASSO_PROFILE_ERROR_MISSING_SERVICE_DESCRIPTION
+LASSO_PROFILE_ERROR_MISSING_SERVICE_INSTANCE
+LASSO_PROFILE_ERROR_MISSING_SERVICE_TYPE
+LASSO_PROFILE_ERROR_MISSING_STATUS_CODE
+LASSO_PROFILE_ERROR_MISSING_SUBJECT
+LASSO_PROFILE_ERROR_NAME_IDENTIFIER_NOT_FOUND
+LASSO_PROFILE_ERROR_RESPONSE_DOES_NOT_MATCH_REQUEST
+LASSO_PROFILE_ERROR_SESSION_NOT_FOUND
+LASSO_PROFILE_ERROR_STATUS_NOT_SUCCESS
+LASSO_PROFILE_ERROR_UNKNOWN_ISSUER
+LASSO_PROFILE_ERROR_UNKNOWN_PROFILE_URL
+LASSO_PROFILE_ERROR_UNKNOWN_PROVIDER
+LASSO_PROFILE_ERROR_UNSUPPORTED_BINDING
+LASSO_PROFILE_ERROR_UNSUPPORTED_PROFILE
+LASSO_PROFILE_SIGNATURE_HINT_FORBID
+LASSO_PROFILE_SIGNATURE_HINT_FORCE
+LASSO_PROFILE_SIGNATURE_HINT_MAYBE
+LASSO_PROFILE_SIGNATURE_VERIFY_HINT_FORCE
+LASSO_PROFILE_SIGNATURE_VERIFY_HINT_IGNORE
+LASSO_PROFILE_SIGNATURE_VERIFY_HINT_LAST
+LASSO_PROFILE_SIGNATURE_VERIFY_HINT_MAYBE
+LASSO_PROTOCOL_LIBERTY_1_0
+LASSO_PROTOCOL_LIBERTY_1_1
+LASSO_PROTOCOL_LIBERTY_1_2
+LASSO_PROTOCOL_NONE
+LASSO_PROTOCOL_SAML_2_0
+LASSO_PROVIDER_ERROR_MISSING_PUBLIC_KEY
+LASSO_PROVIDER_ROLE_ANY
+LASSO_PROVIDER_ROLE_ATTRIBUTE_AUTHORITY
+LASSO_PROVIDER_ROLE_AUTHN_AUTHORITY
+LASSO_PROVIDER_ROLE_AUTHZ_AUTHORITY
+LASSO_PROVIDER_ROLE_BOTH
+LASSO_PROVIDER_ROLE_IDP
+LASSO_PROVIDER_ROLE_LAST
+LASSO_PROVIDER_ROLE_NONE
+LASSO_PROVIDER_ROLE_SP
+LASSO_PYTHON_HREF
+LASSO_REGISTRY_ERROR_KEY_EXISTS
+LASSO_REQUEST_TYPE_DEFEDERATION
+LASSO_REQUEST_TYPE_DISCO_MODIFY
+LASSO_REQUEST_TYPE_DISCO_QUERY
+LASSO_REQUEST_TYPE_DST_MODIFY
+LASSO_REQUEST_TYPE_DST_QUERY
+LASSO_REQUEST_TYPE_IDWSF2_DISCO_QUERY
+LASSO_REQUEST_TYPE_IDWSF2_DISCO_SVCMD_ASSOCIATION_ADD
+LASSO_REQUEST_TYPE_IDWSF2_DISCO_SVCMD_REGISTER
+LASSO_REQUEST_TYPE_INVALID
+LASSO_REQUEST_TYPE_LECP
+LASSO_REQUEST_TYPE_LOGIN
+LASSO_REQUEST_TYPE_LOGOUT
+LASSO_REQUEST_TYPE_NAME_IDENTIFIER_MAPPING
+LASSO_REQUEST_TYPE_NAME_ID_MANAGEMENT
+LASSO_REQUEST_TYPE_NAME_REGISTRATION
+LASSO_REQUEST_TYPE_SASL_REQUEST
+LASSO_SAML2_ACTION_GHPP_GET
+LASSO_SAML2_ACTION_GHPP_HEAD
+LASSO_SAML2_ACTION_GHPP_POST
+LASSO_SAML2_ACTION_GHPP_PUT
+LASSO_SAML2_ACTION_NAMESPACE_GHPP
+LASSO_SAML2_ACTION_NAMESPACE_RWEDC
+LASSO_SAML2_ACTION_NAMESPACE_RWEDC_NEGATION
+LASSO_SAML2_ACTION_NAMESPACE_UNIX
+LASSO_SAML2_ACTION_RWEDC_CONTROL
+LASSO_SAML2_ACTION_RWEDC_DELETE
+LASSO_SAML2_ACTION_RWEDC_EXECUTE
+LASSO_SAML2_ACTION_RWEDC_NEGATION
+LASSO_SAML2_ACTION_RWEDC_READ
+LASSO_SAML2_ACTION_RWEDC_WRITE
+LASSO_SAML2_ASSERTION_HREF
+LASSO_SAML2_ASSERTION_INDETERMINATE
+LASSO_SAML2_ASSERTION_INVALID
+LASSO_SAML2_ASSERTION_PREFIX
+LASSO_SAML2_ASSERTION_VALID
+LASSO_SAML2_ATTRIBUTE_NAME_EPR
+LASSO_SAML2_ATTRIBUTE_NAME_FORMAT_BASIC
+LASSO_SAML2_ATTRIBUTE_NAME_FORMAT_UNSPECIFIED
+LASSO_SAML2_ATTRIBUTE_NAME_FORMAT_URI
+LASSO_SAML2_ATTRIBUTE_PROFILE_BASIC
+LASSO_SAML2_ATTRIBUTE_PROFILE_DCE
+LASSO_SAML2_ATTRIBUTE_PROFILE_UUID
+LASSO_SAML2_ATTRIBUTE_PROFILE_X500
+LASSO_SAML2_AUTHN_CONTEXT_AUTHENTICATED_TELEPHONY
+LASSO_SAML2_AUTHN_CONTEXT_INTERNET_PROTOCOL
+LASSO_SAML2_AUTHN_CONTEXT_INTERNET_PROTOCOL_PASSWORD
+LASSO_SAML2_AUTHN_CONTEXT_KERBEROS
+LASSO_SAML2_AUTHN_CONTEXT_MOBILE_ONE_FACTOR_CONTRACT
+LASSO_SAML2_AUTHN_CONTEXT_MOBILE_ONE_FACTOR_UNREGISTERED
+LASSO_SAML2_AUTHN_CONTEXT_MOBILE_TWO_FACTOR_CONTRACT
+LASSO_SAML2_AUTHN_CONTEXT_MOBILE_TWO_FACTOR_UNREGISTERED
+LASSO_SAML2_AUTHN_CONTEXT_NOMAD_TELEPHONY
+LASSO_SAML2_AUTHN_CONTEXT_PASSWORD
+LASSO_SAML2_AUTHN_CONTEXT_PASSWORD_PROTECTED_TRANSPORT
+LASSO_SAML2_AUTHN_CONTEXT_PERSONALIZED_TELEPHONY
+LASSO_SAML2_AUTHN_CONTEXT_PGP
+LASSO_SAML2_AUTHN_CONTEXT_PREVIOUS_SESSION
+LASSO_SAML2_AUTHN_CONTEXT_SECURE_REMOTE_PASSWORD
+LASSO_SAML2_AUTHN_CONTEXT_SMARTCARD
+LASSO_SAML2_AUTHN_CONTEXT_SMARTCARD_PKI
+LASSO_SAML2_AUTHN_CONTEXT_SOFTWARE_PKI
+LASSO_SAML2_AUTHN_CONTEXT_SPKI
+LASSO_SAML2_AUTHN_CONTEXT_TELEPHONY
+LASSO_SAML2_AUTHN_CONTEXT_TIME_SYNC_TOKEN
+LASSO_SAML2_AUTHN_CONTEXT_TLS_CLIENT
+LASSO_SAML2_AUTHN_CONTEXT_UNSPECIFIED
+LASSO_SAML2_AUTHN_CONTEXT_X509
+LASSO_SAML2_AUTHN_CONTEXT_XMLDSIG
+LASSO_SAML2_CONFIRMATION_METHOD_BEARER
+LASSO_SAML2_CONFIRMATION_METHOD_HOLDER_OF_KEY
+LASSO_SAML2_CONSENT_EXPLICIT
+LASSO_SAML2_CONSENT_IMPLICIT
+LASSO_SAML2_CONSENT_INAPPLICABLE
+LASSO_SAML2_CONSENT_OBTAINED
+LASSO_SAML2_CONSENT_PRIOR
+LASSO_SAML2_CONSENT_UNAVAILABLE
+LASSO_SAML2_DEFLATE_ENCODING
+LASSO_SAML2_FIELD_ARTIFACT
+LASSO_SAML2_FIELD_ENCODING
+LASSO_SAML2_FIELD_RELAYSTATE
+LASSO_SAML2_FIELD_REQUEST
+LASSO_SAML2_FIELD_RESPONSE
+LASSO_SAML2_FIELD_SIGALG
+LASSO_SAML2_FIELD_SIGNATURE
+LASSO_SAML2_METADATA_BINDING_ARTIFACT
+LASSO_SAML2_METADATA_BINDING_PAOS
+LASSO_SAML2_METADATA_BINDING_POST
+LASSO_SAML2_METADATA_BINDING_REDIRECT
+LASSO_SAML2_METADATA_BINDING_SOAP
+LASSO_SAML2_METADATA_BINDING_URI
+LASSO_SAML2_METADATA_HREF
+LASSO_SAML2_METADATA_PREFIX
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_EMAIL
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_ENCRYPTED
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_ENTITY
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_KERBEROS
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_PERSISTENT
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_TRANSIENT
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_UNSPECIFIED
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_WINDOWS
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_X509
+LASSO_SAML2_PROTOCOL_HREF
+LASSO_SAML2_PROTOCOL_PREFIX
+LASSO_SAML2_STATUS_CODE_AUTHN_FAILED
+LASSO_SAML2_STATUS_CODE_INVALID_ATTR_NAME
+LASSO_SAML2_STATUS_CODE_INVALID_NAME_ID_POLICY
+LASSO_SAML2_STATUS_CODE_NO_AUTHN_CONTEXT
+LASSO_SAML2_STATUS_CODE_NO_AVAILABLE_IDP
+LASSO_SAML2_STATUS_CODE_NO_PASSIVE
+LASSO_SAML2_STATUS_CODE_NO_SUPPORTED_IDP
+LASSO_SAML2_STATUS_CODE_PARTIAL_LOGOUT
+LASSO_SAML2_STATUS_CODE_PROXY_COUNT_EXCEEDED
+LASSO_SAML2_STATUS_CODE_REQUESTER
+LASSO_SAML2_STATUS_CODE_REQUEST_DENIED
+LASSO_SAML2_STATUS_CODE_REQUEST_UNSUPPORTED
+LASSO_SAML2_STATUS_CODE_REQUEST_VERSION_DEPRECATED
+LASSO_SAML2_STATUS_CODE_REQUEST_VERSION_TOO_HIGH
+LASSO_SAML2_STATUS_CODE_REQUEST_VERSION_TOO_LOW
+LASSO_SAML2_STATUS_CODE_RESOURCE_NOT_RECOGNIZED
+LASSO_SAML2_STATUS_CODE_RESPONDER
+LASSO_SAML2_STATUS_CODE_SUCCESS
+LASSO_SAML2_STATUS_CODE_TOO_MANY_RESPONSES
+LASSO_SAML2_STATUS_CODE_UNKNOWN_ATTR_PROFILE
+LASSO_SAML2_STATUS_CODE_UNKNOWN_PRINCIPAL
+LASSO_SAML2_STATUS_CODE_UNSUPPORTED_BINDING
+LASSO_SAML2_STATUS_CODE_VERSION_MISMATCH
+LASSO_SAML_ASSERTION_HREF
+LASSO_SAML_ASSERTION_PREFIX
+LASSO_SAML_AUTHENTICATION_METHODS_PKI
+LASSO_SAML_AUTHENTICATION_METHOD_HARDWARE_TOKEN
+LASSO_SAML_AUTHENTICATION_METHOD_KERBEROS
+LASSO_SAML_AUTHENTICATION_METHOD_LIBERTY
+LASSO_SAML_AUTHENTICATION_METHOD_PASSWORD
+LASSO_SAML_AUTHENTICATION_METHOD_PGP
+LASSO_SAML_AUTHENTICATION_METHOD_SECURE_REMOTE_PASSWORD
+LASSO_SAML_AUTHENTICATION_METHOD_SMARTCARD_PKI
+LASSO_SAML_AUTHENTICATION_METHOD_SOFTWARE_PKI
+LASSO_SAML_AUTHENTICATION_METHOD_UNSPECIFIED
+LASSO_SAML_AUTHENTICATION_METHOD_XKMS
+LASSO_SAML_AUTHENTICATION_METHOD_XMLD_SIG
+LASSO_SAML_CONFIRMATION_METHOD_ARTIFACT
+LASSO_SAML_CONFIRMATION_METHOD_ARTIFACT01
+LASSO_SAML_CONFIRMATION_METHOD_BEARER
+LASSO_SAML_CONFIRMATION_METHOD_HOLDER_OF_KEY
+LASSO_SAML_CONFIRMATION_METHOD_SENDER_VOUCHES
+LASSO_SAML_MAJOR_VERSION_N
+LASSO_SAML_MINOR_VERSION_N
+LASSO_SAML_PROTOCOL_HREF
+LASSO_SAML_PROTOCOL_PREFIX
+LASSO_SAML_STATUS_CODE_REQUESTER
+LASSO_SAML_STATUS_CODE_REQUEST_DENIED
+LASSO_SAML_STATUS_CODE_REQUEST_VERSION_DEPRECATED
+LASSO_SAML_STATUS_CODE_REQUEST_VERSION_TOO_HIGH
+LASSO_SAML_STATUS_CODE_REQUEST_VERSION_TOO_LOW
+LASSO_SAML_STATUS_CODE_RESOURCE_NOT_RECOGNIZED
+LASSO_SAML_STATUS_CODE_RESPONDER
+LASSO_SAML_STATUS_CODE_SUCCESS
+LASSO_SAML_STATUS_CODE_TOO_MANY_RESPONSES
+LASSO_SAML_STATUS_CODE_VERSION_MISMATCH
+LASSO_SERVER_ERROR_ADD_PROVIDER_FAILED
+LASSO_SERVER_ERROR_ADD_PROVIDER_PROTOCOL_MISMATCH
+LASSO_SERVER_ERROR_INVALID_XML
+LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND
+LASSO_SERVER_ERROR_SET_ENCRYPTION_PRIVATE_KEY_FAILED
+LASSO_SIGNATURE_METHOD_ATTRIBUTE
+LASSO_SIGNATURE_METHOD_DSA_SHA1
+LASSO_SIGNATURE_METHOD_LAST
+LASSO_SIGNATURE_METHOD_RSA_SHA1
+LASSO_SIGNATURE_TYPE_ATTRIBUTE
+LASSO_SIGNATURE_TYPE_LAST
+LASSO_SIGNATURE_TYPE_NONE
+LASSO_SIGNATURE_TYPE_SIMPLE
+LASSO_SIGNATURE_TYPE_WITHX509
+LASSO_SOAP_ENV_ACTOR
+LASSO_SOAP_ENV_HREF
+LASSO_SOAP_ENV_PREFIX
+LASSO_SOAP_ERROR_MISSING_BODY
+LASSO_SOAP_ERROR_MISSING_ENVELOPE
+LASSO_SOAP_ERROR_MISSING_HEADER
+LASSO_SOAP_ERROR_MISSING_SOAP_FAULT_DETAIL
+LASSO_SOAP_ERROR_REDIRECT_REQUEST_FAULT
+LASSO_SOAP_FAULT_CODE_CLIENT
+LASSO_SOAP_FAULT_CODE_MUST_UNDERSTAND
+LASSO_SOAP_FAULT_CODE_SERVER
+LASSO_SOAP_FAULT_CODE_VERSION_MISMATCH
+LASSO_SOAP_FAULT_REDIRECT_REQUEST
+LASSO_WSF_ENABLED
+LASSO_WSF_PROFILE_ERROR_INVALID_OR_MISSING_REFERENCE_TO_MESSAGE_ID
+LASSO_WSF_PROFILE_ERROR_MISSING_ASSERTION_ID
+LASSO_WSF_PROFILE_ERROR_MISSING_CORRELATION
+LASSO_WSF_PROFILE_ERROR_MISSING_CREDENTIAL_REF
+LASSO_WSF_PROFILE_ERROR_MISSING_DESCRIPTION
+LASSO_WSF_PROFILE_ERROR_MISSING_ENDPOINT
+LASSO_WSF_PROFILE_ERROR_MISSING_RESOURCE_ID
+LASSO_WSF_PROFILE_ERROR_MISSING_SECURITY
+LASSO_WSF_PROFILE_ERROR_MISSING_SENDER_ID
+LASSO_WSF_PROFILE_ERROR_REDIRECT_REQUEST
+LASSO_WSF_PROFILE_ERROR_REDIRECT_REQUEST_UNSUPPORTED_BY_REQUESTER
+LASSO_WSF_PROFILE_ERROR_SECURITY_MECHANISM_CHECK_FAILED
+LASSO_WSF_PROFILE_ERROR_SERVER_INTERACTION_REQUIRED
+LASSO_WSF_PROFILE_ERROR_SERVER_INTERACTION_REQUIRED_FOR_DATA
+LASSO_WSF_PROFILE_ERROR_SOAP_FAULT
+LASSO_WSF_PROFILE_ERROR_UNKNOWN_STATUS_CODE
+LASSO_WSF_PROFILE_ERROR_UNSUPPORTED_SECURITY_MECHANISM
+LASSO_WSSEC_ERROR_BAD_PASSWORD
+LASSO_WSSEC_ERROR_MISSING_SECURITY_TOKEN
+LASSO_WSUTIL1_HREF
+LASSO_WSUTIL1_PREFIX
+LASSO_XML_ERROR_ATTR_NOT_FOUND
+LASSO_XML_ERROR_ATTR_VALUE_NOT_FOUND
+LASSO_XML_ERROR_INVALID_FILE
+LASSO_XML_ERROR_MISSING_NAMESPACE
+LASSO_XML_ERROR_NODE_CONTENT_NOT_FOUND
+LASSO_XML_ERROR_NODE_NOT_FOUND
+LASSO_XML_ERROR_OBJECT_CONSTRUCTION_FAILED
+LASSO_XML_ERROR_SCHEMA_INVALID_FRAGMENT
+LASSO_XSI_HREF
+LASSO_XSI_PREFIX
+struct LassoAssertionQuery { LassoAssertionQueryPrivate* private_data }
+LassoAssertionQueryRequestType
+LassoCheckVersionMode
+struct LassoDefederation { }
+struct LassoDsKeyInfo { LassoDsKeyValue* KeyValue }
+struct LassoDsKeyValue { LassoDsRsaKeyValue* RSAKeyValue }
+struct LassoDsRsaKeyValue { char* Modulus, char* Exponent }
+struct LassoEcp { gchar* assertionConsumerURL, LassoEcpPrivate* private_data }
+LassoEncryptionMode
+LassoEncryptionSymKeyType
+struct LassoFederation { gchar* remote_providerID, LassoNode* local_nameIdentifier, LassoNode* remote_nameIdentifier, LassoFederationPrivate* private_data }
+LassoHttpMethod
+struct LassoIdentity { GHashTable* federations, gboolean is_dirty, LassoIdentityPrivate* private_data }
+struct LassoLecp { LassoLibAuthnRequestEnvelope* authnRequestEnvelope, LassoLibAuthnResponseEnvelope* authnResponseEnvelope, char* assertionConsumerServiceURL }
+struct LassoLibAssertion { char* InResponseTo }
+struct LassoLibAuthenticationStatement { LassoLibAuthnContext* AuthnContext, char* ReauthenticateOnOrAfter, char* SessionIndex }
+struct LassoLibAuthnContext { char* AuthnContextClassRef, char* AuthnContextStatementRef }
+struct LassoLibAuthnRequest { GList* Extension, char* ProviderID, char* AffiliationID, char* NameIDPolicy, gboolean ForceAuthn, gboolean IsPassive, char* ProtocolProfile, char* AssertionConsumerServiceID, LassoLibRequestAuthnContext* RequestAuthnContext, char* RelayState, LassoLibScoping* Scoping, char* consent }
+struct LassoLibAuthnRequestEnvelope { GList* Extension, LassoLibAuthnRequest* AuthnRequest, char* ProviderID, char* ProviderName, char* AssertionConsumerServiceURL, LassoLibIDPList* IDPList, gboolean IsPassive }
+struct LassoLibAuthnResponse { GList* Extension, char* ProviderID, char* RelayState, char* consent }
+struct LassoLibAuthnResponseEnvelope { GList* Extension, LassoLibAuthnResponse* AuthnResponse, char* AssertionConsumerServiceURL }
+struct LassoLibFederationTerminationNotification { GList* Extension, char* ProviderID, LassoSamlNameIdentifier* NameIdentifier, char* consent, char* RelayState }
+struct LassoLibIDPEntries { GList* IDPEntry }
+struct LassoLibIDPEntry { char* ProviderID, char* ProviderName, char* Loc }
+struct LassoLibIDPList { LassoLibIDPEntries* IDPEntries, char* GetComplete }
+struct LassoLibLogoutRequest { GList* Extension, char* ProviderID, LassoSamlNameIdentifier* NameIdentifier, char* SessionIndex, char* RelayState, char* consent, char* NotOnOrAfter }
+struct LassoLibLogoutResponse { }
+struct LassoLibNameIdentifierMappingRequest { GList* Extension, char* ProviderID, LassoSamlNameIdentifier* NameIdentifier, char* TargetNamespace, char* consent }
+struct LassoLibNameIdentifierMappingResponse { GList* Extension, char* ProviderID, LassoSamlpStatus* Status, LassoSamlNameIdentifier* NameIdentifier }
+struct LassoLibRegisterNameIdentifierRequest { GList* Extension, char* ProviderID, LassoSamlNameIdentifier* IDPProvidedNameIdentifier, LassoSamlNameIdentifier* SPProvidedNameIdentifier, LassoSamlNameIdentifier* OldProvidedNameIdentifier, char* RelayState }
+struct LassoLibRegisterNameIdentifierResponse { }
+struct LassoLibRequestAuthnContext { GList* AuthnContextClassRef, GList* AuthnContextStatementRef, char* AuthnContextComparison }
+struct LassoLibScoping { int ProxyCount, LassoLibIDPList* IDPList }
+struct LassoLibStatusResponse { GList* Extension, char* ProviderID, LassoSamlpStatus* Status, char* RelayState }
+struct LassoLibSubject { LassoSamlNameIdentifier* IDPProvidedNameIdentifier }
+struct LassoLogin { LassoLoginProtocolProfile protocolProfile, gchar* assertionArtifact, LassoSamlAssertion* assertion, gchar* nameIDPolicy, LassoHttpMethod http_method, LassoLoginPrivate* private_data }
+LassoLoginProtocolProfile
+struct LassoLogout { LassoNode* initial_request, LassoNode* initial_response, gchar* initial_remote_providerID, gint providerID_index, LassoHttpMethod initial_http_request_method, LassoLogoutPrivate* private_data }
+LassoMdProtocolType
+LassoMessageFormat
+struct LassoMiscTextNode { char* content, char* name, char* ns_href, char* ns_prefix, gboolean text_child }
+struct LassoNameIdManagement { }
+struct LassoNameIdentifierMapping { gchar* targetNameIdentifier }
+struct LassoNameRegistration { LassoSamlNameIdentifier* oldNameIdentifier }
+struct LassoNode { }
+struct LassoProfile { LassoServer* server, LassoNode* request, LassoNode* response, LassoNode* nameIdentifier, gchar* remote_providerID, gchar* msg_url, gchar* msg_body, gchar* msg_relayState, LassoIdentity* identity, LassoSession* session, LassoHttpMethod http_request_method, gint signature_status, LassoProfilePrivate* private_data }
+LassoProfileSignatureHint
+LassoProfileSignatureVerifyHint
+LassoProtocolConformance
+struct LassoProvider { gchar* ProviderID, LassoProviderRole role, char* metadata_filename, gchar* public_key, gchar* ca_cert_chain, LassoProviderPrivate* private_data }
+LassoProviderRole
+LassoRequestType
+struct LassoSaml2Action { char* content, char* Namespace }
+struct LassoSaml2Advice { GList* AssertionIDRef, GList* AssertionURIRef, GList* Assertion, GList* EncryptedAssertion }
+struct LassoSaml2Assertion { LassoSaml2NameID* Issuer, LassoSaml2Subject* Subject, LassoSaml2Conditions* Conditions, LassoSaml2Advice* Advice, GList* Statement, GList* AuthnStatement, GList* AuthzDecisionStatement, GList* AttributeStatement, char* Version, char* ID, char* IssueInstant, LassoSignatureType sign_type, LassoSignatureMethod sign_method, char* private_key_file, char* certificate_file, gboolean encryption_activated, char* encryption_public_key_str, LassoEncryptionSymKeyType encryption_sym_key_type }
+LassoSaml2AssertionValidationState
+struct LassoSaml2Attribute { GList* AttributeValue, char* Name, char* NameFormat, char* FriendlyName }
+struct LassoSaml2AttributeStatement { GList* Attribute, GList* EncryptedAttribute }
+struct LassoSaml2AttributeValue { GList* any }
+struct LassoSaml2AudienceRestriction { char* Audience }
+struct LassoSaml2AuthnContext { char* AuthnContextClassRef, char* AuthnContextDeclRef, char* AuthenticatingAuthority }
+struct LassoSaml2AuthnStatement { LassoSaml2SubjectLocality* SubjectLocality, LassoSaml2AuthnContext* AuthnContext, char* AuthnInstant, char* SessionIndex, char* SessionNotOnOrAfter }
+struct LassoSaml2AuthzDecisionStatement { LassoSaml2Action* Action, LassoSaml2Evidence* Evidence, char* Resource, char* Decision }
+struct LassoSaml2BaseIDAbstract { char* NameQualifier, char* SPNameQualifier }
+struct LassoSaml2ConditionAbstract { }
+struct LassoSaml2Conditions { GList* Condition, GList* AudienceRestriction, GList* OneTimeUse, GList* ProxyRestriction, char* NotBefore, char* NotOnOrAfter }
+struct LassoSaml2EncryptedElement { xmlNode* EncryptedData, GList* EncryptedKey, LassoNode* original_data }
+struct LassoSaml2Evidence { GList* AssertionIDRef, GList* AssertionURIRef, GList* Assertion, GList* EncryptedAssertion }
+struct LassoSaml2KeyInfoConfirmationData { }
+struct LassoSaml2NameID { char* content, char* Format, char* SPProvidedID, char* NameQualifier, char* SPNameQualifier }
+struct LassoSaml2OneTimeUse { }
+struct LassoSaml2ProxyRestriction { char* Audience, char* Count }
+struct LassoSaml2StatementAbstract { }
+struct LassoSaml2Subject { LassoSaml2BaseIDAbstract* BaseID, LassoSaml2NameID* NameID, LassoSaml2EncryptedElement* EncryptedID, LassoSaml2SubjectConfirmation* SubjectConfirmation }
+struct LassoSaml2SubjectConfirmation { LassoSaml2BaseIDAbstract* BaseID, LassoSaml2NameID* NameID, LassoSaml2EncryptedElement* EncryptedID, LassoSaml2SubjectConfirmationData* SubjectConfirmationData, char* Method }
+struct LassoSaml2SubjectConfirmationData { char* NotBefore, char* NotOnOrAfter, char* Recipient, char* InResponseTo, char* Address }
+struct LassoSaml2SubjectLocality { char* Address, char* DNSName }
+struct LassoSamlAdvice { GList* AssertionIDReference, LassoNode* Assertion }
+struct LassoSamlAssertion { LassoSamlConditions* Conditions, LassoSamlAdvice* Advice, LassoSamlSubjectStatement* SubjectStatement, LassoSamlAuthenticationStatement* AuthenticationStatement, LassoSamlAttributeStatement* AttributeStatement, int MajorVersion, int MinorVersion, char* AssertionID, char* Issuer, char* IssueInstant, LassoSignatureType sign_type, LassoSignatureMethod sign_method, char* private_key_file, char* certificate_file }
+struct LassoSamlAttribute { gchar* attributeName, gchar* attributeNameSpace, GList* AttributeValue }
+struct LassoSamlAttributeDesignator { char* AttributeName, char* AttributeNamespace }
+struct LassoSamlAttributeStatement { GList* Attribute }
+struct LassoSamlAttributeValue { GList* any }
+struct LassoSamlAudienceRestrictionCondition { GList* Audience }
+struct LassoSamlAuthenticationStatement { LassoSamlSubjectLocality* SubjectLocality, GList* AuthorityBinding, char* AuthenticationMethod, char* AuthenticationInstant }
+struct LassoSamlAuthorityBinding { char* AuthorityKind, char* Location, char* Binding }
+struct LassoSamlConditionAbstract { }
+struct LassoSamlConditions { GList* Condition, GList* AudienceRestrictionCondition, char* NotBefore, char* NotOnOrAfter }
+struct LassoSamlNameIdentifier { char* NameQualifier, char* Format, char* content }
+struct LassoSamlStatementAbstract { }
+struct LassoSamlSubject { LassoSamlNameIdentifier* NameIdentifier, LassoSamlSubjectConfirmation* SubjectConfirmation, LassoSaml2EncryptedElement* EncryptedNameIdentifier }
+struct LassoSamlSubjectConfirmation { GList* ConfirmationMethod, char* SubjectConfirmationData, LassoDsKeyInfo* KeyInfo }
+struct LassoSamlSubjectLocality { char* IPAddress, char* DNSAddress }
+struct LassoSamlSubjectStatement { }
+struct LassoSamlSubjectStatementAbstract { LassoSamlSubject* Subject }
+struct LassoSamlp2ArtifactResolve { char* Artifact }
+struct LassoSamlp2ArtifactResponse { LassoNode* any }
+struct LassoSamlp2AssertionIDRequest { char* AssertionIDRef }
+struct LassoSamlp2AttributeQuery { GList* Attribute }
+struct LassoSamlp2AuthnQuery { LassoSamlp2RequestedAuthnContext* RequestedAuthnContext, char* SessionIndex }
+struct LassoSamlp2AuthnRequest { LassoSaml2Subject* Subject, LassoSamlp2NameIDPolicy* NameIDPolicy, LassoSaml2Conditions* Conditions, LassoSamlp2RequestedAuthnContext* RequestedAuthnContext, LassoSamlp2Scoping* Scoping, gboolean ForceAuthn, gboolean IsPassive, char* ProtocolBinding, int AssertionConsumerServiceIndex, char* AssertionConsumerServiceURL, int AttributeConsumingServiceIndex, char* ProviderName, G_GNUC_DEPRECATED char }
+struct LassoSamlp2AuthzDecisionQuery { LassoSaml2Action* Action, LassoSaml2Evidence* Evidence, char* Resource }
+struct LassoSamlp2Extensions { }
+struct LassoSamlp2IDPEntry { char* ProviderID, char* Name, char* Loc }
+struct LassoSamlp2IDPList { LassoSamlp2IDPEntry* IDPEntry, char* GetComplete }
+struct LassoSamlp2LogoutRequest { LassoSaml2BaseIDAbstract* BaseID, LassoSaml2NameID* NameID, LassoSaml2EncryptedElement* EncryptedID, char* SessionIndex, char* Reason, char* NotOnOrAfter, G_GNUC_DEPRECATED char }
+struct LassoSamlp2LogoutResponse { G_GNUC_DEPRECATED char }
+struct LassoSamlp2ManageNameIDRequest { LassoSaml2NameID* NameID, LassoSaml2EncryptedElement* EncryptedID, char* NewID, LassoSaml2EncryptedElement* NewEncryptedID, LassoSamlp2Terminate* Terminate }
+struct LassoSamlp2ManageNameIDResponse { }
+struct LassoSamlp2NameIDMappingRequest { LassoSaml2BaseIDAbstract* BaseID, LassoSaml2NameID* NameID, LassoSaml2EncryptedElement* EncryptedID, LassoSamlp2NameIDPolicy* NameIDPolicy }
+struct LassoSamlp2NameIDMappingResponse { LassoSaml2NameID* NameID, LassoSaml2EncryptedElement* EncryptedID }
+struct LassoSamlp2NameIDPolicy { char* Format, char* SPNameQualifier, gboolean AllowCreate }
+struct LassoSamlp2RequestAbstract { LassoSaml2NameID* Issuer, LassoSamlp2Extensions* Extensions, char* ID, char* Version, char* IssueInstant, char* Destination, char* Consent, LassoSignatureType sign_type, LassoSignatureMethod sign_method, char* private_key_file, char* certificate_file }
+struct LassoSamlp2RequestedAuthnContext { GList* AuthnContextClassRef, GList* AuthnContextDeclRef, char* Comparison }
+struct LassoSamlp2Response { GList* Assertion, GList* EncryptedAssertion }
+struct LassoSamlp2Scoping { LassoSamlp2IDPList* IDPList, char* RequesterID, char* ProxyCount }
+struct LassoSamlp2Status { LassoSamlp2StatusCode* StatusCode, char* StatusMessage, LassoSamlp2StatusDetail* StatusDetail }
+struct LassoSamlp2StatusCode { LassoSamlp2StatusCode* StatusCode, char* Value }
+struct LassoSamlp2StatusDetail { }
+struct LassoSamlp2StatusResponse { LassoSaml2NameID* Issuer, LassoSamlp2Extensions* Extensions, LassoSamlp2Status* Status, char* ID, char* InResponseTo, char* Version, char* IssueInstant, char* Destination, char* Consent, LassoSignatureType sign_type, LassoSignatureMethod sign_method, char* private_key_file, char* certificate_file }
+struct LassoSamlp2SubjectQueryAbstract { LassoSaml2Subject* Subject }
+struct LassoSamlp2Terminate { }
+struct LassoSamlpRequest { char* AssertionArtifact }
+struct LassoSamlpRequestAbstract { GList* RespondWith, char* RequestID, int MajorVersion, int MinorVersion, char* IssueInstant, LassoSignatureType sign_type, LassoSignatureMethod sign_method, char* private_key_file, char* certificate_file }
+struct LassoSamlpResponse { LassoSamlpStatus* Status, GList* Assertion }
+struct LassoSamlpResponseAbstract { char* ResponseID, char* InResponseTo, int MajorVersion, int MinorVersion, char* IssueInstant, char* Recipient, LassoSignatureType sign_type, LassoSignatureMethod sign_method, char* private_key_file, char* certificate_file }
+struct LassoSamlpStatus { LassoSamlpStatusCode* StatusCode, char* StatusMessage }
+struct LassoSamlpStatusCode { LassoSamlpStatusCode* StatusCode, char* Value }
+struct LassoServer { GHashTable* providers, GHashTable* services, gchar* private_key, gchar* private_key_password, gchar* certificate, LassoSignatureMethod signature_method, LassoServerPrivate* private_data }
+struct LassoSession { GHashTable* assertions, gboolean is_dirty, LassoSessionPrivate* private_data }
+LassoSignatureMethod
+LassoSignatureType
+struct LassoSoapBody { GList* any, gchar* Id }
+struct LassoSoapDetail { GList* any }
+struct LassoSoapEnvelope { LassoSoapHeader* Header, LassoSoapBody* Body }
+struct LassoSoapFault { gchar* faultcode, gchar* faultstring, GList* faultactor, LassoSoapDetail* Detail }
+struct LassoSoapHeader { GList* Other }
+lasso_error_t lasso_assertion_query_add_attribute_request ( LassoAssertionQuery* assertion_query, char* format, char* name )
+lasso_error_t lasso_assertion_query_build_request_msg ( LassoAssertionQuery* assertion_query )
+lasso_error_t lasso_assertion_query_build_response_msg ( LassoAssertionQuery* assertion_query )
+None lasso_assertion_query_destroy ( LassoAssertionQuery* assertion_query )
+LassoAssertionQueryRequestType lasso_assertion_query_get_request_type ( LassoAssertionQuery* assertion_query )
+GType lasso_assertion_query_get_type ( )
+lasso_error_t lasso_assertion_query_init_request ( LassoAssertionQuery* assertion_query, char* remote_provider_id, LassoHttpMethod http_method, LassoAssertionQueryRequestType query_request_type )
+LassoAssertionQuery* lasso_assertion_query_new ( LassoServer* server )
+lasso_error_t lasso_assertion_query_process_request_msg ( LassoAssertionQuery* assertion_query, gchar* request_msg )
+lasso_error_t lasso_assertion_query_process_response_msg ( LassoAssertionQuery* assertion_query, gchar* response_msg )
+lasso_error_t lasso_assertion_query_validate_request ( LassoAssertionQuery* assertion_query )
+char* lasso_build_unique_id ( unsigned int size )
+int lasso_check_version ( int major, int minor, int subminor, LassoCheckVersionMode mode )
+lasso_error_t lasso_defederation_build_notification_msg ( LassoDefederation* defederation )
+None lasso_defederation_destroy ( LassoDefederation* defederation )
+GType lasso_defederation_get_type ( )
+lasso_error_t lasso_defederation_init_notification ( LassoDefederation* defederation, gchar* remote_providerID, LassoHttpMethod http_method )
+LassoDefederation* lasso_defederation_new ( LassoServer* server )
+lasso_error_t lasso_defederation_process_notification_msg ( LassoDefederation* defederation, gchar* notification_msg )
+lasso_error_t lasso_defederation_validate_notification ( LassoDefederation* defederation )
+GType lasso_ds_key_info_get_type ( )
+LassoDsKeyInfo* lasso_ds_key_info_new ( )
+GType lasso_ds_key_value_get_type ( )
+LassoDsKeyValue* lasso_ds_key_value_new ( )
+GType lasso_ds_rsa_key_value_get_type ( )
+LassoDsRsaKeyValue* lasso_ds_rsa_key_value_new ( )
+None lasso_ecp_destroy ( LassoEcp* ecp )
+GType lasso_ecp_get_type ( )
+LassoEcp* lasso_ecp_new ( LassoServer* server )
+lasso_error_t lasso_ecp_process_authn_request_msg ( LassoEcp* ecp, const char* authn_request_msg )
+lasso_error_t lasso_ecp_process_response_msg ( LassoEcp* ecp, const char* response_msg )
+None lasso_federation_build_local_name_identifier ( LassoFederation* federation, const gchar* nameQualifier, const gchar* format, const gchar* content )
+None lasso_federation_destroy ( LassoFederation* federation )
+GType lasso_federation_get_type ( )
+LassoFederation* lasso_federation_new ( const gchar* remote_providerID )
+gboolean lasso_federation_verify_name_identifier ( LassoFederation* federation, LassoNode* name_identifier )
+char* lasso_get_prefix_for_dst_service_href ( const char* href )
+gchar* lasso_get_prefix_for_idwsf2_dst_service_href ( const gchar* href )
+None lasso_identity_destroy ( LassoIdentity* identity )
+gchar* lasso_identity_dump ( LassoIdentity* identity )
+LassoFederation* lasso_identity_get_federation ( LassoIdentity* identity, const char* providerID )
+GType lasso_identity_get_type ( )
+LassoIdentity* lasso_identity_new ( )
+LassoIdentity* lasso_identity_new_from_dump ( const gchar* dump )
+lasso_error_t lasso_init ( )
+lasso_error_t lasso_lecp_build_authn_request_envelope_msg ( LassoLecp* lecp )
+lasso_error_t lasso_lecp_build_authn_request_msg ( LassoLecp* lecp )
+lasso_error_t lasso_lecp_build_authn_response_envelope_msg ( LassoLecp* lecp )
+lasso_error_t lasso_lecp_build_authn_response_msg ( LassoLecp* lecp )
+None lasso_lecp_destroy ( LassoLecp* lecp )
+GType lasso_lecp_get_type ( )
+lasso_error_t lasso_lecp_init_authn_request ( LassoLecp* lecp, const char* remote_providerID )
+LassoLecp* lasso_lecp_new ( LassoServer* server )
+lasso_error_t lasso_lecp_process_authn_request_envelope_msg ( LassoLecp* lecp, const char* request_msg )
+lasso_error_t lasso_lecp_process_authn_request_msg ( LassoLecp* lecp, const char* authn_request_msg )
+lasso_error_t lasso_lecp_process_authn_response_envelope_msg ( LassoLecp* lecp, const char* response_msg )
+GType lasso_lib_assertion_get_type ( )
+LassoLibAssertion* lasso_lib_assertion_new ( )
+LassoLibAssertion* lasso_lib_assertion_new_full ( const char* issuer, const char* requestID, const char* audience, const char* notBefore, const char* notOnOrAfter )
+GType lasso_lib_authentication_statement_get_type ( )
+LassoLibAuthenticationStatement* lasso_lib_authentication_statement_new ( )
+LassoLibAuthenticationStatement* lasso_lib_authentication_statement_new_full ( const char* authenticationMethod, const char* authenticationInstant, const char* reauthenticateOnOrAfter, LassoSamlNameIdentifier* sp_identifier, LassoSamlNameIdentifier* idp_identifier )
+GType lasso_lib_authn_context_get_type ( )
+LassoNode* lasso_lib_authn_context_new ( )
+GType lasso_lib_authn_request_envelope_get_type ( )
+LassoLibAuthnRequestEnvelope* lasso_lib_authn_request_envelope_new ( )
+LassoLibAuthnRequestEnvelope* lasso_lib_authn_request_envelope_new_full ( LassoLibAuthnRequest* authnRequest, char* providerID, char* assertionConsumerServiceURL )
+GType lasso_lib_authn_request_get_type ( )
+LassoLibAuthnRequest* lasso_lib_authn_request_new ( )
+GType lasso_lib_authn_response_envelope_get_type ( )
+LassoLibAuthnResponseEnvelope* lasso_lib_authn_response_envelope_new ( LassoLibAuthnResponse* response, char* assertionConsumerServiceURL )
+GType lasso_lib_authn_response_get_type ( )
+LassoNode* lasso_lib_authn_response_new ( char* providerID, LassoLibAuthnRequest* request )
+GType lasso_lib_federation_termination_notification_get_type ( )
+LassoNode* lasso_lib_federation_termination_notification_new ( )
+LassoNode* lasso_lib_federation_termination_notification_new_full ( char* providerID, LassoSamlNameIdentifier* nameIdentifier, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_idp_entries_get_type ( )
+LassoNode* lasso_lib_idp_entries_new ( )
+GType lasso_lib_idp_entry_get_type ( )
+LassoNode* lasso_lib_idp_entry_new ( )
+GType lasso_lib_idp_list_get_type ( )
+LassoNode* lasso_lib_idp_list_new ( )
+GType lasso_lib_logout_request_get_type ( )
+LassoNode* lasso_lib_logout_request_new ( )
+LassoNode* lasso_lib_logout_request_new_full ( char* providerID, LassoSamlNameIdentifier* nameIdentifier, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_logout_response_get_type ( )
+LassoNode* lasso_lib_logout_response_new ( )
+LassoNode* lasso_lib_logout_response_new_full ( char* providerID, const char* statusCodeValue, LassoLibLogoutRequest* request, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_name_identifier_mapping_request_get_type ( )
+LassoNode* lasso_lib_name_identifier_mapping_request_new ( )
+LassoNode* lasso_lib_name_identifier_mapping_request_new_full ( char* providerID, LassoSamlNameIdentifier* nameIdentifier, const char* targetNamespace, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_name_identifier_mapping_response_get_type ( )
+LassoNode* lasso_lib_name_identifier_mapping_response_new ( )
+LassoNode* lasso_lib_name_identifier_mapping_response_new_full ( char* provideRID, const char* statusCodeValue, LassoLibNameIdentifierMappingRequest* request, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_register_name_identifier_request_get_type ( )
+LassoNode* lasso_lib_register_name_identifier_request_new ( )
+LassoNode* lasso_lib_register_name_identifier_request_new_full ( const char* providerID, LassoSamlNameIdentifier* idpNameIdentifier, LassoSamlNameIdentifier* spNameIdentifier, LassoSamlNameIdentifier* oldNameIdentifier, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_register_name_identifier_response_get_type ( )
+LassoNode* lasso_lib_register_name_identifier_response_new ( )
+LassoNode* lasso_lib_register_name_identifier_response_new_full ( const char* providerID, const char* statusCodeValue, LassoLibRegisterNameIdentifierRequest* request, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_request_authn_context_get_type ( )
+LassoLibRequestAuthnContext* lasso_lib_request_authn_context_new ( )
+GType lasso_lib_scoping_get_type ( )
+LassoLibScoping* lasso_lib_scoping_new ( )
+GType lasso_lib_status_response_get_type ( )
+LassoNode* lasso_lib_status_response_new ( )
+GType lasso_lib_subject_get_type ( )
+LassoLibSubject* lasso_lib_subject_new ( )
+lasso_error_t lasso_login_accept_sso ( LassoLogin* login )
+lasso_error_t lasso_login_build_artifact_msg ( LassoLogin* login, LassoHttpMethod http_method )
+lasso_error_t lasso_login_build_assertion ( LassoLogin* login, const char* authenticationMethod, const char* authenticationInstant, const char* reauthenticateOnOrAfter, const char* notBefore, const char* notOnOrAfter )
+lasso_error_t lasso_login_build_authn_request_msg ( LassoLogin* login )
+lasso_error_t lasso_login_build_authn_response_msg ( LassoLogin* login )
+lasso_error_t lasso_login_build_request_msg ( LassoLogin* login )
+lasso_error_t lasso_login_build_response_msg ( LassoLogin* login, gchar* remote_providerID )
+None lasso_login_destroy ( LassoLogin* login )
+gchar* lasso_login_dump ( LassoLogin* login )
+LassoNode* lasso_login_get_assertion ( LassoLogin* login )
+GType lasso_login_get_type ( )
+lasso_error_t lasso_login_init_authn_request ( LassoLogin* login, const gchar* remote_providerID, LassoHttpMethod http_method )
+lasso_error_t lasso_login_init_idp_initiated_authn_request ( LassoLogin* login, const gchar* remote_providerID )
+lasso_error_t lasso_login_init_request ( LassoLogin* login, gchar* response_msg, LassoHttpMethod response_http_method )
+gboolean lasso_login_must_ask_for_consent ( LassoLogin* login )
+gboolean lasso_login_must_authenticate ( LassoLogin* login )
+LassoLogin* lasso_login_new ( LassoServer* server )
+LassoLogin* lasso_login_new_from_dump ( LassoServer* server, const gchar* dump )
+lasso_error_t lasso_login_process_authn_request_msg ( LassoLogin* login, const char* authn_request_msg )
+lasso_error_t lasso_login_process_authn_response_msg ( LassoLogin* login, gchar* authn_response_msg )
+lasso_error_t lasso_login_process_paos_response_msg ( LassoLogin* login, gchar* msg )
+lasso_error_t lasso_login_process_request_msg ( LassoLogin* login, gchar* request_msg )
+lasso_error_t lasso_login_process_response_msg ( LassoLogin* login, gchar* response_msg )
+lasso_error_t lasso_login_validate_request_msg ( LassoLogin* login, gboolean authentication_result, gboolean is_consent_obtained )
+lasso_error_t lasso_logout_build_request_msg ( LassoLogout* logout )
+lasso_error_t lasso_logout_build_response_msg ( LassoLogout* logout )
+None lasso_logout_destroy ( LassoLogout* logout )
+gchar* lasso_logout_dump ( LassoLogout* logout )
+gchar* lasso_logout_get_next_providerID ( LassoLogout* logout )
+GType lasso_logout_get_type ( )
+lasso_error_t lasso_logout_init_request ( LassoLogout* logout, gchar* remote_providerID, LassoHttpMethod request_method )
+LassoLogout* lasso_logout_new ( LassoServer* server )
+LassoLogout* lasso_logout_new_from_dump ( LassoServer* server, const gchar* dump )
+lasso_error_t lasso_logout_process_request_msg ( LassoLogout* logout, gchar* request_msg )
+lasso_error_t lasso_logout_process_response_msg ( LassoLogout* logout, gchar* response_msg )
+lasso_error_t lasso_logout_reset_providerID_index ( LassoLogout* logout )
+lasso_error_t lasso_logout_validate_request ( LassoLogout* logout )
+GType lasso_misc_text_node_get_type ( )
+xmlNode* lasso_misc_text_node_get_xml_content ( LassoMiscTextNode* misc_text_node )
+LassoNode* lasso_misc_text_node_new ( )
+LassoMiscTextNode* lasso_misc_text_node_new_with_string ( const char* content )
+LassoMiscTextNode* lasso_misc_text_node_new_with_xml_node ( xmlNode* xml_node )
+None lasso_misc_text_node_set_xml_content ( LassoMiscTextNode* misc_text_node, xmlNode* node )
+lasso_error_t lasso_name_id_management_build_request_msg ( LassoNameIdManagement* name_id_management )
+lasso_error_t lasso_name_id_management_build_response_msg ( LassoNameIdManagement* name_id_management )
+None lasso_name_id_management_destroy ( LassoNameIdManagement* name_id_management )
+char* lasso_name_id_management_dump ( LassoNameIdManagement* name_id_management )
+GType lasso_name_id_management_get_type ( )
+lasso_error_t lasso_name_id_management_init_request ( LassoNameIdManagement* name_id_management, char* remote_provider_id, char* new_name_id, LassoHttpMethod http_method )
+LassoNameIdManagement* lasso_name_id_management_new ( LassoServer* server )
+LassoNameIdManagement* lasso_name_id_management_new_from_dump ( LassoServer* server, const char* dump )
+lasso_error_t lasso_name_id_management_process_request_msg ( LassoNameIdManagement* name_id_management, gchar* request_msg )
+lasso_error_t lasso_name_id_management_process_response_msg ( LassoNameIdManagement* name_id_management, gchar* response_msg )
+lasso_error_t lasso_name_id_management_validate_request ( LassoNameIdManagement* name_id_management )
+lasso_error_t lasso_name_identifier_mapping_build_request_msg ( LassoNameIdentifierMapping* mapping )
+lasso_error_t lasso_name_identifier_mapping_build_response_msg ( LassoNameIdentifierMapping* mapping )
+None lasso_name_identifier_mapping_destroy ( LassoNameIdentifierMapping* mapping )
+GType lasso_name_identifier_mapping_get_type ( )
+lasso_error_t lasso_name_identifier_mapping_init_request ( LassoNameIdentifierMapping* mapping, gchar* targetNamespace, gchar* remote_providerID )
+LassoNameIdentifierMapping* lasso_name_identifier_mapping_new ( LassoServer* server )
+lasso_error_t lasso_name_identifier_mapping_process_request_msg ( LassoNameIdentifierMapping* mapping, gchar* request_msg )
+lasso_error_t lasso_name_identifier_mapping_process_response_msg ( LassoNameIdentifierMapping* mapping, gchar* response_msg )
+lasso_error_t lasso_name_identifier_mapping_validate_request ( LassoNameIdentifierMapping* mapping )
+lasso_error_t lasso_name_registration_build_request_msg ( LassoNameRegistration* name_registration )
+lasso_error_t lasso_name_registration_build_response_msg ( LassoNameRegistration* name_registration )
+None lasso_name_registration_destroy ( LassoNameRegistration* name_registration )
+gchar* lasso_name_registration_dump ( LassoNameRegistration* name_registration )
+GType lasso_name_registration_get_type ( )
+lasso_error_t lasso_name_registration_init_request ( LassoNameRegistration* name_registration, char* remote_providerID, LassoHttpMethod http_method )
+LassoNameRegistration* lasso_name_registration_new ( LassoServer* server )
+LassoNameRegistration* lasso_name_registration_new_from_dump ( LassoServer* server, const char* dump )
+lasso_error_t lasso_name_registration_process_request_msg ( LassoNameRegistration* name_registration, gchar* request_msg )
+lasso_error_t lasso_name_registration_process_response_msg ( LassoNameRegistration* name_registration, gchar* response_msg )
+lasso_error_t lasso_name_registration_validate_request ( LassoNameRegistration* name_registration )
+None lasso_node_cleanup_original_xmlnodes ( LassoNode* node )
+char* lasso_node_debug ( LassoNode* node, int level )
+None lasso_node_destroy ( LassoNode* node )
+char* lasso_node_dump ( LassoNode* node )
+char* lasso_node_export_to_base64 ( LassoNode* node )
+char* lasso_node_export_to_ecp_soap_response ( LassoNode* node, const char* assertionConsumerURL )
+char* lasso_node_export_to_paos_request ( LassoNode* node, const char* issuer, const char* responseConsumerURL, const char* relay_state )
+char* lasso_node_export_to_query ( LassoNode* node, LassoSignatureMethod sign_method, const char* private_key_file )
+char* lasso_node_export_to_query_with_password ( LassoNode* node, LassoSignatureMethod sign_method, const char* private_key_file, const char* private_key_file_password )
+char* lasso_node_export_to_soap ( LassoNode* node )
+gchar* lasso_node_export_to_xml ( LassoNode* node )
+const char* lasso_node_get_name ( LassoNode* node )
+const char* lasso_node_get_namespace ( LassoNode* node )
+xmlNode* lasso_node_get_original_xmlnode ( LassoNode* node )
+GType lasso_node_get_type ( )
+xmlNode* lasso_node_get_xmlNode ( LassoNode* node, gboolean lasso_dump )
+LassoMessageFormat lasso_node_init_from_message ( LassoNode* node, const char* message )
+gboolean lasso_node_init_from_query ( LassoNode* node, const char* query )
+lasso_error_t lasso_node_init_from_xml ( LassoNode* node, xmlNode* xmlnode )
+LassoNode* lasso_node_new ( )
+LassoNode* lasso_node_new_from_dump ( const char* dump )
+LassoNode* lasso_node_new_from_soap ( const char* soap )
+LassoNode* lasso_node_new_from_xmlNode ( xmlNode* node )
+None lasso_node_set_custom_namespace ( LassoNode* node, const char* prefix, const char* href )
+None lasso_node_set_custom_nodename ( LassoNode* node, const char* nodename )
+None lasso_node_set_original_xmlnode ( LassoNode* node, xmlNode* xmlnode )
+char* lasso_profile_get_artifact ( LassoProfile* profile )
+char* lasso_profile_get_artifact_message ( LassoProfile* profile )
+LassoIdentity* lasso_profile_get_identity ( LassoProfile* profile )
+LassoNode* lasso_profile_get_nameIdentifier ( LassoProfile* profile )
+LassoRequestType lasso_profile_get_request_type_from_soap_msg ( const gchar* soap )
+LassoSession* lasso_profile_get_session ( LassoProfile* profile )
+LassoProfileSignatureHint lasso_profile_get_signature_hint ( LassoProfile* profile )
+lasso_error_t lasso_profile_get_signature_status ( LassoProfile* profile )
+LassoProfileSignatureVerifyHint lasso_profile_get_signature_verify_hint ( LassoProfile* profile )
+GType lasso_profile_get_type ( )
+gboolean lasso_profile_is_identity_dirty ( LassoProfile* profile )
+gboolean lasso_profile_is_liberty_query ( const gchar* query )
+gboolean lasso_profile_is_saml_query ( const gchar* query )
+gboolean lasso_profile_is_session_dirty ( LassoProfile* profile )
+None lasso_profile_set_artifact_message ( LassoProfile* profile, const char* message )
+lasso_error_t lasso_profile_set_identity_from_dump ( LassoProfile* profile, const gchar* dump )
+lasso_error_t lasso_profile_set_session_from_dump ( LassoProfile* profile, const gchar* dump )
+None lasso_profile_set_signature_hint ( LassoProfile* profile, LassoProfileSignatureHint signature_hint )
+None lasso_profile_set_signature_verify_hint ( LassoProfile* profile, LassoProfileSignatureVerifyHint signature_verify_hint )
+lasso_error_t lasso_profile_set_soap_fault_response ( LassoProfile* profile, const char* faultcode, const char* faultstring, GList* details )
+LassoProviderRole lasso_profile_sso_role_with ( LassoProfile* profile, const char* remote_provider_id )
+gboolean lasso_provider_accept_http_method ( LassoProvider* provider, LassoProvider* remote_provider, LassoMdProtocolType protocol_type, LassoHttpMethod http_method, gboolean initiate_profile )
+gchar* lasso_provider_get_assertion_consumer_service_url ( LassoProvider* provider, const char* service_id )
+gchar* lasso_provider_get_base64_succinct_id ( const LassoProvider* provider )
+char* lasso_provider_get_cache_duration ( LassoProvider* provider )
+gchar* lasso_provider_get_default_name_id_format ( LassoProvider* provider )
+LassoEncryptionMode lasso_provider_get_encryption_mode ( LassoProvider* provider )
+LassoHttpMethod lasso_provider_get_first_http_method ( LassoProvider* provider, LassoProvider* remote_provider, LassoMdProtocolType protocol_type )
+GList* lasso_provider_get_idp_supported_attributes ( LassoProvider* provider )
+GList* lasso_provider_get_metadata_keys_for_role ( LassoProvider* provider, LassoProviderRole role )
+GList* lasso_provider_get_metadata_list ( LassoProvider* provider, const char* name )
+GList* lasso_provider_get_metadata_list_for_role ( const LassoProvider* provider, LassoProviderRole role, const char* name )
+gchar* lasso_provider_get_metadata_one ( LassoProvider* provider, const char* name )
+char* lasso_provider_get_metadata_one_for_role ( LassoProvider* provider, LassoProviderRole role, const char* name )
+xmlNode* lasso_provider_get_organization ( const LassoProvider* provider )
+LassoProtocolConformance lasso_provider_get_protocol_conformance ( const LassoProvider* provider )
+LassoProviderRole lasso_provider_get_roles ( LassoProvider* provider )
+const char* lasso_provider_get_sp_name_qualifier ( LassoProvider* provider )
+GType lasso_provider_get_type ( )
+char* lasso_provider_get_valid_until ( LassoProvider* provider )
+gboolean lasso_provider_has_protocol_profile ( LassoProvider* provider, LassoMdProtocolType protocol_type, const char* protocol_profile )
+gboolean lasso_provider_match_conformance ( LassoProvider* provider, LassoProvider* another_provider )
+LassoProvider* lasso_provider_new ( LassoProviderRole role, const char* metadata, const char* public_key, const char* ca_cert_chain )
+LassoProvider* lasso_provider_new_from_buffer ( LassoProviderRole role, const char* metadata, const char* public_key, const char* ca_cert_chain )
+LassoProvider* lasso_provider_new_from_dump ( const gchar* dump )
+LassoSaml2EncryptedElement* lasso_provider_saml2_node_encrypt ( const LassoProvider* provider, LassoNode* lasso_node )
+None lasso_provider_set_encryption_mode ( LassoProvider* provider, LassoEncryptionMode encryption_mode )
+None lasso_provider_set_encryption_sym_key_type ( LassoProvider* provider, LassoEncryptionSymKeyType encryption_sym_key_type )
+lasso_error_t lasso_provider_verify_single_node_signature ( LassoProvider* provider, LassoNode* node, const char* id_attr_name )
+None lasso_register_dst_service ( const char* prefix, const char* href )
+None lasso_register_idwsf2_dst_service ( const gchar* prefix, const gchar* href )
+GType lasso_saml2_action_get_type ( )
+LassoNode* lasso_saml2_action_new ( )
+LassoNode* lasso_saml2_action_new_with_string ( char* content )
+GType lasso_saml2_advice_get_type ( )
+LassoNode* lasso_saml2_advice_new ( )
+lasso_error_t lasso_saml2_assertion_add_attribute_with_node ( LassoSaml2Assertion* assertion, const char* name, const char* nameformat, LassoNode* content )
+None lasso_saml2_assertion_add_audience_restriction ( LassoSaml2Assertion* saml2_assertion, const char* providerID )
+None lasso_saml2_assertion_add_proxy_limit ( LassoSaml2Assertion* saml2_assertion, int proxy_count, GList* proxy_audiences )
+LassoSaml2AssertionValidationState lasso_saml2_assertion_allows_proxying ( LassoSaml2Assertion* saml2_assertion )
+LassoSaml2AssertionValidationState lasso_saml2_assertion_allows_proxying_to ( LassoSaml2Assertion* saml2_assertion, const char* audience )
+lasso_error_t lasso_saml2_assertion_decrypt_subject ( LassoSaml2Assertion* assertion, LassoServer* server )
+const char* lasso_saml2_assertion_get_in_response_to ( LassoSaml2Assertion* assertion )
+LassoProvider* lasso_saml2_assertion_get_issuer_provider ( const LassoSaml2Assertion* saml2_assertion, const LassoServer* server )
+LassoSaml2SubjectConfirmationData* lasso_saml2_assertion_get_subject_confirmation_data ( LassoSaml2Assertion* saml2_assertion, gboolean create )
+GType lasso_saml2_assertion_get_type ( )
+gboolean lasso_saml2_assertion_has_audience_restriction ( LassoSaml2Assertion* saml2_assertion )
+gboolean lasso_saml2_assertion_has_one_time_use ( LassoSaml2Assertion* saml2_assertion )
+gboolean lasso_saml2_assertion_is_audience_restricted ( LassoSaml2Assertion* saml2_assertion, char* providerID )
+LassoNode* lasso_saml2_assertion_new ( )
+None lasso_saml2_assertion_set_basic_conditions ( LassoSaml2Assertion* saml2_assertion, time_t tolerance, time_t length, gboolean one_time_use )
+None lasso_saml2_assertion_set_one_time_use ( LassoSaml2Assertion* saml2_assertion, gboolean one_time_use )
+None lasso_saml2_assertion_set_subject_confirmation_data ( LassoSaml2Assertion* saml2_assertion, time_t tolerance, time_t length, const char* Recipient, const char* InResponseTo, const char* Address )
+None lasso_saml2_assertion_set_subject_confirmation_name_id ( LassoSaml2Assertion* saml2_assertion, LassoNode* node )
+None lasso_saml2_assertion_set_subject_name_id ( LassoSaml2Assertion* saml2_assertion, LassoNode* node )
+LassoSaml2AssertionValidationState lasso_saml2_assertion_validate_audience ( LassoSaml2Assertion* saml2_assertion, const gchar* audience )
+LassoSaml2AssertionValidationState lasso_saml2_assertion_validate_conditions ( LassoSaml2Assertion* saml2_assertion, const char* relaying_party_providerID )
+LassoSaml2AssertionValidationState lasso_saml2_assertion_validate_time_checks ( LassoSaml2Assertion* saml2_assertion, unsigned int tolerance, time_t now )
+GType lasso_saml2_attribute_get_type ( )
+LassoNode* lasso_saml2_attribute_new ( )
+GType lasso_saml2_attribute_statement_get_type ( )
+LassoNode* lasso_saml2_attribute_statement_new ( )
+GType lasso_saml2_attribute_value_get_type ( )
+LassoSaml2AttributeValue* lasso_saml2_attribute_value_new ( )
+GType lasso_saml2_audience_restriction_get_type ( )
+LassoNode* lasso_saml2_audience_restriction_new ( )
+GType lasso_saml2_authn_context_get_type ( )
+LassoNode* lasso_saml2_authn_context_new ( )
+GType lasso_saml2_authn_statement_get_type ( )
+LassoNode* lasso_saml2_authn_statement_new ( )
+GType lasso_saml2_authz_decision_statement_get_type ( )
+LassoNode* lasso_saml2_authz_decision_statement_new ( )
+GType lasso_saml2_base_idabstract_get_type ( )
+LassoNode* lasso_saml2_base_idabstract_new ( )
+GType lasso_saml2_condition_abstract_get_type ( )
+LassoNode* lasso_saml2_condition_abstract_new ( )
+GType lasso_saml2_conditions_get_type ( )
+LassoNode* lasso_saml2_conditions_new ( )
+LassoSaml2EncryptedElement* lasso_saml2_encrypted_element_build_encrypted_persistent_name_id ( const char* id, const char* idpID, const LassoProvider* provider )
+GType lasso_saml2_encrypted_element_get_type ( )
+LassoNode* lasso_saml2_encrypted_element_new ( )
+lasso_error_t lasso_saml2_encrypted_element_server_decrypt ( LassoSaml2EncryptedElement* encrypted_element, LassoServer* server, LassoNode** decrypted_node )
+GType lasso_saml2_evidence_get_type ( )
+LassoNode* lasso_saml2_evidence_new ( )
+GType lasso_saml2_key_info_confirmation_data_get_type ( )
+LassoNode* lasso_saml2_key_info_confirmation_data_new ( )
+LassoSaml2NameID* lasso_saml2_name_id_build_persistent ( const char* id, const char* idpID, const char* providerID )
+gboolean lasso_saml2_name_id_equals ( LassoSaml2NameID* name_id, LassoSaml2NameID* other_name_id )
+GType lasso_saml2_name_id_get_type ( )
+LassoNode* lasso_saml2_name_id_new ( )
+LassoSaml2NameID* lasso_saml2_name_id_new_with_persistent_format ( const char* id, const char* idpID, const char* providerID )
+LassoNode* lasso_saml2_name_id_new_with_string ( char* content )
+GType lasso_saml2_one_time_use_get_type ( )
+LassoNode* lasso_saml2_one_time_use_new ( )
+GType lasso_saml2_proxy_restriction_get_type ( )
+LassoNode* lasso_saml2_proxy_restriction_new ( )
+GType lasso_saml2_statement_abstract_get_type ( )
+LassoNode* lasso_saml2_statement_abstract_new ( )
+GType lasso_saml2_subject_confirmation_data_get_type ( )
+LassoNode* lasso_saml2_subject_confirmation_data_new ( )
+GType lasso_saml2_subject_confirmation_get_type ( )
+LassoNode* lasso_saml2_subject_confirmation_new ( )
+GType lasso_saml2_subject_get_type ( )
+GType lasso_saml2_subject_locality_get_type ( )
+LassoNode* lasso_saml2_subject_locality_new ( )
+LassoNode* lasso_saml2_subject_new ( )
+GType lasso_saml_advice_get_type ( )
+LassoNode* lasso_saml_advice_new ( )
+GType lasso_saml_assertion_get_type ( )
+LassoSamlAssertion* lasso_saml_assertion_new ( )
+GType lasso_saml_attribute_designator_get_type ( )
+LassoNode* lasso_saml_attribute_designator_new ( )
+GType lasso_saml_attribute_get_type ( )
+LassoSamlAttribute* lasso_saml_attribute_new ( )
+GType lasso_saml_attribute_statement_get_type ( )
+LassoSamlAttributeStatement* lasso_saml_attribute_statement_new ( )
+GType lasso_saml_attribute_value_get_type ( )
+LassoSamlAttributeValue* lasso_saml_attribute_value_new ( )
+GType lasso_saml_audience_restriction_condition_get_type ( )
+LassoSamlAudienceRestrictionCondition* lasso_saml_audience_restriction_condition_new ( )
+LassoSamlAudienceRestrictionCondition* lasso_saml_audience_restriction_condition_new_full ( const char* audience )
+GType lasso_saml_authentication_statement_get_type ( )
+LassoNode* lasso_saml_authentication_statement_new ( )
+GType lasso_saml_authority_binding_get_type ( )
+LassoNode* lasso_saml_authority_binding_new ( )
+GType lasso_saml_condition_abstract_get_type ( )
+GType lasso_saml_conditions_get_type ( )
+LassoSamlConditions* lasso_saml_conditions_new ( )
+GType lasso_saml_name_identifier_get_type ( )
+LassoSamlNameIdentifier* lasso_saml_name_identifier_new ( )
+LassoSamlNameIdentifier* lasso_saml_name_identifier_new_from_xmlNode ( xmlNode* xmlnode )
+GType lasso_saml_statement_abstract_get_type ( )
+GType lasso_saml_subject_confirmation_get_type ( )
+LassoSamlSubjectConfirmation* lasso_saml_subject_confirmation_new ( )
+GType lasso_saml_subject_get_type ( )
+GType lasso_saml_subject_locality_get_type ( )
+LassoNode* lasso_saml_subject_locality_new ( )
+LassoNode* lasso_saml_subject_new ( )
+GType lasso_saml_subject_statement_abstract_get_type ( )
+GType lasso_saml_subject_statement_get_type ( )
+LassoNode* lasso_saml_subject_statement_new ( )
+GType lasso_samlp2_artifact_resolve_get_type ( )
+LassoNode* lasso_samlp2_artifact_resolve_new ( )
+GType lasso_samlp2_artifact_response_get_type ( )
+LassoNode* lasso_samlp2_artifact_response_new ( )
+GType lasso_samlp2_assertion_id_request_get_type ( )
+LassoNode* lasso_samlp2_assertion_id_request_new ( )
+GType lasso_samlp2_attribute_query_get_type ( )
+LassoNode* lasso_samlp2_attribute_query_new ( )
+GType lasso_samlp2_authn_query_get_type ( )
+LassoNode* lasso_samlp2_authn_query_new ( )
+GType lasso_samlp2_authn_request_get_type ( )
+LassoNode* lasso_samlp2_authn_request_new ( )
+GType lasso_samlp2_authz_decision_query_get_type ( )
+LassoNode* lasso_samlp2_authz_decision_query_new ( )
+GType lasso_samlp2_extensions_get_type ( )
+LassoNode* lasso_samlp2_extensions_new ( )
+GType lasso_samlp2_idp_entry_get_type ( )
+LassoNode* lasso_samlp2_idp_entry_new ( )
+GType lasso_samlp2_idp_list_get_type ( )
+LassoNode* lasso_samlp2_idp_list_new ( )
+GList* lasso_samlp2_logout_request_get_session_indexes ( LassoSamlp2LogoutRequest* logout_request )
+GType lasso_samlp2_logout_request_get_type ( )
+LassoNode* lasso_samlp2_logout_request_new ( )
+None lasso_samlp2_logout_request_set_session_indexes ( LassoSamlp2LogoutRequest* logout_request, GList* session_index )
+GType lasso_samlp2_logout_response_get_type ( )
+LassoNode* lasso_samlp2_logout_response_new ( )
+GType lasso_samlp2_manage_name_id_request_get_type ( )
+LassoNode* lasso_samlp2_manage_name_id_request_new ( )
+GType lasso_samlp2_manage_name_id_response_get_type ( )
+LassoNode* lasso_samlp2_manage_name_id_response_new ( )
+GType lasso_samlp2_name_id_mapping_request_get_type ( )
+LassoNode* lasso_samlp2_name_id_mapping_request_new ( )
+GType lasso_samlp2_name_id_mapping_response_get_type ( )
+LassoNode* lasso_samlp2_name_id_mapping_response_new ( )
+GType lasso_samlp2_name_id_policy_get_type ( )
+LassoNode* lasso_samlp2_name_id_policy_new ( )
+GType lasso_samlp2_request_abstract_get_type ( )
+LassoNode* lasso_samlp2_request_abstract_new ( )
+GType lasso_samlp2_requested_authn_context_get_type ( )
+LassoNode* lasso_samlp2_requested_authn_context_new ( )
+GType lasso_samlp2_response_get_type ( )
+LassoNode* lasso_samlp2_response_new ( )
+GType lasso_samlp2_scoping_get_type ( )
+LassoNode* lasso_samlp2_scoping_new ( )
+GType lasso_samlp2_status_code_get_type ( )
+LassoNode* lasso_samlp2_status_code_new ( )
+GType lasso_samlp2_status_detail_get_type ( )
+LassoNode* lasso_samlp2_status_detail_new ( )
+GType lasso_samlp2_status_get_type ( )
+LassoNode* lasso_samlp2_status_new ( )
+GType lasso_samlp2_status_response_get_type ( )
+LassoNode* lasso_samlp2_status_response_new ( )
+GType lasso_samlp2_subject_query_abstract_get_type ( )
+LassoNode* lasso_samlp2_subject_query_abstract_new ( )
+GType lasso_samlp2_terminate_get_type ( )
+LassoNode* lasso_samlp2_terminate_new ( )
+GType lasso_samlp_request_abstract_get_type ( )
+GType lasso_samlp_request_get_type ( )
+LassoNode* lasso_samlp_request_new ( )
+None lasso_samlp_response_abstract_fill ( LassoSamlpResponseAbstract* response, const char* InResponseTo, const char* Recipient )
+GType lasso_samlp_response_abstract_get_type ( )
+GType lasso_samlp_response_get_type ( )
+LassoNode* lasso_samlp_response_new ( )
+GType lasso_samlp_status_code_get_type ( )
+LassoSamlpStatusCode* lasso_samlp_status_code_new ( )
+GType lasso_samlp_status_get_type ( )
+LassoSamlpStatus* lasso_samlp_status_new ( )
+lasso_error_t lasso_server_add_provider ( LassoServer* server, LassoProviderRole role, const gchar* metadata, const gchar* public_key, const gchar* ca_cert_chain )
+lasso_error_t lasso_server_add_provider_from_buffer ( LassoServer* server, LassoProviderRole role, const gchar* metadata, const gchar* public_key, const gchar* ca_cert_chain )
+None lasso_server_destroy ( LassoServer* server )
+gchar* lasso_server_dump ( LassoServer* server )
+LassoProvider* lasso_server_get_provider ( const LassoServer* server, const gchar* providerID )
+GType lasso_server_get_type ( )
+lasso_error_t lasso_server_load_affiliation ( LassoServer* server, const gchar* filename )
+LassoServer* lasso_server_new ( const gchar* metadata, const gchar* private_key, const gchar* private_key_password, const gchar* certificate )
+LassoServer* lasso_server_new_from_buffers ( const gchar* metadata, const gchar* private_key_content, const gchar* private_key_password, const gchar* certificate_content )
+LassoServer* lasso_server_new_from_dump ( const gchar* dump )
+lasso_error_t lasso_server_saml2_assertion_setup_signature ( LassoServer* server, LassoSaml2Assertion* saml2_assertion )
+lasso_error_t lasso_server_set_encryption_private_key ( LassoServer* server, const gchar* filename_or_buffer )
+lasso_error_t lasso_server_set_encryption_private_key_with_password ( LassoServer* server, const gchar* filename_or_buffer, const gchar* password )
+lasso_error_t lasso_session_add_assertion ( LassoSession* session, const char* providerID, LassoNode* assertion )
+None lasso_session_destroy ( LassoSession* session )
+gchar* lasso_session_dump ( LassoSession* session )
+LassoNode* lasso_session_get_assertion ( LassoSession* session, const gchar* providerID )
+GList* lasso_session_get_assertions ( LassoSession* session, const char* provider_id )
+gchar* lasso_session_get_provider_index ( LassoSession* session, gint index )
+GType lasso_session_get_type ( )
+gboolean lasso_session_is_empty ( LassoSession* session )
+LassoSession* lasso_session_new ( )
+LassoSession* lasso_session_new_from_dump ( const gchar* dump )
+lasso_error_t lasso_session_remove_assertion ( LassoSession* session, const gchar* providerID )
+None lasso_set_flag ( char* flag )
+lasso_error_t lasso_shutdown ( )
+GType lasso_soap_body_get_type ( )
+LassoSoapBody* lasso_soap_body_new ( )
+LassoSoapBody* lasso_soap_body_new_from_message ( const gchar* message )
+GType lasso_soap_detail_get_type ( )
+LassoSoapDetail* lasso_soap_detail_new ( )
+LassoSoapDetail* lasso_soap_detail_new_from_message ( const gchar* message )
+GType lasso_soap_envelope_get_type ( )
+LassoSoapEnvelope* lasso_soap_envelope_new ( LassoSoapBody* body )
+LassoSoapEnvelope* lasso_soap_envelope_new_from_message ( const gchar* message )
+GType lasso_soap_fault_get_type ( )
+LassoSoapFault* lasso_soap_fault_new ( )
+LassoSoapFault* lasso_soap_fault_new_from_message ( const gchar* message )
+LassoSoapFault* lasso_soap_fault_new_full ( const char* faultcode, const char* faultstring )
+GType lasso_soap_header_get_type ( )
+LassoSoapHeader* lasso_soap_header_new ( )
+LassoSoapHeader* lasso_soap_header_new_from_message ( const gchar* message )
+const char* lasso_strerror ( int error_code )
diff --git a/abi/abi-2.3.4 b/abi/abi-2.3.4
new file mode 100644
index 00000000..bd6d5799
--- /dev/null
+++ b/abi/abi-2.3.4
@@ -0,0 +1,1114 @@
+BACKWARD_COMP_H
+LASSO_ASSERTION_QUERY_ERROR_ATTRIBUTE_REQUEST_ALREADY_EXIST
+LASSO_ASSERTION_QUERY_ERROR_NOT_AN_ATTRIBUTE_QUERY
+LASSO_ASSERTION_QUERY_REQUEST_TYPE_ASSERTION_ID
+LASSO_ASSERTION_QUERY_REQUEST_TYPE_ATTRIBUTE
+LASSO_ASSERTION_QUERY_REQUEST_TYPE_AUTHN
+LASSO_ASSERTION_QUERY_REQUEST_TYPE_AUTHZ_DECISION
+LASSO_ASSERTION_QUERY_REQUEST_TYPE_LAST
+LASSO_ASSERTION_QUERY_REQUEST_TYPE_UNSET
+LASSO_CERTIFICATE_ATTRIBUTE
+LASSO_CHECK_VERSIONABI_COMPATIBLE
+LASSO_CHECK_VERSION_EXACT
+LASSO_CHECK_VERSION_NUMERIC
+LASSO_DATA_SERVICE_ERROR_CANNOT_ADD_ITEM
+LASSO_DATA_SERVICE_ERROR_UNREGISTERED_DST
+LASSO_DEFEDERATION_ERROR_MISSING_NAME_IDENTIFIER
+LASSO_DISCOVERY_ERROR_FAILED_TO_BUILD_ENDPOINT_REFERENCE
+LASSO_DISCOVERY_ERROR_MISSING_REQUESTED_SERVICE
+LASSO_DISCOVERY_ERROR_SVC_METADATA_ASSOCIATION_ADD_FAILED
+LASSO_DISCOVERY_ERROR_SVC_METADATA_REGISTER_FAILED
+LASSO_DST_ERROR_EMPTY_REQUEST
+LASSO_DST_ERROR_MALFORMED_QUERY
+LASSO_DST_ERROR_MISSING_SERVICE_DATA
+LASSO_DST_ERROR_MODIFY_FAILED
+LASSO_DST_ERROR_MODIFY_PARTIALLY_FAILED
+LASSO_DST_ERROR_NEW_DATA_MISSING
+LASSO_DST_ERROR_NO_DATA
+LASSO_DST_ERROR_QUERY_FAILED
+LASSO_DST_ERROR_QUERY_NOT_FOUND
+LASSO_DST_ERROR_QUERY_PARTIALLY_FAILED
+LASSO_DS_ERROR_CA_CERT_CHAIN_LOAD_FAILED
+LASSO_DS_ERROR_CERTIFICATE_LOAD_FAILED
+LASSO_DS_ERROR_CONTEXT_CREATION_FAILED
+LASSO_DS_ERROR_DECRYPTION_FAILED
+LASSO_DS_ERROR_DECRYPTION_FAILED_MISSING_PRIVATE_KEY
+LASSO_DS_ERROR_DIGEST_COMPUTE_FAILED
+LASSO_DS_ERROR_ENCRYPTION_FAILED
+LASSO_DS_ERROR_INVALID_REFERENCE_FOR_SAML
+LASSO_DS_ERROR_INVALID_SIGALG
+LASSO_DS_ERROR_INVALID_SIGNATURE
+LASSO_DS_ERROR_KEYS_MNGR_CREATION_FAILED
+LASSO_DS_ERROR_KEYS_MNGR_INIT_FAILED
+LASSO_DS_ERROR_PRIVATE_KEY_LOAD_FAILED
+LASSO_DS_ERROR_PUBLIC_KEY_LOAD_FAILED
+LASSO_DS_ERROR_SIGNATURE_FAILED
+LASSO_DS_ERROR_SIGNATURE_NOT_FOUND
+LASSO_DS_ERROR_SIGNATURE_TEMPLATE_NOT_FOUND
+LASSO_DS_ERROR_SIGNATURE_TMPL_CREATION_FAILED
+LASSO_DS_ERROR_SIGNATURE_VERIFICATION_FAILED
+LASSO_DS_ERROR_TOO_MUCH_REFERENCES
+LASSO_DS_HREF
+LASSO_DS_PREFIX
+LASSO_DURATION_DAY
+LASSO_DURATION_HOUR
+LASSO_DURATION_MINUTE
+LASSO_DURATION_WEEK
+LASSO_ECP_HREF
+LASSO_ECP_PREFIX
+LASSO_ENCRYPTION_MODE_ASSERTION
+LASSO_ENCRYPTION_MODE_NAMEID
+LASSO_ENCRYPTION_MODE_NONE
+LASSO_ENCRYPTION_SYM_KEY_TYPE_3DES
+LASSO_ENCRYPTION_SYM_KEY_TYPE_AES_128
+LASSO_ENCRYPTION_SYM_KEY_TYPE_AES_256
+LASSO_ENCRYPTION_SYM_KEY_TYPE_DEFAULT
+LASSO_ERROR_CAST_FAILED
+LASSO_ERROR_OUT_OF_MEMORY
+LASSO_ERROR_UNDEFINED
+LASSO_ERROR_UNIMPLEMENTED
+LASSO_HTTP_METHOD_ANY
+LASSO_HTTP_METHOD_ARTIFACT_GET
+LASSO_HTTP_METHOD_ARTIFACT_POST
+LASSO_HTTP_METHOD_GET
+LASSO_HTTP_METHOD_IDP_INITIATED
+LASSO_HTTP_METHOD_LAST
+LASSO_HTTP_METHOD_NONE
+LASSO_HTTP_METHOD_PAOS
+LASSO_HTTP_METHOD_POST
+LASSO_HTTP_METHOD_REDIRECT
+LASSO_HTTP_METHOD_SOAP
+LASSO_IDWSF2_DISCOVERY_ERROR_DUPLICATE
+LASSO_IDWSF2_DISCOVERY_ERROR_FAILED
+LASSO_IDWSF2_DISCOVERY_ERROR_FORBIDDEN
+LASSO_IDWSF2_DISCOVERY_ERROR_LOGICAL_DUPLICATE
+LASSO_IDWSF2_DISCOVERY_ERROR_NOT_FOUND
+LASSO_IDWSF2_DISCOVERY_ERROR_NO_RESULTS
+LASSO_IDWSF2_DST_ERROR_DUPLICATE_ITEM
+LASSO_IDWSF2_DST_ERROR_ITEM_NOT_FOUND
+LASSO_IDWSF2_DST_ERROR_PARTIAL_FAILURE
+LASSO_IDWSF2_DST_ERROR_UNKNOWN_STATUS_CODE
+LASSO_LASSO_HREF
+LASSO_LASSO_PREFIX
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_INTERNET_PROTOCOL
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_INTERNET_PROTOCOL_PASSWORD
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_MOBILE_ONE_FACTOR_CONTRACT
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_MOBILE_ONE_FACTOR_UNREGISTERED
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_MOBILE_TWO_FACTOR_CONTRACT
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_MOBILE_TWO_FACTOR_UNREGISTERED
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_PASSWORD
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_PASSWORD_PROTECTED_TRANSPORT
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_PREVIOUS_SESSION
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_SMARTCARD
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_SMARTCARD_PKI
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_SOFTWARE_PKI
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_TIME_SYNC_TOKEN
+LASSO_LIB_AUTHN_CONTEXT_COMPARISON_BETTER
+LASSO_LIB_AUTHN_CONTEXT_COMPARISON_EXACT
+LASSO_LIB_AUTHN_CONTEXT_COMPARISON_MAXIMUM
+LASSO_LIB_AUTHN_CONTEXT_COMPARISON_MINIMUM
+LASSO_LIB_CONSENT_INAPPLICABLE
+LASSO_LIB_CONSENT_OBTAINED
+LASSO_LIB_CONSENT_OBTAINED_CURRENT_EXPLICIT
+LASSO_LIB_CONSENT_OBTAINED_CURRENT_IMPLICIT
+LASSO_LIB_CONSENT_OBTAINED_PRIOR
+LASSO_LIB_CONSENT_UNAVAILABLE
+LASSO_LIB_HREF
+LASSO_LIB_MAJOR_VERSION_N
+LASSO_LIB_MINOR_VERSION_N
+LASSO_LIB_NAMEID_POLICY_TYPE_ANY
+LASSO_LIB_NAMEID_POLICY_TYPE_FEDERATED
+LASSO_LIB_NAMEID_POLICY_TYPE_NONE
+LASSO_LIB_NAMEID_POLICY_TYPE_ONE_TIME
+LASSO_LIB_NAME_IDENTIFIER_FORMAT_ENCRYPTED
+LASSO_LIB_NAME_IDENTIFIER_FORMAT_ENTITYID
+LASSO_LIB_NAME_IDENTIFIER_FORMAT_FEDERATED
+LASSO_LIB_NAME_IDENTIFIER_FORMAT_ONE_TIME
+LASSO_LIB_PREFIX
+LASSO_LIB_PROTOCOL_PROFILE_BRWS_ART
+LASSO_LIB_PROTOCOL_PROFILE_BRWS_LECP
+LASSO_LIB_PROTOCOL_PROFILE_BRWS_POST
+LASSO_LIB_PROTOCOL_PROFILE_FED_TERM_IDP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_FED_TERM_IDP_SOAP
+LASSO_LIB_PROTOCOL_PROFILE_FED_TERM_SP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_FED_TERM_SP_SOAP
+LASSO_LIB_PROTOCOL_PROFILE_NIM_SP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_RNI_IDP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_RNI_IDP_SOAP
+LASSO_LIB_PROTOCOL_PROFILE_RNI_SP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_RNI_SP_SOAP
+LASSO_LIB_PROTOCOL_PROFILE_SLO_IDP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_SLO_IDP_SOAP
+LASSO_LIB_PROTOCOL_PROFILE_SLO_SP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_SLO_SP_SOAP
+LASSO_LIB_STATUS_CODE_FEDERATION_DOES_NOT_EXIST
+LASSO_LIB_STATUS_CODE_INVALID_ASSERTION_CONSUMER_SERVICE_INDEX
+LASSO_LIB_STATUS_CODE_INVALID_SIGNATURE
+LASSO_LIB_STATUS_CODE_NO_AUTHN_CONTEXT
+LASSO_LIB_STATUS_CODE_NO_AVAILABLEIDP
+LASSO_LIB_STATUS_CODE_NO_PASSIVE
+LASSO_LIB_STATUS_CODE_NO_SUPPORTEDIDP
+LASSO_LIB_STATUS_CODE_PROXY_COUNT_EXCEEDED
+LASSO_LIB_STATUS_CODE_UNKNOWN_PRINCIPAL
+LASSO_LIB_STATUS_CODE_UNSIGNED_AUTHN_REQUEST
+LASSO_LIB_STATUS_CODE_UNSUPPORTED_PROFILE
+LASSO_LOGIN_ERROR_ASSERTION_DOES_NOT_MATCH_REQUEST_ID
+LASSO_LOGIN_ERROR_ASSERTION_REPLAY
+LASSO_LOGIN_ERROR_CONSENT_NOT_OBTAINED
+LASSO_LOGIN_ERROR_FEDERATION_NOT_FOUND
+LASSO_LOGIN_ERROR_INVALID_ASSERTION_SIGNATURE
+LASSO_LOGIN_ERROR_INVALID_NAMEIDPOLICY
+LASSO_LOGIN_ERROR_INVALID_SIGNATURE
+LASSO_LOGIN_ERROR_NO_DEFAULT_ENDPOINT
+LASSO_LOGIN_ERROR_REQUEST_DENIED
+LASSO_LOGIN_ERROR_STATUS_NOT_SUCCESS
+LASSO_LOGIN_ERROR_UNKNOWN_PRINCIPAL
+LASSO_LOGIN_ERROR_UNSIGNED_AUTHN_REQUEST
+LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_ART
+LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_LECP
+LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_POST
+LASSO_LOGIN_PROTOCOL_PROFILE_REDIRECT
+LASSO_LOGOUT_ERROR_FEDERATION_NOT_FOUND
+LASSO_LOGOUT_ERROR_REQUEST_DENIED
+LASSO_LOGOUT_ERROR_UNKNOWN_PRINCIPAL
+LASSO_LOGOUT_ERROR_UNSUPPORTED_PROFILE
+LASSO_MD_PROTOCOL_TYPE_ARTIFACT_RESOLUTION
+LASSO_MD_PROTOCOL_TYPE_ASSERTION_ID_REQUEST
+LASSO_MD_PROTOCOL_TYPE_ATTRIBUTE
+LASSO_MD_PROTOCOL_TYPE_AUTHN_QUERY
+LASSO_MD_PROTOCOL_TYPE_AUTHZ
+LASSO_MD_PROTOCOL_TYPE_FEDERATION_TERMINATION
+LASSO_MD_PROTOCOL_TYPE_LAST
+LASSO_MD_PROTOCOL_TYPE_MANAGE_NAME_ID
+LASSO_MD_PROTOCOL_TYPE_NAME_IDENTIFIER_MAPPING
+LASSO_MD_PROTOCOL_TYPE_REGISTER_NAME_IDENTIFIER
+LASSO_MD_PROTOCOL_TYPE_SINGLE_LOGOUT
+LASSO_MD_PROTOCOL_TYPE_SINGLE_SIGN_ON
+LASSO_MESSAGE_FORMAT_BASE64
+LASSO_MESSAGE_FORMAT_ERROR
+LASSO_MESSAGE_FORMAT_QUERY
+LASSO_MESSAGE_FORMAT_SOAP
+LASSO_MESSAGE_FORMAT_UNKNOWN
+LASSO_MESSAGE_FORMAT_XML
+LASSO_MESSAGE_FORMAT_XSCHEMA_ERROR
+LASSO_METADATA_HREF
+LASSO_METADATA_PREFIX
+LASSO_NAME_IDENTIFIER_MAPPING_ERROR_FORBIDDEN_CALL_ON_THIS_SIDE
+LASSO_NAME_IDENTIFIER_MAPPING_ERROR_MISSING_TARGET_IDENTIFIER
+LASSO_NAME_IDENTIFIER_MAPPING_ERROR_MISSING_TARGET_NAMESPACE
+LASSO_PAOS_HREF
+LASSO_PAOS_PREFIX
+LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ
+LASSO_PARAM_ERROR_CHECK_FAILED
+LASSO_PARAM_ERROR_INVALID_VALUE
+LASSO_PARAM_ERROR_NON_INITIALIZED_OBJECT
+LASSO_PRIVATE_KEY_ATTRIBUTE
+LASSO_PRIVATE_KEY_PASSWORD_ATTRIBUTE
+LASSO_PRIVATE_STATUS_CODE_FAILED_TO_RESTORE_ARTIFACT
+LASSO_PROFILE_ERROR_BAD_IDENTITY_DUMP
+LASSO_PROFILE_ERROR_BAD_SESSION_DUMP
+LASSO_PROFILE_ERROR_BUILDING_MESSAGE_FAILED
+LASSO_PROFILE_ERROR_BUILDING_QUERY_FAILED
+LASSO_PROFILE_ERROR_BUILDING_REQUEST_FAILED
+LASSO_PROFILE_ERROR_BUILDING_RESPONSE_FAILED
+LASSO_PROFILE_ERROR_CANNOT_FIND_A_PROVIDER
+LASSO_PROFILE_ERROR_CANNOT_VERIFY_SIGNATURE
+LASSO_PROFILE_ERROR_FEDERATION_NOT_FOUND
+LASSO_PROFILE_ERROR_IDENTITY_NOT_FOUND
+LASSO_PROFILE_ERROR_INVALID_ARTIFACT
+LASSO_PROFILE_ERROR_INVALID_ASSERTION
+LASSO_PROFILE_ERROR_INVALID_ASSERTION_CONDITIONS
+LASSO_PROFILE_ERROR_INVALID_HTTP_METHOD
+LASSO_PROFILE_ERROR_INVALID_ISSUER
+LASSO_PROFILE_ERROR_INVALID_MSG
+LASSO_PROFILE_ERROR_INVALID_POST_MSG
+LASSO_PROFILE_ERROR_INVALID_PROTOCOLPROFILE
+LASSO_PROFILE_ERROR_INVALID_QUERY
+LASSO_PROFILE_ERROR_INVALID_REQUEST
+LASSO_PROFILE_ERROR_INVALID_RESPONSE
+LASSO_PROFILE_ERROR_INVALID_SOAP_MSG
+LASSO_PROFILE_ERROR_ISSUER_IS_NOT_AN_IDP
+LASSO_PROFILE_ERROR_MISSING_ARTIFACT
+LASSO_PROFILE_ERROR_MISSING_ASSERTION
+LASSO_PROFILE_ERROR_MISSING_ENCRYPTION_PRIVATE_KEY
+LASSO_PROFILE_ERROR_MISSING_ENDPOINT_REFERENCE
+LASSO_PROFILE_ERROR_MISSING_ENDPOINT_REFERENCE_ADDRESS
+LASSO_PROFILE_ERROR_MISSING_ISSUER
+LASSO_PROFILE_ERROR_MISSING_NAME_IDENTIFIER
+LASSO_PROFILE_ERROR_MISSING_REMOTE_PROVIDERID
+LASSO_PROFILE_ERROR_MISSING_REQUEST
+LASSO_PROFILE_ERROR_MISSING_RESOURCE_OFFERING
+LASSO_PROFILE_ERROR_MISSING_RESPONSE
+LASSO_PROFILE_ERROR_MISSING_SERVER
+LASSO_PROFILE_ERROR_MISSING_SERVICE_DESCRIPTION
+LASSO_PROFILE_ERROR_MISSING_SERVICE_INSTANCE
+LASSO_PROFILE_ERROR_MISSING_SERVICE_TYPE
+LASSO_PROFILE_ERROR_MISSING_STATUS_CODE
+LASSO_PROFILE_ERROR_MISSING_SUBJECT
+LASSO_PROFILE_ERROR_NAME_IDENTIFIER_NOT_FOUND
+LASSO_PROFILE_ERROR_RESPONSE_DOES_NOT_MATCH_REQUEST
+LASSO_PROFILE_ERROR_SESSION_NOT_FOUND
+LASSO_PROFILE_ERROR_STATUS_NOT_SUCCESS
+LASSO_PROFILE_ERROR_UNKNOWN_ISSUER
+LASSO_PROFILE_ERROR_UNKNOWN_PROFILE_URL
+LASSO_PROFILE_ERROR_UNKNOWN_PROVIDER
+LASSO_PROFILE_ERROR_UNSUPPORTED_BINDING
+LASSO_PROFILE_ERROR_UNSUPPORTED_PROFILE
+LASSO_PROFILE_SIGNATURE_HINT_FORBID
+LASSO_PROFILE_SIGNATURE_HINT_FORCE
+LASSO_PROFILE_SIGNATURE_HINT_MAYBE
+LASSO_PROFILE_SIGNATURE_VERIFY_HINT_FORCE
+LASSO_PROFILE_SIGNATURE_VERIFY_HINT_IGNORE
+LASSO_PROFILE_SIGNATURE_VERIFY_HINT_LAST
+LASSO_PROFILE_SIGNATURE_VERIFY_HINT_MAYBE
+LASSO_PROTOCOL_LIBERTY_1_0
+LASSO_PROTOCOL_LIBERTY_1_1
+LASSO_PROTOCOL_LIBERTY_1_2
+LASSO_PROTOCOL_NONE
+LASSO_PROTOCOL_SAML_2_0
+LASSO_PROVIDER_ERROR_MISSING_PUBLIC_KEY
+LASSO_PROVIDER_ROLE_ANY
+LASSO_PROVIDER_ROLE_ATTRIBUTE_AUTHORITY
+LASSO_PROVIDER_ROLE_AUTHN_AUTHORITY
+LASSO_PROVIDER_ROLE_AUTHZ_AUTHORITY
+LASSO_PROVIDER_ROLE_BOTH
+LASSO_PROVIDER_ROLE_IDP
+LASSO_PROVIDER_ROLE_LAST
+LASSO_PROVIDER_ROLE_NONE
+LASSO_PROVIDER_ROLE_SP
+LASSO_PYTHON_HREF
+LASSO_REGISTRY_ERROR_KEY_EXISTS
+LASSO_REQUEST_TYPE_DEFEDERATION
+LASSO_REQUEST_TYPE_DISCO_MODIFY
+LASSO_REQUEST_TYPE_DISCO_QUERY
+LASSO_REQUEST_TYPE_DST_MODIFY
+LASSO_REQUEST_TYPE_DST_QUERY
+LASSO_REQUEST_TYPE_IDWSF2_DISCO_QUERY
+LASSO_REQUEST_TYPE_IDWSF2_DISCO_SVCMD_ASSOCIATION_ADD
+LASSO_REQUEST_TYPE_IDWSF2_DISCO_SVCMD_REGISTER
+LASSO_REQUEST_TYPE_INVALID
+LASSO_REQUEST_TYPE_LECP
+LASSO_REQUEST_TYPE_LOGIN
+LASSO_REQUEST_TYPE_LOGOUT
+LASSO_REQUEST_TYPE_NAME_IDENTIFIER_MAPPING
+LASSO_REQUEST_TYPE_NAME_ID_MANAGEMENT
+LASSO_REQUEST_TYPE_NAME_REGISTRATION
+LASSO_REQUEST_TYPE_SASL_REQUEST
+LASSO_SAML2_ACTION_GHPP_GET
+LASSO_SAML2_ACTION_GHPP_HEAD
+LASSO_SAML2_ACTION_GHPP_POST
+LASSO_SAML2_ACTION_GHPP_PUT
+LASSO_SAML2_ACTION_NAMESPACE_GHPP
+LASSO_SAML2_ACTION_NAMESPACE_RWEDC
+LASSO_SAML2_ACTION_NAMESPACE_RWEDC_NEGATION
+LASSO_SAML2_ACTION_NAMESPACE_UNIX
+LASSO_SAML2_ACTION_RWEDC_CONTROL
+LASSO_SAML2_ACTION_RWEDC_DELETE
+LASSO_SAML2_ACTION_RWEDC_EXECUTE
+LASSO_SAML2_ACTION_RWEDC_NEGATION
+LASSO_SAML2_ACTION_RWEDC_READ
+LASSO_SAML2_ACTION_RWEDC_WRITE
+LASSO_SAML2_ASSERTION_HREF
+LASSO_SAML2_ASSERTION_INDETERMINATE
+LASSO_SAML2_ASSERTION_INVALID
+LASSO_SAML2_ASSERTION_PREFIX
+LASSO_SAML2_ASSERTION_VALID
+LASSO_SAML2_ATTRIBUTE_NAME_EPR
+LASSO_SAML2_ATTRIBUTE_NAME_FORMAT_BASIC
+LASSO_SAML2_ATTRIBUTE_NAME_FORMAT_UNSPECIFIED
+LASSO_SAML2_ATTRIBUTE_NAME_FORMAT_URI
+LASSO_SAML2_ATTRIBUTE_PROFILE_BASIC
+LASSO_SAML2_ATTRIBUTE_PROFILE_DCE
+LASSO_SAML2_ATTRIBUTE_PROFILE_UUID
+LASSO_SAML2_ATTRIBUTE_PROFILE_X500
+LASSO_SAML2_AUTHN_CONTEXT_AUTHENTICATED_TELEPHONY
+LASSO_SAML2_AUTHN_CONTEXT_INTERNET_PROTOCOL
+LASSO_SAML2_AUTHN_CONTEXT_INTERNET_PROTOCOL_PASSWORD
+LASSO_SAML2_AUTHN_CONTEXT_KERBEROS
+LASSO_SAML2_AUTHN_CONTEXT_MOBILE_ONE_FACTOR_CONTRACT
+LASSO_SAML2_AUTHN_CONTEXT_MOBILE_ONE_FACTOR_UNREGISTERED
+LASSO_SAML2_AUTHN_CONTEXT_MOBILE_TWO_FACTOR_CONTRACT
+LASSO_SAML2_AUTHN_CONTEXT_MOBILE_TWO_FACTOR_UNREGISTERED
+LASSO_SAML2_AUTHN_CONTEXT_NOMAD_TELEPHONY
+LASSO_SAML2_AUTHN_CONTEXT_PASSWORD
+LASSO_SAML2_AUTHN_CONTEXT_PASSWORD_PROTECTED_TRANSPORT
+LASSO_SAML2_AUTHN_CONTEXT_PERSONALIZED_TELEPHONY
+LASSO_SAML2_AUTHN_CONTEXT_PGP
+LASSO_SAML2_AUTHN_CONTEXT_PREVIOUS_SESSION
+LASSO_SAML2_AUTHN_CONTEXT_SECURE_REMOTE_PASSWORD
+LASSO_SAML2_AUTHN_CONTEXT_SMARTCARD
+LASSO_SAML2_AUTHN_CONTEXT_SMARTCARD_PKI
+LASSO_SAML2_AUTHN_CONTEXT_SOFTWARE_PKI
+LASSO_SAML2_AUTHN_CONTEXT_SPKI
+LASSO_SAML2_AUTHN_CONTEXT_TELEPHONY
+LASSO_SAML2_AUTHN_CONTEXT_TIME_SYNC_TOKEN
+LASSO_SAML2_AUTHN_CONTEXT_TLS_CLIENT
+LASSO_SAML2_AUTHN_CONTEXT_UNSPECIFIED
+LASSO_SAML2_AUTHN_CONTEXT_X509
+LASSO_SAML2_AUTHN_CONTEXT_XMLDSIG
+LASSO_SAML2_CONFIRMATION_METHOD_BEARER
+LASSO_SAML2_CONFIRMATION_METHOD_HOLDER_OF_KEY
+LASSO_SAML2_CONSENT_EXPLICIT
+LASSO_SAML2_CONSENT_IMPLICIT
+LASSO_SAML2_CONSENT_INAPPLICABLE
+LASSO_SAML2_CONSENT_OBTAINED
+LASSO_SAML2_CONSENT_PRIOR
+LASSO_SAML2_CONSENT_UNAVAILABLE
+LASSO_SAML2_DEFLATE_ENCODING
+LASSO_SAML2_FIELD_ARTIFACT
+LASSO_SAML2_FIELD_ENCODING
+LASSO_SAML2_FIELD_RELAYSTATE
+LASSO_SAML2_FIELD_REQUEST
+LASSO_SAML2_FIELD_RESPONSE
+LASSO_SAML2_FIELD_SIGALG
+LASSO_SAML2_FIELD_SIGNATURE
+LASSO_SAML2_METADATA_BINDING_ARTIFACT
+LASSO_SAML2_METADATA_BINDING_PAOS
+LASSO_SAML2_METADATA_BINDING_POST
+LASSO_SAML2_METADATA_BINDING_REDIRECT
+LASSO_SAML2_METADATA_BINDING_SOAP
+LASSO_SAML2_METADATA_BINDING_URI
+LASSO_SAML2_METADATA_HREF
+LASSO_SAML2_METADATA_PREFIX
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_EMAIL
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_ENCRYPTED
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_ENTITY
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_KERBEROS
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_PERSISTENT
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_TRANSIENT
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_UNSPECIFIED
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_WINDOWS
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_X509
+LASSO_SAML2_PROTOCOL_HREF
+LASSO_SAML2_PROTOCOL_PREFIX
+LASSO_SAML2_STATUS_CODE_AUTHN_FAILED
+LASSO_SAML2_STATUS_CODE_INVALID_ATTR_NAME
+LASSO_SAML2_STATUS_CODE_INVALID_NAME_ID_POLICY
+LASSO_SAML2_STATUS_CODE_NO_AUTHN_CONTEXT
+LASSO_SAML2_STATUS_CODE_NO_AVAILABLE_IDP
+LASSO_SAML2_STATUS_CODE_NO_PASSIVE
+LASSO_SAML2_STATUS_CODE_NO_SUPPORTED_IDP
+LASSO_SAML2_STATUS_CODE_PARTIAL_LOGOUT
+LASSO_SAML2_STATUS_CODE_PROXY_COUNT_EXCEEDED
+LASSO_SAML2_STATUS_CODE_REQUESTER
+LASSO_SAML2_STATUS_CODE_REQUEST_DENIED
+LASSO_SAML2_STATUS_CODE_REQUEST_UNSUPPORTED
+LASSO_SAML2_STATUS_CODE_REQUEST_VERSION_DEPRECATED
+LASSO_SAML2_STATUS_CODE_REQUEST_VERSION_TOO_HIGH
+LASSO_SAML2_STATUS_CODE_REQUEST_VERSION_TOO_LOW
+LASSO_SAML2_STATUS_CODE_RESOURCE_NOT_RECOGNIZED
+LASSO_SAML2_STATUS_CODE_RESPONDER
+LASSO_SAML2_STATUS_CODE_SUCCESS
+LASSO_SAML2_STATUS_CODE_TOO_MANY_RESPONSES
+LASSO_SAML2_STATUS_CODE_UNKNOWN_ATTR_PROFILE
+LASSO_SAML2_STATUS_CODE_UNKNOWN_PRINCIPAL
+LASSO_SAML2_STATUS_CODE_UNSUPPORTED_BINDING
+LASSO_SAML2_STATUS_CODE_VERSION_MISMATCH
+LASSO_SAML_ASSERTION_HREF
+LASSO_SAML_ASSERTION_PREFIX
+LASSO_SAML_AUTHENTICATION_METHODS_PKI
+LASSO_SAML_AUTHENTICATION_METHOD_HARDWARE_TOKEN
+LASSO_SAML_AUTHENTICATION_METHOD_KERBEROS
+LASSO_SAML_AUTHENTICATION_METHOD_LIBERTY
+LASSO_SAML_AUTHENTICATION_METHOD_PASSWORD
+LASSO_SAML_AUTHENTICATION_METHOD_PGP
+LASSO_SAML_AUTHENTICATION_METHOD_SECURE_REMOTE_PASSWORD
+LASSO_SAML_AUTHENTICATION_METHOD_SMARTCARD_PKI
+LASSO_SAML_AUTHENTICATION_METHOD_SOFTWARE_PKI
+LASSO_SAML_AUTHENTICATION_METHOD_UNSPECIFIED
+LASSO_SAML_AUTHENTICATION_METHOD_XKMS
+LASSO_SAML_AUTHENTICATION_METHOD_XMLD_SIG
+LASSO_SAML_CONFIRMATION_METHOD_ARTIFACT
+LASSO_SAML_CONFIRMATION_METHOD_ARTIFACT01
+LASSO_SAML_CONFIRMATION_METHOD_BEARER
+LASSO_SAML_CONFIRMATION_METHOD_HOLDER_OF_KEY
+LASSO_SAML_CONFIRMATION_METHOD_SENDER_VOUCHES
+LASSO_SAML_MAJOR_VERSION_N
+LASSO_SAML_MINOR_VERSION_N
+LASSO_SAML_PROTOCOL_HREF
+LASSO_SAML_PROTOCOL_PREFIX
+LASSO_SAML_STATUS_CODE_REQUESTER
+LASSO_SAML_STATUS_CODE_REQUEST_DENIED
+LASSO_SAML_STATUS_CODE_REQUEST_VERSION_DEPRECATED
+LASSO_SAML_STATUS_CODE_REQUEST_VERSION_TOO_HIGH
+LASSO_SAML_STATUS_CODE_REQUEST_VERSION_TOO_LOW
+LASSO_SAML_STATUS_CODE_RESOURCE_NOT_RECOGNIZED
+LASSO_SAML_STATUS_CODE_RESPONDER
+LASSO_SAML_STATUS_CODE_SUCCESS
+LASSO_SAML_STATUS_CODE_TOO_MANY_RESPONSES
+LASSO_SAML_STATUS_CODE_VERSION_MISMATCH
+LASSO_SERVER_ERROR_ADD_PROVIDER_FAILED
+LASSO_SERVER_ERROR_ADD_PROVIDER_PROTOCOL_MISMATCH
+LASSO_SERVER_ERROR_INVALID_XML
+LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND
+LASSO_SERVER_ERROR_SET_ENCRYPTION_PRIVATE_KEY_FAILED
+LASSO_SIGNATURE_METHOD_ATTRIBUTE
+LASSO_SIGNATURE_METHOD_DSA_SHA1
+LASSO_SIGNATURE_METHOD_LAST
+LASSO_SIGNATURE_METHOD_RSA_SHA1
+LASSO_SIGNATURE_TYPE_ATTRIBUTE
+LASSO_SIGNATURE_TYPE_LAST
+LASSO_SIGNATURE_TYPE_NONE
+LASSO_SIGNATURE_TYPE_SIMPLE
+LASSO_SIGNATURE_TYPE_WITHX509
+LASSO_SOAP_ENV_ACTOR
+LASSO_SOAP_ENV_HREF
+LASSO_SOAP_ENV_PREFIX
+LASSO_SOAP_ERROR_MISSING_BODY
+LASSO_SOAP_ERROR_MISSING_ENVELOPE
+LASSO_SOAP_ERROR_MISSING_HEADER
+LASSO_SOAP_ERROR_MISSING_SOAP_FAULT_DETAIL
+LASSO_SOAP_ERROR_REDIRECT_REQUEST_FAULT
+LASSO_SOAP_FAULT_CODE_CLIENT
+LASSO_SOAP_FAULT_CODE_MUST_UNDERSTAND
+LASSO_SOAP_FAULT_CODE_SERVER
+LASSO_SOAP_FAULT_CODE_VERSION_MISMATCH
+LASSO_SOAP_FAULT_REDIRECT_REQUEST
+LASSO_WSF_ENABLED
+LASSO_WSF_PROFILE_ERROR_INVALID_OR_MISSING_REFERENCE_TO_MESSAGE_ID
+LASSO_WSF_PROFILE_ERROR_MISSING_ASSERTION_ID
+LASSO_WSF_PROFILE_ERROR_MISSING_CORRELATION
+LASSO_WSF_PROFILE_ERROR_MISSING_CREDENTIAL_REF
+LASSO_WSF_PROFILE_ERROR_MISSING_DESCRIPTION
+LASSO_WSF_PROFILE_ERROR_MISSING_ENDPOINT
+LASSO_WSF_PROFILE_ERROR_MISSING_RESOURCE_ID
+LASSO_WSF_PROFILE_ERROR_MISSING_SECURITY
+LASSO_WSF_PROFILE_ERROR_MISSING_SENDER_ID
+LASSO_WSF_PROFILE_ERROR_REDIRECT_REQUEST
+LASSO_WSF_PROFILE_ERROR_REDIRECT_REQUEST_UNSUPPORTED_BY_REQUESTER
+LASSO_WSF_PROFILE_ERROR_SECURITY_MECHANISM_CHECK_FAILED
+LASSO_WSF_PROFILE_ERROR_SERVER_INTERACTION_REQUIRED
+LASSO_WSF_PROFILE_ERROR_SERVER_INTERACTION_REQUIRED_FOR_DATA
+LASSO_WSF_PROFILE_ERROR_SOAP_FAULT
+LASSO_WSF_PROFILE_ERROR_UNKNOWN_STATUS_CODE
+LASSO_WSF_PROFILE_ERROR_UNSUPPORTED_SECURITY_MECHANISM
+LASSO_WSSEC_ERROR_BAD_PASSWORD
+LASSO_WSSEC_ERROR_MISSING_SECURITY_TOKEN
+LASSO_WSUTIL1_HREF
+LASSO_WSUTIL1_PREFIX
+LASSO_XML_ERROR_ATTR_NOT_FOUND
+LASSO_XML_ERROR_ATTR_VALUE_NOT_FOUND
+LASSO_XML_ERROR_INVALID_FILE
+LASSO_XML_ERROR_MISSING_NAMESPACE
+LASSO_XML_ERROR_NODE_CONTENT_NOT_FOUND
+LASSO_XML_ERROR_NODE_NOT_FOUND
+LASSO_XML_ERROR_OBJECT_CONSTRUCTION_FAILED
+LASSO_XML_ERROR_SCHEMA_INVALID_FRAGMENT
+LASSO_XSI_HREF
+LASSO_XSI_PREFIX
+struct LassoAssertionQuery { LassoAssertionQueryPrivate* private_data }
+LassoAssertionQueryRequestType
+LassoCheckVersionMode
+struct LassoDefederation { }
+struct LassoDsKeyInfo { LassoDsKeyValue* KeyValue }
+struct LassoDsKeyValue { LassoDsRsaKeyValue* RSAKeyValue }
+struct LassoDsRsaKeyValue { char* Modulus, char* Exponent }
+struct LassoEcp { gchar* assertionConsumerURL, LassoEcpPrivate* private_data }
+LassoEncryptionMode
+LassoEncryptionSymKeyType
+struct LassoFederation { gchar* remote_providerID, LassoNode* local_nameIdentifier, LassoNode* remote_nameIdentifier, LassoFederationPrivate* private_data }
+LassoHttpMethod
+struct LassoIdentity { GHashTable* federations, gboolean is_dirty, LassoIdentityPrivate* private_data }
+struct LassoLecp { LassoLibAuthnRequestEnvelope* authnRequestEnvelope, LassoLibAuthnResponseEnvelope* authnResponseEnvelope, char* assertionConsumerServiceURL }
+struct LassoLibAssertion { char* InResponseTo }
+struct LassoLibAuthenticationStatement { LassoLibAuthnContext* AuthnContext, char* ReauthenticateOnOrAfter, char* SessionIndex }
+struct LassoLibAuthnContext { char* AuthnContextClassRef, char* AuthnContextStatementRef }
+struct LassoLibAuthnRequest { GList* Extension, char* ProviderID, char* AffiliationID, char* NameIDPolicy, gboolean ForceAuthn, gboolean IsPassive, char* ProtocolProfile, char* AssertionConsumerServiceID, LassoLibRequestAuthnContext* RequestAuthnContext, char* RelayState, LassoLibScoping* Scoping, char* consent }
+struct LassoLibAuthnRequestEnvelope { GList* Extension, LassoLibAuthnRequest* AuthnRequest, char* ProviderID, char* ProviderName, char* AssertionConsumerServiceURL, LassoLibIDPList* IDPList, gboolean IsPassive }
+struct LassoLibAuthnResponse { GList* Extension, char* ProviderID, char* RelayState, char* consent }
+struct LassoLibAuthnResponseEnvelope { GList* Extension, LassoLibAuthnResponse* AuthnResponse, char* AssertionConsumerServiceURL }
+struct LassoLibFederationTerminationNotification { GList* Extension, char* ProviderID, LassoSamlNameIdentifier* NameIdentifier, char* consent, char* RelayState }
+struct LassoLibIDPEntries { GList* IDPEntry }
+struct LassoLibIDPEntry { char* ProviderID, char* ProviderName, char* Loc }
+struct LassoLibIDPList { LassoLibIDPEntries* IDPEntries, char* GetComplete }
+struct LassoLibLogoutRequest { GList* Extension, char* ProviderID, LassoSamlNameIdentifier* NameIdentifier, char* SessionIndex, char* RelayState, char* consent, char* NotOnOrAfter }
+struct LassoLibLogoutResponse { }
+struct LassoLibNameIdentifierMappingRequest { GList* Extension, char* ProviderID, LassoSamlNameIdentifier* NameIdentifier, char* TargetNamespace, char* consent }
+struct LassoLibNameIdentifierMappingResponse { GList* Extension, char* ProviderID, LassoSamlpStatus* Status, LassoSamlNameIdentifier* NameIdentifier }
+struct LassoLibRegisterNameIdentifierRequest { GList* Extension, char* ProviderID, LassoSamlNameIdentifier* IDPProvidedNameIdentifier, LassoSamlNameIdentifier* SPProvidedNameIdentifier, LassoSamlNameIdentifier* OldProvidedNameIdentifier, char* RelayState }
+struct LassoLibRegisterNameIdentifierResponse { }
+struct LassoLibRequestAuthnContext { GList* AuthnContextClassRef, GList* AuthnContextStatementRef, char* AuthnContextComparison }
+struct LassoLibScoping { int ProxyCount, LassoLibIDPList* IDPList }
+struct LassoLibStatusResponse { GList* Extension, char* ProviderID, LassoSamlpStatus* Status, char* RelayState }
+struct LassoLibSubject { LassoSamlNameIdentifier* IDPProvidedNameIdentifier }
+struct LassoLogin { LassoLoginProtocolProfile protocolProfile, gchar* assertionArtifact, LassoSamlAssertion* assertion, gchar* nameIDPolicy, LassoHttpMethod http_method, LassoLoginPrivate* private_data }
+LassoLoginProtocolProfile
+struct LassoLogout { LassoNode* initial_request, LassoNode* initial_response, gchar* initial_remote_providerID, gint providerID_index, LassoHttpMethod initial_http_request_method, LassoLogoutPrivate* private_data }
+LassoMdProtocolType
+LassoMessageFormat
+struct LassoMiscTextNode { char* content, char* name, char* ns_href, char* ns_prefix, gboolean text_child }
+struct LassoNameIdManagement { }
+struct LassoNameIdentifierMapping { gchar* targetNameIdentifier }
+struct LassoNameRegistration { LassoSamlNameIdentifier* oldNameIdentifier }
+struct LassoNode { }
+struct LassoProfile { LassoServer* server, LassoNode* request, LassoNode* response, LassoNode* nameIdentifier, gchar* remote_providerID, gchar* msg_url, gchar* msg_body, gchar* msg_relayState, LassoIdentity* identity, LassoSession* session, LassoHttpMethod http_request_method, gint signature_status, LassoProfilePrivate* private_data }
+LassoProfileSignatureHint
+LassoProfileSignatureVerifyHint
+LassoProtocolConformance
+struct LassoProvider { gchar* ProviderID, LassoProviderRole role, char* metadata_filename, gchar* public_key, gchar* ca_cert_chain, LassoProviderPrivate* private_data }
+LassoProviderRole
+LassoRequestType
+struct LassoSaml2Action { char* content, char* Namespace }
+struct LassoSaml2Advice { GList* AssertionIDRef, GList* AssertionURIRef, GList* Assertion, GList* EncryptedAssertion }
+struct LassoSaml2Assertion { LassoSaml2NameID* Issuer, LassoSaml2Subject* Subject, LassoSaml2Conditions* Conditions, LassoSaml2Advice* Advice, GList* Statement, GList* AuthnStatement, GList* AuthzDecisionStatement, GList* AttributeStatement, char* Version, char* ID, char* IssueInstant, LassoSignatureType sign_type, LassoSignatureMethod sign_method, char* private_key_file, char* certificate_file, gboolean encryption_activated, char* encryption_public_key_str, LassoEncryptionSymKeyType encryption_sym_key_type }
+LassoSaml2AssertionValidationState
+struct LassoSaml2Attribute { GList* AttributeValue, char* Name, char* NameFormat, char* FriendlyName }
+struct LassoSaml2AttributeStatement { GList* Attribute, GList* EncryptedAttribute }
+struct LassoSaml2AttributeValue { GList* any }
+struct LassoSaml2AudienceRestriction { char* Audience }
+struct LassoSaml2AuthnContext { char* AuthnContextClassRef, char* AuthnContextDeclRef, char* AuthenticatingAuthority }
+struct LassoSaml2AuthnStatement { LassoSaml2SubjectLocality* SubjectLocality, LassoSaml2AuthnContext* AuthnContext, char* AuthnInstant, char* SessionIndex, char* SessionNotOnOrAfter }
+struct LassoSaml2AuthzDecisionStatement { LassoSaml2Action* Action, LassoSaml2Evidence* Evidence, char* Resource, char* Decision }
+struct LassoSaml2BaseIDAbstract { char* NameQualifier, char* SPNameQualifier }
+struct LassoSaml2ConditionAbstract { }
+struct LassoSaml2Conditions { GList* Condition, GList* AudienceRestriction, GList* OneTimeUse, GList* ProxyRestriction, char* NotBefore, char* NotOnOrAfter }
+struct LassoSaml2EncryptedElement { xmlNode* EncryptedData, GList* EncryptedKey, LassoNode* original_data }
+struct LassoSaml2Evidence { GList* AssertionIDRef, GList* AssertionURIRef, GList* Assertion, GList* EncryptedAssertion }
+struct LassoSaml2KeyInfoConfirmationData { }
+struct LassoSaml2NameID { char* content, char* Format, char* SPProvidedID, char* NameQualifier, char* SPNameQualifier }
+struct LassoSaml2OneTimeUse { }
+struct LassoSaml2ProxyRestriction { char* Audience, char* Count }
+struct LassoSaml2StatementAbstract { }
+struct LassoSaml2Subject { LassoSaml2BaseIDAbstract* BaseID, LassoSaml2NameID* NameID, LassoSaml2EncryptedElement* EncryptedID, LassoSaml2SubjectConfirmation* SubjectConfirmation }
+struct LassoSaml2SubjectConfirmation { LassoSaml2BaseIDAbstract* BaseID, LassoSaml2NameID* NameID, LassoSaml2EncryptedElement* EncryptedID, LassoSaml2SubjectConfirmationData* SubjectConfirmationData, char* Method }
+struct LassoSaml2SubjectConfirmationData { char* NotBefore, char* NotOnOrAfter, char* Recipient, char* InResponseTo, char* Address }
+struct LassoSaml2SubjectLocality { char* Address, char* DNSName }
+struct LassoSamlAdvice { GList* AssertionIDReference, LassoNode* Assertion }
+struct LassoSamlAssertion { LassoSamlConditions* Conditions, LassoSamlAdvice* Advice, LassoSamlSubjectStatement* SubjectStatement, LassoSamlAuthenticationStatement* AuthenticationStatement, LassoSamlAttributeStatement* AttributeStatement, int MajorVersion, int MinorVersion, char* AssertionID, char* Issuer, char* IssueInstant, LassoSignatureType sign_type, LassoSignatureMethod sign_method, char* private_key_file, char* certificate_file }
+struct LassoSamlAttribute { gchar* attributeName, gchar* attributeNameSpace, GList* AttributeValue }
+struct LassoSamlAttributeDesignator { char* AttributeName, char* AttributeNamespace }
+struct LassoSamlAttributeStatement { GList* Attribute }
+struct LassoSamlAttributeValue { GList* any }
+struct LassoSamlAudienceRestrictionCondition { GList* Audience }
+struct LassoSamlAuthenticationStatement { LassoSamlSubjectLocality* SubjectLocality, GList* AuthorityBinding, char* AuthenticationMethod, char* AuthenticationInstant }
+struct LassoSamlAuthorityBinding { char* AuthorityKind, char* Location, char* Binding }
+struct LassoSamlConditionAbstract { }
+struct LassoSamlConditions { GList* Condition, GList* AudienceRestrictionCondition, char* NotBefore, char* NotOnOrAfter }
+struct LassoSamlNameIdentifier { char* NameQualifier, char* Format, char* content }
+struct LassoSamlStatementAbstract { }
+struct LassoSamlSubject { LassoSamlNameIdentifier* NameIdentifier, LassoSamlSubjectConfirmation* SubjectConfirmation, LassoSaml2EncryptedElement* EncryptedNameIdentifier }
+struct LassoSamlSubjectConfirmation { GList* ConfirmationMethod, char* SubjectConfirmationData, LassoDsKeyInfo* KeyInfo }
+struct LassoSamlSubjectLocality { char* IPAddress, char* DNSAddress }
+struct LassoSamlSubjectStatement { }
+struct LassoSamlSubjectStatementAbstract { LassoSamlSubject* Subject }
+struct LassoSamlp2ArtifactResolve { char* Artifact }
+struct LassoSamlp2ArtifactResponse { LassoNode* any }
+struct LassoSamlp2AssertionIDRequest { char* AssertionIDRef }
+struct LassoSamlp2AttributeQuery { GList* Attribute }
+struct LassoSamlp2AuthnQuery { LassoSamlp2RequestedAuthnContext* RequestedAuthnContext, char* SessionIndex }
+struct LassoSamlp2AuthnRequest { LassoSaml2Subject* Subject, LassoSamlp2NameIDPolicy* NameIDPolicy, LassoSaml2Conditions* Conditions, LassoSamlp2RequestedAuthnContext* RequestedAuthnContext, LassoSamlp2Scoping* Scoping, gboolean ForceAuthn, gboolean IsPassive, char* ProtocolBinding, int AssertionConsumerServiceIndex, char* AssertionConsumerServiceURL, int AttributeConsumingServiceIndex, char* ProviderName, G_GNUC_DEPRECATED char }
+struct LassoSamlp2AuthzDecisionQuery { LassoSaml2Action* Action, LassoSaml2Evidence* Evidence, char* Resource }
+struct LassoSamlp2Extensions { }
+struct LassoSamlp2IDPEntry { char* ProviderID, char* Name, char* Loc }
+struct LassoSamlp2IDPList { LassoSamlp2IDPEntry* IDPEntry, char* GetComplete }
+struct LassoSamlp2LogoutRequest { LassoSaml2BaseIDAbstract* BaseID, LassoSaml2NameID* NameID, LassoSaml2EncryptedElement* EncryptedID, char* SessionIndex, char* Reason, char* NotOnOrAfter, G_GNUC_DEPRECATED char }
+struct LassoSamlp2LogoutResponse { G_GNUC_DEPRECATED char }
+struct LassoSamlp2ManageNameIDRequest { LassoSaml2NameID* NameID, LassoSaml2EncryptedElement* EncryptedID, char* NewID, LassoSaml2EncryptedElement* NewEncryptedID, LassoSamlp2Terminate* Terminate }
+struct LassoSamlp2ManageNameIDResponse { }
+struct LassoSamlp2NameIDMappingRequest { LassoSaml2BaseIDAbstract* BaseID, LassoSaml2NameID* NameID, LassoSaml2EncryptedElement* EncryptedID, LassoSamlp2NameIDPolicy* NameIDPolicy }
+struct LassoSamlp2NameIDMappingResponse { LassoSaml2NameID* NameID, LassoSaml2EncryptedElement* EncryptedID }
+struct LassoSamlp2NameIDPolicy { char* Format, char* SPNameQualifier, gboolean AllowCreate }
+struct LassoSamlp2RequestAbstract { LassoSaml2NameID* Issuer, LassoSamlp2Extensions* Extensions, char* ID, char* Version, char* IssueInstant, char* Destination, char* Consent, LassoSignatureType sign_type, LassoSignatureMethod sign_method, char* private_key_file, char* certificate_file }
+struct LassoSamlp2RequestedAuthnContext { GList* AuthnContextClassRef, GList* AuthnContextDeclRef, char* Comparison }
+struct LassoSamlp2Response { GList* Assertion, GList* EncryptedAssertion }
+struct LassoSamlp2Scoping { LassoSamlp2IDPList* IDPList, char* RequesterID, char* ProxyCount }
+struct LassoSamlp2Status { LassoSamlp2StatusCode* StatusCode, char* StatusMessage, LassoSamlp2StatusDetail* StatusDetail }
+struct LassoSamlp2StatusCode { LassoSamlp2StatusCode* StatusCode, char* Value }
+struct LassoSamlp2StatusDetail { }
+struct LassoSamlp2StatusResponse { LassoSaml2NameID* Issuer, LassoSamlp2Extensions* Extensions, LassoSamlp2Status* Status, char* ID, char* InResponseTo, char* Version, char* IssueInstant, char* Destination, char* Consent, LassoSignatureType sign_type, LassoSignatureMethod sign_method, char* private_key_file, char* certificate_file }
+struct LassoSamlp2SubjectQueryAbstract { LassoSaml2Subject* Subject }
+struct LassoSamlp2Terminate { }
+struct LassoSamlpRequest { char* AssertionArtifact }
+struct LassoSamlpRequestAbstract { GList* RespondWith, char* RequestID, int MajorVersion, int MinorVersion, char* IssueInstant, LassoSignatureType sign_type, LassoSignatureMethod sign_method, char* private_key_file, char* certificate_file }
+struct LassoSamlpResponse { LassoSamlpStatus* Status, GList* Assertion }
+struct LassoSamlpResponseAbstract { char* ResponseID, char* InResponseTo, int MajorVersion, int MinorVersion, char* IssueInstant, char* Recipient, LassoSignatureType sign_type, LassoSignatureMethod sign_method, char* private_key_file, char* certificate_file }
+struct LassoSamlpStatus { LassoSamlpStatusCode* StatusCode, char* StatusMessage }
+struct LassoSamlpStatusCode { LassoSamlpStatusCode* StatusCode, char* Value }
+struct LassoServer { GHashTable* providers, GHashTable* services, gchar* private_key, gchar* private_key_password, gchar* certificate, LassoSignatureMethod signature_method, LassoServerPrivate* private_data }
+struct LassoSession { GHashTable* assertions, gboolean is_dirty, LassoSessionPrivate* private_data }
+LassoSignatureMethod
+LassoSignatureType
+struct LassoSoapBody { GList* any, gchar* Id }
+struct LassoSoapDetail { GList* any }
+struct LassoSoapEnvelope { LassoSoapHeader* Header, LassoSoapBody* Body }
+struct LassoSoapFault { gchar* faultcode, gchar* faultstring, GList* faultactor, LassoSoapDetail* Detail }
+struct LassoSoapHeader { GList* Other }
+lasso_error_t lasso_assertion_query_add_attribute_request ( LassoAssertionQuery* assertion_query, char* format, char* name )
+lasso_error_t lasso_assertion_query_build_request_msg ( LassoAssertionQuery* assertion_query )
+lasso_error_t lasso_assertion_query_build_response_msg ( LassoAssertionQuery* assertion_query )
+None lasso_assertion_query_destroy ( LassoAssertionQuery* assertion_query )
+LassoAssertionQueryRequestType lasso_assertion_query_get_request_type ( LassoAssertionQuery* assertion_query )
+GType lasso_assertion_query_get_type ( )
+lasso_error_t lasso_assertion_query_init_request ( LassoAssertionQuery* assertion_query, char* remote_provider_id, LassoHttpMethod http_method, LassoAssertionQueryRequestType query_request_type )
+LassoAssertionQuery* lasso_assertion_query_new ( LassoServer* server )
+lasso_error_t lasso_assertion_query_process_request_msg ( LassoAssertionQuery* assertion_query, gchar* request_msg )
+lasso_error_t lasso_assertion_query_process_response_msg ( LassoAssertionQuery* assertion_query, gchar* response_msg )
+lasso_error_t lasso_assertion_query_validate_request ( LassoAssertionQuery* assertion_query )
+char* lasso_build_unique_id ( unsigned int size )
+int lasso_check_version ( int major, int minor, int subminor, LassoCheckVersionMode mode )
+lasso_error_t lasso_defederation_build_notification_msg ( LassoDefederation* defederation )
+None lasso_defederation_destroy ( LassoDefederation* defederation )
+GType lasso_defederation_get_type ( )
+lasso_error_t lasso_defederation_init_notification ( LassoDefederation* defederation, gchar* remote_providerID, LassoHttpMethod http_method )
+LassoDefederation* lasso_defederation_new ( LassoServer* server )
+lasso_error_t lasso_defederation_process_notification_msg ( LassoDefederation* defederation, gchar* notification_msg )
+lasso_error_t lasso_defederation_validate_notification ( LassoDefederation* defederation )
+GType lasso_ds_key_info_get_type ( )
+LassoDsKeyInfo* lasso_ds_key_info_new ( )
+GType lasso_ds_key_value_get_type ( )
+LassoDsKeyValue* lasso_ds_key_value_new ( )
+GType lasso_ds_rsa_key_value_get_type ( )
+LassoDsRsaKeyValue* lasso_ds_rsa_key_value_new ( )
+None lasso_ecp_destroy ( LassoEcp* ecp )
+GType lasso_ecp_get_type ( )
+LassoEcp* lasso_ecp_new ( LassoServer* server )
+lasso_error_t lasso_ecp_process_authn_request_msg ( LassoEcp* ecp, const char* authn_request_msg )
+lasso_error_t lasso_ecp_process_response_msg ( LassoEcp* ecp, const char* response_msg )
+None lasso_federation_build_local_name_identifier ( LassoFederation* federation, const gchar* nameQualifier, const gchar* format, const gchar* content )
+None lasso_federation_destroy ( LassoFederation* federation )
+GType lasso_federation_get_type ( )
+LassoFederation* lasso_federation_new ( const gchar* remote_providerID )
+gboolean lasso_federation_verify_name_identifier ( LassoFederation* federation, LassoNode* name_identifier )
+char* lasso_get_prefix_for_dst_service_href ( const char* href )
+gchar* lasso_get_prefix_for_idwsf2_dst_service_href ( const gchar* href )
+None lasso_identity_destroy ( LassoIdentity* identity )
+gchar* lasso_identity_dump ( LassoIdentity* identity )
+LassoFederation* lasso_identity_get_federation ( LassoIdentity* identity, const char* providerID )
+GType lasso_identity_get_type ( )
+LassoIdentity* lasso_identity_new ( )
+LassoIdentity* lasso_identity_new_from_dump ( const gchar* dump )
+lasso_error_t lasso_init ( )
+lasso_error_t lasso_lecp_build_authn_request_envelope_msg ( LassoLecp* lecp )
+lasso_error_t lasso_lecp_build_authn_request_msg ( LassoLecp* lecp )
+lasso_error_t lasso_lecp_build_authn_response_envelope_msg ( LassoLecp* lecp )
+lasso_error_t lasso_lecp_build_authn_response_msg ( LassoLecp* lecp )
+None lasso_lecp_destroy ( LassoLecp* lecp )
+GType lasso_lecp_get_type ( )
+lasso_error_t lasso_lecp_init_authn_request ( LassoLecp* lecp, const char* remote_providerID )
+LassoLecp* lasso_lecp_new ( LassoServer* server )
+lasso_error_t lasso_lecp_process_authn_request_envelope_msg ( LassoLecp* lecp, const char* request_msg )
+lasso_error_t lasso_lecp_process_authn_request_msg ( LassoLecp* lecp, const char* authn_request_msg )
+lasso_error_t lasso_lecp_process_authn_response_envelope_msg ( LassoLecp* lecp, const char* response_msg )
+GType lasso_lib_assertion_get_type ( )
+LassoLibAssertion* lasso_lib_assertion_new ( )
+LassoLibAssertion* lasso_lib_assertion_new_full ( const char* issuer, const char* requestID, const char* audience, const char* notBefore, const char* notOnOrAfter )
+GType lasso_lib_authentication_statement_get_type ( )
+LassoLibAuthenticationStatement* lasso_lib_authentication_statement_new ( )
+LassoLibAuthenticationStatement* lasso_lib_authentication_statement_new_full ( const char* authenticationMethod, const char* authenticationInstant, const char* reauthenticateOnOrAfter, LassoSamlNameIdentifier* sp_identifier, LassoSamlNameIdentifier* idp_identifier )
+GType lasso_lib_authn_context_get_type ( )
+LassoNode* lasso_lib_authn_context_new ( )
+GType lasso_lib_authn_request_envelope_get_type ( )
+LassoLibAuthnRequestEnvelope* lasso_lib_authn_request_envelope_new ( )
+LassoLibAuthnRequestEnvelope* lasso_lib_authn_request_envelope_new_full ( LassoLibAuthnRequest* authnRequest, char* providerID, char* assertionConsumerServiceURL )
+GType lasso_lib_authn_request_get_type ( )
+LassoLibAuthnRequest* lasso_lib_authn_request_new ( )
+GType lasso_lib_authn_response_envelope_get_type ( )
+LassoLibAuthnResponseEnvelope* lasso_lib_authn_response_envelope_new ( LassoLibAuthnResponse* response, char* assertionConsumerServiceURL )
+GType lasso_lib_authn_response_get_type ( )
+LassoNode* lasso_lib_authn_response_new ( char* providerID, LassoLibAuthnRequest* request )
+GType lasso_lib_federation_termination_notification_get_type ( )
+LassoNode* lasso_lib_federation_termination_notification_new ( )
+LassoNode* lasso_lib_federation_termination_notification_new_full ( char* providerID, LassoSamlNameIdentifier* nameIdentifier, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_idp_entries_get_type ( )
+LassoNode* lasso_lib_idp_entries_new ( )
+GType lasso_lib_idp_entry_get_type ( )
+LassoNode* lasso_lib_idp_entry_new ( )
+GType lasso_lib_idp_list_get_type ( )
+LassoNode* lasso_lib_idp_list_new ( )
+GType lasso_lib_logout_request_get_type ( )
+LassoNode* lasso_lib_logout_request_new ( )
+LassoNode* lasso_lib_logout_request_new_full ( char* providerID, LassoSamlNameIdentifier* nameIdentifier, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_logout_response_get_type ( )
+LassoNode* lasso_lib_logout_response_new ( )
+LassoNode* lasso_lib_logout_response_new_full ( char* providerID, const char* statusCodeValue, LassoLibLogoutRequest* request, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_name_identifier_mapping_request_get_type ( )
+LassoNode* lasso_lib_name_identifier_mapping_request_new ( )
+LassoNode* lasso_lib_name_identifier_mapping_request_new_full ( char* providerID, LassoSamlNameIdentifier* nameIdentifier, const char* targetNamespace, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_name_identifier_mapping_response_get_type ( )
+LassoNode* lasso_lib_name_identifier_mapping_response_new ( )
+LassoNode* lasso_lib_name_identifier_mapping_response_new_full ( char* provideRID, const char* statusCodeValue, LassoLibNameIdentifierMappingRequest* request, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_register_name_identifier_request_get_type ( )
+LassoNode* lasso_lib_register_name_identifier_request_new ( )
+LassoNode* lasso_lib_register_name_identifier_request_new_full ( const char* providerID, LassoSamlNameIdentifier* idpNameIdentifier, LassoSamlNameIdentifier* spNameIdentifier, LassoSamlNameIdentifier* oldNameIdentifier, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_register_name_identifier_response_get_type ( )
+LassoNode* lasso_lib_register_name_identifier_response_new ( )
+LassoNode* lasso_lib_register_name_identifier_response_new_full ( const char* providerID, const char* statusCodeValue, LassoLibRegisterNameIdentifierRequest* request, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_request_authn_context_get_type ( )
+LassoLibRequestAuthnContext* lasso_lib_request_authn_context_new ( )
+GType lasso_lib_scoping_get_type ( )
+LassoLibScoping* lasso_lib_scoping_new ( )
+GType lasso_lib_status_response_get_type ( )
+LassoNode* lasso_lib_status_response_new ( )
+GType lasso_lib_subject_get_type ( )
+LassoLibSubject* lasso_lib_subject_new ( )
+lasso_error_t lasso_login_accept_sso ( LassoLogin* login )
+lasso_error_t lasso_login_build_artifact_msg ( LassoLogin* login, LassoHttpMethod http_method )
+lasso_error_t lasso_login_build_assertion ( LassoLogin* login, const char* authenticationMethod, const char* authenticationInstant, const char* reauthenticateOnOrAfter, const char* notBefore, const char* notOnOrAfter )
+lasso_error_t lasso_login_build_authn_request_msg ( LassoLogin* login )
+lasso_error_t lasso_login_build_authn_response_msg ( LassoLogin* login )
+lasso_error_t lasso_login_build_request_msg ( LassoLogin* login )
+lasso_error_t lasso_login_build_response_msg ( LassoLogin* login, gchar* remote_providerID )
+None lasso_login_destroy ( LassoLogin* login )
+gchar* lasso_login_dump ( LassoLogin* login )
+LassoNode* lasso_login_get_assertion ( LassoLogin* login )
+GType lasso_login_get_type ( )
+lasso_error_t lasso_login_init_authn_request ( LassoLogin* login, const gchar* remote_providerID, LassoHttpMethod http_method )
+lasso_error_t lasso_login_init_idp_initiated_authn_request ( LassoLogin* login, const gchar* remote_providerID )
+lasso_error_t lasso_login_init_request ( LassoLogin* login, gchar* response_msg, LassoHttpMethod response_http_method )
+gboolean lasso_login_must_ask_for_consent ( LassoLogin* login )
+gboolean lasso_login_must_authenticate ( LassoLogin* login )
+LassoLogin* lasso_login_new ( LassoServer* server )
+LassoLogin* lasso_login_new_from_dump ( LassoServer* server, const gchar* dump )
+lasso_error_t lasso_login_process_authn_request_msg ( LassoLogin* login, const char* authn_request_msg )
+lasso_error_t lasso_login_process_authn_response_msg ( LassoLogin* login, gchar* authn_response_msg )
+lasso_error_t lasso_login_process_paos_response_msg ( LassoLogin* login, gchar* msg )
+lasso_error_t lasso_login_process_request_msg ( LassoLogin* login, gchar* request_msg )
+lasso_error_t lasso_login_process_response_msg ( LassoLogin* login, gchar* response_msg )
+lasso_error_t lasso_login_validate_request_msg ( LassoLogin* login, gboolean authentication_result, gboolean is_consent_obtained )
+lasso_error_t lasso_logout_build_request_msg ( LassoLogout* logout )
+lasso_error_t lasso_logout_build_response_msg ( LassoLogout* logout )
+None lasso_logout_destroy ( LassoLogout* logout )
+gchar* lasso_logout_dump ( LassoLogout* logout )
+gchar* lasso_logout_get_next_providerID ( LassoLogout* logout )
+GType lasso_logout_get_type ( )
+lasso_error_t lasso_logout_init_request ( LassoLogout* logout, gchar* remote_providerID, LassoHttpMethod request_method )
+LassoLogout* lasso_logout_new ( LassoServer* server )
+LassoLogout* lasso_logout_new_from_dump ( LassoServer* server, const gchar* dump )
+lasso_error_t lasso_logout_process_request_msg ( LassoLogout* logout, gchar* request_msg )
+lasso_error_t lasso_logout_process_response_msg ( LassoLogout* logout, gchar* response_msg )
+lasso_error_t lasso_logout_reset_providerID_index ( LassoLogout* logout )
+lasso_error_t lasso_logout_validate_request ( LassoLogout* logout )
+GType lasso_misc_text_node_get_type ( )
+xmlNode* lasso_misc_text_node_get_xml_content ( LassoMiscTextNode* misc_text_node )
+LassoNode* lasso_misc_text_node_new ( )
+LassoMiscTextNode* lasso_misc_text_node_new_with_string ( const char* content )
+LassoMiscTextNode* lasso_misc_text_node_new_with_xml_node ( xmlNode* xml_node )
+None lasso_misc_text_node_set_xml_content ( LassoMiscTextNode* misc_text_node, xmlNode* node )
+lasso_error_t lasso_name_id_management_build_request_msg ( LassoNameIdManagement* name_id_management )
+lasso_error_t lasso_name_id_management_build_response_msg ( LassoNameIdManagement* name_id_management )
+None lasso_name_id_management_destroy ( LassoNameIdManagement* name_id_management )
+char* lasso_name_id_management_dump ( LassoNameIdManagement* name_id_management )
+GType lasso_name_id_management_get_type ( )
+lasso_error_t lasso_name_id_management_init_request ( LassoNameIdManagement* name_id_management, char* remote_provider_id, char* new_name_id, LassoHttpMethod http_method )
+LassoNameIdManagement* lasso_name_id_management_new ( LassoServer* server )
+LassoNameIdManagement* lasso_name_id_management_new_from_dump ( LassoServer* server, const char* dump )
+lasso_error_t lasso_name_id_management_process_request_msg ( LassoNameIdManagement* name_id_management, gchar* request_msg )
+lasso_error_t lasso_name_id_management_process_response_msg ( LassoNameIdManagement* name_id_management, gchar* response_msg )
+lasso_error_t lasso_name_id_management_validate_request ( LassoNameIdManagement* name_id_management )
+lasso_error_t lasso_name_identifier_mapping_build_request_msg ( LassoNameIdentifierMapping* mapping )
+lasso_error_t lasso_name_identifier_mapping_build_response_msg ( LassoNameIdentifierMapping* mapping )
+None lasso_name_identifier_mapping_destroy ( LassoNameIdentifierMapping* mapping )
+GType lasso_name_identifier_mapping_get_type ( )
+lasso_error_t lasso_name_identifier_mapping_init_request ( LassoNameIdentifierMapping* mapping, gchar* targetNamespace, gchar* remote_providerID )
+LassoNameIdentifierMapping* lasso_name_identifier_mapping_new ( LassoServer* server )
+lasso_error_t lasso_name_identifier_mapping_process_request_msg ( LassoNameIdentifierMapping* mapping, gchar* request_msg )
+lasso_error_t lasso_name_identifier_mapping_process_response_msg ( LassoNameIdentifierMapping* mapping, gchar* response_msg )
+lasso_error_t lasso_name_identifier_mapping_validate_request ( LassoNameIdentifierMapping* mapping )
+lasso_error_t lasso_name_registration_build_request_msg ( LassoNameRegistration* name_registration )
+lasso_error_t lasso_name_registration_build_response_msg ( LassoNameRegistration* name_registration )
+None lasso_name_registration_destroy ( LassoNameRegistration* name_registration )
+gchar* lasso_name_registration_dump ( LassoNameRegistration* name_registration )
+GType lasso_name_registration_get_type ( )
+lasso_error_t lasso_name_registration_init_request ( LassoNameRegistration* name_registration, char* remote_providerID, LassoHttpMethod http_method )
+LassoNameRegistration* lasso_name_registration_new ( LassoServer* server )
+LassoNameRegistration* lasso_name_registration_new_from_dump ( LassoServer* server, const char* dump )
+lasso_error_t lasso_name_registration_process_request_msg ( LassoNameRegistration* name_registration, gchar* request_msg )
+lasso_error_t lasso_name_registration_process_response_msg ( LassoNameRegistration* name_registration, gchar* response_msg )
+lasso_error_t lasso_name_registration_validate_request ( LassoNameRegistration* name_registration )
+None lasso_node_cleanup_original_xmlnodes ( LassoNode* node )
+char* lasso_node_debug ( LassoNode* node, int level )
+None lasso_node_destroy ( LassoNode* node )
+char* lasso_node_dump ( LassoNode* node )
+char* lasso_node_export_to_base64 ( LassoNode* node )
+char* lasso_node_export_to_ecp_soap_response ( LassoNode* node, const char* assertionConsumerURL )
+char* lasso_node_export_to_paos_request ( LassoNode* node, const char* issuer, const char* responseConsumerURL, const char* relay_state )
+char* lasso_node_export_to_query ( LassoNode* node, LassoSignatureMethod sign_method, const char* private_key_file )
+char* lasso_node_export_to_query_with_password ( LassoNode* node, LassoSignatureMethod sign_method, const char* private_key_file, const char* private_key_file_password )
+char* lasso_node_export_to_soap ( LassoNode* node )
+gchar* lasso_node_export_to_xml ( LassoNode* node )
+const char* lasso_node_get_name ( LassoNode* node )
+const char* lasso_node_get_namespace ( LassoNode* node )
+xmlNode* lasso_node_get_original_xmlnode ( LassoNode* node )
+GType lasso_node_get_type ( )
+xmlNode* lasso_node_get_xmlNode ( LassoNode* node, gboolean lasso_dump )
+LassoMessageFormat lasso_node_init_from_message ( LassoNode* node, const char* message )
+gboolean lasso_node_init_from_query ( LassoNode* node, const char* query )
+lasso_error_t lasso_node_init_from_xml ( LassoNode* node, xmlNode* xmlnode )
+LassoNode* lasso_node_new ( )
+LassoNode* lasso_node_new_from_dump ( const char* dump )
+LassoNode* lasso_node_new_from_soap ( const char* soap )
+LassoNode* lasso_node_new_from_xmlNode ( xmlNode* node )
+None lasso_node_set_custom_namespace ( LassoNode* node, const char* prefix, const char* href )
+None lasso_node_set_custom_nodename ( LassoNode* node, const char* nodename )
+None lasso_node_set_original_xmlnode ( LassoNode* node, xmlNode* xmlnode )
+char* lasso_profile_get_artifact ( LassoProfile* profile )
+char* lasso_profile_get_artifact_message ( LassoProfile* profile )
+LassoIdentity* lasso_profile_get_identity ( LassoProfile* profile )
+LassoNode* lasso_profile_get_nameIdentifier ( LassoProfile* profile )
+LassoRequestType lasso_profile_get_request_type_from_soap_msg ( const gchar* soap )
+LassoSession* lasso_profile_get_session ( LassoProfile* profile )
+LassoProfileSignatureHint lasso_profile_get_signature_hint ( LassoProfile* profile )
+lasso_error_t lasso_profile_get_signature_status ( LassoProfile* profile )
+LassoProfileSignatureVerifyHint lasso_profile_get_signature_verify_hint ( LassoProfile* profile )
+GType lasso_profile_get_type ( )
+gboolean lasso_profile_is_identity_dirty ( LassoProfile* profile )
+gboolean lasso_profile_is_liberty_query ( const gchar* query )
+gboolean lasso_profile_is_saml_query ( const gchar* query )
+gboolean lasso_profile_is_session_dirty ( LassoProfile* profile )
+None lasso_profile_set_artifact_message ( LassoProfile* profile, const char* message )
+lasso_error_t lasso_profile_set_identity_from_dump ( LassoProfile* profile, const gchar* dump )
+lasso_error_t lasso_profile_set_session_from_dump ( LassoProfile* profile, const gchar* dump )
+None lasso_profile_set_signature_hint ( LassoProfile* profile, LassoProfileSignatureHint signature_hint )
+None lasso_profile_set_signature_verify_hint ( LassoProfile* profile, LassoProfileSignatureVerifyHint signature_verify_hint )
+lasso_error_t lasso_profile_set_soap_fault_response ( LassoProfile* profile, const char* faultcode, const char* faultstring, GList* details )
+LassoProviderRole lasso_profile_sso_role_with ( LassoProfile* profile, const char* remote_provider_id )
+gboolean lasso_provider_accept_http_method ( LassoProvider* provider, LassoProvider* remote_provider, LassoMdProtocolType protocol_type, LassoHttpMethod http_method, gboolean initiate_profile )
+gchar* lasso_provider_get_assertion_consumer_service_url ( LassoProvider* provider, const char* service_id )
+gchar* lasso_provider_get_base64_succinct_id ( const LassoProvider* provider )
+char* lasso_provider_get_cache_duration ( LassoProvider* provider )
+gchar* lasso_provider_get_default_name_id_format ( LassoProvider* provider )
+LassoEncryptionMode lasso_provider_get_encryption_mode ( LassoProvider* provider )
+LassoHttpMethod lasso_provider_get_first_http_method ( LassoProvider* provider, LassoProvider* remote_provider, LassoMdProtocolType protocol_type )
+GList* lasso_provider_get_idp_supported_attributes ( LassoProvider* provider )
+GList* lasso_provider_get_metadata_keys_for_role ( LassoProvider* provider, LassoProviderRole role )
+GList* lasso_provider_get_metadata_list ( LassoProvider* provider, const char* name )
+GList* lasso_provider_get_metadata_list_for_role ( const LassoProvider* provider, LassoProviderRole role, const char* name )
+gchar* lasso_provider_get_metadata_one ( LassoProvider* provider, const char* name )
+char* lasso_provider_get_metadata_one_for_role ( LassoProvider* provider, LassoProviderRole role, const char* name )
+xmlNode* lasso_provider_get_organization ( const LassoProvider* provider )
+LassoProtocolConformance lasso_provider_get_protocol_conformance ( const LassoProvider* provider )
+LassoProviderRole lasso_provider_get_roles ( LassoProvider* provider )
+const char* lasso_provider_get_sp_name_qualifier ( LassoProvider* provider )
+GType lasso_provider_get_type ( )
+char* lasso_provider_get_valid_until ( LassoProvider* provider )
+gboolean lasso_provider_has_protocol_profile ( LassoProvider* provider, LassoMdProtocolType protocol_type, const char* protocol_profile )
+gboolean lasso_provider_match_conformance ( LassoProvider* provider, LassoProvider* another_provider )
+LassoProvider* lasso_provider_new ( LassoProviderRole role, const char* metadata, const char* public_key, const char* ca_cert_chain )
+LassoProvider* lasso_provider_new_from_buffer ( LassoProviderRole role, const char* metadata, const char* public_key, const char* ca_cert_chain )
+LassoProvider* lasso_provider_new_from_dump ( const gchar* dump )
+LassoSaml2EncryptedElement* lasso_provider_saml2_node_encrypt ( const LassoProvider* provider, LassoNode* lasso_node )
+None lasso_provider_set_encryption_mode ( LassoProvider* provider, LassoEncryptionMode encryption_mode )
+None lasso_provider_set_encryption_sym_key_type ( LassoProvider* provider, LassoEncryptionSymKeyType encryption_sym_key_type )
+lasso_error_t lasso_provider_verify_single_node_signature ( LassoProvider* provider, LassoNode* node, const char* id_attr_name )
+None lasso_register_dst_service ( const char* prefix, const char* href )
+None lasso_register_idwsf2_dst_service ( const gchar* prefix, const gchar* href )
+GType lasso_saml2_action_get_type ( )
+LassoNode* lasso_saml2_action_new ( )
+LassoNode* lasso_saml2_action_new_with_string ( char* content )
+GType lasso_saml2_advice_get_type ( )
+LassoNode* lasso_saml2_advice_new ( )
+lasso_error_t lasso_saml2_assertion_add_attribute_with_node ( LassoSaml2Assertion* assertion, const char* name, const char* nameformat, LassoNode* content )
+None lasso_saml2_assertion_add_audience_restriction ( LassoSaml2Assertion* saml2_assertion, const char* providerID )
+None lasso_saml2_assertion_add_proxy_limit ( LassoSaml2Assertion* saml2_assertion, int proxy_count, GList* proxy_audiences )
+LassoSaml2AssertionValidationState lasso_saml2_assertion_allows_proxying ( LassoSaml2Assertion* saml2_assertion )
+LassoSaml2AssertionValidationState lasso_saml2_assertion_allows_proxying_to ( LassoSaml2Assertion* saml2_assertion, const char* audience )
+lasso_error_t lasso_saml2_assertion_decrypt_subject ( LassoSaml2Assertion* assertion, LassoServer* server )
+const char* lasso_saml2_assertion_get_in_response_to ( LassoSaml2Assertion* assertion )
+LassoProvider* lasso_saml2_assertion_get_issuer_provider ( const LassoSaml2Assertion* saml2_assertion, const LassoServer* server )
+LassoSaml2SubjectConfirmationData* lasso_saml2_assertion_get_subject_confirmation_data ( LassoSaml2Assertion* saml2_assertion, gboolean create )
+GType lasso_saml2_assertion_get_type ( )
+gboolean lasso_saml2_assertion_has_audience_restriction ( LassoSaml2Assertion* saml2_assertion )
+gboolean lasso_saml2_assertion_has_one_time_use ( LassoSaml2Assertion* saml2_assertion )
+gboolean lasso_saml2_assertion_is_audience_restricted ( LassoSaml2Assertion* saml2_assertion, char* providerID )
+LassoNode* lasso_saml2_assertion_new ( )
+None lasso_saml2_assertion_set_basic_conditions ( LassoSaml2Assertion* saml2_assertion, time_t tolerance, time_t length, gboolean one_time_use )
+None lasso_saml2_assertion_set_one_time_use ( LassoSaml2Assertion* saml2_assertion, gboolean one_time_use )
+None lasso_saml2_assertion_set_subject_confirmation_data ( LassoSaml2Assertion* saml2_assertion, time_t tolerance, time_t length, const char* Recipient, const char* InResponseTo, const char* Address )
+None lasso_saml2_assertion_set_subject_confirmation_name_id ( LassoSaml2Assertion* saml2_assertion, LassoNode* node )
+None lasso_saml2_assertion_set_subject_name_id ( LassoSaml2Assertion* saml2_assertion, LassoNode* node )
+LassoSaml2AssertionValidationState lasso_saml2_assertion_validate_audience ( LassoSaml2Assertion* saml2_assertion, const gchar* audience )
+LassoSaml2AssertionValidationState lasso_saml2_assertion_validate_conditions ( LassoSaml2Assertion* saml2_assertion, const char* relaying_party_providerID )
+LassoSaml2AssertionValidationState lasso_saml2_assertion_validate_time_checks ( LassoSaml2Assertion* saml2_assertion, unsigned int tolerance, time_t now )
+GType lasso_saml2_attribute_get_type ( )
+LassoNode* lasso_saml2_attribute_new ( )
+GType lasso_saml2_attribute_statement_get_type ( )
+LassoNode* lasso_saml2_attribute_statement_new ( )
+GType lasso_saml2_attribute_value_get_type ( )
+LassoSaml2AttributeValue* lasso_saml2_attribute_value_new ( )
+GType lasso_saml2_audience_restriction_get_type ( )
+LassoNode* lasso_saml2_audience_restriction_new ( )
+GType lasso_saml2_authn_context_get_type ( )
+LassoNode* lasso_saml2_authn_context_new ( )
+GType lasso_saml2_authn_statement_get_type ( )
+LassoNode* lasso_saml2_authn_statement_new ( )
+GType lasso_saml2_authz_decision_statement_get_type ( )
+LassoNode* lasso_saml2_authz_decision_statement_new ( )
+GType lasso_saml2_base_idabstract_get_type ( )
+LassoNode* lasso_saml2_base_idabstract_new ( )
+GType lasso_saml2_condition_abstract_get_type ( )
+LassoNode* lasso_saml2_condition_abstract_new ( )
+GType lasso_saml2_conditions_get_type ( )
+LassoNode* lasso_saml2_conditions_new ( )
+LassoSaml2EncryptedElement* lasso_saml2_encrypted_element_build_encrypted_persistent_name_id ( const char* id, const char* idpID, const LassoProvider* provider )
+GType lasso_saml2_encrypted_element_get_type ( )
+LassoNode* lasso_saml2_encrypted_element_new ( )
+lasso_error_t lasso_saml2_encrypted_element_server_decrypt ( LassoSaml2EncryptedElement* encrypted_element, LassoServer* server, LassoNode** decrypted_node )
+GType lasso_saml2_evidence_get_type ( )
+LassoNode* lasso_saml2_evidence_new ( )
+GType lasso_saml2_key_info_confirmation_data_get_type ( )
+LassoNode* lasso_saml2_key_info_confirmation_data_new ( )
+LassoSaml2NameID* lasso_saml2_name_id_build_persistent ( const char* id, const char* idpID, const char* providerID )
+gboolean lasso_saml2_name_id_equals ( LassoSaml2NameID* name_id, LassoSaml2NameID* other_name_id )
+GType lasso_saml2_name_id_get_type ( )
+LassoNode* lasso_saml2_name_id_new ( )
+LassoSaml2NameID* lasso_saml2_name_id_new_with_persistent_format ( const char* id, const char* idpID, const char* providerID )
+LassoNode* lasso_saml2_name_id_new_with_string ( char* content )
+GType lasso_saml2_one_time_use_get_type ( )
+LassoNode* lasso_saml2_one_time_use_new ( )
+GType lasso_saml2_proxy_restriction_get_type ( )
+LassoNode* lasso_saml2_proxy_restriction_new ( )
+GType lasso_saml2_statement_abstract_get_type ( )
+LassoNode* lasso_saml2_statement_abstract_new ( )
+GType lasso_saml2_subject_confirmation_data_get_type ( )
+LassoNode* lasso_saml2_subject_confirmation_data_new ( )
+GType lasso_saml2_subject_confirmation_get_type ( )
+LassoNode* lasso_saml2_subject_confirmation_new ( )
+GType lasso_saml2_subject_get_type ( )
+GType lasso_saml2_subject_locality_get_type ( )
+LassoNode* lasso_saml2_subject_locality_new ( )
+LassoNode* lasso_saml2_subject_new ( )
+GType lasso_saml_advice_get_type ( )
+LassoNode* lasso_saml_advice_new ( )
+GType lasso_saml_assertion_get_type ( )
+LassoSamlAssertion* lasso_saml_assertion_new ( )
+GType lasso_saml_attribute_designator_get_type ( )
+LassoNode* lasso_saml_attribute_designator_new ( )
+GType lasso_saml_attribute_get_type ( )
+LassoSamlAttribute* lasso_saml_attribute_new ( )
+GType lasso_saml_attribute_statement_get_type ( )
+LassoSamlAttributeStatement* lasso_saml_attribute_statement_new ( )
+GType lasso_saml_attribute_value_get_type ( )
+LassoSamlAttributeValue* lasso_saml_attribute_value_new ( )
+GType lasso_saml_audience_restriction_condition_get_type ( )
+LassoSamlAudienceRestrictionCondition* lasso_saml_audience_restriction_condition_new ( )
+LassoSamlAudienceRestrictionCondition* lasso_saml_audience_restriction_condition_new_full ( const char* audience )
+GType lasso_saml_authentication_statement_get_type ( )
+LassoNode* lasso_saml_authentication_statement_new ( )
+GType lasso_saml_authority_binding_get_type ( )
+LassoNode* lasso_saml_authority_binding_new ( )
+GType lasso_saml_condition_abstract_get_type ( )
+GType lasso_saml_conditions_get_type ( )
+LassoSamlConditions* lasso_saml_conditions_new ( )
+GType lasso_saml_name_identifier_get_type ( )
+LassoSamlNameIdentifier* lasso_saml_name_identifier_new ( )
+LassoSamlNameIdentifier* lasso_saml_name_identifier_new_from_xmlNode ( xmlNode* xmlnode )
+GType lasso_saml_statement_abstract_get_type ( )
+GType lasso_saml_subject_confirmation_get_type ( )
+LassoSamlSubjectConfirmation* lasso_saml_subject_confirmation_new ( )
+GType lasso_saml_subject_get_type ( )
+GType lasso_saml_subject_locality_get_type ( )
+LassoNode* lasso_saml_subject_locality_new ( )
+LassoNode* lasso_saml_subject_new ( )
+GType lasso_saml_subject_statement_abstract_get_type ( )
+GType lasso_saml_subject_statement_get_type ( )
+LassoNode* lasso_saml_subject_statement_new ( )
+GType lasso_samlp2_artifact_resolve_get_type ( )
+LassoNode* lasso_samlp2_artifact_resolve_new ( )
+GType lasso_samlp2_artifact_response_get_type ( )
+LassoNode* lasso_samlp2_artifact_response_new ( )
+GType lasso_samlp2_assertion_id_request_get_type ( )
+LassoNode* lasso_samlp2_assertion_id_request_new ( )
+GType lasso_samlp2_attribute_query_get_type ( )
+LassoNode* lasso_samlp2_attribute_query_new ( )
+GType lasso_samlp2_authn_query_get_type ( )
+LassoNode* lasso_samlp2_authn_query_new ( )
+GType lasso_samlp2_authn_request_get_type ( )
+LassoNode* lasso_samlp2_authn_request_new ( )
+GType lasso_samlp2_authz_decision_query_get_type ( )
+LassoNode* lasso_samlp2_authz_decision_query_new ( )
+GType lasso_samlp2_extensions_get_type ( )
+LassoNode* lasso_samlp2_extensions_new ( )
+GType lasso_samlp2_idp_entry_get_type ( )
+LassoNode* lasso_samlp2_idp_entry_new ( )
+GType lasso_samlp2_idp_list_get_type ( )
+LassoNode* lasso_samlp2_idp_list_new ( )
+GList* lasso_samlp2_logout_request_get_session_indexes ( LassoSamlp2LogoutRequest* logout_request )
+GType lasso_samlp2_logout_request_get_type ( )
+LassoNode* lasso_samlp2_logout_request_new ( )
+None lasso_samlp2_logout_request_set_session_indexes ( LassoSamlp2LogoutRequest* logout_request, GList* session_index )
+GType lasso_samlp2_logout_response_get_type ( )
+LassoNode* lasso_samlp2_logout_response_new ( )
+GType lasso_samlp2_manage_name_id_request_get_type ( )
+LassoNode* lasso_samlp2_manage_name_id_request_new ( )
+GType lasso_samlp2_manage_name_id_response_get_type ( )
+LassoNode* lasso_samlp2_manage_name_id_response_new ( )
+GType lasso_samlp2_name_id_mapping_request_get_type ( )
+LassoNode* lasso_samlp2_name_id_mapping_request_new ( )
+GType lasso_samlp2_name_id_mapping_response_get_type ( )
+LassoNode* lasso_samlp2_name_id_mapping_response_new ( )
+GType lasso_samlp2_name_id_policy_get_type ( )
+LassoNode* lasso_samlp2_name_id_policy_new ( )
+GType lasso_samlp2_request_abstract_get_type ( )
+LassoNode* lasso_samlp2_request_abstract_new ( )
+GType lasso_samlp2_requested_authn_context_get_type ( )
+LassoNode* lasso_samlp2_requested_authn_context_new ( )
+GType lasso_samlp2_response_get_type ( )
+LassoNode* lasso_samlp2_response_new ( )
+GType lasso_samlp2_scoping_get_type ( )
+LassoNode* lasso_samlp2_scoping_new ( )
+GType lasso_samlp2_status_code_get_type ( )
+LassoNode* lasso_samlp2_status_code_new ( )
+GType lasso_samlp2_status_detail_get_type ( )
+LassoNode* lasso_samlp2_status_detail_new ( )
+GType lasso_samlp2_status_get_type ( )
+LassoNode* lasso_samlp2_status_new ( )
+GType lasso_samlp2_status_response_get_type ( )
+LassoNode* lasso_samlp2_status_response_new ( )
+GType lasso_samlp2_subject_query_abstract_get_type ( )
+LassoNode* lasso_samlp2_subject_query_abstract_new ( )
+GType lasso_samlp2_terminate_get_type ( )
+LassoNode* lasso_samlp2_terminate_new ( )
+GType lasso_samlp_request_abstract_get_type ( )
+GType lasso_samlp_request_get_type ( )
+LassoNode* lasso_samlp_request_new ( )
+None lasso_samlp_response_abstract_fill ( LassoSamlpResponseAbstract* response, const char* InResponseTo, const char* Recipient )
+GType lasso_samlp_response_abstract_get_type ( )
+GType lasso_samlp_response_get_type ( )
+LassoNode* lasso_samlp_response_new ( )
+GType lasso_samlp_status_code_get_type ( )
+LassoSamlpStatusCode* lasso_samlp_status_code_new ( )
+GType lasso_samlp_status_get_type ( )
+LassoSamlpStatus* lasso_samlp_status_new ( )
+lasso_error_t lasso_server_add_provider ( LassoServer* server, LassoProviderRole role, const gchar* metadata, const gchar* public_key, const gchar* ca_cert_chain )
+lasso_error_t lasso_server_add_provider_from_buffer ( LassoServer* server, LassoProviderRole role, const gchar* metadata, const gchar* public_key, const gchar* ca_cert_chain )
+None lasso_server_destroy ( LassoServer* server )
+gchar* lasso_server_dump ( LassoServer* server )
+LassoProvider* lasso_server_get_provider ( const LassoServer* server, const gchar* providerID )
+GType lasso_server_get_type ( )
+lasso_error_t lasso_server_load_affiliation ( LassoServer* server, const gchar* filename )
+LassoServer* lasso_server_new ( const gchar* metadata, const gchar* private_key, const gchar* private_key_password, const gchar* certificate )
+LassoServer* lasso_server_new_from_buffers ( const gchar* metadata, const gchar* private_key_content, const gchar* private_key_password, const gchar* certificate_content )
+LassoServer* lasso_server_new_from_dump ( const gchar* dump )
+lasso_error_t lasso_server_saml2_assertion_setup_signature ( LassoServer* server, LassoSaml2Assertion* saml2_assertion )
+lasso_error_t lasso_server_set_encryption_private_key ( LassoServer* server, const gchar* filename_or_buffer )
+lasso_error_t lasso_server_set_encryption_private_key_with_password ( LassoServer* server, const gchar* filename_or_buffer, const gchar* password )
+lasso_error_t lasso_session_add_assertion ( LassoSession* session, const char* providerID, LassoNode* assertion )
+None lasso_session_destroy ( LassoSession* session )
+gchar* lasso_session_dump ( LassoSession* session )
+LassoNode* lasso_session_get_assertion ( LassoSession* session, const gchar* providerID )
+GList* lasso_session_get_assertions ( LassoSession* session, const char* provider_id )
+gchar* lasso_session_get_provider_index ( LassoSession* session, gint index )
+GType lasso_session_get_type ( )
+gboolean lasso_session_is_empty ( LassoSession* session )
+LassoSession* lasso_session_new ( )
+LassoSession* lasso_session_new_from_dump ( const gchar* dump )
+lasso_error_t lasso_session_remove_assertion ( LassoSession* session, const gchar* providerID )
+None lasso_set_flag ( char* flag )
+lasso_error_t lasso_shutdown ( )
+GType lasso_soap_body_get_type ( )
+LassoSoapBody* lasso_soap_body_new ( )
+LassoSoapBody* lasso_soap_body_new_from_message ( const gchar* message )
+GType lasso_soap_detail_get_type ( )
+LassoSoapDetail* lasso_soap_detail_new ( )
+LassoSoapDetail* lasso_soap_detail_new_from_message ( const gchar* message )
+GType lasso_soap_envelope_get_type ( )
+LassoSoapEnvelope* lasso_soap_envelope_new ( LassoSoapBody* body )
+LassoSoapEnvelope* lasso_soap_envelope_new_from_message ( const gchar* message )
+GType lasso_soap_fault_get_type ( )
+LassoSoapFault* lasso_soap_fault_new ( )
+LassoSoapFault* lasso_soap_fault_new_from_message ( const gchar* message )
+LassoSoapFault* lasso_soap_fault_new_full ( const char* faultcode, const char* faultstring )
+GType lasso_soap_header_get_type ( )
+LassoSoapHeader* lasso_soap_header_new ( )
+LassoSoapHeader* lasso_soap_header_new_from_message ( const gchar* message )
+const char* lasso_strerror ( int error_code )
diff --git a/abi/abi-2.3.5 b/abi/abi-2.3.5
new file mode 100644
index 00000000..59af6268
--- /dev/null
+++ b/abi/abi-2.3.5
@@ -0,0 +1,1115 @@
+BACKWARD_COMP_H
+LASSO_ASSERTION_QUERY_ERROR_ATTRIBUTE_REQUEST_ALREADY_EXIST
+LASSO_ASSERTION_QUERY_ERROR_NOT_AN_ATTRIBUTE_QUERY
+LASSO_ASSERTION_QUERY_REQUEST_TYPE_ASSERTION_ID
+LASSO_ASSERTION_QUERY_REQUEST_TYPE_ATTRIBUTE
+LASSO_ASSERTION_QUERY_REQUEST_TYPE_AUTHN
+LASSO_ASSERTION_QUERY_REQUEST_TYPE_AUTHZ_DECISION
+LASSO_ASSERTION_QUERY_REQUEST_TYPE_LAST
+LASSO_ASSERTION_QUERY_REQUEST_TYPE_UNSET
+LASSO_CERTIFICATE_ATTRIBUTE
+LASSO_CHECK_VERSIONABI_COMPATIBLE
+LASSO_CHECK_VERSION_EXACT
+LASSO_CHECK_VERSION_NUMERIC
+LASSO_DATA_SERVICE_ERROR_CANNOT_ADD_ITEM
+LASSO_DATA_SERVICE_ERROR_UNREGISTERED_DST
+LASSO_DEFEDERATION_ERROR_MISSING_NAME_IDENTIFIER
+LASSO_DISCOVERY_ERROR_FAILED_TO_BUILD_ENDPOINT_REFERENCE
+LASSO_DISCOVERY_ERROR_MISSING_REQUESTED_SERVICE
+LASSO_DISCOVERY_ERROR_SVC_METADATA_ASSOCIATION_ADD_FAILED
+LASSO_DISCOVERY_ERROR_SVC_METADATA_REGISTER_FAILED
+LASSO_DST_ERROR_EMPTY_REQUEST
+LASSO_DST_ERROR_MALFORMED_QUERY
+LASSO_DST_ERROR_MISSING_SERVICE_DATA
+LASSO_DST_ERROR_MODIFY_FAILED
+LASSO_DST_ERROR_MODIFY_PARTIALLY_FAILED
+LASSO_DST_ERROR_NEW_DATA_MISSING
+LASSO_DST_ERROR_NO_DATA
+LASSO_DST_ERROR_QUERY_FAILED
+LASSO_DST_ERROR_QUERY_NOT_FOUND
+LASSO_DST_ERROR_QUERY_PARTIALLY_FAILED
+LASSO_DS_ERROR_CA_CERT_CHAIN_LOAD_FAILED
+LASSO_DS_ERROR_CERTIFICATE_LOAD_FAILED
+LASSO_DS_ERROR_CONTEXT_CREATION_FAILED
+LASSO_DS_ERROR_DECRYPTION_FAILED
+LASSO_DS_ERROR_DECRYPTION_FAILED_MISSING_PRIVATE_KEY
+LASSO_DS_ERROR_DIGEST_COMPUTE_FAILED
+LASSO_DS_ERROR_ENCRYPTION_FAILED
+LASSO_DS_ERROR_INVALID_REFERENCE_FOR_SAML
+LASSO_DS_ERROR_INVALID_SIGALG
+LASSO_DS_ERROR_INVALID_SIGNATURE
+LASSO_DS_ERROR_KEYS_MNGR_CREATION_FAILED
+LASSO_DS_ERROR_KEYS_MNGR_INIT_FAILED
+LASSO_DS_ERROR_PRIVATE_KEY_LOAD_FAILED
+LASSO_DS_ERROR_PUBLIC_KEY_LOAD_FAILED
+LASSO_DS_ERROR_SIGNATURE_FAILED
+LASSO_DS_ERROR_SIGNATURE_NOT_FOUND
+LASSO_DS_ERROR_SIGNATURE_TEMPLATE_NOT_FOUND
+LASSO_DS_ERROR_SIGNATURE_TMPL_CREATION_FAILED
+LASSO_DS_ERROR_SIGNATURE_VERIFICATION_FAILED
+LASSO_DS_ERROR_TOO_MUCH_REFERENCES
+LASSO_DS_HREF
+LASSO_DS_PREFIX
+LASSO_DURATION_DAY
+LASSO_DURATION_HOUR
+LASSO_DURATION_MINUTE
+LASSO_DURATION_WEEK
+LASSO_ECP_HREF
+LASSO_ECP_PREFIX
+LASSO_ENCRYPTION_MODE_ASSERTION
+LASSO_ENCRYPTION_MODE_NAMEID
+LASSO_ENCRYPTION_MODE_NONE
+LASSO_ENCRYPTION_SYM_KEY_TYPE_3DES
+LASSO_ENCRYPTION_SYM_KEY_TYPE_AES_128
+LASSO_ENCRYPTION_SYM_KEY_TYPE_AES_256
+LASSO_ENCRYPTION_SYM_KEY_TYPE_DEFAULT
+LASSO_ENCRYTPION_SYM_KEY_TYPE_LAST
+LASSO_ERROR_CAST_FAILED
+LASSO_ERROR_OUT_OF_MEMORY
+LASSO_ERROR_UNDEFINED
+LASSO_ERROR_UNIMPLEMENTED
+LASSO_HTTP_METHOD_ANY
+LASSO_HTTP_METHOD_ARTIFACT_GET
+LASSO_HTTP_METHOD_ARTIFACT_POST
+LASSO_HTTP_METHOD_GET
+LASSO_HTTP_METHOD_IDP_INITIATED
+LASSO_HTTP_METHOD_LAST
+LASSO_HTTP_METHOD_NONE
+LASSO_HTTP_METHOD_PAOS
+LASSO_HTTP_METHOD_POST
+LASSO_HTTP_METHOD_REDIRECT
+LASSO_HTTP_METHOD_SOAP
+LASSO_IDWSF2_DISCOVERY_ERROR_DUPLICATE
+LASSO_IDWSF2_DISCOVERY_ERROR_FAILED
+LASSO_IDWSF2_DISCOVERY_ERROR_FORBIDDEN
+LASSO_IDWSF2_DISCOVERY_ERROR_LOGICAL_DUPLICATE
+LASSO_IDWSF2_DISCOVERY_ERROR_NOT_FOUND
+LASSO_IDWSF2_DISCOVERY_ERROR_NO_RESULTS
+LASSO_IDWSF2_DST_ERROR_DUPLICATE_ITEM
+LASSO_IDWSF2_DST_ERROR_ITEM_NOT_FOUND
+LASSO_IDWSF2_DST_ERROR_PARTIAL_FAILURE
+LASSO_IDWSF2_DST_ERROR_UNKNOWN_STATUS_CODE
+LASSO_LASSO_HREF
+LASSO_LASSO_PREFIX
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_INTERNET_PROTOCOL
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_INTERNET_PROTOCOL_PASSWORD
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_MOBILE_ONE_FACTOR_CONTRACT
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_MOBILE_ONE_FACTOR_UNREGISTERED
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_MOBILE_TWO_FACTOR_CONTRACT
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_MOBILE_TWO_FACTOR_UNREGISTERED
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_PASSWORD
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_PASSWORD_PROTECTED_TRANSPORT
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_PREVIOUS_SESSION
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_SMARTCARD
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_SMARTCARD_PKI
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_SOFTWARE_PKI
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_TIME_SYNC_TOKEN
+LASSO_LIB_AUTHN_CONTEXT_COMPARISON_BETTER
+LASSO_LIB_AUTHN_CONTEXT_COMPARISON_EXACT
+LASSO_LIB_AUTHN_CONTEXT_COMPARISON_MAXIMUM
+LASSO_LIB_AUTHN_CONTEXT_COMPARISON_MINIMUM
+LASSO_LIB_CONSENT_INAPPLICABLE
+LASSO_LIB_CONSENT_OBTAINED
+LASSO_LIB_CONSENT_OBTAINED_CURRENT_EXPLICIT
+LASSO_LIB_CONSENT_OBTAINED_CURRENT_IMPLICIT
+LASSO_LIB_CONSENT_OBTAINED_PRIOR
+LASSO_LIB_CONSENT_UNAVAILABLE
+LASSO_LIB_HREF
+LASSO_LIB_MAJOR_VERSION_N
+LASSO_LIB_MINOR_VERSION_N
+LASSO_LIB_NAMEID_POLICY_TYPE_ANY
+LASSO_LIB_NAMEID_POLICY_TYPE_FEDERATED
+LASSO_LIB_NAMEID_POLICY_TYPE_NONE
+LASSO_LIB_NAMEID_POLICY_TYPE_ONE_TIME
+LASSO_LIB_NAME_IDENTIFIER_FORMAT_ENCRYPTED
+LASSO_LIB_NAME_IDENTIFIER_FORMAT_ENTITYID
+LASSO_LIB_NAME_IDENTIFIER_FORMAT_FEDERATED
+LASSO_LIB_NAME_IDENTIFIER_FORMAT_ONE_TIME
+LASSO_LIB_PREFIX
+LASSO_LIB_PROTOCOL_PROFILE_BRWS_ART
+LASSO_LIB_PROTOCOL_PROFILE_BRWS_LECP
+LASSO_LIB_PROTOCOL_PROFILE_BRWS_POST
+LASSO_LIB_PROTOCOL_PROFILE_FED_TERM_IDP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_FED_TERM_IDP_SOAP
+LASSO_LIB_PROTOCOL_PROFILE_FED_TERM_SP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_FED_TERM_SP_SOAP
+LASSO_LIB_PROTOCOL_PROFILE_NIM_SP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_RNI_IDP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_RNI_IDP_SOAP
+LASSO_LIB_PROTOCOL_PROFILE_RNI_SP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_RNI_SP_SOAP
+LASSO_LIB_PROTOCOL_PROFILE_SLO_IDP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_SLO_IDP_SOAP
+LASSO_LIB_PROTOCOL_PROFILE_SLO_SP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_SLO_SP_SOAP
+LASSO_LIB_STATUS_CODE_FEDERATION_DOES_NOT_EXIST
+LASSO_LIB_STATUS_CODE_INVALID_ASSERTION_CONSUMER_SERVICE_INDEX
+LASSO_LIB_STATUS_CODE_INVALID_SIGNATURE
+LASSO_LIB_STATUS_CODE_NO_AUTHN_CONTEXT
+LASSO_LIB_STATUS_CODE_NO_AVAILABLEIDP
+LASSO_LIB_STATUS_CODE_NO_PASSIVE
+LASSO_LIB_STATUS_CODE_NO_SUPPORTEDIDP
+LASSO_LIB_STATUS_CODE_PROXY_COUNT_EXCEEDED
+LASSO_LIB_STATUS_CODE_UNKNOWN_PRINCIPAL
+LASSO_LIB_STATUS_CODE_UNSIGNED_AUTHN_REQUEST
+LASSO_LIB_STATUS_CODE_UNSUPPORTED_PROFILE
+LASSO_LOGIN_ERROR_ASSERTION_DOES_NOT_MATCH_REQUEST_ID
+LASSO_LOGIN_ERROR_ASSERTION_REPLAY
+LASSO_LOGIN_ERROR_CONSENT_NOT_OBTAINED
+LASSO_LOGIN_ERROR_FEDERATION_NOT_FOUND
+LASSO_LOGIN_ERROR_INVALID_ASSERTION_SIGNATURE
+LASSO_LOGIN_ERROR_INVALID_NAMEIDPOLICY
+LASSO_LOGIN_ERROR_INVALID_SIGNATURE
+LASSO_LOGIN_ERROR_NO_DEFAULT_ENDPOINT
+LASSO_LOGIN_ERROR_REQUEST_DENIED
+LASSO_LOGIN_ERROR_STATUS_NOT_SUCCESS
+LASSO_LOGIN_ERROR_UNKNOWN_PRINCIPAL
+LASSO_LOGIN_ERROR_UNSIGNED_AUTHN_REQUEST
+LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_ART
+LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_LECP
+LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_POST
+LASSO_LOGIN_PROTOCOL_PROFILE_REDIRECT
+LASSO_LOGOUT_ERROR_FEDERATION_NOT_FOUND
+LASSO_LOGOUT_ERROR_REQUEST_DENIED
+LASSO_LOGOUT_ERROR_UNKNOWN_PRINCIPAL
+LASSO_LOGOUT_ERROR_UNSUPPORTED_PROFILE
+LASSO_MD_PROTOCOL_TYPE_ARTIFACT_RESOLUTION
+LASSO_MD_PROTOCOL_TYPE_ASSERTION_ID_REQUEST
+LASSO_MD_PROTOCOL_TYPE_ATTRIBUTE
+LASSO_MD_PROTOCOL_TYPE_AUTHN_QUERY
+LASSO_MD_PROTOCOL_TYPE_AUTHZ
+LASSO_MD_PROTOCOL_TYPE_FEDERATION_TERMINATION
+LASSO_MD_PROTOCOL_TYPE_LAST
+LASSO_MD_PROTOCOL_TYPE_MANAGE_NAME_ID
+LASSO_MD_PROTOCOL_TYPE_NAME_IDENTIFIER_MAPPING
+LASSO_MD_PROTOCOL_TYPE_REGISTER_NAME_IDENTIFIER
+LASSO_MD_PROTOCOL_TYPE_SINGLE_LOGOUT
+LASSO_MD_PROTOCOL_TYPE_SINGLE_SIGN_ON
+LASSO_MESSAGE_FORMAT_BASE64
+LASSO_MESSAGE_FORMAT_ERROR
+LASSO_MESSAGE_FORMAT_QUERY
+LASSO_MESSAGE_FORMAT_SOAP
+LASSO_MESSAGE_FORMAT_UNKNOWN
+LASSO_MESSAGE_FORMAT_XML
+LASSO_MESSAGE_FORMAT_XSCHEMA_ERROR
+LASSO_METADATA_HREF
+LASSO_METADATA_PREFIX
+LASSO_NAME_IDENTIFIER_MAPPING_ERROR_FORBIDDEN_CALL_ON_THIS_SIDE
+LASSO_NAME_IDENTIFIER_MAPPING_ERROR_MISSING_TARGET_IDENTIFIER
+LASSO_NAME_IDENTIFIER_MAPPING_ERROR_MISSING_TARGET_NAMESPACE
+LASSO_PAOS_HREF
+LASSO_PAOS_PREFIX
+LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ
+LASSO_PARAM_ERROR_CHECK_FAILED
+LASSO_PARAM_ERROR_INVALID_VALUE
+LASSO_PARAM_ERROR_NON_INITIALIZED_OBJECT
+LASSO_PRIVATE_KEY_ATTRIBUTE
+LASSO_PRIVATE_KEY_PASSWORD_ATTRIBUTE
+LASSO_PRIVATE_STATUS_CODE_FAILED_TO_RESTORE_ARTIFACT
+LASSO_PROFILE_ERROR_BAD_IDENTITY_DUMP
+LASSO_PROFILE_ERROR_BAD_SESSION_DUMP
+LASSO_PROFILE_ERROR_BUILDING_MESSAGE_FAILED
+LASSO_PROFILE_ERROR_BUILDING_QUERY_FAILED
+LASSO_PROFILE_ERROR_BUILDING_REQUEST_FAILED
+LASSO_PROFILE_ERROR_BUILDING_RESPONSE_FAILED
+LASSO_PROFILE_ERROR_CANNOT_FIND_A_PROVIDER
+LASSO_PROFILE_ERROR_CANNOT_VERIFY_SIGNATURE
+LASSO_PROFILE_ERROR_FEDERATION_NOT_FOUND
+LASSO_PROFILE_ERROR_IDENTITY_NOT_FOUND
+LASSO_PROFILE_ERROR_INVALID_ARTIFACT
+LASSO_PROFILE_ERROR_INVALID_ASSERTION
+LASSO_PROFILE_ERROR_INVALID_ASSERTION_CONDITIONS
+LASSO_PROFILE_ERROR_INVALID_HTTP_METHOD
+LASSO_PROFILE_ERROR_INVALID_ISSUER
+LASSO_PROFILE_ERROR_INVALID_MSG
+LASSO_PROFILE_ERROR_INVALID_POST_MSG
+LASSO_PROFILE_ERROR_INVALID_PROTOCOLPROFILE
+LASSO_PROFILE_ERROR_INVALID_QUERY
+LASSO_PROFILE_ERROR_INVALID_REQUEST
+LASSO_PROFILE_ERROR_INVALID_RESPONSE
+LASSO_PROFILE_ERROR_INVALID_SOAP_MSG
+LASSO_PROFILE_ERROR_ISSUER_IS_NOT_AN_IDP
+LASSO_PROFILE_ERROR_MISSING_ARTIFACT
+LASSO_PROFILE_ERROR_MISSING_ASSERTION
+LASSO_PROFILE_ERROR_MISSING_ENCRYPTION_PRIVATE_KEY
+LASSO_PROFILE_ERROR_MISSING_ENDPOINT_REFERENCE
+LASSO_PROFILE_ERROR_MISSING_ENDPOINT_REFERENCE_ADDRESS
+LASSO_PROFILE_ERROR_MISSING_ISSUER
+LASSO_PROFILE_ERROR_MISSING_NAME_IDENTIFIER
+LASSO_PROFILE_ERROR_MISSING_REMOTE_PROVIDERID
+LASSO_PROFILE_ERROR_MISSING_REQUEST
+LASSO_PROFILE_ERROR_MISSING_RESOURCE_OFFERING
+LASSO_PROFILE_ERROR_MISSING_RESPONSE
+LASSO_PROFILE_ERROR_MISSING_SERVER
+LASSO_PROFILE_ERROR_MISSING_SERVICE_DESCRIPTION
+LASSO_PROFILE_ERROR_MISSING_SERVICE_INSTANCE
+LASSO_PROFILE_ERROR_MISSING_SERVICE_TYPE
+LASSO_PROFILE_ERROR_MISSING_STATUS_CODE
+LASSO_PROFILE_ERROR_MISSING_SUBJECT
+LASSO_PROFILE_ERROR_NAME_IDENTIFIER_NOT_FOUND
+LASSO_PROFILE_ERROR_RESPONSE_DOES_NOT_MATCH_REQUEST
+LASSO_PROFILE_ERROR_SESSION_NOT_FOUND
+LASSO_PROFILE_ERROR_STATUS_NOT_SUCCESS
+LASSO_PROFILE_ERROR_UNKNOWN_ISSUER
+LASSO_PROFILE_ERROR_UNKNOWN_PROFILE_URL
+LASSO_PROFILE_ERROR_UNKNOWN_PROVIDER
+LASSO_PROFILE_ERROR_UNSUPPORTED_BINDING
+LASSO_PROFILE_ERROR_UNSUPPORTED_PROFILE
+LASSO_PROFILE_SIGNATURE_HINT_FORBID
+LASSO_PROFILE_SIGNATURE_HINT_FORCE
+LASSO_PROFILE_SIGNATURE_HINT_MAYBE
+LASSO_PROFILE_SIGNATURE_VERIFY_HINT_FORCE
+LASSO_PROFILE_SIGNATURE_VERIFY_HINT_IGNORE
+LASSO_PROFILE_SIGNATURE_VERIFY_HINT_LAST
+LASSO_PROFILE_SIGNATURE_VERIFY_HINT_MAYBE
+LASSO_PROTOCOL_LIBERTY_1_0
+LASSO_PROTOCOL_LIBERTY_1_1
+LASSO_PROTOCOL_LIBERTY_1_2
+LASSO_PROTOCOL_NONE
+LASSO_PROTOCOL_SAML_2_0
+LASSO_PROVIDER_ERROR_MISSING_PUBLIC_KEY
+LASSO_PROVIDER_ROLE_ANY
+LASSO_PROVIDER_ROLE_ATTRIBUTE_AUTHORITY
+LASSO_PROVIDER_ROLE_AUTHN_AUTHORITY
+LASSO_PROVIDER_ROLE_AUTHZ_AUTHORITY
+LASSO_PROVIDER_ROLE_BOTH
+LASSO_PROVIDER_ROLE_IDP
+LASSO_PROVIDER_ROLE_LAST
+LASSO_PROVIDER_ROLE_NONE
+LASSO_PROVIDER_ROLE_SP
+LASSO_PYTHON_HREF
+LASSO_REGISTRY_ERROR_KEY_EXISTS
+LASSO_REQUEST_TYPE_DEFEDERATION
+LASSO_REQUEST_TYPE_DISCO_MODIFY
+LASSO_REQUEST_TYPE_DISCO_QUERY
+LASSO_REQUEST_TYPE_DST_MODIFY
+LASSO_REQUEST_TYPE_DST_QUERY
+LASSO_REQUEST_TYPE_IDWSF2_DISCO_QUERY
+LASSO_REQUEST_TYPE_IDWSF2_DISCO_SVCMD_ASSOCIATION_ADD
+LASSO_REQUEST_TYPE_IDWSF2_DISCO_SVCMD_REGISTER
+LASSO_REQUEST_TYPE_INVALID
+LASSO_REQUEST_TYPE_LECP
+LASSO_REQUEST_TYPE_LOGIN
+LASSO_REQUEST_TYPE_LOGOUT
+LASSO_REQUEST_TYPE_NAME_IDENTIFIER_MAPPING
+LASSO_REQUEST_TYPE_NAME_ID_MANAGEMENT
+LASSO_REQUEST_TYPE_NAME_REGISTRATION
+LASSO_REQUEST_TYPE_SASL_REQUEST
+LASSO_SAML2_ACTION_GHPP_GET
+LASSO_SAML2_ACTION_GHPP_HEAD
+LASSO_SAML2_ACTION_GHPP_POST
+LASSO_SAML2_ACTION_GHPP_PUT
+LASSO_SAML2_ACTION_NAMESPACE_GHPP
+LASSO_SAML2_ACTION_NAMESPACE_RWEDC
+LASSO_SAML2_ACTION_NAMESPACE_RWEDC_NEGATION
+LASSO_SAML2_ACTION_NAMESPACE_UNIX
+LASSO_SAML2_ACTION_RWEDC_CONTROL
+LASSO_SAML2_ACTION_RWEDC_DELETE
+LASSO_SAML2_ACTION_RWEDC_EXECUTE
+LASSO_SAML2_ACTION_RWEDC_NEGATION
+LASSO_SAML2_ACTION_RWEDC_READ
+LASSO_SAML2_ACTION_RWEDC_WRITE
+LASSO_SAML2_ASSERTION_HREF
+LASSO_SAML2_ASSERTION_INDETERMINATE
+LASSO_SAML2_ASSERTION_INVALID
+LASSO_SAML2_ASSERTION_PREFIX
+LASSO_SAML2_ASSERTION_VALID
+LASSO_SAML2_ATTRIBUTE_NAME_EPR
+LASSO_SAML2_ATTRIBUTE_NAME_FORMAT_BASIC
+LASSO_SAML2_ATTRIBUTE_NAME_FORMAT_UNSPECIFIED
+LASSO_SAML2_ATTRIBUTE_NAME_FORMAT_URI
+LASSO_SAML2_ATTRIBUTE_PROFILE_BASIC
+LASSO_SAML2_ATTRIBUTE_PROFILE_DCE
+LASSO_SAML2_ATTRIBUTE_PROFILE_UUID
+LASSO_SAML2_ATTRIBUTE_PROFILE_X500
+LASSO_SAML2_AUTHN_CONTEXT_AUTHENTICATED_TELEPHONY
+LASSO_SAML2_AUTHN_CONTEXT_INTERNET_PROTOCOL
+LASSO_SAML2_AUTHN_CONTEXT_INTERNET_PROTOCOL_PASSWORD
+LASSO_SAML2_AUTHN_CONTEXT_KERBEROS
+LASSO_SAML2_AUTHN_CONTEXT_MOBILE_ONE_FACTOR_CONTRACT
+LASSO_SAML2_AUTHN_CONTEXT_MOBILE_ONE_FACTOR_UNREGISTERED
+LASSO_SAML2_AUTHN_CONTEXT_MOBILE_TWO_FACTOR_CONTRACT
+LASSO_SAML2_AUTHN_CONTEXT_MOBILE_TWO_FACTOR_UNREGISTERED
+LASSO_SAML2_AUTHN_CONTEXT_NOMAD_TELEPHONY
+LASSO_SAML2_AUTHN_CONTEXT_PASSWORD
+LASSO_SAML2_AUTHN_CONTEXT_PASSWORD_PROTECTED_TRANSPORT
+LASSO_SAML2_AUTHN_CONTEXT_PERSONALIZED_TELEPHONY
+LASSO_SAML2_AUTHN_CONTEXT_PGP
+LASSO_SAML2_AUTHN_CONTEXT_PREVIOUS_SESSION
+LASSO_SAML2_AUTHN_CONTEXT_SECURE_REMOTE_PASSWORD
+LASSO_SAML2_AUTHN_CONTEXT_SMARTCARD
+LASSO_SAML2_AUTHN_CONTEXT_SMARTCARD_PKI
+LASSO_SAML2_AUTHN_CONTEXT_SOFTWARE_PKI
+LASSO_SAML2_AUTHN_CONTEXT_SPKI
+LASSO_SAML2_AUTHN_CONTEXT_TELEPHONY
+LASSO_SAML2_AUTHN_CONTEXT_TIME_SYNC_TOKEN
+LASSO_SAML2_AUTHN_CONTEXT_TLS_CLIENT
+LASSO_SAML2_AUTHN_CONTEXT_UNSPECIFIED
+LASSO_SAML2_AUTHN_CONTEXT_X509
+LASSO_SAML2_AUTHN_CONTEXT_XMLDSIG
+LASSO_SAML2_CONFIRMATION_METHOD_BEARER
+LASSO_SAML2_CONFIRMATION_METHOD_HOLDER_OF_KEY
+LASSO_SAML2_CONSENT_EXPLICIT
+LASSO_SAML2_CONSENT_IMPLICIT
+LASSO_SAML2_CONSENT_INAPPLICABLE
+LASSO_SAML2_CONSENT_OBTAINED
+LASSO_SAML2_CONSENT_PRIOR
+LASSO_SAML2_CONSENT_UNAVAILABLE
+LASSO_SAML2_DEFLATE_ENCODING
+LASSO_SAML2_FIELD_ARTIFACT
+LASSO_SAML2_FIELD_ENCODING
+LASSO_SAML2_FIELD_RELAYSTATE
+LASSO_SAML2_FIELD_REQUEST
+LASSO_SAML2_FIELD_RESPONSE
+LASSO_SAML2_FIELD_SIGALG
+LASSO_SAML2_FIELD_SIGNATURE
+LASSO_SAML2_METADATA_BINDING_ARTIFACT
+LASSO_SAML2_METADATA_BINDING_PAOS
+LASSO_SAML2_METADATA_BINDING_POST
+LASSO_SAML2_METADATA_BINDING_REDIRECT
+LASSO_SAML2_METADATA_BINDING_SOAP
+LASSO_SAML2_METADATA_BINDING_URI
+LASSO_SAML2_METADATA_HREF
+LASSO_SAML2_METADATA_PREFIX
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_EMAIL
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_ENCRYPTED
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_ENTITY
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_KERBEROS
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_PERSISTENT
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_TRANSIENT
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_UNSPECIFIED
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_WINDOWS
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_X509
+LASSO_SAML2_PROTOCOL_HREF
+LASSO_SAML2_PROTOCOL_PREFIX
+LASSO_SAML2_STATUS_CODE_AUTHN_FAILED
+LASSO_SAML2_STATUS_CODE_INVALID_ATTR_NAME
+LASSO_SAML2_STATUS_CODE_INVALID_NAME_ID_POLICY
+LASSO_SAML2_STATUS_CODE_NO_AUTHN_CONTEXT
+LASSO_SAML2_STATUS_CODE_NO_AVAILABLE_IDP
+LASSO_SAML2_STATUS_CODE_NO_PASSIVE
+LASSO_SAML2_STATUS_CODE_NO_SUPPORTED_IDP
+LASSO_SAML2_STATUS_CODE_PARTIAL_LOGOUT
+LASSO_SAML2_STATUS_CODE_PROXY_COUNT_EXCEEDED
+LASSO_SAML2_STATUS_CODE_REQUESTER
+LASSO_SAML2_STATUS_CODE_REQUEST_DENIED
+LASSO_SAML2_STATUS_CODE_REQUEST_UNSUPPORTED
+LASSO_SAML2_STATUS_CODE_REQUEST_VERSION_DEPRECATED
+LASSO_SAML2_STATUS_CODE_REQUEST_VERSION_TOO_HIGH
+LASSO_SAML2_STATUS_CODE_REQUEST_VERSION_TOO_LOW
+LASSO_SAML2_STATUS_CODE_RESOURCE_NOT_RECOGNIZED
+LASSO_SAML2_STATUS_CODE_RESPONDER
+LASSO_SAML2_STATUS_CODE_SUCCESS
+LASSO_SAML2_STATUS_CODE_TOO_MANY_RESPONSES
+LASSO_SAML2_STATUS_CODE_UNKNOWN_ATTR_PROFILE
+LASSO_SAML2_STATUS_CODE_UNKNOWN_PRINCIPAL
+LASSO_SAML2_STATUS_CODE_UNSUPPORTED_BINDING
+LASSO_SAML2_STATUS_CODE_VERSION_MISMATCH
+LASSO_SAML_ASSERTION_HREF
+LASSO_SAML_ASSERTION_PREFIX
+LASSO_SAML_AUTHENTICATION_METHODS_PKI
+LASSO_SAML_AUTHENTICATION_METHOD_HARDWARE_TOKEN
+LASSO_SAML_AUTHENTICATION_METHOD_KERBEROS
+LASSO_SAML_AUTHENTICATION_METHOD_LIBERTY
+LASSO_SAML_AUTHENTICATION_METHOD_PASSWORD
+LASSO_SAML_AUTHENTICATION_METHOD_PGP
+LASSO_SAML_AUTHENTICATION_METHOD_SECURE_REMOTE_PASSWORD
+LASSO_SAML_AUTHENTICATION_METHOD_SMARTCARD_PKI
+LASSO_SAML_AUTHENTICATION_METHOD_SOFTWARE_PKI
+LASSO_SAML_AUTHENTICATION_METHOD_UNSPECIFIED
+LASSO_SAML_AUTHENTICATION_METHOD_XKMS
+LASSO_SAML_AUTHENTICATION_METHOD_XMLD_SIG
+LASSO_SAML_CONFIRMATION_METHOD_ARTIFACT
+LASSO_SAML_CONFIRMATION_METHOD_ARTIFACT01
+LASSO_SAML_CONFIRMATION_METHOD_BEARER
+LASSO_SAML_CONFIRMATION_METHOD_HOLDER_OF_KEY
+LASSO_SAML_CONFIRMATION_METHOD_SENDER_VOUCHES
+LASSO_SAML_MAJOR_VERSION_N
+LASSO_SAML_MINOR_VERSION_N
+LASSO_SAML_PROTOCOL_HREF
+LASSO_SAML_PROTOCOL_PREFIX
+LASSO_SAML_STATUS_CODE_REQUESTER
+LASSO_SAML_STATUS_CODE_REQUEST_DENIED
+LASSO_SAML_STATUS_CODE_REQUEST_VERSION_DEPRECATED
+LASSO_SAML_STATUS_CODE_REQUEST_VERSION_TOO_HIGH
+LASSO_SAML_STATUS_CODE_REQUEST_VERSION_TOO_LOW
+LASSO_SAML_STATUS_CODE_RESOURCE_NOT_RECOGNIZED
+LASSO_SAML_STATUS_CODE_RESPONDER
+LASSO_SAML_STATUS_CODE_SUCCESS
+LASSO_SAML_STATUS_CODE_TOO_MANY_RESPONSES
+LASSO_SAML_STATUS_CODE_VERSION_MISMATCH
+LASSO_SERVER_ERROR_ADD_PROVIDER_FAILED
+LASSO_SERVER_ERROR_ADD_PROVIDER_PROTOCOL_MISMATCH
+LASSO_SERVER_ERROR_INVALID_XML
+LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND
+LASSO_SERVER_ERROR_SET_ENCRYPTION_PRIVATE_KEY_FAILED
+LASSO_SIGNATURE_METHOD_ATTRIBUTE
+LASSO_SIGNATURE_METHOD_DSA_SHA1
+LASSO_SIGNATURE_METHOD_LAST
+LASSO_SIGNATURE_METHOD_RSA_SHA1
+LASSO_SIGNATURE_TYPE_ATTRIBUTE
+LASSO_SIGNATURE_TYPE_LAST
+LASSO_SIGNATURE_TYPE_NONE
+LASSO_SIGNATURE_TYPE_SIMPLE
+LASSO_SIGNATURE_TYPE_WITHX509
+LASSO_SOAP_ENV_ACTOR
+LASSO_SOAP_ENV_HREF
+LASSO_SOAP_ENV_PREFIX
+LASSO_SOAP_ERROR_MISSING_BODY
+LASSO_SOAP_ERROR_MISSING_ENVELOPE
+LASSO_SOAP_ERROR_MISSING_HEADER
+LASSO_SOAP_ERROR_MISSING_SOAP_FAULT_DETAIL
+LASSO_SOAP_ERROR_REDIRECT_REQUEST_FAULT
+LASSO_SOAP_FAULT_CODE_CLIENT
+LASSO_SOAP_FAULT_CODE_MUST_UNDERSTAND
+LASSO_SOAP_FAULT_CODE_SERVER
+LASSO_SOAP_FAULT_CODE_VERSION_MISMATCH
+LASSO_SOAP_FAULT_REDIRECT_REQUEST
+LASSO_WSF_ENABLED
+LASSO_WSF_PROFILE_ERROR_INVALID_OR_MISSING_REFERENCE_TO_MESSAGE_ID
+LASSO_WSF_PROFILE_ERROR_MISSING_ASSERTION_ID
+LASSO_WSF_PROFILE_ERROR_MISSING_CORRELATION
+LASSO_WSF_PROFILE_ERROR_MISSING_CREDENTIAL_REF
+LASSO_WSF_PROFILE_ERROR_MISSING_DESCRIPTION
+LASSO_WSF_PROFILE_ERROR_MISSING_ENDPOINT
+LASSO_WSF_PROFILE_ERROR_MISSING_RESOURCE_ID
+LASSO_WSF_PROFILE_ERROR_MISSING_SECURITY
+LASSO_WSF_PROFILE_ERROR_MISSING_SENDER_ID
+LASSO_WSF_PROFILE_ERROR_REDIRECT_REQUEST
+LASSO_WSF_PROFILE_ERROR_REDIRECT_REQUEST_UNSUPPORTED_BY_REQUESTER
+LASSO_WSF_PROFILE_ERROR_SECURITY_MECHANISM_CHECK_FAILED
+LASSO_WSF_PROFILE_ERROR_SERVER_INTERACTION_REQUIRED
+LASSO_WSF_PROFILE_ERROR_SERVER_INTERACTION_REQUIRED_FOR_DATA
+LASSO_WSF_PROFILE_ERROR_SOAP_FAULT
+LASSO_WSF_PROFILE_ERROR_UNKNOWN_STATUS_CODE
+LASSO_WSF_PROFILE_ERROR_UNSUPPORTED_SECURITY_MECHANISM
+LASSO_WSSEC_ERROR_BAD_PASSWORD
+LASSO_WSSEC_ERROR_MISSING_SECURITY_TOKEN
+LASSO_WSUTIL1_HREF
+LASSO_WSUTIL1_PREFIX
+LASSO_XML_ERROR_ATTR_NOT_FOUND
+LASSO_XML_ERROR_ATTR_VALUE_NOT_FOUND
+LASSO_XML_ERROR_INVALID_FILE
+LASSO_XML_ERROR_MISSING_NAMESPACE
+LASSO_XML_ERROR_NODE_CONTENT_NOT_FOUND
+LASSO_XML_ERROR_NODE_NOT_FOUND
+LASSO_XML_ERROR_OBJECT_CONSTRUCTION_FAILED
+LASSO_XML_ERROR_SCHEMA_INVALID_FRAGMENT
+LASSO_XSI_HREF
+LASSO_XSI_PREFIX
+struct LassoAssertionQuery { LassoAssertionQueryPrivate* private_data }
+LassoAssertionQueryRequestType
+LassoCheckVersionMode
+struct LassoDefederation { }
+struct LassoDsKeyInfo { LassoDsKeyValue* KeyValue }
+struct LassoDsKeyValue { LassoDsRsaKeyValue* RSAKeyValue }
+struct LassoDsRsaKeyValue { char* Modulus, char* Exponent }
+struct LassoEcp { gchar* assertionConsumerURL, LassoEcpPrivate* private_data }
+LassoEncryptionMode
+LassoEncryptionSymKeyType
+struct LassoFederation { gchar* remote_providerID, LassoNode* local_nameIdentifier, LassoNode* remote_nameIdentifier, LassoFederationPrivate* private_data }
+LassoHttpMethod
+struct LassoIdentity { GHashTable* federations, gboolean is_dirty, LassoIdentityPrivate* private_data }
+struct LassoLecp { LassoLibAuthnRequestEnvelope* authnRequestEnvelope, LassoLibAuthnResponseEnvelope* authnResponseEnvelope, char* assertionConsumerServiceURL }
+struct LassoLibAssertion { char* InResponseTo }
+struct LassoLibAuthenticationStatement { LassoLibAuthnContext* AuthnContext, char* ReauthenticateOnOrAfter, char* SessionIndex }
+struct LassoLibAuthnContext { char* AuthnContextClassRef, char* AuthnContextStatementRef }
+struct LassoLibAuthnRequest { GList* Extension, char* ProviderID, char* AffiliationID, char* NameIDPolicy, gboolean ForceAuthn, gboolean IsPassive, char* ProtocolProfile, char* AssertionConsumerServiceID, LassoLibRequestAuthnContext* RequestAuthnContext, char* RelayState, LassoLibScoping* Scoping, char* consent }
+struct LassoLibAuthnRequestEnvelope { GList* Extension, LassoLibAuthnRequest* AuthnRequest, char* ProviderID, char* ProviderName, char* AssertionConsumerServiceURL, LassoLibIDPList* IDPList, gboolean IsPassive }
+struct LassoLibAuthnResponse { GList* Extension, char* ProviderID, char* RelayState, char* consent }
+struct LassoLibAuthnResponseEnvelope { GList* Extension, LassoLibAuthnResponse* AuthnResponse, char* AssertionConsumerServiceURL }
+struct LassoLibFederationTerminationNotification { GList* Extension, char* ProviderID, LassoSamlNameIdentifier* NameIdentifier, char* consent, char* RelayState }
+struct LassoLibIDPEntries { GList* IDPEntry }
+struct LassoLibIDPEntry { char* ProviderID, char* ProviderName, char* Loc }
+struct LassoLibIDPList { LassoLibIDPEntries* IDPEntries, char* GetComplete }
+struct LassoLibLogoutRequest { GList* Extension, char* ProviderID, LassoSamlNameIdentifier* NameIdentifier, char* SessionIndex, char* RelayState, char* consent, char* NotOnOrAfter }
+struct LassoLibLogoutResponse { }
+struct LassoLibNameIdentifierMappingRequest { GList* Extension, char* ProviderID, LassoSamlNameIdentifier* NameIdentifier, char* TargetNamespace, char* consent }
+struct LassoLibNameIdentifierMappingResponse { GList* Extension, char* ProviderID, LassoSamlpStatus* Status, LassoSamlNameIdentifier* NameIdentifier }
+struct LassoLibRegisterNameIdentifierRequest { GList* Extension, char* ProviderID, LassoSamlNameIdentifier* IDPProvidedNameIdentifier, LassoSamlNameIdentifier* SPProvidedNameIdentifier, LassoSamlNameIdentifier* OldProvidedNameIdentifier, char* RelayState }
+struct LassoLibRegisterNameIdentifierResponse { }
+struct LassoLibRequestAuthnContext { GList* AuthnContextClassRef, GList* AuthnContextStatementRef, char* AuthnContextComparison }
+struct LassoLibScoping { int ProxyCount, LassoLibIDPList* IDPList }
+struct LassoLibStatusResponse { GList* Extension, char* ProviderID, LassoSamlpStatus* Status, char* RelayState }
+struct LassoLibSubject { LassoSamlNameIdentifier* IDPProvidedNameIdentifier }
+struct LassoLogin { LassoLoginProtocolProfile protocolProfile, gchar* assertionArtifact, LassoSamlAssertion* assertion, gchar* nameIDPolicy, LassoHttpMethod http_method, LassoLoginPrivate* private_data }
+LassoLoginProtocolProfile
+struct LassoLogout { LassoNode* initial_request, LassoNode* initial_response, gchar* initial_remote_providerID, gint providerID_index, LassoHttpMethod initial_http_request_method, LassoLogoutPrivate* private_data }
+LassoMdProtocolType
+LassoMessageFormat
+struct LassoMiscTextNode { char* content, char* name, char* ns_href, char* ns_prefix, gboolean text_child }
+struct LassoNameIdManagement { }
+struct LassoNameIdentifierMapping { gchar* targetNameIdentifier }
+struct LassoNameRegistration { LassoSamlNameIdentifier* oldNameIdentifier }
+struct LassoNode { }
+struct LassoProfile { LassoServer* server, LassoNode* request, LassoNode* response, LassoNode* nameIdentifier, gchar* remote_providerID, gchar* msg_url, gchar* msg_body, gchar* msg_relayState, LassoIdentity* identity, LassoSession* session, LassoHttpMethod http_request_method, gint signature_status, LassoProfilePrivate* private_data }
+LassoProfileSignatureHint
+LassoProfileSignatureVerifyHint
+LassoProtocolConformance
+struct LassoProvider { gchar* ProviderID, LassoProviderRole role, char* metadata_filename, gchar* public_key, gchar* ca_cert_chain, LassoProviderPrivate* private_data }
+LassoProviderRole
+LassoRequestType
+struct LassoSaml2Action { char* content, char* Namespace }
+struct LassoSaml2Advice { GList* AssertionIDRef, GList* AssertionURIRef, GList* Assertion, GList* EncryptedAssertion }
+struct LassoSaml2Assertion { LassoSaml2NameID* Issuer, LassoSaml2Subject* Subject, LassoSaml2Conditions* Conditions, LassoSaml2Advice* Advice, GList* Statement, GList* AuthnStatement, GList* AuthzDecisionStatement, GList* AttributeStatement, char* Version, char* ID, char* IssueInstant, LassoSignatureType sign_type, LassoSignatureMethod sign_method, char* private_key_file, char* certificate_file, gboolean encryption_activated, char* encryption_public_key_str, LassoEncryptionSymKeyType encryption_sym_key_type }
+LassoSaml2AssertionValidationState
+struct LassoSaml2Attribute { GList* AttributeValue, char* Name, char* NameFormat, char* FriendlyName }
+struct LassoSaml2AttributeStatement { GList* Attribute, GList* EncryptedAttribute }
+struct LassoSaml2AttributeValue { GList* any }
+struct LassoSaml2AudienceRestriction { char* Audience }
+struct LassoSaml2AuthnContext { char* AuthnContextClassRef, char* AuthnContextDeclRef, char* AuthenticatingAuthority }
+struct LassoSaml2AuthnStatement { LassoSaml2SubjectLocality* SubjectLocality, LassoSaml2AuthnContext* AuthnContext, char* AuthnInstant, char* SessionIndex, char* SessionNotOnOrAfter }
+struct LassoSaml2AuthzDecisionStatement { LassoSaml2Action* Action, LassoSaml2Evidence* Evidence, char* Resource, char* Decision }
+struct LassoSaml2BaseIDAbstract { char* NameQualifier, char* SPNameQualifier }
+struct LassoSaml2ConditionAbstract { }
+struct LassoSaml2Conditions { GList* Condition, GList* AudienceRestriction, GList* OneTimeUse, GList* ProxyRestriction, char* NotBefore, char* NotOnOrAfter }
+struct LassoSaml2EncryptedElement { xmlNode* EncryptedData, GList* EncryptedKey, LassoNode* original_data }
+struct LassoSaml2Evidence { GList* AssertionIDRef, GList* AssertionURIRef, GList* Assertion, GList* EncryptedAssertion }
+struct LassoSaml2KeyInfoConfirmationData { }
+struct LassoSaml2NameID { char* content, char* Format, char* SPProvidedID, char* NameQualifier, char* SPNameQualifier }
+struct LassoSaml2OneTimeUse { }
+struct LassoSaml2ProxyRestriction { char* Audience, char* Count }
+struct LassoSaml2StatementAbstract { }
+struct LassoSaml2Subject { LassoSaml2BaseIDAbstract* BaseID, LassoSaml2NameID* NameID, LassoSaml2EncryptedElement* EncryptedID, LassoSaml2SubjectConfirmation* SubjectConfirmation }
+struct LassoSaml2SubjectConfirmation { LassoSaml2BaseIDAbstract* BaseID, LassoSaml2NameID* NameID, LassoSaml2EncryptedElement* EncryptedID, LassoSaml2SubjectConfirmationData* SubjectConfirmationData, char* Method }
+struct LassoSaml2SubjectConfirmationData { char* NotBefore, char* NotOnOrAfter, char* Recipient, char* InResponseTo, char* Address }
+struct LassoSaml2SubjectLocality { char* Address, char* DNSName }
+struct LassoSamlAdvice { GList* AssertionIDReference, LassoNode* Assertion }
+struct LassoSamlAssertion { LassoSamlConditions* Conditions, LassoSamlAdvice* Advice, LassoSamlSubjectStatement* SubjectStatement, LassoSamlAuthenticationStatement* AuthenticationStatement, LassoSamlAttributeStatement* AttributeStatement, int MajorVersion, int MinorVersion, char* AssertionID, char* Issuer, char* IssueInstant, LassoSignatureType sign_type, LassoSignatureMethod sign_method, char* private_key_file, char* certificate_file }
+struct LassoSamlAttribute { gchar* attributeName, gchar* attributeNameSpace, GList* AttributeValue }
+struct LassoSamlAttributeDesignator { char* AttributeName, char* AttributeNamespace }
+struct LassoSamlAttributeStatement { GList* Attribute }
+struct LassoSamlAttributeValue { GList* any }
+struct LassoSamlAudienceRestrictionCondition { GList* Audience }
+struct LassoSamlAuthenticationStatement { LassoSamlSubjectLocality* SubjectLocality, GList* AuthorityBinding, char* AuthenticationMethod, char* AuthenticationInstant }
+struct LassoSamlAuthorityBinding { char* AuthorityKind, char* Location, char* Binding }
+struct LassoSamlConditionAbstract { }
+struct LassoSamlConditions { GList* Condition, GList* AudienceRestrictionCondition, char* NotBefore, char* NotOnOrAfter }
+struct LassoSamlNameIdentifier { char* NameQualifier, char* Format, char* content }
+struct LassoSamlStatementAbstract { }
+struct LassoSamlSubject { LassoSamlNameIdentifier* NameIdentifier, LassoSamlSubjectConfirmation* SubjectConfirmation, LassoSaml2EncryptedElement* EncryptedNameIdentifier }
+struct LassoSamlSubjectConfirmation { GList* ConfirmationMethod, char* SubjectConfirmationData, LassoDsKeyInfo* KeyInfo }
+struct LassoSamlSubjectLocality { char* IPAddress, char* DNSAddress }
+struct LassoSamlSubjectStatement { }
+struct LassoSamlSubjectStatementAbstract { LassoSamlSubject* Subject }
+struct LassoSamlp2ArtifactResolve { char* Artifact }
+struct LassoSamlp2ArtifactResponse { LassoNode* any }
+struct LassoSamlp2AssertionIDRequest { char* AssertionIDRef }
+struct LassoSamlp2AttributeQuery { GList* Attribute }
+struct LassoSamlp2AuthnQuery { LassoSamlp2RequestedAuthnContext* RequestedAuthnContext, char* SessionIndex }
+struct LassoSamlp2AuthnRequest { LassoSaml2Subject* Subject, LassoSamlp2NameIDPolicy* NameIDPolicy, LassoSaml2Conditions* Conditions, LassoSamlp2RequestedAuthnContext* RequestedAuthnContext, LassoSamlp2Scoping* Scoping, gboolean ForceAuthn, gboolean IsPassive, char* ProtocolBinding, int AssertionConsumerServiceIndex, char* AssertionConsumerServiceURL, int AttributeConsumingServiceIndex, char* ProviderName, G_GNUC_DEPRECATED char }
+struct LassoSamlp2AuthzDecisionQuery { LassoSaml2Action* Action, LassoSaml2Evidence* Evidence, char* Resource }
+struct LassoSamlp2Extensions { }
+struct LassoSamlp2IDPEntry { char* ProviderID, char* Name, char* Loc }
+struct LassoSamlp2IDPList { LassoSamlp2IDPEntry* IDPEntry, char* GetComplete }
+struct LassoSamlp2LogoutRequest { LassoSaml2BaseIDAbstract* BaseID, LassoSaml2NameID* NameID, LassoSaml2EncryptedElement* EncryptedID, char* SessionIndex, char* Reason, char* NotOnOrAfter, G_GNUC_DEPRECATED char }
+struct LassoSamlp2LogoutResponse { G_GNUC_DEPRECATED char }
+struct LassoSamlp2ManageNameIDRequest { LassoSaml2NameID* NameID, LassoSaml2EncryptedElement* EncryptedID, char* NewID, LassoSaml2EncryptedElement* NewEncryptedID, LassoSamlp2Terminate* Terminate }
+struct LassoSamlp2ManageNameIDResponse { }
+struct LassoSamlp2NameIDMappingRequest { LassoSaml2BaseIDAbstract* BaseID, LassoSaml2NameID* NameID, LassoSaml2EncryptedElement* EncryptedID, LassoSamlp2NameIDPolicy* NameIDPolicy }
+struct LassoSamlp2NameIDMappingResponse { LassoSaml2NameID* NameID, LassoSaml2EncryptedElement* EncryptedID }
+struct LassoSamlp2NameIDPolicy { char* Format, char* SPNameQualifier, gboolean AllowCreate }
+struct LassoSamlp2RequestAbstract { LassoSaml2NameID* Issuer, LassoSamlp2Extensions* Extensions, char* ID, char* Version, char* IssueInstant, char* Destination, char* Consent, LassoSignatureType sign_type, LassoSignatureMethod sign_method, char* private_key_file, char* certificate_file }
+struct LassoSamlp2RequestedAuthnContext { GList* AuthnContextClassRef, GList* AuthnContextDeclRef, char* Comparison }
+struct LassoSamlp2Response { GList* Assertion, GList* EncryptedAssertion }
+struct LassoSamlp2Scoping { LassoSamlp2IDPList* IDPList, char* RequesterID, char* ProxyCount }
+struct LassoSamlp2Status { LassoSamlp2StatusCode* StatusCode, char* StatusMessage, LassoSamlp2StatusDetail* StatusDetail }
+struct LassoSamlp2StatusCode { LassoSamlp2StatusCode* StatusCode, char* Value }
+struct LassoSamlp2StatusDetail { }
+struct LassoSamlp2StatusResponse { LassoSaml2NameID* Issuer, LassoSamlp2Extensions* Extensions, LassoSamlp2Status* Status, char* ID, char* InResponseTo, char* Version, char* IssueInstant, char* Destination, char* Consent, LassoSignatureType sign_type, LassoSignatureMethod sign_method, char* private_key_file, char* certificate_file }
+struct LassoSamlp2SubjectQueryAbstract { LassoSaml2Subject* Subject }
+struct LassoSamlp2Terminate { }
+struct LassoSamlpRequest { char* AssertionArtifact }
+struct LassoSamlpRequestAbstract { GList* RespondWith, char* RequestID, int MajorVersion, int MinorVersion, char* IssueInstant, LassoSignatureType sign_type, LassoSignatureMethod sign_method, char* private_key_file, char* certificate_file }
+struct LassoSamlpResponse { LassoSamlpStatus* Status, GList* Assertion }
+struct LassoSamlpResponseAbstract { char* ResponseID, char* InResponseTo, int MajorVersion, int MinorVersion, char* IssueInstant, char* Recipient, LassoSignatureType sign_type, LassoSignatureMethod sign_method, char* private_key_file, char* certificate_file }
+struct LassoSamlpStatus { LassoSamlpStatusCode* StatusCode, char* StatusMessage }
+struct LassoSamlpStatusCode { LassoSamlpStatusCode* StatusCode, char* Value }
+struct LassoServer { GHashTable* providers, GHashTable* services, gchar* private_key, gchar* private_key_password, gchar* certificate, LassoSignatureMethod signature_method, LassoServerPrivate* private_data }
+struct LassoSession { GHashTable* assertions, gboolean is_dirty, LassoSessionPrivate* private_data }
+LassoSignatureMethod
+LassoSignatureType
+struct LassoSoapBody { GList* any, gchar* Id }
+struct LassoSoapDetail { GList* any }
+struct LassoSoapEnvelope { LassoSoapHeader* Header, LassoSoapBody* Body }
+struct LassoSoapFault { gchar* faultcode, gchar* faultstring, GList* faultactor, LassoSoapDetail* Detail }
+struct LassoSoapHeader { GList* Other }
+lasso_error_t lasso_assertion_query_add_attribute_request ( LassoAssertionQuery* assertion_query, char* format, char* name )
+lasso_error_t lasso_assertion_query_build_request_msg ( LassoAssertionQuery* assertion_query )
+lasso_error_t lasso_assertion_query_build_response_msg ( LassoAssertionQuery* assertion_query )
+None lasso_assertion_query_destroy ( LassoAssertionQuery* assertion_query )
+LassoAssertionQueryRequestType lasso_assertion_query_get_request_type ( LassoAssertionQuery* assertion_query )
+GType lasso_assertion_query_get_type ( )
+lasso_error_t lasso_assertion_query_init_request ( LassoAssertionQuery* assertion_query, char* remote_provider_id, LassoHttpMethod http_method, LassoAssertionQueryRequestType query_request_type )
+LassoAssertionQuery* lasso_assertion_query_new ( LassoServer* server )
+lasso_error_t lasso_assertion_query_process_request_msg ( LassoAssertionQuery* assertion_query, gchar* request_msg )
+lasso_error_t lasso_assertion_query_process_response_msg ( LassoAssertionQuery* assertion_query, gchar* response_msg )
+lasso_error_t lasso_assertion_query_validate_request ( LassoAssertionQuery* assertion_query )
+char* lasso_build_unique_id ( unsigned int size )
+int lasso_check_version ( int major, int minor, int subminor, LassoCheckVersionMode mode )
+lasso_error_t lasso_defederation_build_notification_msg ( LassoDefederation* defederation )
+None lasso_defederation_destroy ( LassoDefederation* defederation )
+GType lasso_defederation_get_type ( )
+lasso_error_t lasso_defederation_init_notification ( LassoDefederation* defederation, gchar* remote_providerID, LassoHttpMethod http_method )
+LassoDefederation* lasso_defederation_new ( LassoServer* server )
+lasso_error_t lasso_defederation_process_notification_msg ( LassoDefederation* defederation, gchar* notification_msg )
+lasso_error_t lasso_defederation_validate_notification ( LassoDefederation* defederation )
+GType lasso_ds_key_info_get_type ( )
+LassoDsKeyInfo* lasso_ds_key_info_new ( )
+GType lasso_ds_key_value_get_type ( )
+LassoDsKeyValue* lasso_ds_key_value_new ( )
+GType lasso_ds_rsa_key_value_get_type ( )
+LassoDsRsaKeyValue* lasso_ds_rsa_key_value_new ( )
+None lasso_ecp_destroy ( LassoEcp* ecp )
+GType lasso_ecp_get_type ( )
+LassoEcp* lasso_ecp_new ( LassoServer* server )
+lasso_error_t lasso_ecp_process_authn_request_msg ( LassoEcp* ecp, const char* authn_request_msg )
+lasso_error_t lasso_ecp_process_response_msg ( LassoEcp* ecp, const char* response_msg )
+None lasso_federation_build_local_name_identifier ( LassoFederation* federation, const gchar* nameQualifier, const gchar* format, const gchar* content )
+None lasso_federation_destroy ( LassoFederation* federation )
+GType lasso_federation_get_type ( )
+LassoFederation* lasso_federation_new ( const gchar* remote_providerID )
+gboolean lasso_federation_verify_name_identifier ( LassoFederation* federation, LassoNode* name_identifier )
+char* lasso_get_prefix_for_dst_service_href ( const char* href )
+gchar* lasso_get_prefix_for_idwsf2_dst_service_href ( const gchar* href )
+None lasso_identity_destroy ( LassoIdentity* identity )
+gchar* lasso_identity_dump ( LassoIdentity* identity )
+LassoFederation* lasso_identity_get_federation ( LassoIdentity* identity, const char* providerID )
+GType lasso_identity_get_type ( )
+LassoIdentity* lasso_identity_new ( )
+LassoIdentity* lasso_identity_new_from_dump ( const gchar* dump )
+lasso_error_t lasso_init ( )
+lasso_error_t lasso_lecp_build_authn_request_envelope_msg ( LassoLecp* lecp )
+lasso_error_t lasso_lecp_build_authn_request_msg ( LassoLecp* lecp )
+lasso_error_t lasso_lecp_build_authn_response_envelope_msg ( LassoLecp* lecp )
+lasso_error_t lasso_lecp_build_authn_response_msg ( LassoLecp* lecp )
+None lasso_lecp_destroy ( LassoLecp* lecp )
+GType lasso_lecp_get_type ( )
+lasso_error_t lasso_lecp_init_authn_request ( LassoLecp* lecp, const char* remote_providerID )
+LassoLecp* lasso_lecp_new ( LassoServer* server )
+lasso_error_t lasso_lecp_process_authn_request_envelope_msg ( LassoLecp* lecp, const char* request_msg )
+lasso_error_t lasso_lecp_process_authn_request_msg ( LassoLecp* lecp, const char* authn_request_msg )
+lasso_error_t lasso_lecp_process_authn_response_envelope_msg ( LassoLecp* lecp, const char* response_msg )
+GType lasso_lib_assertion_get_type ( )
+LassoLibAssertion* lasso_lib_assertion_new ( )
+LassoLibAssertion* lasso_lib_assertion_new_full ( const char* issuer, const char* requestID, const char* audience, const char* notBefore, const char* notOnOrAfter )
+GType lasso_lib_authentication_statement_get_type ( )
+LassoLibAuthenticationStatement* lasso_lib_authentication_statement_new ( )
+LassoLibAuthenticationStatement* lasso_lib_authentication_statement_new_full ( const char* authenticationMethod, const char* authenticationInstant, const char* reauthenticateOnOrAfter, LassoSamlNameIdentifier* sp_identifier, LassoSamlNameIdentifier* idp_identifier )
+GType lasso_lib_authn_context_get_type ( )
+LassoNode* lasso_lib_authn_context_new ( )
+GType lasso_lib_authn_request_envelope_get_type ( )
+LassoLibAuthnRequestEnvelope* lasso_lib_authn_request_envelope_new ( )
+LassoLibAuthnRequestEnvelope* lasso_lib_authn_request_envelope_new_full ( LassoLibAuthnRequest* authnRequest, char* providerID, char* assertionConsumerServiceURL )
+GType lasso_lib_authn_request_get_type ( )
+LassoLibAuthnRequest* lasso_lib_authn_request_new ( )
+GType lasso_lib_authn_response_envelope_get_type ( )
+LassoLibAuthnResponseEnvelope* lasso_lib_authn_response_envelope_new ( LassoLibAuthnResponse* response, char* assertionConsumerServiceURL )
+GType lasso_lib_authn_response_get_type ( )
+LassoNode* lasso_lib_authn_response_new ( char* providerID, LassoLibAuthnRequest* request )
+GType lasso_lib_federation_termination_notification_get_type ( )
+LassoNode* lasso_lib_federation_termination_notification_new ( )
+LassoNode* lasso_lib_federation_termination_notification_new_full ( char* providerID, LassoSamlNameIdentifier* nameIdentifier, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_idp_entries_get_type ( )
+LassoNode* lasso_lib_idp_entries_new ( )
+GType lasso_lib_idp_entry_get_type ( )
+LassoNode* lasso_lib_idp_entry_new ( )
+GType lasso_lib_idp_list_get_type ( )
+LassoNode* lasso_lib_idp_list_new ( )
+GType lasso_lib_logout_request_get_type ( )
+LassoNode* lasso_lib_logout_request_new ( )
+LassoNode* lasso_lib_logout_request_new_full ( char* providerID, LassoSamlNameIdentifier* nameIdentifier, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_logout_response_get_type ( )
+LassoNode* lasso_lib_logout_response_new ( )
+LassoNode* lasso_lib_logout_response_new_full ( char* providerID, const char* statusCodeValue, LassoLibLogoutRequest* request, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_name_identifier_mapping_request_get_type ( )
+LassoNode* lasso_lib_name_identifier_mapping_request_new ( )
+LassoNode* lasso_lib_name_identifier_mapping_request_new_full ( char* providerID, LassoSamlNameIdentifier* nameIdentifier, const char* targetNamespace, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_name_identifier_mapping_response_get_type ( )
+LassoNode* lasso_lib_name_identifier_mapping_response_new ( )
+LassoNode* lasso_lib_name_identifier_mapping_response_new_full ( char* provideRID, const char* statusCodeValue, LassoLibNameIdentifierMappingRequest* request, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_register_name_identifier_request_get_type ( )
+LassoNode* lasso_lib_register_name_identifier_request_new ( )
+LassoNode* lasso_lib_register_name_identifier_request_new_full ( const char* providerID, LassoSamlNameIdentifier* idpNameIdentifier, LassoSamlNameIdentifier* spNameIdentifier, LassoSamlNameIdentifier* oldNameIdentifier, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_register_name_identifier_response_get_type ( )
+LassoNode* lasso_lib_register_name_identifier_response_new ( )
+LassoNode* lasso_lib_register_name_identifier_response_new_full ( const char* providerID, const char* statusCodeValue, LassoLibRegisterNameIdentifierRequest* request, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_request_authn_context_get_type ( )
+LassoLibRequestAuthnContext* lasso_lib_request_authn_context_new ( )
+GType lasso_lib_scoping_get_type ( )
+LassoLibScoping* lasso_lib_scoping_new ( )
+GType lasso_lib_status_response_get_type ( )
+LassoNode* lasso_lib_status_response_new ( )
+GType lasso_lib_subject_get_type ( )
+LassoLibSubject* lasso_lib_subject_new ( )
+lasso_error_t lasso_login_accept_sso ( LassoLogin* login )
+lasso_error_t lasso_login_build_artifact_msg ( LassoLogin* login, LassoHttpMethod http_method )
+lasso_error_t lasso_login_build_assertion ( LassoLogin* login, const char* authenticationMethod, const char* authenticationInstant, const char* reauthenticateOnOrAfter, const char* notBefore, const char* notOnOrAfter )
+lasso_error_t lasso_login_build_authn_request_msg ( LassoLogin* login )
+lasso_error_t lasso_login_build_authn_response_msg ( LassoLogin* login )
+lasso_error_t lasso_login_build_request_msg ( LassoLogin* login )
+lasso_error_t lasso_login_build_response_msg ( LassoLogin* login, gchar* remote_providerID )
+None lasso_login_destroy ( LassoLogin* login )
+gchar* lasso_login_dump ( LassoLogin* login )
+LassoNode* lasso_login_get_assertion ( LassoLogin* login )
+GType lasso_login_get_type ( )
+lasso_error_t lasso_login_init_authn_request ( LassoLogin* login, const gchar* remote_providerID, LassoHttpMethod http_method )
+lasso_error_t lasso_login_init_idp_initiated_authn_request ( LassoLogin* login, const gchar* remote_providerID )
+lasso_error_t lasso_login_init_request ( LassoLogin* login, gchar* response_msg, LassoHttpMethod response_http_method )
+gboolean lasso_login_must_ask_for_consent ( LassoLogin* login )
+gboolean lasso_login_must_authenticate ( LassoLogin* login )
+LassoLogin* lasso_login_new ( LassoServer* server )
+LassoLogin* lasso_login_new_from_dump ( LassoServer* server, const gchar* dump )
+lasso_error_t lasso_login_process_authn_request_msg ( LassoLogin* login, const char* authn_request_msg )
+lasso_error_t lasso_login_process_authn_response_msg ( LassoLogin* login, gchar* authn_response_msg )
+lasso_error_t lasso_login_process_paos_response_msg ( LassoLogin* login, gchar* msg )
+lasso_error_t lasso_login_process_request_msg ( LassoLogin* login, gchar* request_msg )
+lasso_error_t lasso_login_process_response_msg ( LassoLogin* login, gchar* response_msg )
+lasso_error_t lasso_login_validate_request_msg ( LassoLogin* login, gboolean authentication_result, gboolean is_consent_obtained )
+lasso_error_t lasso_logout_build_request_msg ( LassoLogout* logout )
+lasso_error_t lasso_logout_build_response_msg ( LassoLogout* logout )
+None lasso_logout_destroy ( LassoLogout* logout )
+gchar* lasso_logout_dump ( LassoLogout* logout )
+gchar* lasso_logout_get_next_providerID ( LassoLogout* logout )
+GType lasso_logout_get_type ( )
+lasso_error_t lasso_logout_init_request ( LassoLogout* logout, gchar* remote_providerID, LassoHttpMethod request_method )
+LassoLogout* lasso_logout_new ( LassoServer* server )
+LassoLogout* lasso_logout_new_from_dump ( LassoServer* server, const gchar* dump )
+lasso_error_t lasso_logout_process_request_msg ( LassoLogout* logout, gchar* request_msg )
+lasso_error_t lasso_logout_process_response_msg ( LassoLogout* logout, gchar* response_msg )
+lasso_error_t lasso_logout_reset_providerID_index ( LassoLogout* logout )
+lasso_error_t lasso_logout_validate_request ( LassoLogout* logout )
+GType lasso_misc_text_node_get_type ( )
+xmlNode* lasso_misc_text_node_get_xml_content ( LassoMiscTextNode* misc_text_node )
+LassoNode* lasso_misc_text_node_new ( )
+LassoMiscTextNode* lasso_misc_text_node_new_with_string ( const char* content )
+LassoMiscTextNode* lasso_misc_text_node_new_with_xml_node ( xmlNode* xml_node )
+None lasso_misc_text_node_set_xml_content ( LassoMiscTextNode* misc_text_node, xmlNode* node )
+lasso_error_t lasso_name_id_management_build_request_msg ( LassoNameIdManagement* name_id_management )
+lasso_error_t lasso_name_id_management_build_response_msg ( LassoNameIdManagement* name_id_management )
+None lasso_name_id_management_destroy ( LassoNameIdManagement* name_id_management )
+char* lasso_name_id_management_dump ( LassoNameIdManagement* name_id_management )
+GType lasso_name_id_management_get_type ( )
+lasso_error_t lasso_name_id_management_init_request ( LassoNameIdManagement* name_id_management, char* remote_provider_id, char* new_name_id, LassoHttpMethod http_method )
+LassoNameIdManagement* lasso_name_id_management_new ( LassoServer* server )
+LassoNameIdManagement* lasso_name_id_management_new_from_dump ( LassoServer* server, const char* dump )
+lasso_error_t lasso_name_id_management_process_request_msg ( LassoNameIdManagement* name_id_management, gchar* request_msg )
+lasso_error_t lasso_name_id_management_process_response_msg ( LassoNameIdManagement* name_id_management, gchar* response_msg )
+lasso_error_t lasso_name_id_management_validate_request ( LassoNameIdManagement* name_id_management )
+lasso_error_t lasso_name_identifier_mapping_build_request_msg ( LassoNameIdentifierMapping* mapping )
+lasso_error_t lasso_name_identifier_mapping_build_response_msg ( LassoNameIdentifierMapping* mapping )
+None lasso_name_identifier_mapping_destroy ( LassoNameIdentifierMapping* mapping )
+GType lasso_name_identifier_mapping_get_type ( )
+lasso_error_t lasso_name_identifier_mapping_init_request ( LassoNameIdentifierMapping* mapping, gchar* targetNamespace, gchar* remote_providerID )
+LassoNameIdentifierMapping* lasso_name_identifier_mapping_new ( LassoServer* server )
+lasso_error_t lasso_name_identifier_mapping_process_request_msg ( LassoNameIdentifierMapping* mapping, gchar* request_msg )
+lasso_error_t lasso_name_identifier_mapping_process_response_msg ( LassoNameIdentifierMapping* mapping, gchar* response_msg )
+lasso_error_t lasso_name_identifier_mapping_validate_request ( LassoNameIdentifierMapping* mapping )
+lasso_error_t lasso_name_registration_build_request_msg ( LassoNameRegistration* name_registration )
+lasso_error_t lasso_name_registration_build_response_msg ( LassoNameRegistration* name_registration )
+None lasso_name_registration_destroy ( LassoNameRegistration* name_registration )
+gchar* lasso_name_registration_dump ( LassoNameRegistration* name_registration )
+GType lasso_name_registration_get_type ( )
+lasso_error_t lasso_name_registration_init_request ( LassoNameRegistration* name_registration, char* remote_providerID, LassoHttpMethod http_method )
+LassoNameRegistration* lasso_name_registration_new ( LassoServer* server )
+LassoNameRegistration* lasso_name_registration_new_from_dump ( LassoServer* server, const char* dump )
+lasso_error_t lasso_name_registration_process_request_msg ( LassoNameRegistration* name_registration, gchar* request_msg )
+lasso_error_t lasso_name_registration_process_response_msg ( LassoNameRegistration* name_registration, gchar* response_msg )
+lasso_error_t lasso_name_registration_validate_request ( LassoNameRegistration* name_registration )
+None lasso_node_cleanup_original_xmlnodes ( LassoNode* node )
+char* lasso_node_debug ( LassoNode* node, int level )
+None lasso_node_destroy ( LassoNode* node )
+char* lasso_node_dump ( LassoNode* node )
+char* lasso_node_export_to_base64 ( LassoNode* node )
+char* lasso_node_export_to_ecp_soap_response ( LassoNode* node, const char* assertionConsumerURL )
+char* lasso_node_export_to_paos_request ( LassoNode* node, const char* issuer, const char* responseConsumerURL, const char* relay_state )
+char* lasso_node_export_to_query ( LassoNode* node, LassoSignatureMethod sign_method, const char* private_key_file )
+char* lasso_node_export_to_query_with_password ( LassoNode* node, LassoSignatureMethod sign_method, const char* private_key_file, const char* private_key_file_password )
+char* lasso_node_export_to_soap ( LassoNode* node )
+gchar* lasso_node_export_to_xml ( LassoNode* node )
+const char* lasso_node_get_name ( LassoNode* node )
+const char* lasso_node_get_namespace ( LassoNode* node )
+xmlNode* lasso_node_get_original_xmlnode ( LassoNode* node )
+GType lasso_node_get_type ( )
+xmlNode* lasso_node_get_xmlNode ( LassoNode* node, gboolean lasso_dump )
+LassoMessageFormat lasso_node_init_from_message ( LassoNode* node, const char* message )
+gboolean lasso_node_init_from_query ( LassoNode* node, const char* query )
+lasso_error_t lasso_node_init_from_xml ( LassoNode* node, xmlNode* xmlnode )
+LassoNode* lasso_node_new ( )
+LassoNode* lasso_node_new_from_dump ( const char* dump )
+LassoNode* lasso_node_new_from_soap ( const char* soap )
+LassoNode* lasso_node_new_from_xmlNode ( xmlNode* node )
+None lasso_node_set_custom_namespace ( LassoNode* node, const char* prefix, const char* href )
+None lasso_node_set_custom_nodename ( LassoNode* node, const char* nodename )
+None lasso_node_set_original_xmlnode ( LassoNode* node, xmlNode* xmlnode )
+char* lasso_profile_get_artifact ( LassoProfile* profile )
+char* lasso_profile_get_artifact_message ( LassoProfile* profile )
+LassoIdentity* lasso_profile_get_identity ( LassoProfile* profile )
+LassoNode* lasso_profile_get_nameIdentifier ( LassoProfile* profile )
+LassoRequestType lasso_profile_get_request_type_from_soap_msg ( const gchar* soap )
+LassoSession* lasso_profile_get_session ( LassoProfile* profile )
+LassoProfileSignatureHint lasso_profile_get_signature_hint ( LassoProfile* profile )
+lasso_error_t lasso_profile_get_signature_status ( LassoProfile* profile )
+LassoProfileSignatureVerifyHint lasso_profile_get_signature_verify_hint ( LassoProfile* profile )
+GType lasso_profile_get_type ( )
+gboolean lasso_profile_is_identity_dirty ( LassoProfile* profile )
+gboolean lasso_profile_is_liberty_query ( const gchar* query )
+gboolean lasso_profile_is_saml_query ( const gchar* query )
+gboolean lasso_profile_is_session_dirty ( LassoProfile* profile )
+None lasso_profile_set_artifact_message ( LassoProfile* profile, const char* message )
+lasso_error_t lasso_profile_set_identity_from_dump ( LassoProfile* profile, const gchar* dump )
+lasso_error_t lasso_profile_set_session_from_dump ( LassoProfile* profile, const gchar* dump )
+None lasso_profile_set_signature_hint ( LassoProfile* profile, LassoProfileSignatureHint signature_hint )
+None lasso_profile_set_signature_verify_hint ( LassoProfile* profile, LassoProfileSignatureVerifyHint signature_verify_hint )
+lasso_error_t lasso_profile_set_soap_fault_response ( LassoProfile* profile, const char* faultcode, const char* faultstring, GList* details )
+LassoProviderRole lasso_profile_sso_role_with ( LassoProfile* profile, const char* remote_provider_id )
+gboolean lasso_provider_accept_http_method ( LassoProvider* provider, LassoProvider* remote_provider, LassoMdProtocolType protocol_type, LassoHttpMethod http_method, gboolean initiate_profile )
+gchar* lasso_provider_get_assertion_consumer_service_url ( LassoProvider* provider, const char* service_id )
+gchar* lasso_provider_get_base64_succinct_id ( const LassoProvider* provider )
+char* lasso_provider_get_cache_duration ( LassoProvider* provider )
+gchar* lasso_provider_get_default_name_id_format ( LassoProvider* provider )
+LassoEncryptionMode lasso_provider_get_encryption_mode ( LassoProvider* provider )
+LassoHttpMethod lasso_provider_get_first_http_method ( LassoProvider* provider, LassoProvider* remote_provider, LassoMdProtocolType protocol_type )
+GList* lasso_provider_get_idp_supported_attributes ( LassoProvider* provider )
+GList* lasso_provider_get_metadata_keys_for_role ( LassoProvider* provider, LassoProviderRole role )
+GList* lasso_provider_get_metadata_list ( LassoProvider* provider, const char* name )
+GList* lasso_provider_get_metadata_list_for_role ( const LassoProvider* provider, LassoProviderRole role, const char* name )
+gchar* lasso_provider_get_metadata_one ( LassoProvider* provider, const char* name )
+char* lasso_provider_get_metadata_one_for_role ( LassoProvider* provider, LassoProviderRole role, const char* name )
+xmlNode* lasso_provider_get_organization ( const LassoProvider* provider )
+LassoProtocolConformance lasso_provider_get_protocol_conformance ( const LassoProvider* provider )
+LassoProviderRole lasso_provider_get_roles ( LassoProvider* provider )
+const char* lasso_provider_get_sp_name_qualifier ( LassoProvider* provider )
+GType lasso_provider_get_type ( )
+char* lasso_provider_get_valid_until ( LassoProvider* provider )
+gboolean lasso_provider_has_protocol_profile ( LassoProvider* provider, LassoMdProtocolType protocol_type, const char* protocol_profile )
+gboolean lasso_provider_match_conformance ( LassoProvider* provider, LassoProvider* another_provider )
+LassoProvider* lasso_provider_new ( LassoProviderRole role, const char* metadata, const char* public_key, const char* ca_cert_chain )
+LassoProvider* lasso_provider_new_from_buffer ( LassoProviderRole role, const char* metadata, const char* public_key, const char* ca_cert_chain )
+LassoProvider* lasso_provider_new_from_dump ( const gchar* dump )
+LassoSaml2EncryptedElement* lasso_provider_saml2_node_encrypt ( const LassoProvider* provider, LassoNode* lasso_node )
+None lasso_provider_set_encryption_mode ( LassoProvider* provider, LassoEncryptionMode encryption_mode )
+None lasso_provider_set_encryption_sym_key_type ( LassoProvider* provider, LassoEncryptionSymKeyType encryption_sym_key_type )
+lasso_error_t lasso_provider_verify_single_node_signature ( LassoProvider* provider, LassoNode* node, const char* id_attr_name )
+None lasso_register_dst_service ( const char* prefix, const char* href )
+None lasso_register_idwsf2_dst_service ( const gchar* prefix, const gchar* href )
+GType lasso_saml2_action_get_type ( )
+LassoNode* lasso_saml2_action_new ( )
+LassoNode* lasso_saml2_action_new_with_string ( char* content )
+GType lasso_saml2_advice_get_type ( )
+LassoNode* lasso_saml2_advice_new ( )
+lasso_error_t lasso_saml2_assertion_add_attribute_with_node ( LassoSaml2Assertion* assertion, const char* name, const char* nameformat, LassoNode* content )
+None lasso_saml2_assertion_add_audience_restriction ( LassoSaml2Assertion* saml2_assertion, const char* providerID )
+None lasso_saml2_assertion_add_proxy_limit ( LassoSaml2Assertion* saml2_assertion, int proxy_count, GList* proxy_audiences )
+LassoSaml2AssertionValidationState lasso_saml2_assertion_allows_proxying ( LassoSaml2Assertion* saml2_assertion )
+LassoSaml2AssertionValidationState lasso_saml2_assertion_allows_proxying_to ( LassoSaml2Assertion* saml2_assertion, const char* audience )
+lasso_error_t lasso_saml2_assertion_decrypt_subject ( LassoSaml2Assertion* assertion, LassoServer* server )
+const char* lasso_saml2_assertion_get_in_response_to ( LassoSaml2Assertion* assertion )
+LassoProvider* lasso_saml2_assertion_get_issuer_provider ( const LassoSaml2Assertion* saml2_assertion, const LassoServer* server )
+LassoSaml2SubjectConfirmationData* lasso_saml2_assertion_get_subject_confirmation_data ( LassoSaml2Assertion* saml2_assertion, gboolean create )
+GType lasso_saml2_assertion_get_type ( )
+gboolean lasso_saml2_assertion_has_audience_restriction ( LassoSaml2Assertion* saml2_assertion )
+gboolean lasso_saml2_assertion_has_one_time_use ( LassoSaml2Assertion* saml2_assertion )
+gboolean lasso_saml2_assertion_is_audience_restricted ( LassoSaml2Assertion* saml2_assertion, char* providerID )
+LassoNode* lasso_saml2_assertion_new ( )
+None lasso_saml2_assertion_set_basic_conditions ( LassoSaml2Assertion* saml2_assertion, time_t tolerance, time_t length, gboolean one_time_use )
+None lasso_saml2_assertion_set_one_time_use ( LassoSaml2Assertion* saml2_assertion, gboolean one_time_use )
+None lasso_saml2_assertion_set_subject_confirmation_data ( LassoSaml2Assertion* saml2_assertion, time_t tolerance, time_t length, const char* Recipient, const char* InResponseTo, const char* Address )
+None lasso_saml2_assertion_set_subject_confirmation_name_id ( LassoSaml2Assertion* saml2_assertion, LassoNode* node )
+None lasso_saml2_assertion_set_subject_name_id ( LassoSaml2Assertion* saml2_assertion, LassoNode* node )
+LassoSaml2AssertionValidationState lasso_saml2_assertion_validate_audience ( LassoSaml2Assertion* saml2_assertion, const gchar* audience )
+LassoSaml2AssertionValidationState lasso_saml2_assertion_validate_conditions ( LassoSaml2Assertion* saml2_assertion, const char* relaying_party_providerID )
+LassoSaml2AssertionValidationState lasso_saml2_assertion_validate_time_checks ( LassoSaml2Assertion* saml2_assertion, unsigned int tolerance, time_t now )
+GType lasso_saml2_attribute_get_type ( )
+LassoNode* lasso_saml2_attribute_new ( )
+GType lasso_saml2_attribute_statement_get_type ( )
+LassoNode* lasso_saml2_attribute_statement_new ( )
+GType lasso_saml2_attribute_value_get_type ( )
+LassoSaml2AttributeValue* lasso_saml2_attribute_value_new ( )
+GType lasso_saml2_audience_restriction_get_type ( )
+LassoNode* lasso_saml2_audience_restriction_new ( )
+GType lasso_saml2_authn_context_get_type ( )
+LassoNode* lasso_saml2_authn_context_new ( )
+GType lasso_saml2_authn_statement_get_type ( )
+LassoNode* lasso_saml2_authn_statement_new ( )
+GType lasso_saml2_authz_decision_statement_get_type ( )
+LassoNode* lasso_saml2_authz_decision_statement_new ( )
+GType lasso_saml2_base_idabstract_get_type ( )
+LassoNode* lasso_saml2_base_idabstract_new ( )
+GType lasso_saml2_condition_abstract_get_type ( )
+LassoNode* lasso_saml2_condition_abstract_new ( )
+GType lasso_saml2_conditions_get_type ( )
+LassoNode* lasso_saml2_conditions_new ( )
+LassoSaml2EncryptedElement* lasso_saml2_encrypted_element_build_encrypted_persistent_name_id ( const char* id, const char* idpID, const LassoProvider* provider )
+GType lasso_saml2_encrypted_element_get_type ( )
+LassoNode* lasso_saml2_encrypted_element_new ( )
+lasso_error_t lasso_saml2_encrypted_element_server_decrypt ( LassoSaml2EncryptedElement* encrypted_element, LassoServer* server, LassoNode** decrypted_node )
+GType lasso_saml2_evidence_get_type ( )
+LassoNode* lasso_saml2_evidence_new ( )
+GType lasso_saml2_key_info_confirmation_data_get_type ( )
+LassoNode* lasso_saml2_key_info_confirmation_data_new ( )
+LassoSaml2NameID* lasso_saml2_name_id_build_persistent ( const char* id, const char* idpID, const char* providerID )
+gboolean lasso_saml2_name_id_equals ( LassoSaml2NameID* name_id, LassoSaml2NameID* other_name_id )
+GType lasso_saml2_name_id_get_type ( )
+LassoNode* lasso_saml2_name_id_new ( )
+LassoSaml2NameID* lasso_saml2_name_id_new_with_persistent_format ( const char* id, const char* idpID, const char* providerID )
+LassoNode* lasso_saml2_name_id_new_with_string ( char* content )
+GType lasso_saml2_one_time_use_get_type ( )
+LassoNode* lasso_saml2_one_time_use_new ( )
+GType lasso_saml2_proxy_restriction_get_type ( )
+LassoNode* lasso_saml2_proxy_restriction_new ( )
+GType lasso_saml2_statement_abstract_get_type ( )
+LassoNode* lasso_saml2_statement_abstract_new ( )
+GType lasso_saml2_subject_confirmation_data_get_type ( )
+LassoNode* lasso_saml2_subject_confirmation_data_new ( )
+GType lasso_saml2_subject_confirmation_get_type ( )
+LassoNode* lasso_saml2_subject_confirmation_new ( )
+GType lasso_saml2_subject_get_type ( )
+GType lasso_saml2_subject_locality_get_type ( )
+LassoNode* lasso_saml2_subject_locality_new ( )
+LassoNode* lasso_saml2_subject_new ( )
+GType lasso_saml_advice_get_type ( )
+LassoNode* lasso_saml_advice_new ( )
+GType lasso_saml_assertion_get_type ( )
+LassoSamlAssertion* lasso_saml_assertion_new ( )
+GType lasso_saml_attribute_designator_get_type ( )
+LassoNode* lasso_saml_attribute_designator_new ( )
+GType lasso_saml_attribute_get_type ( )
+LassoSamlAttribute* lasso_saml_attribute_new ( )
+GType lasso_saml_attribute_statement_get_type ( )
+LassoSamlAttributeStatement* lasso_saml_attribute_statement_new ( )
+GType lasso_saml_attribute_value_get_type ( )
+LassoSamlAttributeValue* lasso_saml_attribute_value_new ( )
+GType lasso_saml_audience_restriction_condition_get_type ( )
+LassoSamlAudienceRestrictionCondition* lasso_saml_audience_restriction_condition_new ( )
+LassoSamlAudienceRestrictionCondition* lasso_saml_audience_restriction_condition_new_full ( const char* audience )
+GType lasso_saml_authentication_statement_get_type ( )
+LassoNode* lasso_saml_authentication_statement_new ( )
+GType lasso_saml_authority_binding_get_type ( )
+LassoNode* lasso_saml_authority_binding_new ( )
+GType lasso_saml_condition_abstract_get_type ( )
+GType lasso_saml_conditions_get_type ( )
+LassoSamlConditions* lasso_saml_conditions_new ( )
+GType lasso_saml_name_identifier_get_type ( )
+LassoSamlNameIdentifier* lasso_saml_name_identifier_new ( )
+LassoSamlNameIdentifier* lasso_saml_name_identifier_new_from_xmlNode ( xmlNode* xmlnode )
+GType lasso_saml_statement_abstract_get_type ( )
+GType lasso_saml_subject_confirmation_get_type ( )
+LassoSamlSubjectConfirmation* lasso_saml_subject_confirmation_new ( )
+GType lasso_saml_subject_get_type ( )
+GType lasso_saml_subject_locality_get_type ( )
+LassoNode* lasso_saml_subject_locality_new ( )
+LassoNode* lasso_saml_subject_new ( )
+GType lasso_saml_subject_statement_abstract_get_type ( )
+GType lasso_saml_subject_statement_get_type ( )
+LassoNode* lasso_saml_subject_statement_new ( )
+GType lasso_samlp2_artifact_resolve_get_type ( )
+LassoNode* lasso_samlp2_artifact_resolve_new ( )
+GType lasso_samlp2_artifact_response_get_type ( )
+LassoNode* lasso_samlp2_artifact_response_new ( )
+GType lasso_samlp2_assertion_id_request_get_type ( )
+LassoNode* lasso_samlp2_assertion_id_request_new ( )
+GType lasso_samlp2_attribute_query_get_type ( )
+LassoNode* lasso_samlp2_attribute_query_new ( )
+GType lasso_samlp2_authn_query_get_type ( )
+LassoNode* lasso_samlp2_authn_query_new ( )
+GType lasso_samlp2_authn_request_get_type ( )
+LassoNode* lasso_samlp2_authn_request_new ( )
+GType lasso_samlp2_authz_decision_query_get_type ( )
+LassoNode* lasso_samlp2_authz_decision_query_new ( )
+GType lasso_samlp2_extensions_get_type ( )
+LassoNode* lasso_samlp2_extensions_new ( )
+GType lasso_samlp2_idp_entry_get_type ( )
+LassoNode* lasso_samlp2_idp_entry_new ( )
+GType lasso_samlp2_idp_list_get_type ( )
+LassoNode* lasso_samlp2_idp_list_new ( )
+GList* lasso_samlp2_logout_request_get_session_indexes ( LassoSamlp2LogoutRequest* logout_request )
+GType lasso_samlp2_logout_request_get_type ( )
+LassoNode* lasso_samlp2_logout_request_new ( )
+None lasso_samlp2_logout_request_set_session_indexes ( LassoSamlp2LogoutRequest* logout_request, GList* session_index )
+GType lasso_samlp2_logout_response_get_type ( )
+LassoNode* lasso_samlp2_logout_response_new ( )
+GType lasso_samlp2_manage_name_id_request_get_type ( )
+LassoNode* lasso_samlp2_manage_name_id_request_new ( )
+GType lasso_samlp2_manage_name_id_response_get_type ( )
+LassoNode* lasso_samlp2_manage_name_id_response_new ( )
+GType lasso_samlp2_name_id_mapping_request_get_type ( )
+LassoNode* lasso_samlp2_name_id_mapping_request_new ( )
+GType lasso_samlp2_name_id_mapping_response_get_type ( )
+LassoNode* lasso_samlp2_name_id_mapping_response_new ( )
+GType lasso_samlp2_name_id_policy_get_type ( )
+LassoNode* lasso_samlp2_name_id_policy_new ( )
+GType lasso_samlp2_request_abstract_get_type ( )
+LassoNode* lasso_samlp2_request_abstract_new ( )
+GType lasso_samlp2_requested_authn_context_get_type ( )
+LassoNode* lasso_samlp2_requested_authn_context_new ( )
+GType lasso_samlp2_response_get_type ( )
+LassoNode* lasso_samlp2_response_new ( )
+GType lasso_samlp2_scoping_get_type ( )
+LassoNode* lasso_samlp2_scoping_new ( )
+GType lasso_samlp2_status_code_get_type ( )
+LassoNode* lasso_samlp2_status_code_new ( )
+GType lasso_samlp2_status_detail_get_type ( )
+LassoNode* lasso_samlp2_status_detail_new ( )
+GType lasso_samlp2_status_get_type ( )
+LassoNode* lasso_samlp2_status_new ( )
+GType lasso_samlp2_status_response_get_type ( )
+LassoNode* lasso_samlp2_status_response_new ( )
+GType lasso_samlp2_subject_query_abstract_get_type ( )
+LassoNode* lasso_samlp2_subject_query_abstract_new ( )
+GType lasso_samlp2_terminate_get_type ( )
+LassoNode* lasso_samlp2_terminate_new ( )
+GType lasso_samlp_request_abstract_get_type ( )
+GType lasso_samlp_request_get_type ( )
+LassoNode* lasso_samlp_request_new ( )
+None lasso_samlp_response_abstract_fill ( LassoSamlpResponseAbstract* response, const char* InResponseTo, const char* Recipient )
+GType lasso_samlp_response_abstract_get_type ( )
+GType lasso_samlp_response_get_type ( )
+LassoNode* lasso_samlp_response_new ( )
+GType lasso_samlp_status_code_get_type ( )
+LassoSamlpStatusCode* lasso_samlp_status_code_new ( )
+GType lasso_samlp_status_get_type ( )
+LassoSamlpStatus* lasso_samlp_status_new ( )
+lasso_error_t lasso_server_add_provider ( LassoServer* server, LassoProviderRole role, const gchar* metadata, const gchar* public_key, const gchar* ca_cert_chain )
+lasso_error_t lasso_server_add_provider_from_buffer ( LassoServer* server, LassoProviderRole role, const gchar* metadata, const gchar* public_key, const gchar* ca_cert_chain )
+None lasso_server_destroy ( LassoServer* server )
+gchar* lasso_server_dump ( LassoServer* server )
+LassoProvider* lasso_server_get_provider ( const LassoServer* server, const gchar* providerID )
+GType lasso_server_get_type ( )
+lasso_error_t lasso_server_load_affiliation ( LassoServer* server, const gchar* filename )
+LassoServer* lasso_server_new ( const gchar* metadata, const gchar* private_key, const gchar* private_key_password, const gchar* certificate )
+LassoServer* lasso_server_new_from_buffers ( const gchar* metadata, const gchar* private_key_content, const gchar* private_key_password, const gchar* certificate_content )
+LassoServer* lasso_server_new_from_dump ( const gchar* dump )
+lasso_error_t lasso_server_saml2_assertion_setup_signature ( LassoServer* server, LassoSaml2Assertion* saml2_assertion )
+lasso_error_t lasso_server_set_encryption_private_key ( LassoServer* server, const gchar* filename_or_buffer )
+lasso_error_t lasso_server_set_encryption_private_key_with_password ( LassoServer* server, const gchar* filename_or_buffer, const gchar* password )
+lasso_error_t lasso_session_add_assertion ( LassoSession* session, const char* providerID, LassoNode* assertion )
+None lasso_session_destroy ( LassoSession* session )
+gchar* lasso_session_dump ( LassoSession* session )
+LassoNode* lasso_session_get_assertion ( LassoSession* session, const gchar* providerID )
+GList* lasso_session_get_assertions ( LassoSession* session, const char* provider_id )
+gchar* lasso_session_get_provider_index ( LassoSession* session, gint index )
+GType lasso_session_get_type ( )
+gboolean lasso_session_is_empty ( LassoSession* session )
+LassoSession* lasso_session_new ( )
+LassoSession* lasso_session_new_from_dump ( const gchar* dump )
+lasso_error_t lasso_session_remove_assertion ( LassoSession* session, const gchar* providerID )
+None lasso_set_flag ( char* flag )
+lasso_error_t lasso_shutdown ( )
+GType lasso_soap_body_get_type ( )
+LassoSoapBody* lasso_soap_body_new ( )
+LassoSoapBody* lasso_soap_body_new_from_message ( const gchar* message )
+GType lasso_soap_detail_get_type ( )
+LassoSoapDetail* lasso_soap_detail_new ( )
+LassoSoapDetail* lasso_soap_detail_new_from_message ( const gchar* message )
+GType lasso_soap_envelope_get_type ( )
+LassoSoapEnvelope* lasso_soap_envelope_new ( LassoSoapBody* body )
+LassoSoapEnvelope* lasso_soap_envelope_new_from_message ( const gchar* message )
+GType lasso_soap_fault_get_type ( )
+LassoSoapFault* lasso_soap_fault_new ( )
+LassoSoapFault* lasso_soap_fault_new_from_message ( const gchar* message )
+LassoSoapFault* lasso_soap_fault_new_full ( const char* faultcode, const char* faultstring )
+GType lasso_soap_header_get_type ( )
+LassoSoapHeader* lasso_soap_header_new ( )
+LassoSoapHeader* lasso_soap_header_new_from_message ( const gchar* message )
+const char* lasso_strerror ( int error_code )
diff --git a/abi/abi-2.4.0 b/abi/abi-2.4.0
new file mode 100644
index 00000000..727e46f3
--- /dev/null
+++ b/abi/abi-2.4.0
@@ -0,0 +1,1125 @@
+BACKWARD_COMP_H
+LASSO_ASSERTION_QUERY_ERROR_ATTRIBUTE_REQUEST_ALREADY_EXIST
+LASSO_ASSERTION_QUERY_ERROR_NOT_AN_ATTRIBUTE_QUERY
+LASSO_ASSERTION_QUERY_REQUEST_TYPE_ASSERTION_ID
+LASSO_ASSERTION_QUERY_REQUEST_TYPE_ATTRIBUTE
+LASSO_ASSERTION_QUERY_REQUEST_TYPE_AUTHN
+LASSO_ASSERTION_QUERY_REQUEST_TYPE_AUTHZ_DECISION
+LASSO_ASSERTION_QUERY_REQUEST_TYPE_LAST
+LASSO_ASSERTION_QUERY_REQUEST_TYPE_UNSET
+LASSO_CERTIFICATE_ATTRIBUTE
+LASSO_CHECK_VERSIONABI_COMPATIBLE
+LASSO_CHECK_VERSION_EXACT
+LASSO_CHECK_VERSION_NUMERIC
+LASSO_DATA_SERVICE_ERROR_CANNOT_ADD_ITEM
+LASSO_DATA_SERVICE_ERROR_UNREGISTERED_DST
+LASSO_DEFEDERATION_ERROR_MISSING_NAME_IDENTIFIER
+LASSO_DISCOVERY_ERROR_FAILED_TO_BUILD_ENDPOINT_REFERENCE
+LASSO_DISCOVERY_ERROR_MISSING_REQUESTED_SERVICE
+LASSO_DISCOVERY_ERROR_SVC_METADATA_ASSOCIATION_ADD_FAILED
+LASSO_DISCOVERY_ERROR_SVC_METADATA_REGISTER_FAILED
+LASSO_DST_ERROR_EMPTY_REQUEST
+LASSO_DST_ERROR_MALFORMED_QUERY
+LASSO_DST_ERROR_MISSING_SERVICE_DATA
+LASSO_DST_ERROR_MODIFY_FAILED
+LASSO_DST_ERROR_MODIFY_PARTIALLY_FAILED
+LASSO_DST_ERROR_NEW_DATA_MISSING
+LASSO_DST_ERROR_NO_DATA
+LASSO_DST_ERROR_QUERY_FAILED
+LASSO_DST_ERROR_QUERY_NOT_FOUND
+LASSO_DST_ERROR_QUERY_PARTIALLY_FAILED
+LASSO_DS_ERROR_CA_CERT_CHAIN_LOAD_FAILED
+LASSO_DS_ERROR_CERTIFICATE_LOAD_FAILED
+LASSO_DS_ERROR_CONTEXT_CREATION_FAILED
+LASSO_DS_ERROR_DECRYPTION_FAILED
+LASSO_DS_ERROR_DECRYPTION_FAILED_MISSING_PRIVATE_KEY
+LASSO_DS_ERROR_DIGEST_COMPUTE_FAILED
+LASSO_DS_ERROR_ENCRYPTION_FAILED
+LASSO_DS_ERROR_INVALID_REFERENCE_FOR_SAML
+LASSO_DS_ERROR_INVALID_SIGALG
+LASSO_DS_ERROR_INVALID_SIGNATURE
+LASSO_DS_ERROR_KEYS_MNGR_CREATION_FAILED
+LASSO_DS_ERROR_KEYS_MNGR_INIT_FAILED
+LASSO_DS_ERROR_PRIVATE_KEY_LOAD_FAILED
+LASSO_DS_ERROR_PUBLIC_KEY_LOAD_FAILED
+LASSO_DS_ERROR_SIGNATURE_FAILED
+LASSO_DS_ERROR_SIGNATURE_NOT_FOUND
+LASSO_DS_ERROR_SIGNATURE_TEMPLATE_NOT_FOUND
+LASSO_DS_ERROR_SIGNATURE_TMPL_CREATION_FAILED
+LASSO_DS_ERROR_SIGNATURE_VERIFICATION_FAILED
+LASSO_DS_ERROR_TOO_MUCH_REFERENCES
+LASSO_DS_HREF
+LASSO_DS_PREFIX
+LASSO_DURATION_DAY
+LASSO_DURATION_HOUR
+LASSO_DURATION_MINUTE
+LASSO_DURATION_WEEK
+LASSO_ECP_HREF
+LASSO_ECP_PREFIX
+LASSO_ENCRYPTION_MODE_ASSERTION
+LASSO_ENCRYPTION_MODE_NAMEID
+LASSO_ENCRYPTION_MODE_NONE
+LASSO_ENCRYPTION_SYM_KEY_TYPE_3DES
+LASSO_ENCRYPTION_SYM_KEY_TYPE_AES_128
+LASSO_ENCRYPTION_SYM_KEY_TYPE_AES_256
+LASSO_ENCRYPTION_SYM_KEY_TYPE_DEFAULT
+LASSO_ENCRYTPION_SYM_KEY_TYPE_LAST
+LASSO_ERROR_CAST_FAILED
+LASSO_ERROR_OUT_OF_MEMORY
+LASSO_ERROR_UNDEFINED
+LASSO_ERROR_UNIMPLEMENTED
+LASSO_HTTP_METHOD_ANY
+LASSO_HTTP_METHOD_ARTIFACT_GET
+LASSO_HTTP_METHOD_ARTIFACT_POST
+LASSO_HTTP_METHOD_GET
+LASSO_HTTP_METHOD_IDP_INITIATED
+LASSO_HTTP_METHOD_LAST
+LASSO_HTTP_METHOD_NONE
+LASSO_HTTP_METHOD_PAOS
+LASSO_HTTP_METHOD_POST
+LASSO_HTTP_METHOD_REDIRECT
+LASSO_HTTP_METHOD_SOAP
+LASSO_IDWSF2_DISCOVERY_ERROR_DUPLICATE
+LASSO_IDWSF2_DISCOVERY_ERROR_FAILED
+LASSO_IDWSF2_DISCOVERY_ERROR_FORBIDDEN
+LASSO_IDWSF2_DISCOVERY_ERROR_LOGICAL_DUPLICATE
+LASSO_IDWSF2_DISCOVERY_ERROR_NOT_FOUND
+LASSO_IDWSF2_DISCOVERY_ERROR_NO_RESULTS
+LASSO_IDWSF2_DST_ERROR_DUPLICATE_ITEM
+LASSO_IDWSF2_DST_ERROR_ITEM_NOT_FOUND
+LASSO_IDWSF2_DST_ERROR_PARTIAL_FAILURE
+LASSO_IDWSF2_DST_ERROR_UNKNOWN_STATUS_CODE
+LASSO_LASSO_HREF
+LASSO_LASSO_PREFIX
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_INTERNET_PROTOCOL
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_INTERNET_PROTOCOL_PASSWORD
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_MOBILE_ONE_FACTOR_CONTRACT
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_MOBILE_ONE_FACTOR_UNREGISTERED
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_MOBILE_TWO_FACTOR_CONTRACT
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_MOBILE_TWO_FACTOR_UNREGISTERED
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_PASSWORD
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_PASSWORD_PROTECTED_TRANSPORT
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_PREVIOUS_SESSION
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_SMARTCARD
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_SMARTCARD_PKI
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_SOFTWARE_PKI
+LASSO_LIB_AUTHN_CONTEXT_CLASS_REF_TIME_SYNC_TOKEN
+LASSO_LIB_AUTHN_CONTEXT_COMPARISON_BETTER
+LASSO_LIB_AUTHN_CONTEXT_COMPARISON_EXACT
+LASSO_LIB_AUTHN_CONTEXT_COMPARISON_MAXIMUM
+LASSO_LIB_AUTHN_CONTEXT_COMPARISON_MINIMUM
+LASSO_LIB_CONSENT_INAPPLICABLE
+LASSO_LIB_CONSENT_OBTAINED
+LASSO_LIB_CONSENT_OBTAINED_CURRENT_EXPLICIT
+LASSO_LIB_CONSENT_OBTAINED_CURRENT_IMPLICIT
+LASSO_LIB_CONSENT_OBTAINED_PRIOR
+LASSO_LIB_CONSENT_UNAVAILABLE
+LASSO_LIB_HREF
+LASSO_LIB_MAJOR_VERSION_N
+LASSO_LIB_MINOR_VERSION_N
+LASSO_LIB_NAMEID_POLICY_TYPE_ANY
+LASSO_LIB_NAMEID_POLICY_TYPE_FEDERATED
+LASSO_LIB_NAMEID_POLICY_TYPE_NONE
+LASSO_LIB_NAMEID_POLICY_TYPE_ONE_TIME
+LASSO_LIB_NAME_IDENTIFIER_FORMAT_ENCRYPTED
+LASSO_LIB_NAME_IDENTIFIER_FORMAT_ENTITYID
+LASSO_LIB_NAME_IDENTIFIER_FORMAT_FEDERATED
+LASSO_LIB_NAME_IDENTIFIER_FORMAT_ONE_TIME
+LASSO_LIB_PREFIX
+LASSO_LIB_PROTOCOL_PROFILE_BRWS_ART
+LASSO_LIB_PROTOCOL_PROFILE_BRWS_LECP
+LASSO_LIB_PROTOCOL_PROFILE_BRWS_POST
+LASSO_LIB_PROTOCOL_PROFILE_FED_TERM_IDP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_FED_TERM_IDP_SOAP
+LASSO_LIB_PROTOCOL_PROFILE_FED_TERM_SP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_FED_TERM_SP_SOAP
+LASSO_LIB_PROTOCOL_PROFILE_NIM_SP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_RNI_IDP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_RNI_IDP_SOAP
+LASSO_LIB_PROTOCOL_PROFILE_RNI_SP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_RNI_SP_SOAP
+LASSO_LIB_PROTOCOL_PROFILE_SLO_IDP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_SLO_IDP_SOAP
+LASSO_LIB_PROTOCOL_PROFILE_SLO_SP_HTTP
+LASSO_LIB_PROTOCOL_PROFILE_SLO_SP_SOAP
+LASSO_LIB_STATUS_CODE_FEDERATION_DOES_NOT_EXIST
+LASSO_LIB_STATUS_CODE_INVALID_ASSERTION_CONSUMER_SERVICE_INDEX
+LASSO_LIB_STATUS_CODE_INVALID_SIGNATURE
+LASSO_LIB_STATUS_CODE_NO_AUTHN_CONTEXT
+LASSO_LIB_STATUS_CODE_NO_AVAILABLEIDP
+LASSO_LIB_STATUS_CODE_NO_PASSIVE
+LASSO_LIB_STATUS_CODE_NO_SUPPORTEDIDP
+LASSO_LIB_STATUS_CODE_PROXY_COUNT_EXCEEDED
+LASSO_LIB_STATUS_CODE_UNKNOWN_PRINCIPAL
+LASSO_LIB_STATUS_CODE_UNSIGNED_AUTHN_REQUEST
+LASSO_LIB_STATUS_CODE_UNSUPPORTED_PROFILE
+LASSO_LOGIN_ERROR_ASSERTION_DOES_NOT_MATCH_REQUEST_ID
+LASSO_LOGIN_ERROR_ASSERTION_REPLAY
+LASSO_LOGIN_ERROR_CONSENT_NOT_OBTAINED
+LASSO_LOGIN_ERROR_FEDERATION_NOT_FOUND
+LASSO_LOGIN_ERROR_INVALID_ASSERTION_SIGNATURE
+LASSO_LOGIN_ERROR_INVALID_NAMEIDPOLICY
+LASSO_LOGIN_ERROR_INVALID_SIGNATURE
+LASSO_LOGIN_ERROR_NO_DEFAULT_ENDPOINT
+LASSO_LOGIN_ERROR_REQUEST_DENIED
+LASSO_LOGIN_ERROR_STATUS_NOT_SUCCESS
+LASSO_LOGIN_ERROR_UNKNOWN_PRINCIPAL
+LASSO_LOGIN_ERROR_UNSIGNED_AUTHN_REQUEST
+LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_ART
+LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_LECP
+LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_POST
+LASSO_LOGIN_PROTOCOL_PROFILE_REDIRECT
+LASSO_LOGOUT_ERROR_FEDERATION_NOT_FOUND
+LASSO_LOGOUT_ERROR_PARTIAL_LOGOUT
+LASSO_LOGOUT_ERROR_REQUEST_DENIED
+LASSO_LOGOUT_ERROR_UNKNOWN_PRINCIPAL
+LASSO_LOGOUT_ERROR_UNSUPPORTED_PROFILE
+LASSO_MD_PROTOCOL_TYPE_ARTIFACT_RESOLUTION
+LASSO_MD_PROTOCOL_TYPE_ASSERTION_ID_REQUEST
+LASSO_MD_PROTOCOL_TYPE_ATTRIBUTE
+LASSO_MD_PROTOCOL_TYPE_AUTHN_QUERY
+LASSO_MD_PROTOCOL_TYPE_AUTHZ
+LASSO_MD_PROTOCOL_TYPE_FEDERATION_TERMINATION
+LASSO_MD_PROTOCOL_TYPE_LAST
+LASSO_MD_PROTOCOL_TYPE_MANAGE_NAME_ID
+LASSO_MD_PROTOCOL_TYPE_NAME_IDENTIFIER_MAPPING
+LASSO_MD_PROTOCOL_TYPE_REGISTER_NAME_IDENTIFIER
+LASSO_MD_PROTOCOL_TYPE_SINGLE_LOGOUT
+LASSO_MD_PROTOCOL_TYPE_SINGLE_SIGN_ON
+LASSO_MESSAGE_FORMAT_BASE64
+LASSO_MESSAGE_FORMAT_ERROR
+LASSO_MESSAGE_FORMAT_QUERY
+LASSO_MESSAGE_FORMAT_SOAP
+LASSO_MESSAGE_FORMAT_UNKNOWN
+LASSO_MESSAGE_FORMAT_XML
+LASSO_MESSAGE_FORMAT_XSCHEMA_ERROR
+LASSO_METADATA_HREF
+LASSO_METADATA_PREFIX
+LASSO_NAME_IDENTIFIER_MAPPING_ERROR_FORBIDDEN_CALL_ON_THIS_SIDE
+LASSO_NAME_IDENTIFIER_MAPPING_ERROR_MISSING_TARGET_IDENTIFIER
+LASSO_NAME_IDENTIFIER_MAPPING_ERROR_MISSING_TARGET_NAMESPACE
+LASSO_PAOS_HREF
+LASSO_PAOS_PREFIX
+LASSO_PARAM_ERROR_BAD_TYPE_OR_NULL_OBJ
+LASSO_PARAM_ERROR_CHECK_FAILED
+LASSO_PARAM_ERROR_INVALID_VALUE
+LASSO_PARAM_ERROR_NON_INITIALIZED_OBJECT
+LASSO_PRIVATE_KEY_ATTRIBUTE
+LASSO_PRIVATE_KEY_PASSWORD_ATTRIBUTE
+LASSO_PRIVATE_STATUS_CODE_FAILED_TO_RESTORE_ARTIFACT
+LASSO_PROFILE_ERROR_BAD_IDENTITY_DUMP
+LASSO_PROFILE_ERROR_BAD_SESSION_DUMP
+LASSO_PROFILE_ERROR_BUILDING_MESSAGE_FAILED
+LASSO_PROFILE_ERROR_BUILDING_QUERY_FAILED
+LASSO_PROFILE_ERROR_BUILDING_REQUEST_FAILED
+LASSO_PROFILE_ERROR_BUILDING_RESPONSE_FAILED
+LASSO_PROFILE_ERROR_CANNOT_FIND_A_PROVIDER
+LASSO_PROFILE_ERROR_CANNOT_VERIFY_SIGNATURE
+LASSO_PROFILE_ERROR_FEDERATION_NOT_FOUND
+LASSO_PROFILE_ERROR_IDENTITY_NOT_FOUND
+LASSO_PROFILE_ERROR_INVALID_ARTIFACT
+LASSO_PROFILE_ERROR_INVALID_ASSERTION
+LASSO_PROFILE_ERROR_INVALID_ASSERTION_CONDITIONS
+LASSO_PROFILE_ERROR_INVALID_HTTP_METHOD
+LASSO_PROFILE_ERROR_INVALID_ISSUER
+LASSO_PROFILE_ERROR_INVALID_MSG
+LASSO_PROFILE_ERROR_INVALID_POST_MSG
+LASSO_PROFILE_ERROR_INVALID_PROTOCOLPROFILE
+LASSO_PROFILE_ERROR_INVALID_QUERY
+LASSO_PROFILE_ERROR_INVALID_REQUEST
+LASSO_PROFILE_ERROR_INVALID_RESPONSE
+LASSO_PROFILE_ERROR_INVALID_SOAP_MSG
+LASSO_PROFILE_ERROR_ISSUER_IS_NOT_AN_IDP
+LASSO_PROFILE_ERROR_MISSING_ARTIFACT
+LASSO_PROFILE_ERROR_MISSING_ASSERTION
+LASSO_PROFILE_ERROR_MISSING_ENCRYPTION_PRIVATE_KEY
+LASSO_PROFILE_ERROR_MISSING_ENDPOINT_REFERENCE
+LASSO_PROFILE_ERROR_MISSING_ENDPOINT_REFERENCE_ADDRESS
+LASSO_PROFILE_ERROR_MISSING_ISSUER
+LASSO_PROFILE_ERROR_MISSING_NAME_IDENTIFIER
+LASSO_PROFILE_ERROR_MISSING_REMOTE_PROVIDERID
+LASSO_PROFILE_ERROR_MISSING_REQUEST
+LASSO_PROFILE_ERROR_MISSING_RESOURCE_OFFERING
+LASSO_PROFILE_ERROR_MISSING_RESPONSE
+LASSO_PROFILE_ERROR_MISSING_SERVER
+LASSO_PROFILE_ERROR_MISSING_SERVICE_DESCRIPTION
+LASSO_PROFILE_ERROR_MISSING_SERVICE_INSTANCE
+LASSO_PROFILE_ERROR_MISSING_SERVICE_TYPE
+LASSO_PROFILE_ERROR_MISSING_STATUS_CODE
+LASSO_PROFILE_ERROR_MISSING_SUBJECT
+LASSO_PROFILE_ERROR_NAME_IDENTIFIER_NOT_FOUND
+LASSO_PROFILE_ERROR_REQUEST_DENIED
+LASSO_PROFILE_ERROR_RESPONSE_DOES_NOT_MATCH_REQUEST
+LASSO_PROFILE_ERROR_SESSION_NOT_FOUND
+LASSO_PROFILE_ERROR_STATUS_NOT_SUCCESS
+LASSO_PROFILE_ERROR_UNKNOWN_ISSUER
+LASSO_PROFILE_ERROR_UNKNOWN_PROFILE_URL
+LASSO_PROFILE_ERROR_UNKNOWN_PROVIDER
+LASSO_PROFILE_ERROR_UNSUPPORTED_BINDING
+LASSO_PROFILE_ERROR_UNSUPPORTED_PROFILE
+LASSO_PROFILE_SIGNATURE_HINT_FORBID
+LASSO_PROFILE_SIGNATURE_HINT_FORCE
+LASSO_PROFILE_SIGNATURE_HINT_MAYBE
+LASSO_PROFILE_SIGNATURE_VERIFY_HINT_FORCE
+LASSO_PROFILE_SIGNATURE_VERIFY_HINT_IGNORE
+LASSO_PROFILE_SIGNATURE_VERIFY_HINT_LAST
+LASSO_PROFILE_SIGNATURE_VERIFY_HINT_MAYBE
+LASSO_PROTOCOL_LIBERTY_1_0
+LASSO_PROTOCOL_LIBERTY_1_1
+LASSO_PROTOCOL_LIBERTY_1_2
+LASSO_PROTOCOL_NONE
+LASSO_PROTOCOL_SAML_2_0
+LASSO_PROVIDER_ERROR_MISSING_PUBLIC_KEY
+LASSO_PROVIDER_ROLE_ALL
+LASSO_PROVIDER_ROLE_ANY
+LASSO_PROVIDER_ROLE_ATTRIBUTE_AUTHORITY
+LASSO_PROVIDER_ROLE_AUTHN_AUTHORITY
+LASSO_PROVIDER_ROLE_AUTHZ_AUTHORITY
+LASSO_PROVIDER_ROLE_BOTH
+LASSO_PROVIDER_ROLE_IDP
+LASSO_PROVIDER_ROLE_LAST
+LASSO_PROVIDER_ROLE_NONE
+LASSO_PROVIDER_ROLE_SP
+LASSO_PYTHON_HREF
+LASSO_REGISTRY_ERROR_KEY_EXISTS
+LASSO_REQUEST_TYPE_DEFEDERATION
+LASSO_REQUEST_TYPE_DISCO_MODIFY
+LASSO_REQUEST_TYPE_DISCO_QUERY
+LASSO_REQUEST_TYPE_DST_MODIFY
+LASSO_REQUEST_TYPE_DST_QUERY
+LASSO_REQUEST_TYPE_IDWSF2_DISCO_QUERY
+LASSO_REQUEST_TYPE_IDWSF2_DISCO_SVCMD_ASSOCIATION_ADD
+LASSO_REQUEST_TYPE_IDWSF2_DISCO_SVCMD_REGISTER
+LASSO_REQUEST_TYPE_INVALID
+LASSO_REQUEST_TYPE_LECP
+LASSO_REQUEST_TYPE_LOGIN
+LASSO_REQUEST_TYPE_LOGOUT
+LASSO_REQUEST_TYPE_NAME_IDENTIFIER_MAPPING
+LASSO_REQUEST_TYPE_NAME_ID_MANAGEMENT
+LASSO_REQUEST_TYPE_NAME_REGISTRATION
+LASSO_REQUEST_TYPE_SASL_REQUEST
+LASSO_SAML2_ACTION_GHPP_GET
+LASSO_SAML2_ACTION_GHPP_HEAD
+LASSO_SAML2_ACTION_GHPP_POST
+LASSO_SAML2_ACTION_GHPP_PUT
+LASSO_SAML2_ACTION_NAMESPACE_GHPP
+LASSO_SAML2_ACTION_NAMESPACE_RWEDC
+LASSO_SAML2_ACTION_NAMESPACE_RWEDC_NEGATION
+LASSO_SAML2_ACTION_NAMESPACE_UNIX
+LASSO_SAML2_ACTION_RWEDC_CONTROL
+LASSO_SAML2_ACTION_RWEDC_DELETE
+LASSO_SAML2_ACTION_RWEDC_EXECUTE
+LASSO_SAML2_ACTION_RWEDC_NEGATION
+LASSO_SAML2_ACTION_RWEDC_READ
+LASSO_SAML2_ACTION_RWEDC_WRITE
+LASSO_SAML2_ASSERTION_HREF
+LASSO_SAML2_ASSERTION_INDETERMINATE
+LASSO_SAML2_ASSERTION_INVALID
+LASSO_SAML2_ASSERTION_PREFIX
+LASSO_SAML2_ASSERTION_VALID
+LASSO_SAML2_ATTRIBUTE_NAME_EPR
+LASSO_SAML2_ATTRIBUTE_NAME_FORMAT_BASIC
+LASSO_SAML2_ATTRIBUTE_NAME_FORMAT_UNSPECIFIED
+LASSO_SAML2_ATTRIBUTE_NAME_FORMAT_URI
+LASSO_SAML2_ATTRIBUTE_PROFILE_BASIC
+LASSO_SAML2_ATTRIBUTE_PROFILE_DCE
+LASSO_SAML2_ATTRIBUTE_PROFILE_UUID
+LASSO_SAML2_ATTRIBUTE_PROFILE_X500
+LASSO_SAML2_AUTHN_CONTEXT_AUTHENTICATED_TELEPHONY
+LASSO_SAML2_AUTHN_CONTEXT_INTERNET_PROTOCOL
+LASSO_SAML2_AUTHN_CONTEXT_INTERNET_PROTOCOL_PASSWORD
+LASSO_SAML2_AUTHN_CONTEXT_KERBEROS
+LASSO_SAML2_AUTHN_CONTEXT_MOBILE_ONE_FACTOR_CONTRACT
+LASSO_SAML2_AUTHN_CONTEXT_MOBILE_ONE_FACTOR_UNREGISTERED
+LASSO_SAML2_AUTHN_CONTEXT_MOBILE_TWO_FACTOR_CONTRACT
+LASSO_SAML2_AUTHN_CONTEXT_MOBILE_TWO_FACTOR_UNREGISTERED
+LASSO_SAML2_AUTHN_CONTEXT_NOMAD_TELEPHONY
+LASSO_SAML2_AUTHN_CONTEXT_PASSWORD
+LASSO_SAML2_AUTHN_CONTEXT_PASSWORD_PROTECTED_TRANSPORT
+LASSO_SAML2_AUTHN_CONTEXT_PERSONALIZED_TELEPHONY
+LASSO_SAML2_AUTHN_CONTEXT_PGP
+LASSO_SAML2_AUTHN_CONTEXT_PREVIOUS_SESSION
+LASSO_SAML2_AUTHN_CONTEXT_SECURE_REMOTE_PASSWORD
+LASSO_SAML2_AUTHN_CONTEXT_SMARTCARD
+LASSO_SAML2_AUTHN_CONTEXT_SMARTCARD_PKI
+LASSO_SAML2_AUTHN_CONTEXT_SOFTWARE_PKI
+LASSO_SAML2_AUTHN_CONTEXT_SPKI
+LASSO_SAML2_AUTHN_CONTEXT_TELEPHONY
+LASSO_SAML2_AUTHN_CONTEXT_TIME_SYNC_TOKEN
+LASSO_SAML2_AUTHN_CONTEXT_TLS_CLIENT
+LASSO_SAML2_AUTHN_CONTEXT_UNSPECIFIED
+LASSO_SAML2_AUTHN_CONTEXT_X509
+LASSO_SAML2_AUTHN_CONTEXT_XMLDSIG
+LASSO_SAML2_CONFIRMATION_METHOD_BEARER
+LASSO_SAML2_CONFIRMATION_METHOD_HOLDER_OF_KEY
+LASSO_SAML2_CONSENT_EXPLICIT
+LASSO_SAML2_CONSENT_IMPLICIT
+LASSO_SAML2_CONSENT_INAPPLICABLE
+LASSO_SAML2_CONSENT_OBTAINED
+LASSO_SAML2_CONSENT_PRIOR
+LASSO_SAML2_CONSENT_UNAVAILABLE
+LASSO_SAML2_DEFLATE_ENCODING
+LASSO_SAML2_FIELD_ARTIFACT
+LASSO_SAML2_FIELD_ENCODING
+LASSO_SAML2_FIELD_RELAYSTATE
+LASSO_SAML2_FIELD_REQUEST
+LASSO_SAML2_FIELD_RESPONSE
+LASSO_SAML2_FIELD_SIGALG
+LASSO_SAML2_FIELD_SIGNATURE
+LASSO_SAML2_METADATA_BINDING_ARTIFACT
+LASSO_SAML2_METADATA_BINDING_PAOS
+LASSO_SAML2_METADATA_BINDING_POST
+LASSO_SAML2_METADATA_BINDING_REDIRECT
+LASSO_SAML2_METADATA_BINDING_SOAP
+LASSO_SAML2_METADATA_BINDING_URI
+LASSO_SAML2_METADATA_HREF
+LASSO_SAML2_METADATA_PREFIX
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_EMAIL
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_ENCRYPTED
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_ENTITY
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_KERBEROS
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_PERSISTENT
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_TRANSIENT
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_UNSPECIFIED
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_WINDOWS
+LASSO_SAML2_NAME_IDENTIFIER_FORMAT_X509
+LASSO_SAML2_PROTOCOL_HREF
+LASSO_SAML2_PROTOCOL_PREFIX
+LASSO_SAML2_STATUS_CODE_AUTHN_FAILED
+LASSO_SAML2_STATUS_CODE_INVALID_ATTR_NAME
+LASSO_SAML2_STATUS_CODE_INVALID_NAME_ID_POLICY
+LASSO_SAML2_STATUS_CODE_NO_AUTHN_CONTEXT
+LASSO_SAML2_STATUS_CODE_NO_AVAILABLE_IDP
+LASSO_SAML2_STATUS_CODE_NO_PASSIVE
+LASSO_SAML2_STATUS_CODE_NO_SUPPORTED_IDP
+LASSO_SAML2_STATUS_CODE_PARTIAL_LOGOUT
+LASSO_SAML2_STATUS_CODE_PROXY_COUNT_EXCEEDED
+LASSO_SAML2_STATUS_CODE_REQUESTER
+LASSO_SAML2_STATUS_CODE_REQUEST_DENIED
+LASSO_SAML2_STATUS_CODE_REQUEST_UNSUPPORTED
+LASSO_SAML2_STATUS_CODE_REQUEST_VERSION_DEPRECATED
+LASSO_SAML2_STATUS_CODE_REQUEST_VERSION_TOO_HIGH
+LASSO_SAML2_STATUS_CODE_REQUEST_VERSION_TOO_LOW
+LASSO_SAML2_STATUS_CODE_RESOURCE_NOT_RECOGNIZED
+LASSO_SAML2_STATUS_CODE_RESPONDER
+LASSO_SAML2_STATUS_CODE_SUCCESS
+LASSO_SAML2_STATUS_CODE_TOO_MANY_RESPONSES
+LASSO_SAML2_STATUS_CODE_UNKNOWN_ATTR_PROFILE
+LASSO_SAML2_STATUS_CODE_UNKNOWN_PRINCIPAL
+LASSO_SAML2_STATUS_CODE_UNSUPPORTED_BINDING
+LASSO_SAML2_STATUS_CODE_VERSION_MISMATCH
+LASSO_SAML_ASSERTION_HREF
+LASSO_SAML_ASSERTION_PREFIX
+LASSO_SAML_AUTHENTICATION_METHODS_PKI
+LASSO_SAML_AUTHENTICATION_METHOD_HARDWARE_TOKEN
+LASSO_SAML_AUTHENTICATION_METHOD_KERBEROS
+LASSO_SAML_AUTHENTICATION_METHOD_LIBERTY
+LASSO_SAML_AUTHENTICATION_METHOD_PASSWORD
+LASSO_SAML_AUTHENTICATION_METHOD_PGP
+LASSO_SAML_AUTHENTICATION_METHOD_SECURE_REMOTE_PASSWORD
+LASSO_SAML_AUTHENTICATION_METHOD_SMARTCARD_PKI
+LASSO_SAML_AUTHENTICATION_METHOD_SOFTWARE_PKI
+LASSO_SAML_AUTHENTICATION_METHOD_UNSPECIFIED
+LASSO_SAML_AUTHENTICATION_METHOD_XKMS
+LASSO_SAML_AUTHENTICATION_METHOD_XMLD_SIG
+LASSO_SAML_CONFIRMATION_METHOD_ARTIFACT
+LASSO_SAML_CONFIRMATION_METHOD_ARTIFACT01
+LASSO_SAML_CONFIRMATION_METHOD_BEARER
+LASSO_SAML_CONFIRMATION_METHOD_HOLDER_OF_KEY
+LASSO_SAML_CONFIRMATION_METHOD_SENDER_VOUCHES
+LASSO_SAML_MAJOR_VERSION_N
+LASSO_SAML_MINOR_VERSION_N
+LASSO_SAML_PROTOCOL_HREF
+LASSO_SAML_PROTOCOL_PREFIX
+LASSO_SAML_STATUS_CODE_REQUESTER
+LASSO_SAML_STATUS_CODE_REQUEST_DENIED
+LASSO_SAML_STATUS_CODE_REQUEST_VERSION_DEPRECATED
+LASSO_SAML_STATUS_CODE_REQUEST_VERSION_TOO_HIGH
+LASSO_SAML_STATUS_CODE_REQUEST_VERSION_TOO_LOW
+LASSO_SAML_STATUS_CODE_RESOURCE_NOT_RECOGNIZED
+LASSO_SAML_STATUS_CODE_RESPONDER
+LASSO_SAML_STATUS_CODE_SUCCESS
+LASSO_SAML_STATUS_CODE_TOO_MANY_RESPONSES
+LASSO_SAML_STATUS_CODE_VERSION_MISMATCH
+LASSO_SERVER_ERROR_ADD_PROVIDER_FAILED
+LASSO_SERVER_ERROR_ADD_PROVIDER_PROTOCOL_MISMATCH
+LASSO_SERVER_ERROR_INVALID_XML
+LASSO_SERVER_ERROR_NO_PROVIDER_LOADED
+LASSO_SERVER_ERROR_PROVIDER_NOT_FOUND
+LASSO_SERVER_ERROR_SET_ENCRYPTION_PRIVATE_KEY_FAILED
+LASSO_SERVER_LOAD_METADATA_FLAG_CHECK_ENTITIES_DESCRIPTOR_SIGNATURE
+LASSO_SERVER_LOAD_METADATA_FLAG_CHECK_ENTITY_DESCRIPTOR_SIGNATURE
+LASSO_SERVER_LOAD_METADATA_FLAG_DEFAULT
+LASSO_SERVER_LOAD_METADATA_FLAG_INHERIT_SIGNATURE
+LASSO_SIGNATURE_METHOD_ATTRIBUTE
+LASSO_SIGNATURE_METHOD_DSA_SHA1
+LASSO_SIGNATURE_METHOD_LAST
+LASSO_SIGNATURE_METHOD_RSA_SHA1
+LASSO_SIGNATURE_TYPE_ATTRIBUTE
+LASSO_SIGNATURE_TYPE_LAST
+LASSO_SIGNATURE_TYPE_NONE
+LASSO_SIGNATURE_TYPE_SIMPLE
+LASSO_SIGNATURE_TYPE_WITHX509
+LASSO_SOAP_ENV_ACTOR
+LASSO_SOAP_ENV_HREF
+LASSO_SOAP_ENV_PREFIX
+LASSO_SOAP_ERROR_MISSING_BODY
+LASSO_SOAP_ERROR_MISSING_ENVELOPE
+LASSO_SOAP_ERROR_MISSING_HEADER
+LASSO_SOAP_ERROR_MISSING_SOAP_FAULT_DETAIL
+LASSO_SOAP_ERROR_REDIRECT_REQUEST_FAULT
+LASSO_SOAP_FAULT_CODE_CLIENT
+LASSO_SOAP_FAULT_CODE_MUST_UNDERSTAND
+LASSO_SOAP_FAULT_CODE_SERVER
+LASSO_SOAP_FAULT_CODE_VERSION_MISMATCH
+LASSO_SOAP_FAULT_REDIRECT_REQUEST
+LASSO_WSF_ENABLED
+LASSO_WSF_PROFILE_ERROR_INVALID_OR_MISSING_REFERENCE_TO_MESSAGE_ID
+LASSO_WSF_PROFILE_ERROR_MISSING_ASSERTION_ID
+LASSO_WSF_PROFILE_ERROR_MISSING_CORRELATION
+LASSO_WSF_PROFILE_ERROR_MISSING_CREDENTIAL_REF
+LASSO_WSF_PROFILE_ERROR_MISSING_DESCRIPTION
+LASSO_WSF_PROFILE_ERROR_MISSING_ENDPOINT
+LASSO_WSF_PROFILE_ERROR_MISSING_RESOURCE_ID
+LASSO_WSF_PROFILE_ERROR_MISSING_SECURITY
+LASSO_WSF_PROFILE_ERROR_MISSING_SENDER_ID
+LASSO_WSF_PROFILE_ERROR_REDIRECT_REQUEST
+LASSO_WSF_PROFILE_ERROR_REDIRECT_REQUEST_UNSUPPORTED_BY_REQUESTER
+LASSO_WSF_PROFILE_ERROR_SECURITY_MECHANISM_CHECK_FAILED
+LASSO_WSF_PROFILE_ERROR_SERVER_INTERACTION_REQUIRED
+LASSO_WSF_PROFILE_ERROR_SERVER_INTERACTION_REQUIRED_FOR_DATA
+LASSO_WSF_PROFILE_ERROR_SOAP_FAULT
+LASSO_WSF_PROFILE_ERROR_UNKNOWN_STATUS_CODE
+LASSO_WSF_PROFILE_ERROR_UNSUPPORTED_SECURITY_MECHANISM
+LASSO_WSSEC_ERROR_BAD_PASSWORD
+LASSO_WSSEC_ERROR_MISSING_SECURITY_TOKEN
+LASSO_WSUTIL1_HREF
+LASSO_WSUTIL1_PREFIX
+LASSO_XML_ERROR_ATTR_NOT_FOUND
+LASSO_XML_ERROR_ATTR_VALUE_NOT_FOUND
+LASSO_XML_ERROR_INVALID_FILE
+LASSO_XML_ERROR_MISSING_NAMESPACE
+LASSO_XML_ERROR_NODE_CONTENT_NOT_FOUND
+LASSO_XML_ERROR_NODE_NOT_FOUND
+LASSO_XML_ERROR_OBJECT_CONSTRUCTION_FAILED
+LASSO_XML_ERROR_SCHEMA_INVALID_FRAGMENT
+LASSO_XSI_HREF
+LASSO_XSI_PREFIX
+struct LassoAssertionQuery { LassoAssertionQueryPrivate* private_data }
+LassoAssertionQueryRequestType
+LassoCheckVersionMode
+struct LassoDefederation { }
+struct LassoDsKeyInfo { LassoDsKeyValue* KeyValue }
+struct LassoDsKeyValue { LassoDsRsaKeyValue* RSAKeyValue }
+struct LassoDsRsaKeyValue { char* Modulus, char* Exponent }
+struct LassoEcp { gchar* assertionConsumerURL, LassoEcpPrivate* private_data }
+LassoEncryptionMode
+LassoEncryptionSymKeyType
+struct LassoFederation { gchar* remote_providerID, LassoNode* local_nameIdentifier, LassoNode* remote_nameIdentifier, LassoFederationPrivate* private_data }
+LassoHttpMethod
+struct LassoIdentity { GHashTable* federations, gboolean is_dirty, LassoIdentityPrivate* private_data }
+struct LassoLecp { LassoLibAuthnRequestEnvelope* authnRequestEnvelope, LassoLibAuthnResponseEnvelope* authnResponseEnvelope, char* assertionConsumerServiceURL }
+struct LassoLibAssertion { char* InResponseTo }
+struct LassoLibAuthenticationStatement { LassoLibAuthnContext* AuthnContext, char* ReauthenticateOnOrAfter, char* SessionIndex }
+struct LassoLibAuthnContext { char* AuthnContextClassRef, char* AuthnContextStatementRef }
+struct LassoLibAuthnRequest { GList* Extension, char* ProviderID, char* AffiliationID, char* NameIDPolicy, gboolean ForceAuthn, gboolean IsPassive, char* ProtocolProfile, char* AssertionConsumerServiceID, LassoLibRequestAuthnContext* RequestAuthnContext, char* RelayState, LassoLibScoping* Scoping, char* consent }
+struct LassoLibAuthnRequestEnvelope { GList* Extension, LassoLibAuthnRequest* AuthnRequest, char* ProviderID, char* ProviderName, char* AssertionConsumerServiceURL, LassoLibIDPList* IDPList, gboolean IsPassive }
+struct LassoLibAuthnResponse { GList* Extension, char* ProviderID, char* RelayState, char* consent }
+struct LassoLibAuthnResponseEnvelope { GList* Extension, LassoLibAuthnResponse* AuthnResponse, char* AssertionConsumerServiceURL }
+struct LassoLibFederationTerminationNotification { GList* Extension, char* ProviderID, LassoSamlNameIdentifier* NameIdentifier, char* consent, char* RelayState }
+struct LassoLibIDPEntries { GList* IDPEntry }
+struct LassoLibIDPEntry { char* ProviderID, char* ProviderName, char* Loc }
+struct LassoLibIDPList { LassoLibIDPEntries* IDPEntries, char* GetComplete }
+struct LassoLibLogoutRequest { GList* Extension, char* ProviderID, LassoSamlNameIdentifier* NameIdentifier, char* SessionIndex, char* RelayState, char* consent, char* NotOnOrAfter }
+struct LassoLibLogoutResponse { }
+struct LassoLibNameIdentifierMappingRequest { GList* Extension, char* ProviderID, LassoSamlNameIdentifier* NameIdentifier, char* TargetNamespace, char* consent }
+struct LassoLibNameIdentifierMappingResponse { GList* Extension, char* ProviderID, LassoSamlpStatus* Status, LassoSamlNameIdentifier* NameIdentifier }
+struct LassoLibRegisterNameIdentifierRequest { GList* Extension, char* ProviderID, LassoSamlNameIdentifier* IDPProvidedNameIdentifier, LassoSamlNameIdentifier* SPProvidedNameIdentifier, LassoSamlNameIdentifier* OldProvidedNameIdentifier, char* RelayState }
+struct LassoLibRegisterNameIdentifierResponse { }
+struct LassoLibRequestAuthnContext { GList* AuthnContextClassRef, GList* AuthnContextStatementRef, char* AuthnContextComparison }
+struct LassoLibScoping { int ProxyCount, LassoLibIDPList* IDPList }
+struct LassoLibStatusResponse { GList* Extension, char* ProviderID, LassoSamlpStatus* Status, char* RelayState }
+struct LassoLibSubject { LassoSamlNameIdentifier* IDPProvidedNameIdentifier }
+struct LassoLogin { LassoLoginProtocolProfile protocolProfile, gchar* assertionArtifact, LassoSamlAssertion* assertion, gchar* nameIDPolicy, LassoHttpMethod http_method, LassoLoginPrivate* private_data }
+LassoLoginProtocolProfile
+struct LassoLogout { LassoNode* initial_request, LassoNode* initial_response, gchar* initial_remote_providerID, gint providerID_index, LassoHttpMethod initial_http_request_method, LassoLogoutPrivate* private_data }
+LassoMdProtocolType
+LassoMessageFormat
+struct LassoMiscTextNode { char* content, char* name, char* ns_href, char* ns_prefix, gboolean text_child }
+struct LassoNameIdManagement { }
+struct LassoNameIdentifierMapping { gchar* targetNameIdentifier }
+struct LassoNameRegistration { LassoSamlNameIdentifier* oldNameIdentifier }
+struct LassoNode { }
+struct LassoProfile { LassoServer* server, LassoNode* request, LassoNode* response, LassoNode* nameIdentifier, gchar* remote_providerID, gchar* msg_url, gchar* msg_body, gchar* msg_relayState, LassoIdentity* identity, LassoSession* session, LassoHttpMethod http_request_method, gint signature_status, LassoProfilePrivate* private_data }
+LassoProfileSignatureHint
+LassoProfileSignatureVerifyHint
+LassoProtocolConformance
+struct LassoProvider { gchar* ProviderID, LassoProviderRole role, char* metadata_filename, gchar* public_key, gchar* ca_cert_chain, LassoProviderPrivate* private_data }
+LassoProviderRole
+LassoRequestType
+struct LassoSaml2Action { char* content, char* Namespace }
+struct LassoSaml2Advice { GList* AssertionIDRef, GList* AssertionURIRef, GList* Assertion, GList* EncryptedAssertion }
+struct LassoSaml2Assertion { LassoSaml2NameID* Issuer, LassoSaml2Subject* Subject, LassoSaml2Conditions* Conditions, LassoSaml2Advice* Advice, GList* Statement, GList* AuthnStatement, GList* AuthzDecisionStatement, GList* AttributeStatement, char* Version, char* ID, char* IssueInstant, LassoSignatureType sign_type, LassoSignatureMethod sign_method, char* private_key_file, char* certificate_file, gboolean encryption_activated, char* encryption_public_key_str, LassoEncryptionSymKeyType encryption_sym_key_type }
+LassoSaml2AssertionValidationState
+struct LassoSaml2Attribute { GList* AttributeValue, char* Name, char* NameFormat, char* FriendlyName }
+struct LassoSaml2AttributeStatement { GList* Attribute, GList* EncryptedAttribute }
+struct LassoSaml2AttributeValue { GList* any }
+struct LassoSaml2AudienceRestriction { char* Audience }
+struct LassoSaml2AuthnContext { char* AuthnContextClassRef, char* AuthnContextDeclRef, char* AuthenticatingAuthority }
+struct LassoSaml2AuthnStatement { LassoSaml2SubjectLocality* SubjectLocality, LassoSaml2AuthnContext* AuthnContext, char* AuthnInstant, char* SessionIndex, char* SessionNotOnOrAfter }
+struct LassoSaml2AuthzDecisionStatement { LassoSaml2Action* Action, LassoSaml2Evidence* Evidence, char* Resource, char* Decision }
+struct LassoSaml2BaseIDAbstract { char* NameQualifier, char* SPNameQualifier }
+struct LassoSaml2ConditionAbstract { }
+struct LassoSaml2Conditions { GList* Condition, GList* AudienceRestriction, GList* OneTimeUse, GList* ProxyRestriction, char* NotBefore, char* NotOnOrAfter }
+struct LassoSaml2EncryptedElement { xmlNode* EncryptedData, GList* EncryptedKey, LassoNode* original_data }
+struct LassoSaml2Evidence { GList* AssertionIDRef, GList* AssertionURIRef, GList* Assertion, GList* EncryptedAssertion }
+struct LassoSaml2KeyInfoConfirmationData { }
+struct LassoSaml2NameID { char* content, char* Format, char* SPProvidedID, char* NameQualifier, char* SPNameQualifier }
+struct LassoSaml2OneTimeUse { }
+struct LassoSaml2ProxyRestriction { char* Audience, char* Count }
+struct LassoSaml2StatementAbstract { }
+struct LassoSaml2Subject { LassoSaml2BaseIDAbstract* BaseID, LassoSaml2NameID* NameID, LassoSaml2EncryptedElement* EncryptedID, LassoSaml2SubjectConfirmation* SubjectConfirmation }
+struct LassoSaml2SubjectConfirmation { LassoSaml2BaseIDAbstract* BaseID, LassoSaml2NameID* NameID, LassoSaml2EncryptedElement* EncryptedID, LassoSaml2SubjectConfirmationData* SubjectConfirmationData, char* Method }
+struct LassoSaml2SubjectConfirmationData { char* NotBefore, char* NotOnOrAfter, char* Recipient, char* InResponseTo, char* Address }
+struct LassoSaml2SubjectLocality { char* Address, char* DNSName }
+struct LassoSamlAdvice { GList* AssertionIDReference, LassoNode* Assertion }
+struct LassoSamlAssertion { LassoSamlConditions* Conditions, LassoSamlAdvice* Advice, LassoSamlSubjectStatement* SubjectStatement, LassoSamlAuthenticationStatement* AuthenticationStatement, LassoSamlAttributeStatement* AttributeStatement, int MajorVersion, int MinorVersion, char* AssertionID, char* Issuer, char* IssueInstant, LassoSignatureType sign_type, LassoSignatureMethod sign_method, char* private_key_file, char* certificate_file }
+struct LassoSamlAttribute { gchar* attributeName, gchar* attributeNameSpace, GList* AttributeValue }
+struct LassoSamlAttributeDesignator { char* AttributeName, char* AttributeNamespace }
+struct LassoSamlAttributeStatement { GList* Attribute }
+struct LassoSamlAttributeValue { GList* any }
+struct LassoSamlAudienceRestrictionCondition { GList* Audience }
+struct LassoSamlAuthenticationStatement { LassoSamlSubjectLocality* SubjectLocality, GList* AuthorityBinding, char* AuthenticationMethod, char* AuthenticationInstant }
+struct LassoSamlAuthorityBinding { char* AuthorityKind, char* Location, char* Binding }
+struct LassoSamlConditionAbstract { }
+struct LassoSamlConditions { GList* Condition, GList* AudienceRestrictionCondition, char* NotBefore, char* NotOnOrAfter }
+struct LassoSamlNameIdentifier { char* NameQualifier, char* Format, char* content }
+struct LassoSamlStatementAbstract { }
+struct LassoSamlSubject { LassoSamlNameIdentifier* NameIdentifier, LassoSamlSubjectConfirmation* SubjectConfirmation, LassoSaml2EncryptedElement* EncryptedNameIdentifier }
+struct LassoSamlSubjectConfirmation { GList* ConfirmationMethod, char* SubjectConfirmationData, LassoDsKeyInfo* KeyInfo }
+struct LassoSamlSubjectLocality { char* IPAddress, char* DNSAddress }
+struct LassoSamlSubjectStatement { }
+struct LassoSamlSubjectStatementAbstract { LassoSamlSubject* Subject }
+struct LassoSamlp2ArtifactResolve { char* Artifact }
+struct LassoSamlp2ArtifactResponse { LassoNode* any }
+struct LassoSamlp2AssertionIDRequest { char* AssertionIDRef }
+struct LassoSamlp2AttributeQuery { GList* Attribute }
+struct LassoSamlp2AuthnQuery { LassoSamlp2RequestedAuthnContext* RequestedAuthnContext, char* SessionIndex }
+struct LassoSamlp2AuthnRequest { LassoSaml2Subject* Subject, LassoSamlp2NameIDPolicy* NameIDPolicy, LassoSaml2Conditions* Conditions, LassoSamlp2RequestedAuthnContext* RequestedAuthnContext, LassoSamlp2Scoping* Scoping, gboolean ForceAuthn, gboolean IsPassive, char* ProtocolBinding, int AssertionConsumerServiceIndex, char* AssertionConsumerServiceURL, int AttributeConsumingServiceIndex, char* ProviderName, G_GNUC_DEPRECATED char }
+struct LassoSamlp2AuthzDecisionQuery { LassoSaml2Action* Action, LassoSaml2Evidence* Evidence, char* Resource }
+struct LassoSamlp2Extensions { }
+struct LassoSamlp2IDPEntry { char* ProviderID, char* Name, char* Loc }
+struct LassoSamlp2IDPList { LassoSamlp2IDPEntry* IDPEntry, char* GetComplete }
+struct LassoSamlp2LogoutRequest { LassoSaml2BaseIDAbstract* BaseID, LassoSaml2NameID* NameID, LassoSaml2EncryptedElement* EncryptedID, char* SessionIndex, char* Reason, char* NotOnOrAfter, G_GNUC_DEPRECATED char }
+struct LassoSamlp2LogoutResponse { G_GNUC_DEPRECATED char }
+struct LassoSamlp2ManageNameIDRequest { LassoSaml2NameID* NameID, LassoSaml2EncryptedElement* EncryptedID, char* NewID, LassoSaml2EncryptedElement* NewEncryptedID, LassoSamlp2Terminate* Terminate }
+struct LassoSamlp2ManageNameIDResponse { }
+struct LassoSamlp2NameIDMappingRequest { LassoSaml2BaseIDAbstract* BaseID, LassoSaml2NameID* NameID, LassoSaml2EncryptedElement* EncryptedID, LassoSamlp2NameIDPolicy* NameIDPolicy }
+struct LassoSamlp2NameIDMappingResponse { LassoSaml2NameID* NameID, LassoSaml2EncryptedElement* EncryptedID }
+struct LassoSamlp2NameIDPolicy { char* Format, char* SPNameQualifier, gboolean AllowCreate }
+struct LassoSamlp2RequestAbstract { LassoSaml2NameID* Issuer, LassoSamlp2Extensions* Extensions, char* ID, char* Version, char* IssueInstant, char* Destination, char* Consent, LassoSignatureType sign_type, LassoSignatureMethod sign_method, char* private_key_file, char* certificate_file }
+struct LassoSamlp2RequestedAuthnContext { GList* AuthnContextClassRef, GList* AuthnContextDeclRef, char* Comparison }
+struct LassoSamlp2Response { GList* Assertion, GList* EncryptedAssertion }
+struct LassoSamlp2Scoping { LassoSamlp2IDPList* IDPList, char* RequesterID, char* ProxyCount }
+struct LassoSamlp2Status { LassoSamlp2StatusCode* StatusCode, char* StatusMessage, LassoSamlp2StatusDetail* StatusDetail }
+struct LassoSamlp2StatusCode { LassoSamlp2StatusCode* StatusCode, char* Value }
+struct LassoSamlp2StatusDetail { }
+struct LassoSamlp2StatusResponse { LassoSaml2NameID* Issuer, LassoSamlp2Extensions* Extensions, LassoSamlp2Status* Status, char* ID, char* InResponseTo, char* Version, char* IssueInstant, char* Destination, char* Consent, LassoSignatureType sign_type, LassoSignatureMethod sign_method, char* private_key_file, char* certificate_file }
+struct LassoSamlp2SubjectQueryAbstract { LassoSaml2Subject* Subject }
+struct LassoSamlp2Terminate { }
+struct LassoSamlpRequest { char* AssertionArtifact }
+struct LassoSamlpRequestAbstract { GList* RespondWith, char* RequestID, int MajorVersion, int MinorVersion, char* IssueInstant, LassoSignatureType sign_type, LassoSignatureMethod sign_method, char* private_key_file, char* certificate_file }
+struct LassoSamlpResponse { LassoSamlpStatus* Status, GList* Assertion }
+struct LassoSamlpResponseAbstract { char* ResponseID, char* InResponseTo, int MajorVersion, int MinorVersion, char* IssueInstant, char* Recipient, LassoSignatureType sign_type, LassoSignatureMethod sign_method, char* private_key_file, char* certificate_file }
+struct LassoSamlpStatus { LassoSamlpStatusCode* StatusCode, char* StatusMessage }
+struct LassoSamlpStatusCode { LassoSamlpStatusCode* StatusCode, char* Value }
+struct LassoServer { GHashTable* providers, GHashTable* services, gchar* private_key, gchar* private_key_password, gchar* certificate, LassoSignatureMethod signature_method, LassoServerPrivate* private_data }
+LassoServerLoadMetadataFlag
+struct LassoSession { GHashTable* assertions, gboolean is_dirty, LassoSessionPrivate* private_data }
+LassoSignatureMethod
+LassoSignatureType
+struct LassoSoapBody { GList* any, gchar* Id }
+struct LassoSoapDetail { GList* any }
+struct LassoSoapEnvelope { LassoSoapHeader* Header, LassoSoapBody* Body }
+struct LassoSoapFault { gchar* faultcode, gchar* faultstring, GList* faultactor, LassoSoapDetail* Detail }
+struct LassoSoapHeader { GList* Other }
+lasso_error_t lasso_assertion_query_add_attribute_request ( LassoAssertionQuery* assertion_query, char* format, char* name )
+lasso_error_t lasso_assertion_query_build_request_msg ( LassoAssertionQuery* assertion_query )
+lasso_error_t lasso_assertion_query_build_response_msg ( LassoAssertionQuery* assertion_query )
+None lasso_assertion_query_destroy ( LassoAssertionQuery* assertion_query )
+LassoAssertionQueryRequestType lasso_assertion_query_get_request_type ( LassoAssertionQuery* assertion_query )
+GType lasso_assertion_query_get_type ( )
+lasso_error_t lasso_assertion_query_init_request ( LassoAssertionQuery* assertion_query, char* remote_provider_id, LassoHttpMethod http_method, LassoAssertionQueryRequestType query_request_type )
+LassoAssertionQuery* lasso_assertion_query_new ( LassoServer* server )
+lasso_error_t lasso_assertion_query_process_request_msg ( LassoAssertionQuery* assertion_query, gchar* request_msg )
+lasso_error_t lasso_assertion_query_process_response_msg ( LassoAssertionQuery* assertion_query, gchar* response_msg )
+lasso_error_t lasso_assertion_query_validate_request ( LassoAssertionQuery* assertion_query )
+char* lasso_build_unique_id ( unsigned int size )
+int lasso_check_version ( int major, int minor, int subminor, LassoCheckVersionMode mode )
+lasso_error_t lasso_defederation_build_notification_msg ( LassoDefederation* defederation )
+None lasso_defederation_destroy ( LassoDefederation* defederation )
+GType lasso_defederation_get_type ( )
+lasso_error_t lasso_defederation_init_notification ( LassoDefederation* defederation, gchar* remote_providerID, LassoHttpMethod http_method )
+LassoDefederation* lasso_defederation_new ( LassoServer* server )
+lasso_error_t lasso_defederation_process_notification_msg ( LassoDefederation* defederation, gchar* notification_msg )
+lasso_error_t lasso_defederation_validate_notification ( LassoDefederation* defederation )
+GType lasso_ds_key_info_get_type ( )
+LassoDsKeyInfo* lasso_ds_key_info_new ( )
+GType lasso_ds_key_value_get_type ( )
+LassoDsKeyValue* lasso_ds_key_value_new ( )
+GType lasso_ds_rsa_key_value_get_type ( )
+LassoDsRsaKeyValue* lasso_ds_rsa_key_value_new ( )
+None lasso_ecp_destroy ( LassoEcp* ecp )
+GType lasso_ecp_get_type ( )
+LassoEcp* lasso_ecp_new ( LassoServer* server )
+lasso_error_t lasso_ecp_process_authn_request_msg ( LassoEcp* ecp, const char* authn_request_msg )
+lasso_error_t lasso_ecp_process_response_msg ( LassoEcp* ecp, const char* response_msg )
+None lasso_federation_build_local_name_identifier ( LassoFederation* federation, const gchar* nameQualifier, const gchar* format, const gchar* content )
+None lasso_federation_destroy ( LassoFederation* federation )
+GType lasso_federation_get_type ( )
+LassoFederation* lasso_federation_new ( const gchar* remote_providerID )
+gboolean lasso_federation_verify_name_identifier ( LassoFederation* federation, LassoNode* name_identifier )
+char* lasso_get_prefix_for_dst_service_href ( const char* href )
+gchar* lasso_get_prefix_for_idwsf2_dst_service_href ( const gchar* href )
+None lasso_identity_destroy ( LassoIdentity* identity )
+gchar* lasso_identity_dump ( LassoIdentity* identity )
+LassoFederation* lasso_identity_get_federation ( LassoIdentity* identity, const char* providerID )
+GType lasso_identity_get_type ( )
+LassoIdentity* lasso_identity_new ( )
+LassoIdentity* lasso_identity_new_from_dump ( const gchar* dump )
+lasso_error_t lasso_init ( )
+lasso_error_t lasso_lecp_build_authn_request_envelope_msg ( LassoLecp* lecp )
+lasso_error_t lasso_lecp_build_authn_request_msg ( LassoLecp* lecp )
+lasso_error_t lasso_lecp_build_authn_response_envelope_msg ( LassoLecp* lecp )
+lasso_error_t lasso_lecp_build_authn_response_msg ( LassoLecp* lecp )
+None lasso_lecp_destroy ( LassoLecp* lecp )
+GType lasso_lecp_get_type ( )
+lasso_error_t lasso_lecp_init_authn_request ( LassoLecp* lecp, const char* remote_providerID )
+LassoLecp* lasso_lecp_new ( LassoServer* server )
+lasso_error_t lasso_lecp_process_authn_request_envelope_msg ( LassoLecp* lecp, const char* request_msg )
+lasso_error_t lasso_lecp_process_authn_request_msg ( LassoLecp* lecp, const char* authn_request_msg )
+lasso_error_t lasso_lecp_process_authn_response_envelope_msg ( LassoLecp* lecp, const char* response_msg )
+GType lasso_lib_assertion_get_type ( )
+LassoLibAssertion* lasso_lib_assertion_new ( )
+LassoLibAssertion* lasso_lib_assertion_new_full ( const char* issuer, const char* requestID, const char* audience, const char* notBefore, const char* notOnOrAfter )
+GType lasso_lib_authentication_statement_get_type ( )
+LassoLibAuthenticationStatement* lasso_lib_authentication_statement_new ( )
+LassoLibAuthenticationStatement* lasso_lib_authentication_statement_new_full ( const char* authenticationMethod, const char* authenticationInstant, const char* reauthenticateOnOrAfter, LassoSamlNameIdentifier* sp_identifier, LassoSamlNameIdentifier* idp_identifier )
+GType lasso_lib_authn_context_get_type ( )
+LassoNode* lasso_lib_authn_context_new ( )
+GType lasso_lib_authn_request_envelope_get_type ( )
+LassoLibAuthnRequestEnvelope* lasso_lib_authn_request_envelope_new ( )
+LassoLibAuthnRequestEnvelope* lasso_lib_authn_request_envelope_new_full ( LassoLibAuthnRequest* authnRequest, char* providerID, char* assertionConsumerServiceURL )
+GType lasso_lib_authn_request_get_type ( )
+LassoLibAuthnRequest* lasso_lib_authn_request_new ( )
+GType lasso_lib_authn_response_envelope_get_type ( )
+LassoLibAuthnResponseEnvelope* lasso_lib_authn_response_envelope_new ( LassoLibAuthnResponse* response, char* assertionConsumerServiceURL )
+GType lasso_lib_authn_response_get_type ( )
+LassoNode* lasso_lib_authn_response_new ( char* providerID, LassoLibAuthnRequest* request )
+GType lasso_lib_federation_termination_notification_get_type ( )
+LassoNode* lasso_lib_federation_termination_notification_new ( )
+LassoNode* lasso_lib_federation_termination_notification_new_full ( char* providerID, LassoSamlNameIdentifier* nameIdentifier, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_idp_entries_get_type ( )
+LassoNode* lasso_lib_idp_entries_new ( )
+GType lasso_lib_idp_entry_get_type ( )
+LassoNode* lasso_lib_idp_entry_new ( )
+GType lasso_lib_idp_list_get_type ( )
+LassoNode* lasso_lib_idp_list_new ( )
+GType lasso_lib_logout_request_get_type ( )
+LassoNode* lasso_lib_logout_request_new ( )
+LassoNode* lasso_lib_logout_request_new_full ( char* providerID, LassoSamlNameIdentifier* nameIdentifier, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_logout_response_get_type ( )
+LassoNode* lasso_lib_logout_response_new ( )
+LassoNode* lasso_lib_logout_response_new_full ( char* providerID, const char* statusCodeValue, LassoLibLogoutRequest* request, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_name_identifier_mapping_request_get_type ( )
+LassoNode* lasso_lib_name_identifier_mapping_request_new ( )
+LassoNode* lasso_lib_name_identifier_mapping_request_new_full ( char* providerID, LassoSamlNameIdentifier* nameIdentifier, const char* targetNamespace, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_name_identifier_mapping_response_get_type ( )
+LassoNode* lasso_lib_name_identifier_mapping_response_new ( )
+LassoNode* lasso_lib_name_identifier_mapping_response_new_full ( char* provideRID, const char* statusCodeValue, LassoLibNameIdentifierMappingRequest* request, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_register_name_identifier_request_get_type ( )
+LassoNode* lasso_lib_register_name_identifier_request_new ( )
+LassoNode* lasso_lib_register_name_identifier_request_new_full ( const char* providerID, LassoSamlNameIdentifier* idpNameIdentifier, LassoSamlNameIdentifier* spNameIdentifier, LassoSamlNameIdentifier* oldNameIdentifier, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_register_name_identifier_response_get_type ( )
+LassoNode* lasso_lib_register_name_identifier_response_new ( )
+LassoNode* lasso_lib_register_name_identifier_response_new_full ( const char* providerID, const char* statusCodeValue, LassoLibRegisterNameIdentifierRequest* request, LassoSignatureType sign_type, LassoSignatureMethod sign_method )
+GType lasso_lib_request_authn_context_get_type ( )
+LassoLibRequestAuthnContext* lasso_lib_request_authn_context_new ( )
+GType lasso_lib_scoping_get_type ( )
+LassoLibScoping* lasso_lib_scoping_new ( )
+GType lasso_lib_status_response_get_type ( )
+LassoNode* lasso_lib_status_response_new ( )
+GType lasso_lib_subject_get_type ( )
+LassoLibSubject* lasso_lib_subject_new ( )
+lasso_error_t lasso_login_accept_sso ( LassoLogin* login )
+lasso_error_t lasso_login_build_artifact_msg ( LassoLogin* login, LassoHttpMethod http_method )
+lasso_error_t lasso_login_build_assertion ( LassoLogin* login, const char* authenticationMethod, const char* authenticationInstant, const char* reauthenticateOnOrAfter, const char* notBefore, const char* notOnOrAfter )
+lasso_error_t lasso_login_build_authn_request_msg ( LassoLogin* login )
+lasso_error_t lasso_login_build_authn_response_msg ( LassoLogin* login )
+lasso_error_t lasso_login_build_request_msg ( LassoLogin* login )
+lasso_error_t lasso_login_build_response_msg ( LassoLogin* login, gchar* remote_providerID )
+None lasso_login_destroy ( LassoLogin* login )
+gchar* lasso_login_dump ( LassoLogin* login )
+LassoNode* lasso_login_get_assertion ( LassoLogin* login )
+GType lasso_login_get_type ( )
+lasso_error_t lasso_login_init_authn_request ( LassoLogin* login, const gchar* remote_providerID, LassoHttpMethod http_method )
+lasso_error_t lasso_login_init_idp_initiated_authn_request ( LassoLogin* login, const gchar* remote_providerID )
+lasso_error_t lasso_login_init_request ( LassoLogin* login, gchar* response_msg, LassoHttpMethod response_http_method )
+gboolean lasso_login_must_ask_for_consent ( LassoLogin* login )
+gboolean lasso_login_must_authenticate ( LassoLogin* login )
+LassoLogin* lasso_login_new ( LassoServer* server )
+LassoLogin* lasso_login_new_from_dump ( LassoServer* server, const gchar* dump )
+lasso_error_t lasso_login_process_authn_request_msg ( LassoLogin* login, const char* authn_request_msg )
+lasso_error_t lasso_login_process_authn_response_msg ( LassoLogin* login, gchar* authn_response_msg )
+lasso_error_t lasso_login_process_paos_response_msg ( LassoLogin* login, gchar* msg )
+lasso_error_t lasso_login_process_request_msg ( LassoLogin* login, gchar* request_msg )
+lasso_error_t lasso_login_process_response_msg ( LassoLogin* login, gchar* response_msg )
+lasso_error_t lasso_login_validate_request_msg ( LassoLogin* login, gboolean authentication_result, gboolean is_consent_obtained )
+lasso_error_t lasso_logout_build_request_msg ( LassoLogout* logout )
+lasso_error_t lasso_logout_build_response_msg ( LassoLogout* logout )
+None lasso_logout_destroy ( LassoLogout* logout )
+gchar* lasso_logout_dump ( LassoLogout* logout )
+gchar* lasso_logout_get_next_providerID ( LassoLogout* logout )
+GType lasso_logout_get_type ( )
+lasso_error_t lasso_logout_init_request ( LassoLogout* logout, gchar* remote_providerID, LassoHttpMethod request_method )
+LassoLogout* lasso_logout_new ( LassoServer* server )
+LassoLogout* lasso_logout_new_from_dump ( LassoServer* server, const gchar* dump )
+lasso_error_t lasso_logout_process_request_msg ( LassoLogout* logout, gchar* request_msg )
+lasso_error_t lasso_logout_process_response_msg ( LassoLogout* logout, gchar* response_msg )
+lasso_error_t lasso_logout_reset_providerID_index ( LassoLogout* logout )
+lasso_error_t lasso_logout_validate_request ( LassoLogout* logout )
+GType lasso_misc_text_node_get_type ( )
+xmlNode* lasso_misc_text_node_get_xml_content ( LassoMiscTextNode* misc_text_node )
+LassoNode* lasso_misc_text_node_new ( )
+LassoMiscTextNode* lasso_misc_text_node_new_with_string ( const char* content )
+LassoMiscTextNode* lasso_misc_text_node_new_with_xml_node ( xmlNode* xml_node )
+None lasso_misc_text_node_set_xml_content ( LassoMiscTextNode* misc_text_node, xmlNode* node )
+lasso_error_t lasso_name_id_management_build_request_msg ( LassoNameIdManagement* name_id_management )
+lasso_error_t lasso_name_id_management_build_response_msg ( LassoNameIdManagement* name_id_management )
+None lasso_name_id_management_destroy ( LassoNameIdManagement* name_id_management )
+char* lasso_name_id_management_dump ( LassoNameIdManagement* name_id_management )
+GType lasso_name_id_management_get_type ( )
+lasso_error_t lasso_name_id_management_init_request ( LassoNameIdManagement* name_id_management, char* remote_provider_id, char* new_name_id, LassoHttpMethod http_method )
+LassoNameIdManagement* lasso_name_id_management_new ( LassoServer* server )
+LassoNameIdManagement* lasso_name_id_management_new_from_dump ( LassoServer* server, const char* dump )
+lasso_error_t lasso_name_id_management_process_request_msg ( LassoNameIdManagement* name_id_management, gchar* request_msg )
+lasso_error_t lasso_name_id_management_process_response_msg ( LassoNameIdManagement* name_id_management, gchar* response_msg )
+lasso_error_t lasso_name_id_management_validate_request ( LassoNameIdManagement* name_id_management )
+lasso_error_t lasso_name_identifier_mapping_build_request_msg ( LassoNameIdentifierMapping* mapping )
+lasso_error_t lasso_name_identifier_mapping_build_response_msg ( LassoNameIdentifierMapping* mapping )
+None lasso_name_identifier_mapping_destroy ( LassoNameIdentifierMapping* mapping )
+GType lasso_name_identifier_mapping_get_type ( )
+lasso_error_t lasso_name_identifier_mapping_init_request ( LassoNameIdentifierMapping* mapping, gchar* targetNamespace, gchar* remote_providerID )
+LassoNameIdentifierMapping* lasso_name_identifier_mapping_new ( LassoServer* server )
+lasso_error_t lasso_name_identifier_mapping_process_request_msg ( LassoNameIdentifierMapping* mapping, gchar* request_msg )
+lasso_error_t lasso_name_identifier_mapping_process_response_msg ( LassoNameIdentifierMapping* mapping, gchar* response_msg )
+lasso_error_t lasso_name_identifier_mapping_validate_request ( LassoNameIdentifierMapping* mapping )
+lasso_error_t lasso_name_registration_build_request_msg ( LassoNameRegistration* name_registration )
+lasso_error_t lasso_name_registration_build_response_msg ( LassoNameRegistration* name_registration )
+None lasso_name_registration_destroy ( LassoNameRegistration* name_registration )
+gchar* lasso_name_registration_dump ( LassoNameRegistration* name_registration )
+GType lasso_name_registration_get_type ( )
+lasso_error_t lasso_name_registration_init_request ( LassoNameRegistration* name_registration, char* remote_providerID, LassoHttpMethod http_method )
+LassoNameRegistration* lasso_name_registration_new ( LassoServer* server )
+LassoNameRegistration* lasso_name_registration_new_from_dump ( LassoServer* server, const char* dump )
+lasso_error_t lasso_name_registration_process_request_msg ( LassoNameRegistration* name_registration, gchar* request_msg )
+lasso_error_t lasso_name_registration_process_response_msg ( LassoNameRegistration* name_registration, gchar* response_msg )
+lasso_error_t lasso_name_registration_validate_request ( LassoNameRegistration* name_registration )
+None lasso_node_cleanup_original_xmlnodes ( LassoNode* node )
+char* lasso_node_debug ( LassoNode* node, int level )
+None lasso_node_destroy ( LassoNode* node )
+char* lasso_node_dump ( LassoNode* node )
+char* lasso_node_export_to_base64 ( LassoNode* node )
+char* lasso_node_export_to_ecp_soap_response ( LassoNode* node, const char* assertionConsumerURL )
+char* lasso_node_export_to_paos_request ( LassoNode* node, const char* issuer, const char* responseConsumerURL, const char* relay_state )
+char* lasso_node_export_to_query ( LassoNode* node, LassoSignatureMethod sign_method, const char* private_key_file )
+char* lasso_node_export_to_query_with_password ( LassoNode* node, LassoSignatureMethod sign_method, const char* private_key_file, const char* private_key_file_password )
+char* lasso_node_export_to_soap ( LassoNode* node )
+gchar* lasso_node_export_to_xml ( LassoNode* node )
+const char* lasso_node_get_name ( LassoNode* node )
+const char* lasso_node_get_namespace ( LassoNode* node )
+xmlNode* lasso_node_get_original_xmlnode ( LassoNode* node )
+GType lasso_node_get_type ( )
+xmlNode* lasso_node_get_xmlNode ( LassoNode* node, gboolean lasso_dump )
+LassoMessageFormat lasso_node_init_from_message ( LassoNode* node, const char* message )
+gboolean lasso_node_init_from_query ( LassoNode* node, const char* query )
+lasso_error_t lasso_node_init_from_xml ( LassoNode* node, xmlNode* xmlnode )
+LassoNode* lasso_node_new ( )
+LassoNode* lasso_node_new_from_dump ( const char* dump )
+LassoNode* lasso_node_new_from_soap ( const char* soap )
+LassoNode* lasso_node_new_from_xmlNode ( xmlNode* node )
+None lasso_node_set_custom_namespace ( LassoNode* node, const char* prefix, const char* href )
+None lasso_node_set_custom_nodename ( LassoNode* node, const char* nodename )
+None lasso_node_set_original_xmlnode ( LassoNode* node, xmlNode* xmlnode )
+char* lasso_profile_get_artifact ( LassoProfile* profile )
+char* lasso_profile_get_artifact_message ( LassoProfile* profile )
+LassoIdentity* lasso_profile_get_identity ( LassoProfile* profile )
+LassoNode* lasso_profile_get_nameIdentifier ( LassoProfile* profile )
+LassoRequestType lasso_profile_get_request_type_from_soap_msg ( const gchar* soap )
+LassoSession* lasso_profile_get_session ( LassoProfile* profile )
+LassoProfileSignatureHint lasso_profile_get_signature_hint ( LassoProfile* profile )
+lasso_error_t lasso_profile_get_signature_status ( LassoProfile* profile )
+LassoProfileSignatureVerifyHint lasso_profile_get_signature_verify_hint ( LassoProfile* profile )
+GType lasso_profile_get_type ( )
+gboolean lasso_profile_is_identity_dirty ( LassoProfile* profile )
+gboolean lasso_profile_is_liberty_query ( const gchar* query )
+gboolean lasso_profile_is_saml_query ( const gchar* query )
+gboolean lasso_profile_is_session_dirty ( LassoProfile* profile )
+None lasso_profile_set_artifact_message ( LassoProfile* profile, const char* message )
+lasso_error_t lasso_profile_set_identity_from_dump ( LassoProfile* profile, const gchar* dump )
+lasso_error_t lasso_profile_set_session_from_dump ( LassoProfile* profile, const gchar* dump )
+None lasso_profile_set_signature_hint ( LassoProfile* profile, LassoProfileSignatureHint signature_hint )
+None lasso_profile_set_signature_verify_hint ( LassoProfile* profile, LassoProfileSignatureVerifyHint signature_verify_hint )
+lasso_error_t lasso_profile_set_soap_fault_response ( LassoProfile* profile, const char* faultcode, const char* faultstring, GList* details )
+LassoProviderRole lasso_profile_sso_role_with ( LassoProfile* profile, const char* remote_provider_id )
+gboolean lasso_provider_accept_http_method ( LassoProvider* provider, LassoProvider* remote_provider, LassoMdProtocolType protocol_type, LassoHttpMethod http_method, gboolean initiate_profile )
+gchar* lasso_provider_get_assertion_consumer_service_url ( LassoProvider* provider, const char* service_id )
+gchar* lasso_provider_get_base64_succinct_id ( const LassoProvider* provider )
+char* lasso_provider_get_cache_duration ( LassoProvider* provider )
+gchar* lasso_provider_get_default_name_id_format ( LassoProvider* provider )
+LassoEncryptionMode lasso_provider_get_encryption_mode ( LassoProvider* provider )
+LassoHttpMethod lasso_provider_get_first_http_method ( LassoProvider* provider, LassoProvider* remote_provider, LassoMdProtocolType protocol_type )
+GList* lasso_provider_get_idp_supported_attributes ( LassoProvider* provider )
+GList* lasso_provider_get_metadata_keys_for_role ( LassoProvider* provider, LassoProviderRole role )
+GList* lasso_provider_get_metadata_list ( LassoProvider* provider, const char* name )
+GList* lasso_provider_get_metadata_list_for_role ( const LassoProvider* provider, LassoProviderRole role, const char* name )
+gchar* lasso_provider_get_metadata_one ( LassoProvider* provider, const char* name )
+char* lasso_provider_get_metadata_one_for_role ( LassoProvider* provider, LassoProviderRole role, const char* name )
+xmlNode* lasso_provider_get_organization ( const LassoProvider* provider )
+LassoProtocolConformance lasso_provider_get_protocol_conformance ( const LassoProvider* provider )
+LassoProviderRole lasso_provider_get_roles ( LassoProvider* provider )
+const char* lasso_provider_get_sp_name_qualifier ( LassoProvider* provider )
+GType lasso_provider_get_type ( )
+char* lasso_provider_get_valid_until ( LassoProvider* provider )
+gboolean lasso_provider_has_protocol_profile ( LassoProvider* provider, LassoMdProtocolType protocol_type, const char* protocol_profile )
+gboolean lasso_provider_match_conformance ( LassoProvider* provider, LassoProvider* another_provider )
+LassoProvider* lasso_provider_new ( LassoProviderRole role, const char* metadata, const char* public_key, const char* ca_cert_chain )
+LassoProvider* lasso_provider_new_from_buffer ( LassoProviderRole role, const char* metadata, const char* public_key, const char* ca_cert_chain )
+LassoProvider* lasso_provider_new_from_dump ( const gchar* dump )
+LassoSaml2EncryptedElement* lasso_provider_saml2_node_encrypt ( const LassoProvider* provider, LassoNode* lasso_node )
+None lasso_provider_set_encryption_mode ( LassoProvider* provider, LassoEncryptionMode encryption_mode )
+None lasso_provider_set_encryption_sym_key_type ( LassoProvider* provider, LassoEncryptionSymKeyType encryption_sym_key_type )
+lasso_error_t lasso_provider_verify_single_node_signature ( LassoProvider* provider, LassoNode* node, const char* id_attr_name )
+None lasso_register_dst_service ( const char* prefix, const char* href )
+None lasso_register_idwsf2_dst_service ( const gchar* prefix, const gchar* href )
+GType lasso_saml2_action_get_type ( )
+LassoNode* lasso_saml2_action_new ( )
+LassoNode* lasso_saml2_action_new_with_string ( char* content )
+GType lasso_saml2_advice_get_type ( )
+LassoNode* lasso_saml2_advice_new ( )
+lasso_error_t lasso_saml2_assertion_add_attribute_with_node ( LassoSaml2Assertion* assertion, const char* name, const char* nameformat, LassoNode* content )
+None lasso_saml2_assertion_add_audience_restriction ( LassoSaml2Assertion* saml2_assertion, const char* providerID )
+None lasso_saml2_assertion_add_proxy_limit ( LassoSaml2Assertion* saml2_assertion, int proxy_count, GList* proxy_audiences )
+LassoSaml2AssertionValidationState lasso_saml2_assertion_allows_proxying ( LassoSaml2Assertion* saml2_assertion )
+LassoSaml2AssertionValidationState lasso_saml2_assertion_allows_proxying_to ( LassoSaml2Assertion* saml2_assertion, const char* audience )
+lasso_error_t lasso_saml2_assertion_decrypt_subject ( LassoSaml2Assertion* assertion, LassoServer* server )
+const char* lasso_saml2_assertion_get_in_response_to ( LassoSaml2Assertion* assertion )
+LassoProvider* lasso_saml2_assertion_get_issuer_provider ( const LassoSaml2Assertion* saml2_assertion, const LassoServer* server )
+LassoSaml2SubjectConfirmationData* lasso_saml2_assertion_get_subject_confirmation_data ( LassoSaml2Assertion* saml2_assertion, gboolean create )
+GType lasso_saml2_assertion_get_type ( )
+gboolean lasso_saml2_assertion_has_audience_restriction ( LassoSaml2Assertion* saml2_assertion )
+gboolean lasso_saml2_assertion_has_one_time_use ( LassoSaml2Assertion* saml2_assertion )
+gboolean lasso_saml2_assertion_is_audience_restricted ( LassoSaml2Assertion* saml2_assertion, char* providerID )
+LassoNode* lasso_saml2_assertion_new ( )
+None lasso_saml2_assertion_set_basic_conditions ( LassoSaml2Assertion* saml2_assertion, time_t tolerance, time_t length, gboolean one_time_use )
+None lasso_saml2_assertion_set_one_time_use ( LassoSaml2Assertion* saml2_assertion, gboolean one_time_use )
+None lasso_saml2_assertion_set_subject_confirmation_data ( LassoSaml2Assertion* saml2_assertion, time_t tolerance, time_t length, const char* Recipient, const char* InResponseTo, const char* Address )
+None lasso_saml2_assertion_set_subject_confirmation_name_id ( LassoSaml2Assertion* saml2_assertion, LassoNode* node )
+None lasso_saml2_assertion_set_subject_name_id ( LassoSaml2Assertion* saml2_assertion, LassoNode* node )
+LassoSaml2AssertionValidationState lasso_saml2_assertion_validate_audience ( LassoSaml2Assertion* saml2_assertion, const gchar* audience )
+LassoSaml2AssertionValidationState lasso_saml2_assertion_validate_conditions ( LassoSaml2Assertion* saml2_assertion, const char* relaying_party_providerID )
+LassoSaml2AssertionValidationState lasso_saml2_assertion_validate_time_checks ( LassoSaml2Assertion* saml2_assertion, unsigned int tolerance, time_t now )
+GType lasso_saml2_attribute_get_type ( )
+LassoNode* lasso_saml2_attribute_new ( )
+GType lasso_saml2_attribute_statement_get_type ( )
+LassoNode* lasso_saml2_attribute_statement_new ( )
+GType lasso_saml2_attribute_value_get_type ( )
+LassoSaml2AttributeValue* lasso_saml2_attribute_value_new ( )
+GType lasso_saml2_audience_restriction_get_type ( )
+LassoNode* lasso_saml2_audience_restriction_new ( )
+GType lasso_saml2_authn_context_get_type ( )
+LassoNode* lasso_saml2_authn_context_new ( )
+GType lasso_saml2_authn_statement_get_type ( )
+LassoNode* lasso_saml2_authn_statement_new ( )
+GType lasso_saml2_authz_decision_statement_get_type ( )
+LassoNode* lasso_saml2_authz_decision_statement_new ( )
+GType lasso_saml2_base_idabstract_get_type ( )
+LassoNode* lasso_saml2_base_idabstract_new ( )
+GType lasso_saml2_condition_abstract_get_type ( )
+LassoNode* lasso_saml2_condition_abstract_new ( )
+GType lasso_saml2_conditions_get_type ( )
+LassoNode* lasso_saml2_conditions_new ( )
+LassoSaml2EncryptedElement* lasso_saml2_encrypted_element_build_encrypted_persistent_name_id ( const char* id, const char* idpID, const LassoProvider* provider )
+GType lasso_saml2_encrypted_element_get_type ( )
+LassoNode* lasso_saml2_encrypted_element_new ( )
+lasso_error_t lasso_saml2_encrypted_element_server_decrypt ( LassoSaml2EncryptedElement* encrypted_element, LassoServer* server, LassoNode** decrypted_node )
+GType lasso_saml2_evidence_get_type ( )
+LassoNode* lasso_saml2_evidence_new ( )
+GType lasso_saml2_key_info_confirmation_data_get_type ( )
+LassoNode* lasso_saml2_key_info_confirmation_data_new ( )
+LassoSaml2NameID* lasso_saml2_name_id_build_persistent ( const char* id, const char* idpID, const char* providerID )
+gboolean lasso_saml2_name_id_equals ( LassoSaml2NameID* name_id, LassoSaml2NameID* other_name_id )
+GType lasso_saml2_name_id_get_type ( )
+LassoNode* lasso_saml2_name_id_new ( )
+LassoSaml2NameID* lasso_saml2_name_id_new_with_persistent_format ( const char* id, const char* idpID, const char* providerID )
+LassoNode* lasso_saml2_name_id_new_with_string ( char* content )
+GType lasso_saml2_one_time_use_get_type ( )
+LassoNode* lasso_saml2_one_time_use_new ( )
+GType lasso_saml2_proxy_restriction_get_type ( )
+LassoNode* lasso_saml2_proxy_restriction_new ( )
+GType lasso_saml2_statement_abstract_get_type ( )
+LassoNode* lasso_saml2_statement_abstract_new ( )
+GType lasso_saml2_subject_confirmation_data_get_type ( )
+LassoNode* lasso_saml2_subject_confirmation_data_new ( )
+GType lasso_saml2_subject_confirmation_get_type ( )
+LassoNode* lasso_saml2_subject_confirmation_new ( )
+GType lasso_saml2_subject_get_type ( )
+GType lasso_saml2_subject_locality_get_type ( )
+LassoNode* lasso_saml2_subject_locality_new ( )
+LassoNode* lasso_saml2_subject_new ( )
+GType lasso_saml_advice_get_type ( )
+LassoNode* lasso_saml_advice_new ( )
+GType lasso_saml_assertion_get_type ( )
+LassoSamlAssertion* lasso_saml_assertion_new ( )
+GType lasso_saml_attribute_designator_get_type ( )
+LassoNode* lasso_saml_attribute_designator_new ( )
+GType lasso_saml_attribute_get_type ( )
+LassoSamlAttribute* lasso_saml_attribute_new ( )
+GType lasso_saml_attribute_statement_get_type ( )
+LassoSamlAttributeStatement* lasso_saml_attribute_statement_new ( )
+GType lasso_saml_attribute_value_get_type ( )
+LassoSamlAttributeValue* lasso_saml_attribute_value_new ( )
+GType lasso_saml_audience_restriction_condition_get_type ( )
+LassoSamlAudienceRestrictionCondition* lasso_saml_audience_restriction_condition_new ( )
+LassoSamlAudienceRestrictionCondition* lasso_saml_audience_restriction_condition_new_full ( const char* audience )
+GType lasso_saml_authentication_statement_get_type ( )
+LassoNode* lasso_saml_authentication_statement_new ( )
+GType lasso_saml_authority_binding_get_type ( )
+LassoNode* lasso_saml_authority_binding_new ( )
+GType lasso_saml_condition_abstract_get_type ( )
+GType lasso_saml_conditions_get_type ( )
+LassoSamlConditions* lasso_saml_conditions_new ( )
+GType lasso_saml_name_identifier_get_type ( )
+LassoSamlNameIdentifier* lasso_saml_name_identifier_new ( )
+LassoSamlNameIdentifier* lasso_saml_name_identifier_new_from_xmlNode ( xmlNode* xmlnode )
+GType lasso_saml_statement_abstract_get_type ( )
+GType lasso_saml_subject_confirmation_get_type ( )
+LassoSamlSubjectConfirmation* lasso_saml_subject_confirmation_new ( )
+GType lasso_saml_subject_get_type ( )
+GType lasso_saml_subject_locality_get_type ( )
+LassoNode* lasso_saml_subject_locality_new ( )
+LassoNode* lasso_saml_subject_new ( )
+GType lasso_saml_subject_statement_abstract_get_type ( )
+GType lasso_saml_subject_statement_get_type ( )
+LassoNode* lasso_saml_subject_statement_new ( )
+GType lasso_samlp2_artifact_resolve_get_type ( )
+LassoNode* lasso_samlp2_artifact_resolve_new ( )
+GType lasso_samlp2_artifact_response_get_type ( )
+LassoNode* lasso_samlp2_artifact_response_new ( )
+GType lasso_samlp2_assertion_id_request_get_type ( )
+LassoNode* lasso_samlp2_assertion_id_request_new ( )
+GType lasso_samlp2_attribute_query_get_type ( )
+LassoNode* lasso_samlp2_attribute_query_new ( )
+GType lasso_samlp2_authn_query_get_type ( )
+LassoNode* lasso_samlp2_authn_query_new ( )
+GType lasso_samlp2_authn_request_get_type ( )
+LassoNode* lasso_samlp2_authn_request_new ( )
+GType lasso_samlp2_authz_decision_query_get_type ( )
+LassoNode* lasso_samlp2_authz_decision_query_new ( )
+GType lasso_samlp2_extensions_get_type ( )
+LassoNode* lasso_samlp2_extensions_new ( )
+GType lasso_samlp2_idp_entry_get_type ( )
+LassoNode* lasso_samlp2_idp_entry_new ( )
+GType lasso_samlp2_idp_list_get_type ( )
+LassoNode* lasso_samlp2_idp_list_new ( )
+GList* lasso_samlp2_logout_request_get_session_indexes ( LassoSamlp2LogoutRequest* logout_request )
+GType lasso_samlp2_logout_request_get_type ( )
+LassoNode* lasso_samlp2_logout_request_new ( )
+None lasso_samlp2_logout_request_set_session_indexes ( LassoSamlp2LogoutRequest* logout_request, GList* session_index )
+GType lasso_samlp2_logout_response_get_type ( )
+LassoNode* lasso_samlp2_logout_response_new ( )
+GType lasso_samlp2_manage_name_id_request_get_type ( )
+LassoNode* lasso_samlp2_manage_name_id_request_new ( )
+GType lasso_samlp2_manage_name_id_response_get_type ( )
+LassoNode* lasso_samlp2_manage_name_id_response_new ( )
+GType lasso_samlp2_name_id_mapping_request_get_type ( )
+LassoNode* lasso_samlp2_name_id_mapping_request_new ( )
+GType lasso_samlp2_name_id_mapping_response_get_type ( )
+LassoNode* lasso_samlp2_name_id_mapping_response_new ( )
+GType lasso_samlp2_name_id_policy_get_type ( )
+LassoNode* lasso_samlp2_name_id_policy_new ( )
+GType lasso_samlp2_request_abstract_get_type ( )
+LassoNode* lasso_samlp2_request_abstract_new ( )
+GType lasso_samlp2_requested_authn_context_get_type ( )
+LassoNode* lasso_samlp2_requested_authn_context_new ( )
+GType lasso_samlp2_response_get_type ( )
+LassoNode* lasso_samlp2_response_new ( )
+GType lasso_samlp2_scoping_get_type ( )
+LassoNode* lasso_samlp2_scoping_new ( )
+GType lasso_samlp2_status_code_get_type ( )
+LassoNode* lasso_samlp2_status_code_new ( )
+GType lasso_samlp2_status_detail_get_type ( )
+LassoNode* lasso_samlp2_status_detail_new ( )
+GType lasso_samlp2_status_get_type ( )
+LassoNode* lasso_samlp2_status_new ( )
+GType lasso_samlp2_status_response_get_type ( )
+LassoNode* lasso_samlp2_status_response_new ( )
+GType lasso_samlp2_subject_query_abstract_get_type ( )
+LassoNode* lasso_samlp2_subject_query_abstract_new ( )
+GType lasso_samlp2_terminate_get_type ( )
+LassoNode* lasso_samlp2_terminate_new ( )
+GType lasso_samlp_request_abstract_get_type ( )
+GType lasso_samlp_request_get_type ( )
+LassoNode* lasso_samlp_request_new ( )
+None lasso_samlp_response_abstract_fill ( LassoSamlpResponseAbstract* response, const char* InResponseTo, const char* Recipient )
+GType lasso_samlp_response_abstract_get_type ( )
+GType lasso_samlp_response_get_type ( )
+LassoNode* lasso_samlp_response_new ( )
+GType lasso_samlp_status_code_get_type ( )
+LassoSamlpStatusCode* lasso_samlp_status_code_new ( )
+GType lasso_samlp_status_get_type ( )
+LassoSamlpStatus* lasso_samlp_status_new ( )
+lasso_error_t lasso_server_add_provider ( LassoServer* server, LassoProviderRole role, const gchar* metadata, const gchar* public_key, const gchar* ca_cert_chain )
+lasso_error_t lasso_server_add_provider_from_buffer ( LassoServer* server, LassoProviderRole role, const gchar* metadata, const gchar* public_key, const gchar* ca_cert_chain )
+None lasso_server_destroy ( LassoServer* server )
+gchar* lasso_server_dump ( LassoServer* server )
+LassoProvider* lasso_server_get_provider ( const LassoServer* server, const gchar* providerID )
+GType lasso_server_get_type ( )
+lasso_error_t lasso_server_load_affiliation ( LassoServer* server, const gchar* filename )
+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 )
+LassoServer* lasso_server_new ( const gchar* metadata, const gchar* private_key, const gchar* private_key_password, const gchar* certificate )
+LassoServer* lasso_server_new_from_buffers ( const gchar* metadata, const gchar* private_key_content, const gchar* private_key_password, const gchar* certificate_content )
+LassoServer* lasso_server_new_from_dump ( const gchar* dump )
+lasso_error_t lasso_server_saml2_assertion_setup_signature ( LassoServer* server, LassoSaml2Assertion* saml2_assertion )
+lasso_error_t lasso_server_set_encryption_private_key ( LassoServer* server, const gchar* filename_or_buffer )
+lasso_error_t lasso_server_set_encryption_private_key_with_password ( LassoServer* server, const gchar* filename_or_buffer, const gchar* password )
+lasso_error_t lasso_session_add_assertion ( LassoSession* session, const char* providerID, LassoNode* assertion )
+None lasso_session_destroy ( LassoSession* session )
+gchar* lasso_session_dump ( LassoSession* session )
+LassoNode* lasso_session_get_assertion ( LassoSession* session, const gchar* providerID )
+GList* lasso_session_get_assertions ( LassoSession* session, const char* provider_id )
+gchar* lasso_session_get_provider_index ( LassoSession* session, gint index )
+GType lasso_session_get_type ( )
+gboolean lasso_session_is_empty ( LassoSession* session )
+LassoSession* lasso_session_new ( )
+LassoSession* lasso_session_new_from_dump ( const gchar* dump )
+lasso_error_t lasso_session_remove_assertion ( LassoSession* session, const gchar* providerID )
+None lasso_set_flag ( char* flag )
+lasso_error_t lasso_shutdown ( )
+GType lasso_soap_body_get_type ( )
+LassoSoapBody* lasso_soap_body_new ( )
+LassoSoapBody* lasso_soap_body_new_from_message ( const gchar* message )
+GType lasso_soap_detail_get_type ( )
+LassoSoapDetail* lasso_soap_detail_new ( )
+LassoSoapDetail* lasso_soap_detail_new_from_message ( const gchar* message )
+GType lasso_soap_envelope_get_type ( )
+LassoSoapEnvelope* lasso_soap_envelope_new ( LassoSoapBody* body )
+LassoSoapEnvelope* lasso_soap_envelope_new_from_message ( const gchar* message )
+GType lasso_soap_fault_get_type ( )
+LassoSoapFault* lasso_soap_fault_new ( )
+LassoSoapFault* lasso_soap_fault_new_from_message ( const gchar* message )
+LassoSoapFault* lasso_soap_fault_new_full ( const char* faultcode, const char* faultstring )
+GType lasso_soap_header_get_type ( )
+LassoSoapHeader* lasso_soap_header_new ( )
+LassoSoapHeader* lasso_soap_header_new_from_message ( const gchar* message )
+const char* lasso_strerror ( int error_code )
diff --git a/bindings/php5/php_code.py b/bindings/php5/php_code.py
index 0eab9c19..091ae982 100644
--- a/bindings/php5/php_code.py
+++ b/bindings/php5/php_code.py
@@ -136,6 +136,7 @@ function lassoRegisterIdWsf2DstService($prefix, $href) {
def generate_constructors(self, klass):
method_prefix = format_as_underscored(klass.name) + '_'
for m in self.binding_data.functions:
+ name = m.rename or m.name
if m.name == method_prefix + 'new':
php_args = []
c_args = []
@@ -163,18 +164,36 @@ function lassoRegisterIdWsf2DstService($prefix, $href) {
print >> self.fd, ' }'
print >> self.fd, ''
- if m.name == method_prefix + 'new_from_dump':
- if len(m.args) == 1:
- print >> self.fd, ' public static function newFromDump($dump) {'
- print >> self.fd, ' return cptrToPhp(%s($dump));' % m.name
+ elif name.startswith(method_prefix) and m.args \
+ and clean_type(unconstify(m.args[0][0])) != klass.name:
+ if m.rename:
+ php_name = m.rename
else:
- print >> self.fd, ' public static function newFromDump($server, $dump) {'
- print >> self.fd, ' return cptrToPhp(%s($server->_cptr, $dump));' % m.name
- # XXX: Else throw an exception
- print >> self.fd, ' }'
- print >> self.fd, ''
- elif m.name == method_prefix + 'new_full':
- pass
+ mname = m.name
+ mname = mname[len(method_prefix):]
+ if 'new' in mname and not mname.startswith('new'):
+ continue
+ php_name = format_underscore_as_camelcase(mname)
+ php_args = []
+ c_args = []
+ for arg in m.args:
+ arg_type, arg_name, arg_options = arg
+ if arg_options.get('optional'):
+ php_args.append('$%s = null' % arg_name)
+ else:
+ php_args.append('$%s' % arg_name)
+
+ if self.is_object(arg_type):
+ c_args.append('$%s->_cptr' % arg_name)
+ else:
+ c_args.append('$%s' % arg_name)
+ php_args = ', '.join(php_args)
+ c_args = ', '.join(c_args)
+ print >>self.fd, ' public static function %s(%s) {' % (php_name, php_args)
+ print >>self.fd, ' return cptrToPhp(%s(%s));' % (m.name, c_args)
+ print >>self.fd, ' }'
+ print >>self.fd, ''
+
def generate_getter(self, c, m):
@@ -312,12 +331,14 @@ function lassoRegisterIdWsf2DstService($prefix, $href) {
php_args.append('%s = null' % arg_name)
else:
php_args.append(arg_name)
- if arg_type in ('char*', 'const char*', 'gchar*', 'const gchar*') or \
- arg_type in ['int', 'gint', 'gboolean', 'const gboolean'] or \
- arg_type in self.binding_data.enums:
+ if is_xml_node(arg) or is_boolean(arg) or is_cstring(arg) or \
+ is_int(arg, self.binding_data) or is_glist(arg) or \
+ is_hashtable(arg) or is_time_t_pointer(arg):
c_args.append(arg_name)
+ elif is_object(arg):
+ c_args.append('%s->_cptr' % arg_name)
else:
- c_args.append('%s._cptr' % arg_name)
+ raise Exception('Does not handle argument of type: %s' % ((m, arg),))
if is_out(arg):
php_args.pop()
php_args.append(arg_name)
diff --git a/configure.ac b/configure.ac
index c4e49bed..6bfa4ead 100644
--- a/configure.ac
+++ b/configure.ac
@@ -15,7 +15,7 @@ dnl - Second number is the number of supported API versions where API version >
dnl first number.
dnl - Third number is the current API version implementation version number.
dnl See libtool explanations about current, age and release, later in this file.
-AC_INIT([lasso], 2.3.6, lasso-devel@lists.labs.libre-entreprise.org)
+AC_INIT([lasso], 2.4.0, lasso-devel@lists.labs.libre-entreprise.org)
dnl Check if autoconf ver > 2.53
AC_PREREQ(2.53)
AC_CONFIG_MACRO_DIR([m4])
@@ -184,7 +184,7 @@ dnl - interfaces removed -> AGE = 0
# m = a
# r = r
current=`expr $VERSION_MAJOR + $VERSION_MINOR`
-LASSO_VERSION_INFO="12:4:9"
+LASSO_VERSION_INFO="13:0:10"
AC_SUBST(LASSO_VERSION_INFO)
dnl Compute the minimal supported ABI version for Win32 scripts and resources files.
diff --git a/lasso/key.c b/lasso/key.c
index b75352b5..2f6dcecc 100644
--- a/lasso/key.c
+++ b/lasso/key.c
@@ -24,6 +24,7 @@
#include "key.h"
#include "keyprivate.h"
#include "xml/private.h"
+#include "xmlsec/xmltree.h"
/*****************************************************************************/
/* private methods */
@@ -172,7 +173,7 @@ lasso_key_new_for_signature_from_file(char *filename_or_buffer,
* Return value:(transfer full): a newly allocated #LassoKey object
*/
LassoKey*
-lasso_key_new_for_signature_from_memory(void *buffer,
+lasso_key_new_for_signature_from_memory(const void *buffer,
size_t size,
char *password,
LassoSignatureMethod signature_method,
@@ -221,6 +222,149 @@ lasso_key_new_for_signature_from_base64_string(char *base64_string,
return key;
}
+static xmlNode *
+find_xmlnode_with_saml2_id(xmlNode *xmlnode, const char *id)
+{
+ xmlNode *found = NULL;
+ xmlNode *t;
+
+ if (! xmlnode)
+ return NULL;
+
+ if (xmlHasProp(xmlnode, BAD_CAST "ID")) {
+ xmlChar *value;
+
+ value = xmlGetProp(xmlnode, BAD_CAST "ID");
+ if (lasso_strisequal((char*)value, id)) {
+ found = xmlnode;
+ }
+ xmlFree(value);
+ }
+ if (found) {
+ return found;
+ }
+ t = xmlSecGetNextElementNode(xmlnode->children);
+ while (t) {
+ found = find_xmlnode_with_saml2_id(t, id);
+ if (found) {
+ return found;
+ }
+ t = xmlSecGetNextElementNode(t->next);
+ }
+ return NULL;
+}
+
+/**
+ * lasso_key_saml2_xml_verify:
+ * @key: a #LassoKey object
+ * @id: the value of the ID attribute of signed node
+ * @document: the document containing the signed node
+ *
+ * Verify the first signature node child of the node with the given id. It follows from the profile
+ * of XMLDsig used by the SAML 2.0 specification.
+ *
+ * Return value: 0 if the signature validate, an error code otherwise.
+ */
+lasso_error_t
+lasso_key_saml2_xml_verify(LassoKey *key, char *id, xmlNode *document)
+{
+ xmlNode *signed_node;
+ LassoSignatureContext signature_context;
+
+
+ signed_node = find_xmlnode_with_saml2_id(document, id);
+ if (! signed_node) {
+ return LASSO_DS_ERROR_INVALID_REFERENCE_FOR_SAML;
+ }
+ signature_context = lasso_key_get_signature_context(key);
+ return lasso_verify_signature(signed_node, signed_node->doc, "ID", NULL,
+ signature_context.signature_key, NO_OPTION, NULL);
+}
+
+/**
+ * lasso_key_saml2_xml_sign:
+ * @key: a #LassoKey object
+ * @id: the value of the ID attribute of signed node
+ * @document: the document containing the signed node
+ *
+ * Sign the first signature node child of the node with the given id. It no signature node is found
+ * a new one is added at the end of the children list of the signed node.
+ *
+ * The passed document node is modified in-place.
+ *
+ * Return value: The modified xmlNode object, or NULL if the signature failed.
+ */
+xmlNode*
+lasso_key_saml2_xml_sign(LassoKey *key, const char *id, xmlNode *document)
+{
+ xmlNode *signed_node;
+ LassoSignatureContext signature_context;
+
+ signed_node = find_xmlnode_with_saml2_id(document, id);
+ if (! signed_node) {
+ return NULL;
+ }
+ signature_context = lasso_key_get_signature_context(key);
+ lasso_xmlnode_add_saml2_signature_template(signed_node, signature_context, id);
+ if (lasso_sign_node(signed_node, signature_context,
+ "ID", id) == 0) {
+ return document;
+ } else {
+ return NULL;
+ }
+}
+
+/**
+ * lasso_key_query_verify:
+ * key: a #LassoKey object
+ * query: a raw HTTP query string
+ *
+ * Check if this query string contains a proper SAML2 signature for this key.
+ *
+ * Return value: 0 if a valid signature was found, an error code otherwise.
+ */
+lasso_error_t
+lasso_key_query_verify(LassoKey *key, const char *query)
+{
+ LassoSignatureContext signature_context;
+ lasso_bad_param(KEY, key);
+
+ signature_context = lasso_key_get_signature_context(key);
+ if (! lasso_validate_signature_context(signature_context))
+ return LASSO_ERROR_UNDEFINED;
+ return lasso_saml2_query_verify_signature(query, signature_context.signature_key);
+}
+
+/**
+ * lasso_key_query_verify:
+ * key: a #LassoKey object
+ * query: a raw HTTP query string
+ *
+ * Sign the given query string using the given key.
+ *
+ * Return value: the signed query string.
+ */
+char*
+lasso_key_query_sign(LassoKey *key, const char *query)
+{
+ LassoSignatureContext signature_context;
+
+ if (! LASSO_IS_KEY(key))
+ return NULL;
+ signature_context = lasso_key_get_signature_context(key);
+ if (! lasso_validate_signature_context(signature_context))
+ return NULL;
+ return lasso_query_sign((char*)query, signature_context);
+}
+
+/**
+ * lasso_key_get_signature_context:
+ * @key: a #LassoKey object
+ *
+ * Private method to extract the signature context embedded in a LassoKey object.
+ *
+ * Return value: a #LassoSignatureContext structure value.
+ */
LassoSignatureContext
lasso_key_get_signature_context(LassoKey *key) {
if (key->private_data && key->private_data->type == LASSO_KEY_TYPE_FOR_SIGNATURE) {
@@ -228,6 +372,13 @@ lasso_key_get_signature_context(LassoKey *key) {
}
return LASSO_SIGNATURE_CONTEXT_NONE;
}
+
+/**
+ * lasso_key_get_key_type:
+ * @key: a #LassoKey object
+ *
+ * Return the type of key, i.e. which operation it supports.
+ */
LassoKeyType
lasso_key_get_key_type(LassoKey *key) {
lasso_return_val_if_fail(LASSO_IS_KEY(key),
diff --git a/lasso/key.h b/lasso/key.h
index a225b0b4..ca6241ad 100644
--- a/lasso/key.h
+++ b/lasso/key.h
@@ -65,7 +65,7 @@ struct _LassoKeyClass {
LASSO_EXPORT GType lasso_key_get_type();
-LASSO_EXPORT LassoKey* lasso_key_new_for_signature_from_memory(void *buffer, size_t size,
+LASSO_EXPORT LassoKey* lasso_key_new_for_signature_from_memory(const void *buffer, size_t size,
char *password, LassoSignatureMethod signature_method, char *certificate);
LASSO_EXPORT LassoKey* lasso_key_new_for_signature_from_base64_string(char *base64_string,
@@ -74,6 +74,14 @@ LASSO_EXPORT LassoKey* lasso_key_new_for_signature_from_base64_string(char *base
LASSO_EXPORT LassoKey* lasso_key_new_for_signature_from_file(char *filename_or_buffer,
char *password, LassoSignatureMethod signature_method, char *certificate);
+LASSO_EXPORT lasso_error_t lasso_key_query_verify(LassoKey* key, const char *query);
+
+LASSO_EXPORT char* lasso_key_query_sign(LassoKey *key, const char *query);
+
+LASSO_EXPORT lasso_error_t lasso_key_saml2_xml_verify(LassoKey *key, char *id, xmlNode *document);
+
+LASSO_EXPORT xmlNode *lasso_key_saml2_xml_sign(LassoKey *key, const char *id, xmlNode *document);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/lasso/saml-2.0/provider.c b/lasso/saml-2.0/provider.c
index baccb174..1a6ba908 100644
--- a/lasso/saml-2.0/provider.c
+++ b/lasso/saml-2.0/provider.c
@@ -534,7 +534,24 @@ lasso_saml20_provider_load_metadata(LassoProvider *provider, xmlNode *root_node)
return TRUE;
}
-static gboolean has_synchronous_methods(LassoProvider *provider, LassoMdProtocolType protocol_type)
+enum {
+ FOR_RESPONSE = 1
+};
+
+/**
+ * has_synchronous_methods:
+ * @provider: a #LassoProvider object
+ * @protocol_type: a #LassoMdProtocolType value
+ * @for_response: a boolean stating whether we need the answer for receiving a response.
+ *
+ * Return whether the given @provider support a certain protocol with a synchronous binding.
+ * If we need to receive a response for this protocol, @for_response must be set to True.
+ *
+ * Return result: TRUE if @provider supports @protocol_type with a synchronous binding, eventually
+ * for receiving responses, FALSE otherwise.
+ */
+static gboolean has_synchronous_methods(LassoProvider *provider, LassoMdProtocolType protocol_type,
+ gboolean for_response)
{
GList *t = NULL;
const char *kind = NULL;
@@ -547,6 +564,11 @@ static gboolean has_synchronous_methods(LassoProvider *provider, LassoMdProtocol
return LASSO_HTTP_METHOD_NONE;
}
+ if (for_response && protocol_type == LASSO_MD_PROTOCOL_TYPE_SINGLE_SIGN_ON)
+ {
+ kind = LASSO_SAML2_METADATA_ELEMENT_ASSERTION_CONSUMER_SERVICE;
+ }
+
lasso_foreach(t, provider->private_data->endpoints) {
EndpointType *endpoint_type = (EndpointType*)t->data;
if (endpoint_type && lasso_strisequal(endpoint_type->kind, kind)) {
@@ -581,7 +603,7 @@ lasso_saml20_provider_get_first_http_method(LassoProvider *provider,
/* a synchronous method needs another synchronous method for receiving the
* response on the local side */
if (http_method_kind(result) == SYNCHRONOUS
- && ! has_synchronous_methods(provider, protocol_type))
+ && ! has_synchronous_methods(provider, protocol_type, FOR_RESPONSE))
continue;
if (result != LASSO_HTTP_METHOD_NONE)
break;
diff --git a/lasso/saml-2.0/saml2_helper.c b/lasso/saml-2.0/saml2_helper.c
index 7d160e56..c49cbc3b 100644
--- a/lasso/saml-2.0/saml2_helper.c
+++ b/lasso/saml-2.0/saml2_helper.c
@@ -721,10 +721,18 @@ lasso_saml2_assertion_add_attribute_with_node(LassoSaml2Assertion *assertion, co
lasso_assign_string(attribute->NameFormat, LASSO_SAML2_ATTRIBUTE_NAME_FORMAT_URI);
lasso_list_add_new_gobject(attribute->AttributeValue, attribute_value);
- attribute_statement = LASSO_SAML2_ATTRIBUTE_STATEMENT(lasso_saml2_attribute_statement_new());
+ if (assertion->AttributeStatement
+ && LASSO_IS_SAML2_ATTRIBUTE_STATEMENT(
+ assertion->AttributeStatement->data)) {
+ attribute_statement =
+ (LassoSaml2AttributeStatement*)
+ assertion->AttributeStatement->data;
+ } else {
+ attribute_statement = LASSO_SAML2_ATTRIBUTE_STATEMENT(lasso_saml2_attribute_statement_new());
+ lasso_list_add_new_gobject(assertion->AttributeStatement, attribute_statement);
+ }
lasso_list_add_new_gobject(attribute_statement->Attribute, attribute);
- lasso_list_add_new_gobject(assertion->AttributeStatement, attribute_statement);
cleanup:
return rc;
}
diff --git a/lasso/xml/private.h b/lasso/xml/private.h
index 009596d8..629d6ca5 100644
--- a/lasso/xml/private.h
+++ b/lasso/xml/private.h
@@ -275,7 +275,7 @@ lasso_create_hmac_key(const xmlSecByte * buf, xmlSecSize size);
lasso_error_t
lasso_get_hmac_key(const xmlSecKey *key, void **buffer, size_t *size);
-LassoSignatureContext lasso_make_signature_context_from_buffer(const char *buffer, size_t length,
+LassoSignatureContext lasso_make_signature_context_from_buffer(const void *buffer, size_t length,
const char *password, LassoSignatureMethod signature_method,
const char *certificate);
@@ -299,6 +299,12 @@ void set_xsi_type(xmlNode *node,
const xmlChar *type_ns_prefix,
const xmlChar *type_ns_href,
const xmlChar *type_name);
+
+void lasso_xmlnode_add_saml2_signature_template(xmlNode *node, LassoSignatureContext context,
+ const char *id);
+
+gchar* lasso_xmlnode_build_deflated_query(xmlNode *xmlnode);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/lasso/xml/tools.c b/lasso/xml/tools.c
index b31e7187..36c76a05 100644
--- a/lasso/xml/tools.c
+++ b/lasso/xml/tools.c
@@ -1012,6 +1012,17 @@ lasso_node_build_deflated_query(LassoNode *node)
{
/* actually deflated and b64'ed and url-escaped */
xmlNode *xmlnode;
+ gchar *result;
+
+ xmlnode = lasso_node_get_xmlNode(node, FALSE);
+ result = lasso_xmlnode_build_deflated_query(xmlnode);
+ xmlFreeNode(node);
+ return result;
+}
+
+gchar*
+lasso_xmlnode_build_deflated_query(xmlNode *xmlnode)
+{
xmlOutputBufferPtr buf;
xmlCharEncodingHandlerPtr handler = NULL;
xmlChar *buffer;
@@ -1021,17 +1032,12 @@ lasso_node_build_deflated_query(LassoNode *node)
int rc = 0;
z_stream stream;
- xmlnode = lasso_node_get_xmlNode(node, FALSE);
-
handler = xmlFindCharEncodingHandler("utf-8");
buf = xmlAllocOutputBuffer(handler);
xmlNodeDumpOutput(buf, NULL, xmlnode, 0, 0, "utf-8");
xmlOutputBufferFlush(buf);
buffer = buf->conv ? buf->conv->content : buf->buffer->content;
- xmlFreeNode(xmlnode);
- xmlnode = NULL;
-
in_len = strlen((char*)buffer);
ret = g_malloc(in_len * 2);
/* deflating should never increase the required size but we are
@@ -1079,6 +1085,35 @@ lasso_node_build_deflated_query(LassoNode *node)
return rret;
}
+void
+lasso_get_query_string_param_value(const char *qs, const char *param_key, char **value,
+ size_t *length)
+{
+ size_t key_size = strlen(param_key);
+
+ *value = NULL;
+ *length = 0;
+ while (qs) {
+ if (strncmp(qs, param_key, key_size) == 0 &&
+ qs[key_size] == '=')
+ {
+ char *end;
+ *value = qs[key_size+1];
+ end = strchr(*value, '&');
+ if (! end) {
+ end = strchr(*value, ';');
+ }
+ if (end) {
+ *length = (ptrdiff_t)(end - *value)
+ } else {
+ *length = strlen(*value);
+ }
+ return;
+ }
+ qs = strchr(qs, '&');
+ }
+}
+
gboolean
lasso_node_init_from_deflated_query_part(LassoNode *node, char *deflate_string)
{
@@ -2367,7 +2402,7 @@ lasso_get_hmac_key(const xmlSecKey *key, void **buffer, size_t *size)
* successful, LASSO_SIGNATURE_CONTEXT_NONE otherwise. The caller must free the #xmlSecKey.
*/
LassoSignatureContext
-lasso_make_signature_context_from_buffer(const char *buffer, size_t length, const char *password,
+lasso_make_signature_context_from_buffer(const void *buffer, size_t length, const char *password,
LassoSignatureMethod signature_method, const char *certificate) {
LassoSignatureContext context = LASSO_SIGNATURE_CONTEXT_NONE;
@@ -2466,3 +2501,76 @@ set_xsi_type(xmlNode *node,
type_ns_href,
type_name);
}
+
+void
+lasso_xmlnode_add_saml2_signature_template(xmlNode *node, LassoSignatureContext context,
+ const char *id) {
+ xmlSecTransformId transform_id;
+ xmlNode *existing_signature = NULL, *signature = NULL, *reference, *key_info;
+ char *uri;
+
+ if (! lasso_validate_signature_context(context) || ! node)
+ return;
+
+ switch (context.signature_method) {
+ case LASSO_SIGNATURE_METHOD_RSA_SHA1:
+ transform_id = xmlSecTransformRsaSha1Id;
+ break;
+ case LASSO_SIGNATURE_METHOD_DSA_SHA1:
+ transform_id = xmlSecTransformDsaSha1Id;
+ break;
+ case LASSO_SIGNATURE_METHOD_HMAC_SHA1:
+ transform_id = xmlSecTransformHmacSha1Id;
+ break;
+ default:
+ g_assert_not_reached();
+ }
+ existing_signature = xmlSecFindChild(node, xmlSecNodeSignature, xmlSecDSigNs);
+ signature = xmlSecTmplSignatureCreate(NULL,
+ xmlSecTransformExclC14NId,
+ transform_id, NULL);
+ if (existing_signature) {
+ xmlSecReplaceNode(existing_signature, signature);
+ } else {
+ xmlAddChild(node, signature);
+ }
+
+ /* Normally the signature is son of the signed node, which holds an Id attribute, but in
+ * other cases, set snippet->offset to 0 and use xmlSecTmpSignatureAddReference from another
+ * node get_xmlNode virtual method to add the needed reference.
+ */
+ if (id) {
+ uri = g_strdup_printf("#%s", id);
+ reference = xmlSecTmplSignatureAddReference(signature,
+ xmlSecTransformSha1Id, NULL, (xmlChar*)uri, NULL);
+ lasso_release(uri);
+ }
+
+ /* add enveloped transform */
+ xmlSecTmplReferenceAddTransform(reference, xmlSecTransformEnvelopedId);
+ /* add exclusive C14N transform */
+ xmlSecTmplReferenceAddTransform(reference, xmlSecTransformExclC14NId);
+ /* if the key is the public part of an asymetric key, add its certificate or the key itself */
+ switch (context.signature_method) {
+ case LASSO_SIGNATURE_METHOD_RSA_SHA1:
+ case LASSO_SIGNATURE_METHOD_DSA_SHA1:
+ /* asymetric cryptography methods */
+ key_info = xmlSecTmplSignatureEnsureKeyInfo(signature, NULL);
+ if (xmlSecKeyGetData(context.signature_key, xmlSecOpenSSLKeyDataX509Id)) {
+ /* add <dsig:KeyInfo/> */
+ xmlSecTmplKeyInfoAddX509Data(key_info);
+ } else {
+ xmlSecTmplKeyInfoAddKeyValue(key_info);
+ }
+ break;
+ case LASSO_SIGNATURE_METHOD_HMAC_SHA1:
+ if (context.signature_key->name) {
+ key_info = xmlSecTmplSignatureEnsureKeyInfo(signature, NULL);
+ xmlSecTmplKeyInfoAddKeyName(key_info, NULL);
+
+ }
+ break;
+ default:
+ g_assert_not_reached();
+ }
+}
diff --git a/lasso/xml/xml.c b/lasso/xml/xml.c
index fc7100e0..f3ed6e3a 100644
--- a/lasso/xml/xml.c
+++ b/lasso/xml/xml.c
@@ -2810,11 +2810,7 @@ lasso_node_add_signature_template(LassoNode *node, xmlNode *xmlnode,
LassoNodeClass *klass = NULL;
LassoNodeClassData *node_data = NULL;
LassoSignatureContext context;
- xmlSecTransformId transform_id;
- xmlNode *signature = NULL, *reference, *key_info;
- char *uri;
- char *id;
-
+ char *id = NULL;
node_data = lasso_legacy_get_signature_node_data(node, &klass);
if (! node_data)
@@ -2828,66 +2824,11 @@ lasso_node_add_signature_template(LassoNode *node, xmlNode *xmlnode,
if (lasso_legacy_extract_and_copy_signature_parameters(node, node_data))
context = lasso_node_get_signature(node);
- if (! lasso_validate_signature_context(context))
- return;
-
- switch (context.signature_method) {
- case LASSO_SIGNATURE_METHOD_RSA_SHA1:
- transform_id = xmlSecTransformRsaSha1Id;
- break;
- case LASSO_SIGNATURE_METHOD_DSA_SHA1:
- transform_id = xmlSecTransformDsaSha1Id;
- break;
- case LASSO_SIGNATURE_METHOD_HMAC_SHA1:
- transform_id = xmlSecTransformHmacSha1Id;
- break;
- default:
- g_assert_not_reached();
- }
- signature = xmlSecTmplSignatureCreate(NULL,
- xmlSecTransformExclC14NId,
- transform_id, NULL);
- xmlAddChild(xmlnode, signature);
-
- /* Normally the signature is son of the signed node, which holds an Id attribute, but in
- * other cases, set snippet->offset to 0 and use xmlSecTmpSignatureAddReference from another
- * node get_xmlNode virtual method to add the needed reference.
- */
if (snippet_signature->offset) {
id = SNIPPET_STRUCT_MEMBER(char *, node, G_TYPE_FROM_CLASS(klass), snippet_signature);
- uri = g_strdup_printf("#%s", id);
- reference = xmlSecTmplSignatureAddReference(signature,
- xmlSecTransformSha1Id, NULL, (xmlChar*)uri, NULL);
- lasso_release(uri);
- }
-
- /* add enveloped transform */
- xmlSecTmplReferenceAddTransform(reference, xmlSecTransformEnvelopedId);
- /* add exclusive C14N transform */
- xmlSecTmplReferenceAddTransform(reference, xmlSecTransformExclC14NId);
- /* if the key is the public part of a symetric key, add its certificate or the key itself */
- switch (context.signature_method) {
- case LASSO_SIGNATURE_METHOD_RSA_SHA1:
- case LASSO_SIGNATURE_METHOD_DSA_SHA1:
- /* symetric cryptography methods */
- key_info = xmlSecTmplSignatureEnsureKeyInfo(signature, NULL);
- if (xmlSecKeyGetData(context.signature_key, xmlSecOpenSSLKeyDataX509Id)) {
- /* add <dsig:KeyInfo/> */
- xmlSecTmplKeyInfoAddX509Data(key_info);
- } else {
- xmlSecTmplKeyInfoAddKeyValue(key_info);
- }
- break;
- case LASSO_SIGNATURE_METHOD_HMAC_SHA1:
- if (context.signature_key->name) {
- key_info = xmlSecTmplSignatureEnsureKeyInfo(signature, NULL);
- xmlSecTmplKeyInfoAddKeyName(key_info, NULL);
-
- }
- break;
- default:
- g_assert_not_reached();
}
+
+ lasso_xmlnode_add_saml2_signature_template(xmlnode, context, id);
}
static struct XmlSnippet*
@@ -3475,3 +3416,81 @@ lasso_node_get_namespace(LassoNode *node)
return (const char*)klass->node_data->ns->href;
return NULL;
}
+
+
+/**
+ * lasso_node_export_to_saml2_query:
+ * @node: the #LassoNode object to pass as a query
+ * @param_name: the key value for the query string parameter
+ * @url:(allow-none): an optional URL to prepend to the query string
+ * @key:(allow-none): a #LassoKey object
+ *
+ * Export a node as signed query string, the node must support serialization as a query.
+ *
+ * Return value: an HTTP URL or query string if successful, NULL otherwise.
+ */
+char*
+lasso_node_export_to_saml2_query(LassoNode *node, const char *param_name, const char *url,
+ LassoKey *key)
+{
+ char *value = NULL, *query = NULL, *signed_query = NULL, *result = NULL;
+ xmlChar *encoded_param = NULL;
+
+ value = lasso_node_build_deflated_query(xmlnode);
+ if (! value)
+ goto cleanup;
+ encoded_param = xmlURIEscapeStr(BAD_CAST param_name, NULL);
+ if (! encoded_param)
+ goto cleanup;
+ query = g_strdup_printf("%s=%s", encoded_param, value);
+ if (! query)
+ goto cleanup;
+ if (LASSO_IS_KEY(key)) {
+ signed_query = lasso_key_query_sign(key, query);
+ } else {
+ lasso_transfer_string(signed_query, query);
+ }
+ if (! signed_query)
+ goto cleanup;
+ if (url) {
+ result = lasso_concat_url_query(url, signed_query);
+ } else {
+ lasso_transfer_string(result, signed_query);
+ }
+
+cleanup:
+ lasso_release_string(value);
+ lasso_release_xml_string(encoded_param);
+ lasso_release_string(query);
+ lasso_release_string(signed_query);
+ return result;
+}
+
+/**
+ * lasso_node_new_from_saml2_query:
+ * @url_or_qs: an URL containing a query string or a query string only
+ * @param_name: the key value for the query string parameter to extract as a #LassoNode.
+ * @key:(allow-none): a #LassoKey object
+ *
+ * Verify the signature on a SAML-2 encoded query string and return the encoded node.
+ *
+ * Return value: a newly build #LassoNode if successful, NULL otherwise.
+ */
+LassoNode*
+lasso_node_new_from_saml2_query(const char *url_or_qs, const char *param_name, LassoKey *key)
+{
+ char *needle = NULL;
+ LassoNode *result = NULL;
+
+ if (! url_or_qs || ! param_name)
+ return NULL;
+ needle = strchr(url_or_qs, '?');
+ if (needle) {
+ url_or_qs = (const char*)(needle+1);
+ }
+ if (key) {
+ goto_cleanup_if_fail(lasso_key_query_verify(key, url_or_qs) == 0);
+ }
+cleanup:
+ return result;
+}
diff --git a/lasso/xml/xml.h b/lasso/xml/xml.h
index 5407ed5a..5b2ac4c8 100644
--- a/lasso/xml/xml.h
+++ b/lasso/xml/xml.h
@@ -194,6 +194,11 @@ LASSO_EXPORT gchar* lasso_get_prefix_for_idwsf2_dst_service_href(const gchar *hr
LASSO_EXPORT char* lasso_node_debug(LassoNode *node, int level);
+typedef struct _LassoKey LassoKey;
+
+LASSO_EXPORT char* lasso_node_export_to_saml2_query(LassoNode *node, const char *param_name, const
+ char *url, LassoKey *key);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/tests/basic_tests.c b/tests/basic_tests.c
index 4e3f77b1..78c70d7b 100644
--- a/tests/basic_tests.c
+++ b/tests/basic_tests.c
@@ -2057,13 +2057,11 @@ START_TEST(test15_ds_key_info)
list = (GList){ .data = ds_key_info, .next = NULL, .prev = NULL };
lasso_saml2_key_info_confirmation_data_type_set_key_info(kicdt, &list);
dump = lasso_node_debug((LassoNode*)sc, 10);
- printf("1 %s\n", dump);
lasso_release_gobject(sc);
lasso_release_gobject(ds_key_info);
node = lasso_node_new_from_dump(dump);
lasso_release_string(dump);
dump = lasso_node_debug(node, 10);
- printf("2 %s\n", dump);
lasso_release_string(dump);
}
END_TEST
diff --git a/tests/random_tests.c b/tests/random_tests.c
index b70c6082..df3dde34 100644
--- a/tests/random_tests.c
+++ b/tests/random_tests.c
@@ -33,6 +33,7 @@
#include "../lasso/xml/saml_name_identifier.h"
#include "../lasso/xml/samlp_response.h"
#include "../lasso/utils.h"
+#include "../lasso/key.h"
Suite* random_suite();
@@ -328,6 +329,105 @@ LlTxKnCrWAXftSm1rNtewTsF\n\
}
END_TEST
+
+START_TEST(test08_lasso_key)
+{
+ /* normal query as produces by Lasso */
+ const char query1[] = "SAMLRequest=fZHNasMwEIRfxeieWrYTtQjb4DgJBNqSNqWHXopw1kQgS6523Z%2B3r%2BxQSKDkOppvd2aVo%2BpML6uBjvYZPgZAir47Y1FODwUbvJVOoUZpVQcoqZH76uFepjdc9t6Ra5xhZ8h1QiGCJ%2B0si7argr0vxTLJ1guRilpU8%2FWtyKpNnaXrukoF32SCRa%2FgMfgLFvAAIQ6wtUjKUpB4wmc8nSX8hXOZ3Ml0%2FsaijfMNTIUK1iqDMGK7sFl%2Fwp9S5mNWOY3z5ZGol3GM%2FSLugNRBkcrjc0N%2ButJj6LNd7ZzRzc%2B4plN0ve6o6MOsnayyH6sggSUW7XfjsKdBGd1q8AX7JwOLKmPcV%2B1BUUhOfgAWl6dkl19W%2FgI%3D&RelayState=fake%5B%5D&SigAlg=http%3A%2F%2Fwww.w3.org%2F2000%2F09%2Fxmldsig%23rsa-sha1&Signature=wDxMSEPKhK%2FuU06cmL50oVx%2B7eP5%2FQirShQE%2BLv9pT3CrVwb6WBV1Tp9XS2VVJ2odLHogdA%2FE1XDW7BIRKYgkN8bXVlC2GybSYBhyn8bwAuyHs%2BnMW48LF%2FE5vFiZxbw8tMWUAktdvDuaXoZLhubX7UgV%2B%2BdRyjhckolpXTC9xuJdoHJUDF0vzzNm8xZs6LR7tjWUoz5CcjMJA3LVfWmpE5UjCyRmGbi9knGWHdY75CFtArD%2BNSkGeNx9xySrUlik6e57Zlodv4V9WBdeopAWskO58BA27GqTmnSLooeo%2FrtLxc1NZeuau11YxNzwl%2FvN8%2FQ5IsR3Xic8X1TaCCtwg%3D%3D";
+ /* SAMLRequest field was moved in the middle, Signature to the beginning and all & were
+ * changed to ; */
+ const char query2[] = "Signature=wDxMSEPKhK%2FuU06cmL50oVx%2B7eP5%2FQirShQE%2BLv9pT3CrVwb6WBV1Tp9XS2VVJ2odLHogdA%2FE1XDW7BIRKYgkN8bXVlC2GybSYBhyn8bwAuyHs%2BnMW48LF%2FE5vFiZxbw8tMWUAktdvDuaXoZLhubX7UgV%2B%2BdRyjhckolpXTC9xuJdoHJUDF0vzzNm8xZs6LR7tjWUoz5CcjMJA3LVfWmpE5UjCyRmGbi9knGWHdY75CFtArD%2BNSkGeNx9xySrUlik6e57Zlodv4V9WBdeopAWskO58BA27GqTmnSLooeo%2FrtLxc1NZeuau11YxNzwl%2FvN8%2FQ5IsR3Xic8X1TaCCtwg%3D%3D;RelayState=fake%5B%5D;SAMLRequest=fZHNasMwEIRfxeieWrYTtQjb4DgJBNqSNqWHXopw1kQgS6523Z%2B3r%2BxQSKDkOppvd2aVo%2BpML6uBjvYZPgZAir47Y1FODwUbvJVOoUZpVQcoqZH76uFepjdc9t6Ra5xhZ8h1QiGCJ%2B0si7argr0vxTLJ1guRilpU8%2FWtyKpNnaXrukoF32SCRa%2FgMfgLFvAAIQ6wtUjKUpB4wmc8nSX8hXOZ3Ml0%2FsaijfMNTIUK1iqDMGK7sFl%2Fwp9S5mNWOY3z5ZGol3GM%2FSLugNRBkcrjc0N%2ButJj6LNd7ZzRzc%2B4plN0ve6o6MOsnayyH6sggSUW7XfjsKdBGd1q8AX7JwOLKmPcV%2B1BUUhOfgAWl6dkl19W%2FgI%3D;SigAlg=http%3A%2F%2Fwww.w3.org%2F2000%2F09%2Fxmldsig%23rsa-sha1";
+ const char query3[] = "RelayState=fake%5B%5D&SAMLRequest=fZHNasMwEIRfxeieWrYTtQjb4DgJBNqSNqWHXopw1kQgS6523Z%2B3r%2BxQSKDkOppvd2aVo%2BpML6uBjvYZPgZAir47Y1FODwUbvJVOoUZpVQcoqZH76uFepjdc9t6Ra5xhZ8h1QiGCJ%2B0si7argr0vxTLJ1guRilpU8%2FWtyKpNnaXrukoF32SCRa%2FgMfgLFvAAIQ6wtUjKUpB4wmc8nSX8hXOZ3Ml0%2FsaijfMNTIUK1iqDMGK7sFl%2Fwp9S5mNWOY3z5ZGol3GM%2FSLugNRBkcrjc0N%2ButJj6LNd7ZzRzc%2B4plN0ve6o6MOsnayyH6sggSUW7XfjsKdBGd1q8AX7JwOLKmPcV%2B1BUUhOfgAWl6dkl19W%2FgI%3D&SigAlg=http%3A%2F%2Fwww.w3.org%2F2000%2F09%2Fxmldsig%23rsa-sha1&Signature=wDxMSEPKhK%2FuU06cmL50oVx%2B7eP5%2FQirShQE%2BLv9pT3CrVwb6WBV1Tp9XS2VVJ2odLHogdA%2FE1XDW7BIRKYgkN8bXVlC2GybSYBhyn8bwAuyHs%2BnMW48LF%2FE5vFiZxbw8tMWUAktdvDuaXoZLhubX7UgV%2B%2BdRyjhckolpXTC9xuJdoHJUDF0vzzNm8xZs6LR7tjWUoz5CcjMJA3LVfWmpE5UjCyRmGbi9knGWHdY75CFtArD%2BNSkGeNx9xySrUlik6e57Zlodv4V9WBdeopAWskO58BA27GqTmnSLooeo%2FrtLxc1NZeuau11YxNzwl%2FvN8%2FQ5IsR3Xic8X1TacCtwg%3D%3D";
+ /* sp5-saml2 key */
+ const char pkey[] = "-----BEGIN CERTIFICATE-----\n\
+MIIDnjCCAoagAwIBAgIBATANBgkqhkiG9w0BAQUFADBUMQswCQYDVQQGEwJGUjEP\n\
+MA0GA1UECBMGRnJhbmNlMQ4wDAYDVQQHEwVQYXJpczETMBEGA1UEChMKRW50cm91\n\
+dmVydDEPMA0GA1UEAxMGRGFtaWVuMB4XDTA2MTAyNzA5MDc1NFoXDTExMTAyNjA5\n\
+MDc1NFowVDELMAkGA1UEBhMCRlIxDzANBgNVBAgTBkZyYW5jZTEOMAwGA1UEBxMF\n\
+UGFyaXMxEzARBgNVBAoTCkVudHJvdXZlcnQxDzANBgNVBAMTBkRhbWllbjCCASIw\n\
+DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM06Hx6VgHYR9wUf/tZVVTRkVWNq\n\
+h9x+PvHA2qH4OYMuqGs4Af6lU2YsZvnrmRdcFWv0+UkdAgXhReCWAZgtB1pd/W9m\n\
+6qDRldCCyysow6xPPKRz/pOTwRXm/fM0QGPeXzwzj34BXOIOuFu+n764vKn18d+u\n\
+uVAEzk1576pxTp4pQPzJfdNLrLeQ8vyCshoFU+MYJtp1UA+h2JoO0Y8oGvywbUxH\n\
+ioHN5PvnzObfAM4XaDQohmfxM9Uc7Wp4xKAc1nUq5hwBrHpjFMRSz6UCfMoJSGIi\n\
++3xJMkNCjL0XEw5NKVc5jRKkzSkN5j8KTM/k1jPPsDHPRYzbWWhnNtd6JlkCAwEA\n\
+AaN7MHkwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0\n\
+ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFP2WWMDShux3iF74+SoO1xf6qhqaMB8G\n\
+A1UdIwQYMBaAFGjl6TRXbQDHzSlZu+e8VeBaZMB5MA0GCSqGSIb3DQEBBQUAA4IB\n\
+AQAZ/imK7UMognXbs5RfSB8cMW6iNAI+JZqe9XWjvtmLfIIPbHM96o953SiFvrvQ\n\
+BZjGmmPMK3UH29cjzDx1R/RQaYTyMrHyTePLh3BMd5mpJ/9eeJCSxPzE2ECqWRUa\n\
+pkjukecFXqmRItwgTxSIUE9QkpzvuQRb268PwmgroE0mwtiREADnvTFkLkdiEMew\n\
+fiYxZfJJLPBqwlkw/7f1SyzXoPXnz5QbNwDmrHelga6rKSprYKb3pueqaIe8j/AP\n\
+NC1/bzp8cGOcJ88BD5+Ny6qgPVCrMLE5twQumJ12V3SvjGNtzFBvg2c/9S5OmVqR\n\
+LlTxKnCrWAXftSm1rNtewTsF\n\
+-----END CERTIFICATE-----";
+ LassoKey *key = lasso_key_new_for_signature_from_memory(pkey, strlen(pkey), NULL,
+ LASSO_SIGNATURE_METHOD_RSA_SHA1, NULL);
+ LassoKey *key2 = lasso_key_new_for_signature_from_file(
+ TESTSDATADIR "/sp5-saml2/private-key.pem", NULL,
+ LASSO_SIGNATURE_METHOD_RSA_SHA1, NULL);
+ char *message = "<samlp:AuthnRequest xmlns:samlp=\"urn:oasis:names:tc:SAML:2.0:protocol\" xmlns:saml=\"urn:oasis:names:tc:SAML:2.0:assertion\" ID=\"_E3F8E9116EE08F0E2607CF9789649BB4\" Version=\"2.0\" IssueInstant=\"2012-03-09T11:34:48Z\" ForceAuthn=\"false\" IsPassive=\"false\"><saml:Issuer>http://sp5/metadata</saml:Issuer><Signature xmlns=\"http://www.w3.org/2000/09/xmldsig#\">\n\
+<SignedInfo>\n\
+<CanonicalizationMethod Algorithm=\"http://www.w3.org/2001/10/xml-exc-c14n#\"/>\n\
+<SignatureMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#rsa-sha1\"/>\n\
+<Reference URI=\"#_E3F8E9116EE08F0E2607CF9789649BB4\">\n\
+<Transforms>\n\
+<Transform Algorithm=\"http://www.w3.org/2000/09/xmldsig#enveloped-signature\"/>\n\
+<Transform Algorithm=\"http://www.w3.org/2001/10/xml-exc-c14n#\"/>\n\
+</Transforms>\n\
+<DigestMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#sha1\"/>\n\
+<DigestValue>tMncKjklMJaJLbmB7bARmX14Fdg=</DigestValue>\n\
+</Reference>\n\
+</SignedInfo>\n\
+<SignatureValue>VjAHErXE8rz5yQ/t9Ubws11E59PsU/tXPtL6eCMAVLQxV4Bv0dwyYkeHtge1DXDT\n\
+usTy1c17+iuYCVqD3Db51+LMVsHchj0j44fhu/PXNQTmgiT2AuVfH97YhiBWykAs\n\
+LwT8MiE9vNGiHQwsWVjhdzooVmU0M80m0Ij2DFMcYiKzmuMhE4M65qUO4tygQLiL\n\
+YB5oPe0VYKEBJLfaTvuijLBTi4ecx6aU+HptAvuEOcCbcJZtGyv7jr2yuEDSq72S\n\
+0hwOV0CIsQoSf/vL7R9RzTs2bpgYVGqgerhpWsz6dqo7YX0NSj9pMbXZiOyX/YzS\n\
+uP3QSjow05NiPhy8ywKW8A==</SignatureValue>\n\
+<KeyInfo>\n\
+<KeyValue>\n\
+<RSAKeyValue>\n\
+<Modulus>\n\
+zTofHpWAdhH3BR/+1lVVNGRVY2qH3H4+8cDaofg5gy6oazgB/qVTZixm+euZF1wV\n\
+a/T5SR0CBeFF4JYBmC0HWl39b2bqoNGV0ILLKyjDrE88pHP+k5PBFeb98zRAY95f\n\
+PDOPfgFc4g64W76fvri8qfXx3665UATOTXnvqnFOnilA/Ml900ust5Dy/IKyGgVT\n\
+4xgm2nVQD6HYmg7Rjyga/LBtTEeKgc3k++fM5t8AzhdoNCiGZ/Ez1RztanjEoBzW\n\
+dSrmHAGsemMUxFLPpQJ8yglIYiL7fEkyQ0KMvRcTDk0pVzmNEqTNKQ3mPwpMz+TW\n\
+M8+wMc9FjNtZaGc213omWQ==\n\
+</Modulus>\n\
+<Exponent>\n\
+AQAB\n\
+</Exponent>\n\
+</RSAKeyValue>\n\
+</KeyValue>\n\
+</KeyInfo>\n\
+</Signature><samlp:NameIDPolicy Format=\"urn:oasis:names:tc:SAML:2.0:nameid-format:persistent\" AllowCreate=\"true\"/></samlp:AuthnRequest>";
+ xmlDoc *doc;
+
+ doc = xmlParseDoc(BAD_CAST message);
+ fail_unless(key != NULL, "Cannot load public key");
+ fail_unless(lasso_key_query_verify(key, query1) == 0, "Signature was not validated");
+ /* test reordering and semi-colon separator support */
+ fail_unless(lasso_key_query_verify(key, query2) == 0, "Disordered signature was not validated");
+ fail_unless(lasso_key_query_verify(key, query3) != 0, "Altered signature was validated");
+ fail_unless(lasso_key_saml2_xml_verify(key,
+ "_E3F8E9116EE08F0E2607CF9789649BB4", xmlDocGetRootElement(doc)) == 0,
+ "XML Signature is not validated");
+ g_object_unref(key);
+ fail_unless(key2 != NULL, "Cannot load public key2");
+ fail_unless(lasso_key_query_verify(key2, query1) == 0, "Signature was not validated");
+ /* test reordering and semi-colon separator support */
+ fail_unless(lasso_key_query_verify(key2, query2) == 0, "Disordered signature was not validated");
+ fail_unless(lasso_key_query_verify(key2, query3) != 0, "Altered signature was validated");
+ fail_unless(lasso_key_saml2_xml_verify(key2,
+ "_E3F8E9116EE08F0E2607CF9789649BB4", xmlDocGetRootElement(doc)) == 0,
+ "XML Signature is not validated");
+ g_object_unref(key2);
+ lasso_release_doc(doc);
+}
+END_TEST
+
Suite*
random_suite()
{
@@ -335,6 +435,7 @@ random_suite()
TCase *tc_providers = tcase_create("Provider stuffs");
TCase *tc_servers = tcase_create("Server stuffs");
TCase *tc_node = tcase_create("Node stuff");
+ TCase *tc_keys = tcase_create("Lasso keys");
suite_add_tcase(s, tc_providers);
tcase_add_test(tc_providers, test01_provider_new);
@@ -351,6 +452,9 @@ random_suite()
tcase_add_test(tc_node, test06_lib_statuscode);
tcase_add_test(tc_node, test07_saml2_query_verify_signature);
+ suite_add_tcase(s, tc_keys);
+ tcase_add_test(tc_keys, test08_lasso_key);
+
return s;
}