X509_PKEY_NEW(3)

NAME
X509_PKEY_new, X509_PKEY_free - X.509 private key wrapper object

SYNOPSIS
libcrypto
#include <openssl/x509.h>
X509_PKEY *
X509_PKEY_new(void);
void
X509_PKEY_free(X509_PKEY *wrapper);

DESCRIPTION
X509_PKEY is a reference-counted wrapper object that can store

•   a pointer to an encrypted and ASN.1-encoded private key

•   a pointer to an EVP_PKEY object representing the same key in decrypted form

•   a pointer to an X509_ALGOR object identifying the algorithm used by the key

The object may contain only the encrypted key or only the decrypted key or both.

X509_PKEY is used as a sub-object of the X509_INFO object created by PEM_X509_INFO_read_bio(3) if the PEM file contains any RSA, DSA, or EC PRIVATE KEY object.

X509_PKEY_new() allocates and initializes an empty X509_PKEY object and sets its reference count to 1.

X509_PKEY_free() decrements the reference count of the wrapper object by 1. If the reference count reaches 0, it frees all internal objects allocated by the wrapper as well as the storage needed for the wrapper object itself. If wrapper is a NULL pointer, no action occurs.

RETURN VALUES
X509_PKEY_new() returns a pointer to the new X509_PKEY object or NULL if memory allocation fails.

SEE ALSO
EVP_PKEY_new(3), PEM_X509_INFO_read(3), X509_INFO_new(3)

HISTORY
X509_PKEY_new() and X509_PKEY_free() first appeared in SSLeay 0.6.0 and have been available since OpenBSD 2.4.