LassoServer

LassoServer — Representation of the current server

Synopsis


#include <lasso/lasso.h>


            LassoServer;
LassoServer* lasso_server_new               (const gchar *metadata,
                                             const gchar *private_key,
                                             const gchar *secret_key,
                                             const gchar *certificate);
LassoServer* lasso_server_new_from_dump     (const gchar *dump);
gint        lasso_server_add_provider       (LassoServer *server,
                                             LassoProviderRole role,
                                             const gchar *metadata,
                                             const gchar *public_key,
                                             const gchar *ca_cert_chain);
gint        lasso_server_add_service        (LassoServer *server,
                                             LassoDiscoServiceInstance *service);
void        lasso_server_destroy            (LassoServer *server);
gchar*      lasso_server_dump               (LassoServer *server);
LassoProvider* lasso_server_get_provider    (LassoServer *server,
                                             gchar *providerID);
LassoDiscoServiceInstance* lasso_server_get_service
                                            (LassoServer *server,
                                             gchar *serviceType);

Object Hierarchy


  GObject
   +----LassoNode
         +----LassoProvider
               +----LassoServer

Description

It holds the data about a provider, other providers it knows, which certificates to use, etc.

Details

LassoServer

typedef struct {
	GHashTable *providers;
	GHashTable *services;

	gchar *private_key;
	gchar *private_key_password;
	gchar *certificate;
	LassoSignatureMethod signature_method;
} LassoServer;


lasso_server_new ()

LassoServer* lasso_server_new               (const gchar *metadata,
                                             const gchar *private_key,
                                             const gchar *secret_key,
                                             const gchar *certificate);

Creates a new LassoServer.

metadata : path to the provider metadata file
private_key : path to the the server private key file or NULL
secret_key :
certificate : path to the server certificate file
Returns : a newly created LassoServer object; or NULL if an error occured

lasso_server_new_from_dump ()

LassoServer* lasso_server_new_from_dump     (const gchar *dump);

Restores the dump to a new LassoServer.

dump : XML server dump
Returns : a newly created LassoServer; or NULL if an error occured

lasso_server_add_provider ()

gint        lasso_server_add_provider       (LassoServer *server,
                                             LassoProviderRole role,
                                             const gchar *metadata,
                                             const gchar *public_key,
                                             const gchar *ca_cert_chain);

Creates a new LassoProvider and makes it known to the server

server : a LassoServer
role : provider role, identity provider or service provider
metadata : path to the provider metadata file
public_key : provider public key file (may be a certificate) or NULL
ca_cert_chain : provider CA certificate chain file or NULL
Returns : 0 on success; a negative value if an error occured.

lasso_server_add_service ()

gint        lasso_server_add_service        (LassoServer *server,
                                             LassoDiscoServiceInstance *service);

...

server : a LassoServer
service :
Returns : 0 on success; a negative value if an error occured.

lasso_server_destroy ()

void        lasso_server_destroy            (LassoServer *server);

Destroys a server.

server : a LassoServer

lasso_server_dump ()

gchar*      lasso_server_dump               (LassoServer *server);

Dumps server content to an XML string.

server : a LassoServer
Returns : the dump string. It must be freed by the caller.

lasso_server_get_provider ()

LassoProvider* lasso_server_get_provider    (LassoServer *server,
                                             gchar *providerID);

Looks up for a LassoProvider whose ID is providerID and returns it.

server : a LassoServer
providerID : the provider ID
Returns : the LassoProvider, NULL if it was not found. The LassoProvider is owned by Lasso and should not be freed.

lasso_server_get_service ()

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

...

server : a LassoServer
serviceType :
Returns : the LassoDiscoServiceInstance, NULL if it was not found. The LassoDiscoServiceInstance is owned by Lasso and should not be freed.