tls_gnutls.c File Reference

TLS implementation with GNUTLS. More...

## Data Structures

struct | tls_t

## Macros

#define | GNUTLS_CB_TLS_EXPORTER 3

## Functions

void | tls_initialize (void)
void | tls_shutdown (void)
static int | _tls_password_callback (void *userdata, int attempt, const char *token_url, const char *token_label, unsigned int flags, char *pin, size_t pin_max)
static gnutls_x509_crt_t | _tls_load_cert_x509 (xmpp_conn_t *conn)
static gnutls_x509_crt_t | _tls_load_cert_p12 (xmpp_conn_t *conn)
static gnutls_x509_crt_t | _tls_load_cert (xmpp_conn_t *conn)
static void | _tls_free_cert (xmpp_conn_t *conn, gnutls_x509_crt_t cert)
static int | _tls_get_id_on_xmppaddr (xmpp_conn_t *conn, gnutls_x509_crt_t cert, unsigned int n, char **ret)
static int | _tls_id_on_xmppaddr (xmpp_conn_t *conn, gnutls_x509_crt_t cert, unsigned int n, char **ret)
char * | tls_id_on_xmppaddr (xmpp_conn_t *conn, unsigned int n)
| Search through the SubjectAlternativeNames and return the next id-on-xmppAddr element starting from n.
unsigned int | tls_id_on_xmppaddr_num (xmpp_conn_t *conn)
static xmpp_tlscert_t * | _x509_to_tlscert (xmpp_ctx_t *ctx, gnutls_x509_crt_t cert)
static int | _tls_verify (gnutls_session_t session)
tls_t * | tls_new (xmpp_conn_t *conn)
void | tls_free (tls_t *tls)
xmpp_tlscert_t * | tls_peer_cert (xmpp_conn_t *conn)
int | tls_set_credentials (tls_t *tls, const char *cafilename)
int | tls_init_channel_binding (tls_t *tls, const char **binding_prefix, size_t *binding_prefix_len)
const void * | tls_get_channel_binding_data (tls_t *tls, size_t *size)
int | tls_start (tls_t *tls)
int | tls_stop (tls_t *tls)
int | tls_error (struct conn_interface *intf)
int | tls_is_recoverable (struct conn_interface *intf, int error)
int | tls_pending (struct conn_interface *intf)
int | tls_read (struct conn_interface *intf, void *buff, size_t len)
int | tls_write (struct conn_interface *intf, const void *buff, size_t len)
int | tls_clear_pending_write (struct conn_interface *intf)

## Detailed Description

TLS implementation with GNUTLS.

## Macro Definition Documentation

## GNUTLS_CB_TLS_EXPORTER

#define GNUTLS_CB_TLS_EXPORTER 3

## Function Documentation

## tls_initialize()

void tls_initialize | ( | void |  | ) |

## tls_shutdown()

void tls_shutdown | ( | void |  | ) |

## _tls_password_callback()

int _tls_password_callback | ( | void * | userdata,
|  | int | attempt,
|  | const char * | token_url,
|  | const char * | token_label,
|  | unsigned int | flags,
|  | char * | pin,
|  | size_t | pin_max )

static

## _tls_load_cert_x509()

gnutls_x509_crt_t _tls_load_cert_x509 | ( | xmpp_conn_t * | conn | ) |

static

## _tls_load_cert_p12()

gnutls_x509_crt_t _tls_load_cert_p12 | ( | xmpp_conn_t * | conn | ) |

static

## _tls_load_cert()

gnutls_x509_crt_t _tls_load_cert | ( | xmpp_conn_t * | conn | ) |

static

## _tls_free_cert()

void _tls_free_cert | ( | xmpp_conn_t * | conn,
|  | gnutls_x509_crt_t | cert )

static

## _tls_get_id_on_xmppaddr()

int _tls_get_id_on_xmppaddr | ( | xmpp_conn_t * | conn,
|  | gnutls_x509_crt_t | cert,
|  | unsigned int | n,
|  | char ** | ret )

static

## _tls_id_on_xmppaddr()

int _tls_id_on_xmppaddr | ( | xmpp_conn_t * | conn,
|  | gnutls_x509_crt_t | cert,
|  | unsigned int | n,
|  | char ** | ret )

static

## tls_id_on_xmppaddr()

char * tls_id_on_xmppaddr | ( | xmpp_conn_t * | conn,
|  | unsigned int | n )

Search through the SubjectAlternativeNames and return the next id-on-xmppAddr element starting from n.

## tls_id_on_xmppaddr_num()

unsigned int tls_id_on_xmppaddr_num | ( | xmpp_conn_t * | conn | ) |

## _x509_to_tlscert()

xmpp_tlscert_t * _x509_to_tlscert | ( | xmpp_ctx_t * | ctx,
|  | gnutls_x509_crt_t | cert )

static

## _tls_verify()

int _tls_verify | ( | gnutls_session_t | session | ) |

static

## tls_new()

tls_t * tls_new | ( | xmpp_conn_t * | conn | ) |

## tls_free()

void tls_free | ( | tls_t * | tls | ) |

## tls_peer_cert()

xmpp_tlscert_t * tls_peer_cert | ( | xmpp_conn_t * | conn | ) |

## tls_set_credentials()

int tls_set_credentials | ( | tls_t * | tls,
|  | const char * | cafilename )

## tls_init_channel_binding()

int tls_init_channel_binding | ( | tls_t * | tls,
|  | const char ** | binding_prefix,
|  | size_t * | binding_prefix_len )

## tls_get_channel_binding_data()

const void * tls_get_channel_binding_data | ( | tls_t * | tls,
|  | size_t * | size )

## tls_start()

int tls_start | ( | tls_t * | tls | ) |

## tls_stop()

int tls_stop | ( | tls_t * | tls | ) |

## tls_error()

int tls_error | ( | struct conn_interface * | intf | ) |

## tls_is_recoverable()

int tls_is_recoverable | ( | struct conn_interface * | intf,
|  | int | error )

## tls_pending()

int tls_pending | ( | struct conn_interface * | intf | ) |

## tls_read()

int tls_read | ( | struct conn_interface * | intf,
|  | void * | buff,
|  | size_t | len )

## tls_write()

int tls_write | ( | struct conn_interface * | intf,
|  | const void * | buff,
|  | size_t | len )

## tls_clear_pending_write()

int tls_clear_pending_write | ( | struct conn_interface * | intf | ) |