b2i_PVK_bio_ex.3ossl - Man Page

Decode and encode functions for reading and writing MSBLOB format private keys

Synopsis

 #include <openssl/pem.h>

 EVP_PKEY *b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u);
 EVP_PKEY *b2i_PVK_bio_ex(BIO *in, pem_password_cb *cb, void *u,
                          OSSL_LIB_CTX *libctx, const char *propq);
 int i2b_PVK_bio(BIO *out, const EVP_PKEY *pk, int enclevel,
                 pem_password_cb *cb, void *u);
 int i2b_PVK_bio_ex(BIO *out, const EVP_PKEY *pk, int enclevel,
                    pem_password_cb *cb, void *u,
                    OSSL_LIB_CTX *libctx, const char *propq);

Description

b2i_PVK_bio_ex() decodes a private key of MSBLOB format read from a BIO. It attempts to automatically determine the key type. If the key is encrypted then cb is called with the user data u in order to obtain a password to decrypt the key. The supplied library context libctx and property query string propq are used in any decrypt operation.

b2i_PVK_bio() does the same as b2i_PVK_bio_ex() except that the default library context and property query string are used.

i2b_PVK_bio_ex() encodes pk using MSBLOB format. If enclevel is 1 then a password obtained via pem_password_cb is used to encrypt the private key. If enclevel is 0 then no encryption is applied. The user data in u is passed to the password callback. The supplied library context libctx and property query string propq are used in any decrypt operation.

i2b_PVK_bio() does the same as i2b_PVK_bio_ex() except that the default library context and property query string are used.

Return Values

The b2i_PVK_bio() and b2i_PVK_bio_ex() functions return a valid EVP_KEY structure or NULL if an error occurs. The error code can be obtained by calling ERR_get_error(3).

i2b_PVK_bio() and i2b_PVK_bio_ex() return the number of bytes successfully encoded or a negative value if an error occurs. The error code can be obtained by calling ERR_get_error(3).

See Also

crypto(7), d2i_PKCS8PrivateKey_bio(3)

History

b2i_PVK_bio_ex() and i2b_PVK_bio_ex() were added in OpenSSL 3.0.

Referenced By

The man pages b2i_PVK_bio.3ossl(3), i2b_PVK_bio.3ossl(3) and i2b_PVK_bio_ex.3ossl(3) are aliases of b2i_PVK_bio_ex.3ossl(3).

2021-09-09 3.0.0 OpenSSL