---
name: "libressl-SSL_new"
section: "3"
platform: "linux"
package: "libressl"
version: "4.4.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/libressl-SSL_new"
---

# libressl-SSL\_new(3)

create a new SSL structure for a connection

## NAME

**SSL\_new**, **SSL\_up\_ref** – create a new SSL structure for a connection

## SYNOPSIS

SSL Library (libssl, -lssl) 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/3.md), 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.
