PKCS12_pack_p7encdata(3ssl)

PKCS12_pack_p7encdata3ssl

Pack a set of pkcs#12 safebags into a pkcs#7 encrypted data object

Usage

 #include <openssl/pkcs12.h>
 PKCS7 *PKCS12_pack_p7encdata(int pbe_nid, const char *pass, int passlen,
                              unsigned char *salt, int saltlen, int iter,
                              STACK_OF(PKCS12_SAFEBAG) *bags);
 PKCS7 *PKCS12_pack_p7encdata_ex(int pbe_nid, const char *pass, int passlen,
                                 unsigned char *salt, int saltlen, int iter,
                                 STACK_OF(PKCS12_SAFEBAG) *bags,
                                 OSSL_LIB_CTX *ctx, const char *propq);

Overview

PKCS12_pack_p7encdata() generates a PKCS#7 ContentInfo object of encrypted-data type from the set of safeBags bags. The algorithm ID in pbe_nid can be a PKCS#12 or PKCS#5 password based encryption algorithm, or a cipher algorithm. If a cipher algorithm is passed, the PKCS#5 PBES2 algorithm will be used with this cipher as a parameter. The password pass of length passlen, salt salt of length saltlen and iteration count iter are inputs into the encryption operation.

PKCS12_pack_p7encdata_ex() operates similar to the above but allows for a library context ctx and property query propq to be used to select the algorithm implementation.

Return values

A PKCS7 object if successful, or NULL if an error occurred.

Releases

3 releases since Debian 12 (Bookworm); the text changed 2 times.

  1. 12
  2. 13
  3. Arch

Conforming to

IETF RFC 2315 (<https://tools.ietf.org/html/rfc2315>)

History

PKCS12_pack_p7encdata_ex() was added in OpenSSL 3.0.

From openssl 3.6.5-1 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.