SSL_DUP(3) | Library Functions Manual | SSL_DUP(3)

# NAME

`SSL_dup` — deep copy of an SSL object

# SYNOPSIS

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

SSL *
`SSL_dup`(SSL *ssl);

# DESCRIPTION

`SSL_dup`() constructs a new SSL object in the same context as ssl and copies much of the contained data from ssl to the new SSL object, but many fields, for example tlsext data, are not copied.

As an exception from deep copying, if a session is already established, the new object shares ssl->cert with the original object.

# RETURN VALUES

`SSL_dup`() returns the new SSL object or `NULL` on failure.

# SEE ALSO

ssl(3), SSL_clear(3), SSL_copy_session_id(3), SSL_free(3), SSL_new(3), SSL_set_security_level(3)

# HISTORY

`SSL_dup`() first appeared in SSLeay 0.8.0 and has been available since OpenBSD 2.4.

June 8, 2025 | Debian