|  |  |  | Loudmouth Reference Manual |  | 
|---|---|---|---|---|
| Top | Description | ||||
                    LmSSL;
enum                LmCertificateStatus;
enum                LmSSLStatus;
enum                LmSSLResponse;
LmSSLResponse       (*LmSSLFunction)                    (LmSSL *ssl,
                                                         LmSSLStatus status,
                                                         gpointer user_data);
LmSSL *             lm_ssl_new                          (const gchar *expected_fingerprint,
                                                         LmSSLFunction ssl_function,
                                                         gpointer user_data,
                                                         GDestroyNotify notify);
gboolean            lm_ssl_is_supported                 (void);
const gchar *       lm_ssl_get_fingerprint              (LmSSL *ssl);
void                lm_ssl_use_starttls                 (LmSSL *ssl,
                                                         gboolean use_starttls,
                                                         gboolean require_starttls);
gboolean            lm_ssl_get_use_starttls             (LmSSL *ssl);
gboolean            lm_ssl_get_require_starttls         (LmSSL *ssl);
LmSSL *             lm_ssl_ref                          (LmSSL *ssl);
void                lm_ssl_unref                        (LmSSL *ssl);
Use this together with an LmConnection to get the connection to use SSL. Example of how to use the LmSSL API.
LmConnection *connection;
LmSSL        *ssl;
connection = lm_connection_new ("myserver");
ssl = lm_ssl_new (NULL, my_ssl_func, NULL, NULL);
lm_connection_set_ssl (connection, ssl);
...
typedef struct _LmSSL LmSSL;
This should not be accessed directly. Use the accessor functions as described below.
typedef enum {
	LM_CERT_INVALID,
	LM_CERT_ISSUER_NOT_FOUND,
	LM_CERT_REVOKED
} LmCertificateStatus;
Provides information of the status of a certain certificate.
typedef enum {
	LM_SSL_STATUS_NO_CERT_FOUND,	
	LM_SSL_STATUS_UNTRUSTED_CERT,
	LM_SSL_STATUS_CERT_EXPIRED,
	LM_SSL_STATUS_CERT_NOT_ACTIVATED,
	LM_SSL_STATUS_CERT_HOSTNAME_MISMATCH,			
	LM_SSL_STATUS_CERT_FINGERPRINT_MISMATCH,			
	LM_SSL_STATUS_GENERIC_ERROR
} LmSSLStatus;
Provides information about something gone wrong when trying to setup the SSL connection.
typedef enum {
	LM_SSL_RESPONSE_CONTINUE,
	LM_SSL_RESPONSE_STOP
} LmSSLResponse;
Used to inform LmConnection if you want to stop due to an error reported or if you want to continue to connect.
LmSSLResponse (*LmSSLFunction) (LmSSL *ssl, LmSSLStatus status, gpointer user_data);
This function is called if something goes wrong during the connecting phase.
| ssl: | An LmSSL. | 
| status: | The status informing what went wrong. | 
| user_data: | User data provided in the callback. | 
| Returns : | User should return LM_SSL_RESPONSE_CONTINUE if connection should proceed and otherwise LM_SSL_RESPONSE_STOP. | 
LmSSL * lm_ssl_new (const gchar *expected_fingerprint, LmSSLFunction ssl_function, gpointer user_data, GDestroyNotify notify);
Creates a new SSL struct, call lm_connection_set_ssl to use it.
| expected_fingerprint: | The expected fingerprint. ssl_functionwill be called if there is a mismatch.NULLif you are not interested in this check. | 
| ssl_function: | Callback called to inform the user of a problem during setting up the SSL connection and how to proceed. If NULLis passed the default function that always continues will be used. | 
| user_data: | Data sent with the callback. | 
| notify: | Function to free user_dataawhen the connection is finished.NULLifuser_datashould not be freed. | 
| Returns : | A new LmSSL struct. | 
gboolean lm_ssl_is_supported (void);
Checks whether Loudmouth supports SSL or not.
const gchar * lm_ssl_get_fingerprint (LmSSL *ssl);
Returns the MD5 fingerprint of the remote server's certificate.
void lm_ssl_use_starttls (LmSSL *ssl, gboolean use_starttls, gboolean require_starttls);
Set whether STARTTLS should be used.
gboolean lm_ssl_get_use_starttls (LmSSL *ssl);
Fetches whether STARTTLS is used.
gboolean lm_ssl_get_require_starttls (LmSSL *ssl);
Fetches whether STARTTLS is required.
LmSSL * lm_ssl_ref (LmSSL *ssl);
Adds a reference to ssl.
| ssl: | an LmSSL | 
| Returns : | the ssl |