5 PKCS12_SAFEBAG_create_cert, PKCS12_SAFEBAG_create_crl,
6 PKCS12_SAFEBAG_create_secret, PKCS12_SAFEBAG_create0_p8inf,
7 PKCS12_SAFEBAG_create0_pkcs8, PKCS12_SAFEBAG_create_pkcs8_encrypt,
8 PKCS12_SAFEBAG_create_pkcs8_encrypt_ex - Create PKCS#12 safeBag objects
12 #include <openssl/pkcs12.h>
14 PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_cert(X509 *x509);
15 PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_crl(X509_CRL *crl);
16 PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_secret(int type, int vtype,
17 const unsigned char* value,
19 PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_p8inf(PKCS8_PRIV_KEY_INFO *p8);
20 PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_pkcs8(X509_SIG *p8);
21 PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_pkcs8_encrypt(int pbe_nid,
25 int saltlen, int iter,
26 PKCS8_PRIV_KEY_INFO *p8inf);
27 PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_pkcs8_encrypt_ex(int pbe_nid,
31 int saltlen, int iter,
32 PKCS8_PRIV_KEY_INFO *p8inf,
38 PKCS12_SAFEBAG_create_cert() creates a new B<PKCS12_SAFEBAG> of type B<NID_certBag>
39 containing the supplied certificate.
41 PKCS12_SAFEBAG_create_crl() creates a new B<PKCS12_SAFEBAG> of type B<NID_crlBag>
42 containing the supplied crl.
44 PKCS12_SAFEBAG_create_secret() creates a new B<PKCS12_SAFEBAG> of type
45 corresponding to a PKCS#12 B<secretBag>. The B<secretBag> contents are tagged as
46 I<type> with an ASN1 value of type I<vtype> constructed using the bytes in
47 I<value> of length I<len>.
49 PKCS12_SAFEBAG_create0_p8inf() creates a new B<PKCS12_SAFEBAG> of type B<NID_keyBag>
50 containing the supplied PKCS8 structure.
52 PKCS12_SAFEBAG_create0_pkcs8() creates a new B<PKCS12_SAFEBAG> of type
53 B<NID_pkcs8ShroudedKeyBag> containing the supplied PKCS8 structure.
55 PKCS12_SAFEBAG_create_pkcs8_encrypt() creates a new B<PKCS12_SAFEBAG> of type
56 B<NID_pkcs8ShroudedKeyBag> by encrypting the supplied PKCS8 I<p8inf>.
57 If I<pbe_nid> is 0, a default encryption algorithm is used. I<pass> is the
58 passphrase and I<iter> is the iteration count. If I<iter> is zero then a default
59 value of 2048 is used. If I<salt> is NULL then a salt is generated randomly.
61 PKCS12_SAFEBAG_create_pkcs8_encrypt_ex() is identical to PKCS12_SAFEBAG_create_pkcs8_encrypt()
62 but allows for a library context I<ctx> and property query I<propq> to be used to select
63 algorithm implementations.
67 PKCS12_SAFEBAG_create_pkcs8_encrypt() makes assumptions regarding the encoding of the given pass
69 See L<passphrase-encoding(7)> for more information.
71 PKCS12_SAFEBAG_create_secret() was added in OpenSSL 3.0.
75 All of these functions return a valid B<PKCS12_SAFEBAG> structure or NULL if an error occurred.
79 IETF RFC 7292 (L<https://tools.ietf.org/html/rfc7292>)
84 L<PKCS12_add_safe(3)>,
85 L<PKCS12_add_safes(3)>
89 PKCS12_SAFEBAG_create_pkcs8_encrypt_ex() was added in OpenSSL 3.0.
93 Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved.
95 Licensed under the Apache License 2.0 (the "License"). You may not use
96 this file except in compliance with the License. You can obtain a copy
97 in the file LICENSE in the source distribution or at
98 L<https://www.openssl.org/source/license.html>.