CamelSasl

CamelSasl

Synopsis

                    CamelSasl;
GByteArray *        camel_sasl_challenge                (CamelSasl *sasl,
                                                         GByteArray *token,
                                                         CamelException *ex);
char *              camel_sasl_challenge_base64         (CamelSasl *sasl,
                                                         const char *token,
                                                         CamelException *ex);
gboolean            camel_sasl_authenticated            (CamelSasl *sasl);
CamelSasl *         camel_sasl_new                      (const char *service_name,
                                                         const char *mechanism,
                                                         CamelService *service);
GList *             camel_sasl_authtype_list            (gboolean include_plain);
CamelServiceAuthType * camel_sasl_authtype              (const char *mechanism);

Description

Details

CamelSasl

typedef struct {
	CamelObject parent_object;
	
	char *service_name;
	char *mech;		/* mechanism */
	CamelService *service;
	gboolean authenticated;
} CamelSasl;


camel_sasl_challenge ()

GByteArray *        camel_sasl_challenge                (CamelSasl *sasl,
                                                         GByteArray *token,
                                                         CamelException *ex);

If token is NULL, generate the initial SASL message to send to the server. (This will be NULL if the client doesn't initiate the exchange.) Otherwise, token is a challenge from the server, and the return value is the response.

sasl :

a CamelSasl object

token :

a token, or NULL

ex :

a CamelException

Returns :

the SASL response or NULL. If an error occurred, ex will also be set.

camel_sasl_challenge_base64 ()

char *              camel_sasl_challenge_base64         (CamelSasl *sasl,
                                                         const char *token,
                                                         CamelException *ex);

As with camel_sasl_challenge, but the challenge token and the response are both base64-encoded.

sasl :

a CamelSasl object

token :

a base64-encoded token

ex :

a CamelException

Returns :

the base64 encoded challenge string

camel_sasl_authenticated ()

gboolean            camel_sasl_authenticated            (CamelSasl *sasl);

sasl :

a CamelSasl object

Returns :

whether or not sasl has successfully authenticated the user. This will be TRUE after it returns the last needed response. The caller must still pass that information on to the server and verify that it has accepted it.

camel_sasl_new ()

CamelSasl *         camel_sasl_new                      (const char *service_name,
                                                         const char *mechanism,
                                                         CamelService *service);

service_name :

the SASL service name

mechanism :

the SASL mechanism

service :

the CamelService that will be using this SASL

Returns :

a new CamelSasl object for the given service_name, mechanism, and service, or NULL if the mechanism is not supported.

camel_sasl_authtype_list ()

GList *             camel_sasl_authtype_list            (gboolean include_plain);

include_plain :

whether or not to include the PLAIN mechanism

Returns :

a GList of SASL-supported authtypes. The caller must free the list, but not the contents.

camel_sasl_authtype ()

CamelServiceAuthType * camel_sasl_authtype              (const char *mechanism);

mechanism :

the SASL mechanism to get an authtype for

Returns :

a CamelServiceAuthType for the given mechanism, if it is supported.