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);
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);
xmlNode*    lasso_node_get_xmlNode          (LassoNode *node,
                                             gboolean lasso_dump);
LassoMessageFormat lasso_node_init_from_message
                                            (LassoNode *node,
                                             const char *message);
enum        LassoMessageFormat;
gboolean    lasso_node_init_from_query      (LassoNode *node,
                                             const char *query);
int         lasso_node_init_from_xml        (LassoNode *node,
                                             xmlNode *xmlnode);

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_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_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.

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 : message format

enum LassoMessageFormat

typedef enum {
	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_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_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.