tls_conn_alpn_selected3
Inspect an established tls connection
Part of tls_conn_version(3).
Usage
const char
*
const char
*
int
const char
*
const char
*
int
int
int
const uint8_t
*
const char
*
const char
*
const char
*
time_t
time_t
Overview
These functions return information about a TLS connection and will only succeed after the handshake is complete (the connection information applies to both clients and servers, unless noted otherwise):
tls_conn_version() returns a string corresponding to a TLS version negotiated with the peer connected to ctx.
tls_conn_cipher() returns a string corresponding to the cipher suite negotiated with the peer connected to ctx.
tls_conn_cipher_strength() returns the strength in bits for the symmetric cipher that is being used with the peer connected to ctx.
tls_conn_alpn_selected() returns a string that specifies the ALPN protocol selected for use with the peer connected to ctx. If no protocol was selected then NULL is returned.
tls_conn_servername() returns a string corresponding to the servername that the client connected to ctx requested by sending a TLS Server Name Indication extension (server only).
tls_conn_session_resumed() indicates whether a TLS session has been resumed during the handshake with the server connected to ctx (client only).
tls_peer_cert_provided() checks if the peer of ctx has provided a certificate.
tls_peer_cert_contains_name() checks if the peer of a TLS ctx has provided a certificate that contains a SAN or CN that matches name.
tls_peer_cert_chain_pem() returns a pointer to memory containing a PEM-encoded certificate chain for the peer certificate from ctx.
tls_peer_cert_subject() returns a string corresponding to the subject of the peer certificate from ctx.
tls_peer_cert_issuer() returns a string corresponding to the issuer of the peer certificate from ctx.
tls_peer_cert_hash() returns a string corresponding to a hash of the raw peer certificate from ctx prefixed by a hash name followed by a colon. The hash currently used is SHA256, though this could change in the future. The hash string for a certificate in file mycert.crt can be generated using the commands:
h=$(openssl x509 -outform der -in mycert.crt | sha256)
printf "SHA256:${h}\n"
tls_peer_cert_notbefore() returns the time corresponding to the start of the validity period of the peer certificate from ctx.
tls_peer_cert_notafter() returns the time corresponding to the end of the validity period of the peer certificate from ctx.
Return values
The tls_conn_session_resumed() function returns 1 if a TLS session was resumed or 0 if it was not.
The tls_peer_cert_provided() and tls_peer_cert_contains_name() functions return 1 if the check succeeds or 0 if it does not.
tls_peer_cert_notbefore() and tls_peer_cert_notafter() return a time in epoch-seconds on success or -1 on error.
The functions that return a pointer return NULL on error or an out of memory condition.