PKCS12_ITEM_DECRYPT_D2I(3ossl)

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

✨ PKCS12_ITEM_DECRYPT_D2I ✨

okay bestie, you're in the 3ossl manual page and it's giving β€œPKCS12 item encrypt/decrypt functions” energy πŸ’… this title is a whole mouthful, but the functions are here to handle encrypted ASN.1 objects for you ✨

🌸 NAME 🌸

PKCS12_item_decrypt_d2i, PKCS12_item_decrypt_d2i_ex, PKCS12_item_i2d_encrypt, PKCS12_item_i2d_encrypt_ex β€” the PKCS12 item encrypt/decrypt functions, no cap 🫢

πŸ¦‹ SYNOPSIS πŸ¦‹

#include <openssl/pkcs12.h>

void *PKCS12_item_decrypt_d2i(const X509_ALGOR *algor, const ASN1_ITEM *it,
                              const char *pass, int passlen,
                              const ASN1_OCTET_STRING *oct, int zbuf);
void *PKCS12_item_decrypt_d2i_ex(const X509_ALGOR *algor, const ASN1_ITEM *it,
                                 const char *pass, int passlen,
                                 const ASN1_OCTET_STRING *oct, int zbuf,
                                 OSSL_LIB_CTX *libctx,
                                 const char *propq);
ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt(X509_ALGOR *algor,
                                           const ASN1_ITEM *it,
                                           const char *pass, int passlen,
                                           void *obj, int zbuf);
ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt_ex(X509_ALGOR *algor,
                                              const ASN1_ITEM *it,
                                              const char *pass, int passlen,
                                              void *obj, int zbuf,
                                              OSSL_LIB_CTX *ctx,
                                              const char *propq);

πŸŽ€ DESCRIPTION πŸŽ€

PKCS12_item_decrypt_d2i() and PKCS12_item_decrypt_d2i_ex() decrypt an octet string containing an ASN.1 encoded object using the algorithm algor and password pass of length passlen. If zbuf is nonzero then the output buffer will be zeroed after the decrypt πŸ’–

PKCS12_item_i2d_encrypt() and PKCS12_item_i2d_encrypt_ex() encrypt an ASN.1 object it using the algorithm algor and password pass of length passlen, returning an encoded object in obj. If zbuf is nonzero then the buffer containing the input encoding will be zeroed after the encrypt 🌸

Functions ending in _ex() allow for a library context ctx and property query propq to be used to select algorithm implementations πŸ‘‘


bestie note: zbuf is the β€œplease zero the buffer after we're done” switch β€” it's not a vibe, it's a security-ish detail, so don't ignore it 😌

πŸ’œ RETURN VALUES πŸ’œ

  • PKCS12_item_decrypt_d2i() and PKCS12_item_decrypt_d2i_ex() return the decrypted object or NULL if an error occurred.
  • PKCS12_item_i2d_encrypt() and PKCS12_item_i2d_encrypt_ex() return the encrypted data as an ASN.1 Octet String or NULL if an error occurred.

πŸ”₯ SEE ALSO πŸ”₯

🌈 HISTORY 🌈

PKCS12_item_decrypt_d2i_ex() and PKCS12_item_i2d_encrypt_ex() were added in OpenSSL 3.0. iconic behavior, honestly πŸ’…

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.


xoxo, your Unix bestie πŸ’– β€” this page is from source/version 3.5.6, dated 2026-04-07, and yes, the manual name is PKCS12_ITEM_DECRYPT_D2I(3ossl) πŸŽ€

πŸ“¦ where this page comes from