LassoNode

LassoNode — Base class for all Lasso objects

Synopsis


#include <lasso/lasso.h>

                    LassoNode;
enum                LassoSignatureType;
enum                LassoSignatureMethod;
LassoNode*          lasso_node_new                      (void);
LassoNode*          lasso_node_new_from_dump            (const char *dump);
LassoNode*          lasso_node_new_from_xmlNode         (xmlNode *node);
LassoNode*          lasso_node_new_from_soap            (const char *soap);
LassoMessageFormat  lasso_node_init_from_message        (LassoNode *node,
                                                         const char *message);
gboolean            lasso_node_init_from_query          (LassoNode *node,
                                                         const char *query);
int                 lasso_node_init_from_xml            (LassoNode *node,
                                                         xmlNode *xmlnode);
void                lasso_node_destroy                  (LassoNode *node);
char*               lasso_node_dump                     (LassoNode *node);
char*               lasso_node_export_to_base64         (LassoNode *node);
char*               lasso_node_export_to_query          (LassoNode *node,
                                                         LassoSignatureMethod sign_method,
                                                         const char *private_key_file);
char*               lasso_node_export_to_soap           (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);
gchar*              lasso_node_export_to_xml            (LassoNode *node);
xmlNode*            lasso_node_get_xmlNode              (LassoNode *node,
                                                         gboolean lasso_dump);
enum                LassoMessageFormat;
xmlNode*            lasso_node_get_original_xmlnode     (LassoNode *node);
void                lasso_node_set_original_xmlnode     (LassoNode *node,
                                                         xmlNode *xmlNode);
void                lasso_node_cleanup_original_xmlnodes
                                                        (LassoNode *node);

Object Hierarchy

  GObject
   +----LassoNode
         +----LassoSamlAssertion
         +----LassoSamlStatementAbstract
         +----LassoLibAuthnContext
         +----LassoSamlpRequestAbstract
         +----LassoSamlpResponseAbstract
         +----LassoLibIDPEntries
         +----LassoLibIDPEntry
         +----LassoLibIDPList
         +----LassoLibRequestAuthnContext
         +----LassoLibScoping
         +----LassoSamlSubject
         +----LassoSamlAdvice
         +----LassoSamlConditionAbstract
         +----LassoSamlAuthorityBinding
         +----LassoSamlConditions
         +----LassoSamlNameIdentifier
         +----LassoSamlSubjectConfirmation
         +----LassoSamlSubjectLocality
         +----LassoSamlpStatus
         +----LassoSamlpStatusCode
         +----LassoProfile
         +----LassoFederation
         +----LassoProvider
         +----LassoIdentity
         +----LassoSession
         +----LassoWsfProfile

Description

LassoNode is the base class for Lasso objects; just a step over GObject as defined in glib.

Details

LassoNode

typedef struct _LassoNode LassoNode;


enum LassoSignatureType

typedef enum {
	LASSO_SIGNATURE_TYPE_NONE = 0,
	LASSO_SIGNATURE_TYPE_SIMPLE,
	LASSO_SIGNATURE_TYPE_WITHX509
} LassoSignatureType;

Signature type.

LASSO_SIGNATURE_TYPE_NONE

no signature

LASSO_SIGNATURE_TYPE_SIMPLE

LASSO_SIGNATURE_TYPE_WITHX509


enum LassoSignatureMethod

typedef enum {
	LASSO_SIGNATURE_METHOD_RSA_SHA1 = 1,
	LASSO_SIGNATURE_METHOD_DSA_SHA1
} LassoSignatureMethod;

Signature method.


lasso_node_new ()

LassoNode*          lasso_node_new                      (void);

Creates a new LassoNode.

Returns :

a newly created LassoNode object

lasso_node_new_from_dump ()

LassoNode*          lasso_node_new_from_dump            (const char *dump);

Restores the dump to a new LassoNode subclass.

dump :

XML object dump

Returns :

a newly created object; or NULL if an error occured.

lasso_node_new_from_xmlNode ()

LassoNode*          lasso_node_new_from_xmlNode         (xmlNode *node);

Builds a new LassoNode from an xmlNode.

node :

an xmlNode

Returns :

a new node

lasso_node_new_from_soap ()

LassoNode*          lasso_node_new_from_soap            (const char *soap);

Parses SOAP message and creates a new Lasso object with the right class.

soap :

the SOAP message

Returns :

node if success; NULL otherwise

lasso_node_init_from_message ()

LassoMessageFormat  lasso_node_init_from_message        (LassoNode *node,
                                                         const char *message);

Parses message and initialiazes node fields with data from it. Message type may be base64, SOAP, XML or query string, correct type is found automatically.

node :

a LassoNode (or derived class)

message :

a Liberty message

Returns :

a LassoMessageFormat value.

lasso_node_init_from_query ()

gboolean            lasso_node_init_from_query          (LassoNode *node,
                                                         const char *query);

Initialiazes node fields with data from query string.

node :

a LassoNode (or derived class)

query :

the query string

Returns :

TRUE if success

lasso_node_init_from_xml ()

int                 lasso_node_init_from_xml            (LassoNode *node,
                                                         xmlNode *xmlnode);

Initialiazes node fields with data from xmlnode XML node.

node :

a LassoNode (or derived class)

xmlnode :

the libxml2 node

Returns :

0 on success; or a negative value otherwise.

lasso_node_destroy ()

void                lasso_node_destroy                  (LassoNode *node);

Destroys the LassoNode.

node :

a LassoNode

lasso_node_dump ()

char*               lasso_node_dump                     (LassoNode *node);

Dumps node. All datas in object are dumped in an XML format.

node :

a LassoNode

Returns :

a full XML dump of node. The string must be freed by the caller.

lasso_node_export_to_base64 ()

char*               lasso_node_export_to_base64         (LassoNode *node);

Exports node to a base64-encoded message.

node :

a LassoNode

Returns :

a base64-encoded export of node. The string must be freed by the caller.

lasso_node_export_to_query ()

char*               lasso_node_export_to_query          (LassoNode *node,
                                                         LassoSignatureMethod sign_method,
                                                         const char *private_key_file);

Exports node to a HTTP query string. If private_key_file is NULL, query won't be signed.

node :

a LassoNode

sign_method :

the Signature transform method

private_key_file :

the path to the private key (may be NULL)

Returns :

a HTTP query export of node. The string must be freed by the caller.

lasso_node_export_to_soap ()

char*               lasso_node_export_to_soap           (LassoNode *node);

Exports node to a SOAP message.

node :

a LassoNode

Returns :

a SOAP export of node. The string must be freed by the caller.

lasso_node_export_to_ecp_soap_response ()

char*               lasso_node_export_to_ecp_soap_response
                                                        (LassoNode *node,
                                                         const char *assertionConsumerURL);

Exports node to a ECP SOAP message.

node :

a LassoNode

assertionConsumerURL :

Returns :

a ECP SOAP export of node. The string must be freed by the caller.

lasso_node_export_to_paos_request ()

char*               lasso_node_export_to_paos_request   (LassoNode *node,
                                                         const char *issuer,
                                                         const char *responseConsumerURL,
                                                         const char *relay_state);

Exports node to a PAOS message.

node :

a LassoNode

issuer :

responseConsumerURL :

relay_state :

Returns :

a PAOS export of node. The string must be freed by the caller.

lasso_node_export_to_xml ()

gchar*              lasso_node_export_to_xml            (LassoNode *node);

Exports node to an xml message.

node :

a LassoNode

Returns :

an xml export of node. The string must be freed by the caller.

lasso_node_get_xmlNode ()

xmlNode*            lasso_node_get_xmlNode              (LassoNode *node,
                                                         gboolean lasso_dump);

Builds an XML representation of node.

node :

a LassoNode

lasso_dump :

whether to include lasso-specific nodes

Returns :

a new xmlNode. It must be freed by the caller.

enum LassoMessageFormat

typedef enum {
	LASSO_MESSAGE_FORMAT_XSCHEMA_ERROR = -2,
	LASSO_MESSAGE_FORMAT_ERROR = -1,
	LASSO_MESSAGE_FORMAT_UNKNOWN,
	LASSO_MESSAGE_FORMAT_XML,
	LASSO_MESSAGE_FORMAT_BASE64,
	LASSO_MESSAGE_FORMAT_QUERY,
	LASSO_MESSAGE_FORMAT_SOAP
} LassoMessageFormat;

Return code for lasso_node_init_from_message; it describes the type of the message that was passed to that function.

LASSO_MESSAGE_FORMAT_XSCHEMA_ERROR

LASSO_MESSAGE_FORMAT_ERROR

error while determining format

LASSO_MESSAGE_FORMAT_UNKNOWN

unknown format

LASSO_MESSAGE_FORMAT_XML

XML

LASSO_MESSAGE_FORMAT_BASE64

base-64 encoded

LASSO_MESSAGE_FORMAT_QUERY

query string

LASSO_MESSAGE_FORMAT_SOAP

SOAP

lasso_node_get_original_xmlnode ()

xmlNode*            lasso_node_get_original_xmlnode     (LassoNode *node);

Retrieve the original xmlNode eventually associated to this LassoNode.

node :

a LassoNode

Returns :

an xmlNodePtr or NULL.

lasso_node_set_original_xmlnode ()

void                lasso_node_set_original_xmlnode     (LassoNode *node,
                                                         xmlNode *xmlNode);

Set the underlying XML representation of the object.

node :

the LassoNode object

xmlNode :

an xmlNode

lasso_node_cleanup_original_xmlnodes ()

void                lasso_node_cleanup_original_xmlnodes
                                                        (LassoNode *node);

node: a LassoNode

Traverse the LassoNode tree starting at Node and remove keeped xmlNode if one is found.

node :