Manual Page Result
0
Command: PKCS8_pkey_set0 | Section: 3 | Source: OpenBSD | File: PKCS8_pkey_set0.3
PKCS8_PKEY_SET0(3) FreeBSD Library Functions Manual PKCS8_PKEY_SET0(3)
NAME
PKCS8_pkey_set0, PKCS8_pkey_get0, PKCS8_pkey_add1_attr_by_NID,
PKCS8_pkey_get0_attrs - change and inspect PKCS#8 PrivateKeyInfo objects
SYNOPSIS
#include <openssl/x509.h>
int
PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *keyinfo, ASN1_OBJECT *aobj,
int version, int ptype, void *pval, unsigned char *data, int len);
int
PKCS8_pkey_get0(const ASN1_OBJECT **paobj, const unsigned char **pdata,
int *plen, const X509_ALGOR **palgor,
const PKCS8_PRIV_KEY_INFO *keyinfo);
int
PKCS8_pkey_add1_attr_by_NID(PKCS8_PRIV_KEY_INFO *keyinfo, int nid,
int type, const unsigned char *data, int len);
const STACK_OF(X509_ATTRIBUTE) *
PKCS8_pkey_get0_attrs(const PKCS8_PRIV_KEY_INFO *keyinfo);
DESCRIPTION
PKCS8_pkey_set0() initializes the keyinfo object. The algorithm is set
to aobj with the associated parameter type ptype and parameter value pval
using X509_ALGOR_set0(3), replacing any previous information about the
algorithm. Unless data is NULL, the encoded private key is set to the
len bytes starting at data using ASN1_STRING_set0(3), not performing any
validation. If data is NULL, the key data remains unchanged. If the
version argument is greater than or equal to 0, it replaces any existing
version; otherwise, the version remains unchanged. If keyinfo contains
any attributes, they remain unchanged.
PKCS8_pkey_get0() retrieves some information from the keyinfo object.
Internal pointers to the algorithm OID, the AlgorithmIdentifier, and the
encoded private key are stored in *paobj, *palgor, and *pdata,
respectively. NULL pointers can be passed for any of these three
arguments if the respective information is not needed. Unless pdata is
NULL, *plen is set to the number of bytes in *pdata.
PKCS8_pkey_add1_attr_by_NID() creates a new X.501 Attribute object using
X509_ATTRIBUTE_create_by_NID(3) and appends it to the attributes of
keyinfo.
RETURN VALUES
PKCS8_pkey_set0() and PKCS8_pkey_add1_attr_by_NID() return 1 for success
or 0 for failure.
PKCS8_pkey_get0() always returns 1.
PKCS8_pkey_get0_attrs() returns an internal pointer to the array of
attributes associated with keyinfo or NULL if no attributes are set.
SEE ALSO
ASN1_STRING_set0(3), EVP_PKCS82PKEY(3), OBJ_nid2obj(3),
PKCS8_PRIV_KEY_INFO_new(3), STACK_OF(3), X509_ALGOR_new(3),
X509_ATTRIBUTE_create_by_NID(3), X509_ATTRIBUTE_new(3)
HISTORY
PKCS8_pkey_set0() and PKCS8_pkey_get0() first appeared in OpenSSL 1.0.0
and have been available since OpenBSD 4.9.
PKCS8_pkey_add1_attr_by_NID() and PKCS8_pkey_get0_attrs() first appeared
in OpenSSL 1.1.0 and have been available since OpenBSD 6.4.
FreeBSD 14.1-RELEASE-p8 September 2, 2024 FreeBSD 14.1-RELEASE-p8