logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

tls_client, tls_server, tls_configure, tls_reset, tls_free — configure a TLS connection

Authors

       Joel Sing <jsing@openbsd.org>

Debian                                           August 12, 2017                                   TLS_CLIENT(3)

Description

       A  TLS  connection is represented as a structtls object called a “context”.  A new context is created by
       either the tls_client() or  tls_server()  functions.   tls_client()  is  used  in  TLS  client  programs,
       tls_server() in TLS server programs.

       The  context can then be configured with the function tls_configure().  The same tls_config object can be
       used to configure multiple contexts.

       After  configuration,  tls_connect(3)  can  be  called  on  objects  created   with   tls_client(),   and
       tls_accept_socket(3) on objects created with tls_server().

       After  use,  a  TLS context should be closed with tls_close(3), and then freed by calling tls_free().  If
       tls_free() is called with an argument of NULL, no action occurs.

       A TLS context can be reset by calling tls_reset(), allowing for it to be  reused.   This  is  essentially
       equivalent  to  calling  tls_free(),  followed by a call to the same function that was used to originally
       allocate the TLS context.

History

       These functions appeared in OpenBSD 5.6 and got their final names in OpenBSD 5.7.

Name

       tls_client, tls_server, tls_configure, tls_reset, tls_free — configure a TLS connection

Return Values

tls_client() and tls_server() return NULL on error or an out of memory condition.

       tls_configure() returns 0 on success or -1 on error.

See Also

tls_accept_socket(3), tls_config_new(3), tls_connect(3), tls_init(3)

Synopsis

#include<tls.h>structtls*tls_client(void);

       structtls*tls_server(void);

       inttls_configure(structtls*ctx, structtls_config*config);

       voidtls_free(structtls*ctx);

       voidtls_reset(structtls*ctx);

See Also