| 
| static const unsigned char *  | ASN1_STRING_get0_data (ASN1_STRING *asn1) | 
|   | 
| static int  | SSL_CTX_use_cert_and_key (SSL_CTX *ctx, X509 *x509, EVP_PKEY *privatekey, STACK_OF(X509) *chain, int override) | 
|   | 
| static int  | GENERAL_NAME_get0_otherName (const GENERAL_NAME *gen, ASN1_OBJECT **poid, ASN1_TYPE **pvalue) | 
|   | 
| static void  | _tls_sock_wait (tls_t *tls, int error) | 
|   | 
| static const char *  | _tls_error_str (int error, const char **tbl, size_t tbl_size) | 
|   | 
| static void  | _tls_set_error (tls_t *tls, int error) | 
|   | 
| static void  | _tls_log_error (xmpp_ctx_t *ctx) | 
|   | 
| static void  | _tls_dump_cert_info (tls_t *tls) | 
|   | 
| static X509 *  | _tls_cert_read (xmpp_conn_t *conn) | 
|   | 
| static X509 *  | _tls_cert_read_p12 (xmpp_conn_t *conn, EVP_PKEY **pkey, STACK_OF(X509) **ca) | 
|   | 
| static int  | _tls_xaddr_nid (void) | 
|   | 
| static int  | _tls_xmppaddr_to_string (GENERAL_NAME *name, char **res) | 
|   | Convert GENERAL_NAME* to a string.  
  | 
|   | 
| static int  | _tls_dnsname_to_string (GENERAL_NAME *name, char **res) | 
|   | 
| static GENERAL_NAMES *  | _tls_conn_get_names (xmpp_conn_t *conn) | 
|   | 
| static GENERAL_NAMES *  | _tls_cert_get_names (X509 *client_cert) | 
|   | 
| void  | tls_initialize (void) | 
|   | 
| void  | tls_shutdown (void) | 
|   | 
| int  | tls_error (struct conn_interface *intf) | 
|   | 
| 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 int  | _convert_ASN1TIME (ASN1_TIME *ansi_time, char *buf, size_t len) | 
|   | 
| static char *  | _asn1_time_to_str (const xmpp_ctx_t *ctx, ASN1_TIME *t) | 
|   | 
| static char *  | _get_fingerprint (const xmpp_ctx_t *ctx, X509 *err_cert, xmpp_cert_element_t el) | 
|   | 
| static char *  | _get_alg (const xmpp_ctx_t *ctx, X509 *err_cert, xmpp_cert_element_t el) | 
|   | 
| static xmpp_tlscert_t *  | _x509_to_tlscert (xmpp_ctx_t *ctx, X509 *cert) | 
|   | 
| static int  | _tls_verify (int preverify_ok, X509_STORE_CTX *x509_ctx) | 
|   | 
| static int  | _tls_password_callback (char *buf, int size, int rwflag, void *u) | 
|   | 
| 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_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) | 
|   | 
| static X509 *  | _tls_cert_read_x509 (xmpp_conn_t *conn) | 
|   | 
| static int  | _tls_parse_p12 (PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, STACK_OF(X509) **ca) | 
|   | 
TLS implementation with OpenSSL.