SSL_NEW(3) | Library Functions Manual | SSL_NEW(3)

# NAME

`SSL_new`, `SSL_up_ref` — create a new SSL structure for a connection

# SYNOPSIS

library “libssl” libcrypto
`#include <openssl/ssl.h>`

SSL *
`SSL_new`(SSL_CTX *ctx);

int
`SSL_up_ref`(SSL *ssl);

# DESCRIPTION

`SSL_new`() creates a new SSL structure which is needed to hold the data for a TLS/SSL connection. The new structure inherits the settings of the underlying context ctx: connection method, options, verification settings, timeout settings, security level. The reference count of the new structure is set to 1.

`SSL_up_ref`() increments the reference count of ssl by 1.

# RETURN VALUES

The following return values can occur:

`NULL`
  The creation of a new SSL structure failed. Check the error stack to find out the reason.
Pointer to an SSL structure
  The return value points to an allocated SSL structure.

`SSL_up_ref`() returns 1 for success or 0 for failure.

# SEE ALSO

ssl(3), SSL_clear(3), SSL_CTX_set_options(3), SSL_CTX_set_security_level(3), SSL_free(3), SSL_get_SSL_CTX(3)

# HISTORY

`SSL_new`() appeared in SSLeay 0.4 or earlier and has been available since OpenBSD 2.4.

`SSL_up_ref`() first appeared in OpenSSL 1.1.0 and has been available since OpenBSD 6.3.

June 8, 2025 | Debian