PKCS12_SAFEBAG_CREATE_CERT(3ossl)

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

πŸŽ€ PKCS12_SAFEBAG_CREATE_CERT(3ossl) πŸŽ€

okay bestie, welcome to the (3ossl) manual for the OpenSSL safeBag-building squad. We're making PKCS#12 safeBag objects and it is main character era. No cap. πŸ’…

✨ NAME ✨

Meet the whole glow-up crew: PKCS12_SAFEBAG_create_cert, PKCS12_SAFEBAG_create_crl, PKCS12_SAFEBAG_create_secret, PKCS12_SAFEBAG_create0_p8inf, PKCS12_SAFEBAG_create0_pkcs8, PKCS12_SAFEBAG_create_pkcs8_encrypt, and PKCS12_SAFEBAG_create_pkcs8_encrypt_ex. They create PKCS#12 safeBag objects. 🫢

πŸ“œ SYNOPSIS πŸ“œ

bestie, grab the include and the exact signatures:

#include <openssl/pkcs12.h>

PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_cert(X509 *x509);
PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_crl(X509_CRL *crl);
PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_secret(int type, int vtype,
                                             const unsigned char* value,
                                             int len);
PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_p8inf(PKCS8_PRIV_KEY_INFO *p8);
PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_pkcs8(X509_SIG *p8);
PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_pkcs8_encrypt(int pbe_nid,
                                                    const char *pass,
                                                    int passlen,
                                                    unsigned char *salt,
                                                    int saltlen, int iter,
                                                    PKCS8_PRIV_KEY_INFO *p8inf);
PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_pkcs8_encrypt_ex(int pbe_nid,
                                                       const char *pass,
                                                       int passlen,
                                                       unsigned char *salt,
                                                       int saltlen, int iter,
                                                       PKCS8_PRIV_KEY_INFO *p8inf,
                                                       OSSL_LIB_CTX *ctx,
                                                       const char *propq);

πŸ’– DESCRIPTION πŸ’–

  • PKCS12_SAFEBAG_create_cert() β€” creates a new PKCS12_SAFEBAG of type NID_certBag containing the supplied certificate. Iconic cert-bag behavior. 🌸
  • PKCS12_SAFEBAG_create_crl() β€” creates a new PKCS12_SAFEBAG of type NID_crlBag containing the supplied crl. πŸ’œ
  • PKCS12_SAFEBAG_create_secret() β€” creates a new PKCS12_SAFEBAG of type corresponding to a PKCS#12 secretBag. The secretBag contents are tagged as type with an ASN1 value of type vtype constructed using the bytes in value of length len. Secret-bag realness. πŸŽ€
  • PKCS12_SAFEBAG_create0_p8inf() β€” creates a new PKCS12_SAFEBAG of type NID_keyBag containing the supplied PKCS8 structure. πŸ’–
  • PKCS12_SAFEBAG_create0_pkcs8() β€” creates a new PKCS12_SAFEBAG of type NID_pkcs8ShroudedKeyBag containing the supplied PKCS8 structure. Shrouded, but make it fashion. πŸ¦‹
  • PKCS12_SAFEBAG_create_pkcs8_encrypt() β€” creates a new PKCS12_SAFEBAG of type NID_pkcs8ShroudedKeyBag by encrypting the supplied PKCS8 p8inf. If pbe_nid is 0, a default encryption algorithm is used. pass is the passphrase and iter is the iteration count. If iter is zero then a default value of 2048 is used. If salt is NULL then a salt is generated randomly. Literally the encryption moment. πŸ”₯
  • PKCS12_SAFEBAG_create_pkcs8_encrypt_ex() β€” is identical to PKCS12_SAFEBAG_create_pkcs8_encrypt() but allows for a library context ctx and property query propq to be used to select algorithm implementations. Fancy algorithm-picking energy. ✨

🧚 NOTES 🧚

  • PKCS12_SAFEBAG_create_pkcs8_encrypt() makes assumptions regarding the encoding of the given pass phrase. See passphrase-encoding(7) for more information. ngl, passphrase encoding is a whole vibe. 😭
  • PKCS12_SAFEBAG_create_secret() was added in OpenSSL 3.0. πŸ’œ

πŸ¦‹ RETURN VALUES πŸ¦‹

All of these functions return a valid PKCS12_SAFEBAG structure or NULL if an error occurred. That's the whole mood. πŸ’€

🌈 CONFORMING TO 🌈

IETF RFC 7292 (<https://tools.ietf.org/html/rfc7292>) β€” standards behavior, periodt. πŸ‘‘

🌟 SEE ALSO 🌟

πŸ•°οΈ HISTORY πŸ•°οΈ

PKCS12_SAFEBAG_create_pkcs8_encrypt_ex() was added in OpenSSL 3.0. ✨

Copyright 2019-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>.

β€” signed off with πŸ’– by OpenSSL 3.5.6, dated 2026-04-07, for PKCS12_SAFEBAG_CREATE_CERT(3ossl) 🫢

πŸ“¦ where this page comes from