B2I_PVK_BIO_EX(3ossl)

πŸ“¦
version 15.1 Β· 2 versions
, in freebsd 15.1

✨ NAME ✨

okay bestie, this is the B2I_PVK_BIO_EX(3ossl) page πŸ’… and it’s all about b2i_PVK_bio, b2i_PVK_bio_ex, i2b_PVK_bio, and i2b_PVK_bio_ex β€” the 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 ✨


Copyright 2021 The OpenSSL Project Authors. All Rights Reserved. 🌸

Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at <https://www.openssl.org/source/license.html> πŸ’œ


mwah πŸ’‹ β€” this iconic little page is from OpenSSL 3.5.6, dated 2026-04-07 🫢✨

πŸ“¦ where this page comes from