Vortex SASL: SASL profile support and related functions


Defines

#define AUTH_ID_FROM_CHANNEL(channel)   (vortex_sasl_is_authenticated (vortex_channel_get_connection (channel)) ? vortex_sasl_get_propertie (vortex_channel_get_connection (channel), VORTEX_SASL_AUTH_ID) : NULL)
 Convenience macro that allows to get the auth Id for the connection that is running the channel provided.
#define AUTH_ID_FROM_CONN(conn)   (vortex_sasl_is_authenticated (conn) ? vortex_sasl_get_propertie (conn, VORTEX_SASL_AUTH_ID) : NULL)
 Convenience macro that allows to get the auth Id for the connection provided.
#define SASL_ANONYMOUS_TOKEN   "sasl:anonymous:token"
 Mark used to store the anonymous token provided to comple the SASL ANONYMOUS mechanism.
#define SASL_AUTHID   "sasl:authid"
 Mark used by the sasl module to store the authorization id used for a successful SASL negotation (that is the user login).
#define SASL_AUTHZID   "sasl:authzid"
 Mark used by the sasl module to store the proxy authorization id.
#define SASL_IS_AUTHENTICATED   "sasl:is:authenticated"
 Mark used to check if a connection was completely authenticated.
#define SASL_METHOD_USED   "sasl:method:used"
 Mark used to store the SASL mechanism used.
#define SASL_REALM   "sasl:realm"
 Mark used to store the realm value used by some SASL mechanism.
#define VORTEX_SASL_ANONYMOUS   "http://iana.org/beep/SASL/ANONYMOUS"
 ANONYMOUS profile identification to be used at vortex_sasl_start_auth or vortex_sasl_accept_negotiation.
#define VORTEX_SASL_ANONYMOUS_USER_DATA   "__VORTEX_SASL_ANONYMOUS_USER_DATA"
 Key value to access the user-defined pointer associated with a connection using SASL ANONYMOUS authentication method.
#define VORTEX_SASL_CRAM_MD5   "http://iana.org/beep/SASL/CRAM-MD5"
 CRAM-MD5 profile identification to be used at vortex_sasl_start_auth or vortex_sasl_accept_negotiation.
#define VORTEX_SASL_CRAM_MD5_USER_DATA   "__VORTEX_SASL_CRAM_MD5_USER_DATA"
 Key value to access the user-defined pointer associated with a connection using SASL CRAM MD5 authentication method.
#define VORTEX_SASL_DIGEST_MD5   "http://iana.org/beep/SASL/DIGEST-MD5"
 DIGEST-MD5 profile identification to be used at vortex_sasl_start_auth or vortex_sasl_accept_negotiation.
#define VORTEX_SASL_DIGEST_MD5_USER_DATA   "__VORTEX_SASL_DIGEST_MD5_USER_DATA"
 Key value to access the user-defined pointer associated with a connection using SASL DIGEST MD5 authentication method.
#define VORTEX_SASL_EXTERNAL   "http://iana.org/beep/SASL/EXTERNAL"
 EXTERNAL profile identification to be used at vortex_sasl_start_auth or vortex_sasl_accept_negotiation.
#define VORTEX_SASL_EXTERNAL_USER_DATA   "__VORTEX_SASL_EXTERNAL_USER_DATA"
 Key value to access the user-defined pointer associated with a connection using SASL EXTERNAL authentication method.
#define VORTEX_SASL_GSSAPI   "http://iana.org/beep/SASL/GASSAPI"
 GSSAPI profile identification to be used at vortex_sasl_start_auth or vortex_sasl_accept_negotiation.
#define VORTEX_SASL_KERBEROS_V4   "http://iana.org/beep/SASL/KERBEROS_V4"
 KERBEROS_V4 profile identification to be used at vortex_sasl_start_auth or vortex_sasl_accept_negotiation.
#define VORTEX_SASL_PLAIN   "http://iana.org/beep/SASL/PLAIN"
 PLAIN profile identification to be used at vortex_sasl_start_auth or vortex_sasl_accept_negotiation.
#define VORTEX_SASL_PLAIN_USER_DATA   "__VORTEX_SASL_PLAIN_USER_DATA"
 Key value to access the user-defined pointer associated with a connection using SASL PLAIN authentication method.

Enumerations

enum  VortexSaslProperties {
  VORTEX_SASL_AUTH_ID = 1, VORTEX_SASL_AUTHORIZATION_ID = 2, VORTEX_SASL_PASSWORD = 3, VORTEX_SASL_REALM = 4,
  VORTEX_SASL_ANONYMOUS_TOKEN = 5
}
 Set of properties to be used to configure client authentication. More...

Functions

axl_bool vortex_sasl_accept_negotiation (const char *mech)
 Allows to configure current Vortex Library process to accept incoming SASL negotiations.
axl_bool vortex_sasl_accept_negotiation_full (const char *mech, axlPointer user_data)
 Allows to configure current Vortex Library process to accept incoming SASL negotiations.
char * vortex_sasl_auth_method_used (VortexConnection *connection)
 Allows to get SASL method used to authenticate the connection.
char * vortex_sasl_get_propertie (VortexConnection *connection, VortexSaslProperties prop)
 Allows to get current SASL properties from the given connection.
axl_bool vortex_sasl_is_authenticated (VortexConnection *connection)
 Allows to check if the given connection have been successfully authenticated.
axl_bool vortex_sasl_is_enabled (void)
 Allows to check and initialize SASL support for Vortex Library.
void vortex_sasl_set_anonymous_validation (VortexSaslAuthAnonymous auth_handler)
 Allows to set current auth validation handler for the the SASL ANONYMOUS profile.
void vortex_sasl_set_anonymous_validation_full (VortexSaslAuthAnonymousFull auth_handler)
 Allows to set current auth validation handler for the the SASL ANONYMOUS profile.
void vortex_sasl_set_cram_md5_validation (VortexSaslAuthCramMd5 auth_handler)
 Allows to set the validation handler to be used while authenticating CRAM-MD5 SASL profile.
void vortex_sasl_set_cram_md5_validation_full (VortexSaslAuthCramMd5Full auth_handler)
 Allows to set the validation handler to be used while authenticating CRAM-MD5 SASL profile.
void vortex_sasl_set_digest_md5_validation (VortexSaslAuthDigestMd5 auth_handler)
 Allows to set current auth validation handler for the the SASL DIGEST-MD5 profile.
void vortex_sasl_set_digest_md5_validation_full (VortexSaslAuthDigestMd5Full auth_handler)
 Allows to set current auth validation handler for the the SASL DIGEST-MD5 profile.
void vortex_sasl_set_external_validation (VortexSaslAuthExternal auth_handler)
 Allows to set current auth validation handler for the the SASL EXTERNAL profile.
void vortex_sasl_set_external_validation_full (VortexSaslAuthExternalFull auth_handler)
 Allows to set current auth validation handler for the the SASL EXTERNAL profile.
void vortex_sasl_set_plain_validation (VortexSaslAuthPlain auth_handler)
 Allows to set the validation handler to be used while authenticating PLAIN SASL profile.
void vortex_sasl_set_plain_validation_full (VortexSaslAuthPlainFull auth_handler)
 Allows to set the validation handler to be used while authenticating PLAIN SASL profile.
axl_bool vortex_sasl_set_propertie (VortexConnection *connection, VortexSaslProperties prop, char *value, axlDestroyFunc value_destroy)
 Allows to configure SASL properties used for the SASL authentication process.
void vortex_sasl_start_auth (VortexConnection *connection, const char *profile, VortexSaslAuthNotify process_status, axlPointer user_data)
 Begin SASL authentication process using the selected profile.
void vortex_sasl_start_auth_sync (VortexConnection *connection, const char *profile, VortexStatus *status, char **status_message)
 Perform SASL negotiation in a synchronous mode (blocking the caller until process finish).