NAME
d2i_PKCS8_PRIV_KEY_INFO
,
i2d_PKCS8_PRIV_KEY_INFO
,
d2i_PKCS8_PRIV_KEY_INFO_bio
,
i2d_PKCS8_PRIV_KEY_INFO_bio
,
d2i_PKCS8_PRIV_KEY_INFO_fp
,
i2d_PKCS8_PRIV_KEY_INFO_fp
—
decode and encode PKCS#8 private
key
SYNOPSIS
#include
<openssl/x509.h>
PKCS8_PRIV_KEY_INFO *
d2i_PKCS8_PRIV_KEY_INFO
(PKCS8_PRIV_KEY_INFO
**val_out, const unsigned char **der_in,
long length);
int
i2d_PKCS8_PRIV_KEY_INFO
(PKCS8_PRIV_KEY_INFO
*val_in, unsigned char **der_out);
PKCS8_PRIV_KEY_INFO *
d2i_PKCS8_PRIV_KEY_INFO_bio
(BIO
*in_bio, PKCS8_PRIV_KEY_INFO **val_out);
int
i2d_PKCS8_PRIV_KEY_INFO_bio
(BIO
*out_bio, PKCS8_PRIV_KEY_INFO *val_in);
PKCS8_PRIV_KEY_INFO *
d2i_PKCS8_PRIV_KEY_INFO_fp
(FILE
*in_fp, PKCS8_PRIV_KEY_INFO **val_out);
int
i2d_PKCS8_PRIV_KEY_INFO_fp
(BIO
*out_fp, PKCS8_PRIV_KEY_INFO *val_in);
DESCRIPTION
d2i_PKCS8_PRIV_KEY_INFO
()
and
i2d_PKCS8_PRIV_KEY_INFO
()
decode and encode an ASN.1 PrivateKeyInfo structure
defined in RFC 5208 section 5.
d2i_PKCS8_PRIV_KEY_INFO_bio
(),
i2d_PKCS8_PRIV_KEY_INFO_bio
(),
d2i_PKCS8_PRIV_KEY_INFO_fp
(),
and
i2d_PKCS8_PRIV_KEY_INFO_fp
()
are similar except that they decode or encode using a
BIO or FILE pointer.
For details about the semantics, examples, caveats, and bugs, see ASN1_item_d2i(3).
These functions all use unencrypted DER format. To store private keys in encrypted form, consider d2i_PKCS8PrivateKey_bio(3) or PEM_write_PKCS8PrivateKey(3).
RETURN VALUES
d2i_PKCS8_PRIV_KEY_INFO
(),
d2i_PKCS8_PRIV_KEY_INFO_bio
(), and
d2i_PKCS8_PRIV_KEY_INFO_fp
() return a
PKCS8_PRIV_KEY_INFO object or
NULL
if an error occurs.
i2d_PKCS8_PRIV_KEY_INFO
() returns the
number of bytes successfully encoded or a negative value if an error
occurs.
i2d_PKCS8_PRIV_KEY_INFO_bio
() and
i2d_PKCS8_PRIV_KEY_INFO_fp
() return 1 for success or
0 if an error occurs.
SEE ALSO
ASN1_item_d2i(3), d2i_PKCS8PrivateKey_bio(3), d2i_PrivateKey(3), PEM_write_PKCS8_PRIV_KEY_INFO(3), PKCS8_PRIV_KEY_INFO_new(3)
STANDARDS
RFC 5208: PKCS#8: Private-Key Information Syntax Specification
HISTORY
d2i_PKCS8_PRIV_KEY_INFO
() and
i2d_PKCS8_PRIV_KEY_INFO
() first appeared in OpenSSL
0.9.3. d2i_PKCS8_PRIV_KEY_INFO_bio
(),
i2d_PKCS8_PRIV_KEY_INFO_bio
(),
d2i_PKCS8_PRIV_KEY_INFO_fp
(), and
i2d_PKCS8_PRIV_KEY_INFO_fp
() first appeared in
OpenSSL 0.9.4. All these functions have been available since
OpenBSD 2.6.