soup-ssl

soup-ssl — SSL/TLS handling

Synopsis




extern      gboolean soup_ssl_supported;

enum        SoupSSLType;
gpointer    soup_ssl_get_client_credentials (const char *ca_file);
void        soup_ssl_free_client_credentials
                                            (gpointer creds);
gpointer    soup_ssl_get_server_credentials (const char *cert_file,
                                             const char *key_file);
void        soup_ssl_free_server_credentials
                                            (gpointer creds);
GIOChannel* soup_ssl_wrap_iochannel         (GIOChannel *sock,
                                             SoupSSLType type,
                                             const char *remote_host,
                                             gpointer credentials);
#define     SOUP_SSL_ERROR
GQuark      soup_ssl_error_quark            (void);
enum        SoupSocketError;

Description

Details

soup_ssl_supported

extern gboolean soup_ssl_supported;

Can be used to test if libsoup was compiled with ssl support.


enum SoupSSLType

typedef enum {
	SOUP_SSL_TYPE_CLIENT = 0,
	SOUP_SSL_TYPE_SERVER
} SoupSSLType;

What kind of SSL connection this is.

SOUP_SSL_TYPE_CLIENT the client side of an SSL connection
SOUP_SSL_TYPE_SERVER the server side of an SSL connection

soup_ssl_get_client_credentials ()

gpointer    soup_ssl_get_client_credentials (const char *ca_file);

Creates an opaque client credentials object which can later be passed to soup_ssl_wrap_iochannel().

If ca_file is non-NULL, any certificate received from a server must be signed by one of the CAs in the file, or an error will be returned.

ca_file : path to a file containing X509-encoded Certificate Authority certificates.
Returns : the client credentials, which must be freed with soup_ssl_free_client_credentials().

soup_ssl_free_client_credentials ()

void        soup_ssl_free_client_credentials
                                            (gpointer creds);

Frees client_creds.

creds : a client credentials structure returned by soup_ssl_get_client_credentials().

soup_ssl_get_server_credentials ()

gpointer    soup_ssl_get_server_credentials (const char *cert_file,
                                             const char *key_file);

Creates an opaque server credentials object which can later be passed to soup_ssl_wrap_iochannel().

cert_file : path to a file containing an X509-encoded server certificate
key_file : path to a file containing an X509-encoded key for cert_file.
Returns : the server credentials, which must be freed with soup_ssl_free_server_credentials().

soup_ssl_free_server_credentials ()

void        soup_ssl_free_server_credentials
                                            (gpointer creds);

Frees server_creds.

creds : a server credentials structure returned by soup_ssl_get_server_credentials().

soup_ssl_wrap_iochannel ()

GIOChannel* soup_ssl_wrap_iochannel         (GIOChannel *sock,
                                             SoupSSLType type,
                                             const char *remote_host,
                                             gpointer credentials);

This attempts to wrap a new GIOChannel around sock that will SSL-encrypt/decrypt all traffic through it.

sock : a GIOChannel wrapping a TCP socket.
type : whether this is a client or server socket
remote_host : the hostname of the remote machine
credentials : a client or server credentials structure
Returns : an SSL-encrypting GIOChannel, or NULL on failure.

SOUP_SSL_ERROR

#define SOUP_SSL_ERROR soup_ssl_error_quark()


soup_ssl_error_quark ()

GQuark      soup_ssl_error_quark            (void);

Returns : The quark used as SOUP_SSL_ERROR

enum SoupSocketError

typedef enum {
	SOUP_SSL_ERROR_HANDSHAKE_NEEDS_READ,
	SOUP_SSL_ERROR_HANDSHAKE_NEEDS_WRITE,
	SOUP_SSL_ERROR_CERTIFICATE,
} SoupSocketError;