Utility functions for ID-WSF 1.0

## Utility functions for ID-WSF 1.0 Utility functions for ID-WSF 1.0 — Misc functions used in the implementation of ID-WSF 1.0 |

## Stability Level

Private, unless otherwise indicated

## Synopsis

    gboolean            lasso_security_mech_id_is_null_authentication
                                                            (const gchar *security_mech_id);
    gboolean            lasso_security_mech_id_is_x509_authentication
                                                            (const gchar *security_mech_id);
    gboolean            lasso_security_mech_id_is_saml_authentication
                                                            (const gchar *security_mech_id);
    gboolean            lasso_security_mech_id_is_bearer_authentication
                                                            (const gchar *security_mech_id);

    lasso_error_t       lasso_login_set_encryptedResourceId (LassoLogin *login,
                                                             LassoDiscoEncryptedResourceID *encryptedResourceId);
    lasso_error_t       lasso_login_set_resourceId          (LassoLogin *login,
                                                             const char *content);

    LassoDiscoServiceInstance * lasso_server_get_service    (LassoServer *server,
                                                             const gchar *serviceType);
    lasso_error_t       lasso_server_add_service            (LassoServer *server,
                                                             LassoNode *service);
    lasso_error_t       lasso_server_add_service_from_dump  (LassoServer *server,
                                                             const gchar *dump);

    lasso_error_t       lasso_identity_add_resource_offering
                                                            (LassoIdentity *identity,
                                                             LassoDiscoResourceOffering *offering);
    gboolean            lasso_identity_remove_resource_offering
                                                            (LassoIdentity *identity,
                                                             const char *entryID);
    GList *             lasso_identity_get_offerings        (LassoIdentity *identity,
                                                             const char *service_type);
    LassoDiscoResourceOffering * lasso_identity_get_resource_offering
                                                            (LassoIdentity *identity,
                                                             const char *entryID);

    LassoSoapBindingProvider * lasso_soap_binding_get_provider
                                                            (LassoSoapEnvelope *envelope);
    LassoSoapBindingCorrelation * lasso_soap_binding_get_correlation
                                                            (LassoSoapEnvelope *evelope);

    void                lasso_register_dst_service          (const char *prefix,
                                                             const char *href);
    char *              lasso_get_prefix_for_dst_service_href
                                                            (const char *href);

## Description

## Details

### lasso_security_mech_id_is_null_authentication ()

    gboolean            lasso_security_mech_id_is_null_authentication
                                                            (const gchar *security_mech_id);

`security_mech_id` : | the URI of an authentication mechanism
Returns : | `TRUE` if `security_mech_id` is null or one of urn:liberty:security:2003-08:null:null, urn:liberty:security:2003-08:TLS:null, urn:liberty:security:2003-08:ClientTLS:null, FALSE otherwise.

### lasso_security_mech_id_is_x509_authentication ()

    gboolean            lasso_security_mech_id_is_x509_authentication
                                                            (const gchar *security_mech_id);

`security_mech_id` : | the URI of an authentication mechanism
Returns : | `TRUE` if `security_mech_id` is one of urn:liberty:security:2003-08:null:X509, urn:liberty:security:2003-08:TLS:X509, urn:liberty:security:2003-08:ClientTLS:X509, FALSE otherwise.

### lasso_security_mech_id_is_saml_authentication ()

    gboolean            lasso_security_mech_id_is_saml_authentication
                                                            (const gchar *security_mech_id);

`security_mech_id` : | the URI of an authentication mechanism
Returns : | `TRUE` if `security_mech_id` is one of urn:liberty:security:2003-08:null:SAML, urn:liberty:security:2003-08:TLS:SAML, urn:liberty:security:2003-08:ClientTLS:SAML, urn:liberty:security:2005-02:null:SAML, urn:liberty:security:2005-02:TLS:SAML, FALSE otherwise.

### lasso_security_mech_id_is_bearer_authentication ()

    gboolean            lasso_security_mech_id_is_bearer_authentication
                                                            (const gchar *security_mech_id);

`security_mech_id` : | the URI of an authentication mechanism
Returns : | `TRUE` if `security_mech_id` is one of urn:liberty:security:2003-08:null:Bearer, urn:liberty:security:2003-08:TLS:Bearer, urn:liberty:security:2003-08:ClientTLS:Bearer, urn:liberty:security:2005-02:null:Bearer, urn:liberty:security:2005-02:TLS:Bearer, FALSE otherwise.

### lasso_login_set_encryptedResourceId ()

    lasso_error_t       lasso_login_set_encryptedResourceId (LassoLogin *login,
                                                             LassoDiscoEncryptedResourceID *encryptedResourceId);

Set the LassoDiscoEncryptedResourceID to place the next produced assertions as an ID-WSF 1.0 bootstrap.

`login` : | a LassoLogin object
`encryptedResourceId` : | the LassoDiscoEncryptedResourceID to setup in the login object
Returns : | 0 on success; or a negative value otherwise.

### lasso_login_set_resourceId ()

    lasso_error_t       lasso_login_set_resourceId          (LassoLogin *login,
                                                             const char *content);

Set the resourceId to place in the next produced assertion for ID-WSF bootstrap.

`login` : | a LassoLogin
`content` : | a resourceID identifier
Returns : | 0 on success; or a negative value otherwise.

### lasso_server_get_service ()

    LassoDiscoServiceInstance * lasso_server_get_service    (LassoServer *server,
                                                             const gchar *serviceType);

Look up a disco service instance corresponding to this service type.

`server` : | a LassoServer
`serviceType` : | the service type
Returns : | the LassoDiscoServiceInstance, NULL if it was not found. The LassoDiscoServiceInstance is owned by Lasso and should not be freed. [transfer none][allow-none]

### lasso_server_add_service ()

    lasso_error_t       lasso_server_add_service            (LassoServer *server,
                                                             LassoNode *service);

Add a service to the registry of service of this LassoServer object.

`server` : | a LassoServer
`service` : | a LassoNode object implementing representing a service endpoint.
Returns : | 0 on success; a negative value if an error occured.

### lasso_server_add_service_from_dump ()

    lasso_error_t       lasso_server_add_service_from_dump  (LassoServer *server,
                                                             const gchar *dump);

An utility function that parse a LassoNode dump an try to add it as a service using lasso_server_add_service.

`server` : | a LassoServer
`dump` : | the XML dump of a LassoNode representing a service endpoint.
Returns : | 0 if succesfull, LASSO_PARAM_ERROR_BAD_TYPE_OF_NULL_OBJECT if said dump is not a LassoNode or is not of the righ type, LASSO_PARAM_ERROR_INVALID_VALUE if dump is NULL.

### lasso_identity_add_resource_offering ()

    lasso_error_t       lasso_identity_add_resource_offering
                                                            (LassoIdentity *identity,
                                                             LassoDiscoResourceOffering *offering);

Add a new offering to the identity object to be retrieved later by `lasso_identity_get_offerings()` or `lasso_identity_get_resource_offering()`. It also allocate an entryId identifier for the offering, look into offering->entryID to get it after this call.

`identity` : | a LassoIdentity object
`offering` : | a LassoDiscoResourceOffering object to add
Returns : | Always 0, there should not be any error (if memory is not exhausted).

### lasso_identity_remove_resource_offering ()

    gboolean            lasso_identity_remove_resource_offering
                                                            (LassoIdentity *identity,
                                                             const char *entryID);

Remove resource offering about identity with `entryID`

`identity` : | a LassoIdentity
`entryID` : | the resource offering entry ID
Returns : | TRUE on success; FALSE if the offering was not found.

### lasso_identity_get_offerings ()

    GList *             lasso_identity_get_offerings        (LassoIdentity *identity,
                                                             const char *service_type);

Returns a list of LassoDiscoResourceOffering associated to this service type.

`identity` : | a LassoIdentity
`service_type` : | a char* string representing the type of service we are looking for
Returns : | a newly allocated list of LassoDiscoResourceOffering. [transfer full][element-type LassoDiscoResourceOffering]

### lasso_identity_get_resource_offering ()

    LassoDiscoResourceOffering * lasso_identity_get_resource_offering
                                                            (LassoIdentity *identity,
                                                             const char *entryID);

### lasso_soap_binding_get_provider ()

    LassoSoapBindingProvider * lasso_soap_binding_get_provider
                                                            (LassoSoapEnvelope *envelope);

Look up the sb:Provider header in the SOAP message envelope.

`envelope` : | a LassoSoapEnvelope
Returns : | NULL if no Provider element is present in the header of the SOAP envelope. If found it returns a reference you do not own.

### lasso_soap_binding_get_correlation ()

    LassoSoapBindingCorrelation * lasso_soap_binding_get_correlation
                                                            (LassoSoapEnvelope *evelope);

Look up the sb:Correlation header in the SOAP message envelope.

`envelope` : | a LassoSoapEnvelope
Returns : | NULL if no Correlation element is present in the header of the SOAP envelope. If found it returns a reference you do not own.

### lasso_register_dst_service ()

    void                lasso_register_dst_service          (const char *prefix,
                                                             const char *href);

Registers prefix and href of a custom data service template service.

`prefix` : | prefix of DST service
`href` : | href of DST service

### lasso_get_prefix_for_dst_service_href ()

    char *              lasso_get_prefix_for_dst_service_href
                                                            (const char *href);