Rename OSSL_SERIALIZER / OSSL_DESERIALIZER to OSSL_ENCODE / OSSL_DECODE
[openssl.git] / doc / man3 / PKCS12_add_cert.pod
1 =pod
2
3 =head1 NAME
4
5 PKCS12_add_cert, PKCS12_add_key,
6 PKCS12_add_secret - Add an object to a set of PKCS#12 safeBags
7
8 =head1 SYNOPSIS
9
10  #include <openssl/pkcs12.h>
11
12  PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert);
13  PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags,
14                                EVP_PKEY *key, int key_usage, int iter,
15                                int key_nid, const char *pass);
16  PKCS12_SAFEBAG *PKCS12_add_secret(STACK_OF(PKCS12_SAFEBAG) **pbags,
17                                   int nid_type, const unsigned char *value, int len);
18
19 =head1 DESCRIPTION
20
21 These functions create a new B<PKCS12_SAFEBAG> and add it to the set of safeBags
22 in I<pbags>.
23
24 PKCS12_add_cert() creates a PKCS#12 certBag containing the supplied
25 certificate and adds this to the set of PKCS#12 safeBags.
26
27 PKCS12_add_key() creates a PKCS#12 keyBag (unencrypted) or a pkcs8shroudedKeyBag
28 (encrypted) containing the supplied B<EVP_PKEY> and adds this to the set of PKCS#12
29 safeBags. If I<key_nid> is not -1 then the key is encrypted with the supplied
30 algorithm, using I<pass> as the passphrase and I<iter> as the iteration count. If
31 I<iter> is zero then a default value for iteration count of 2048 is used.
32
33 PKCS12_add_secret() creates a PKCS#12 secretBag with an OID corresponding to
34 the supplied B<nid_type> containing the supplied value as an ASN1 octet string.
35 This is then added to the set of PKCS#12 safeBags.
36
37 =head1 NOTES
38
39 If a certificate contains an B<alias> or a B<keyid> then this will be
40 used for the corresponding B<friendlyName> or B<localKeyID> in the
41 PKCS12 structure.
42
43 PKCS12_add_key() makes assumptions regarding the encoding of the given pass
44 phrase.
45 See L<passphrase-encoding(7)> for more information.
46
47 PKCS12_add_secret() was added in OpenSSL 3.0.
48
49 =head1 RETURN VALUES
50
51 A valid B<PKCS12_SAFEBAG> structure or NULL if an error occurred.
52
53 =head1 SEE ALSO
54
55 L<PKCS12_create(3)>
56
57 =head1 COPYRIGHT
58
59 Copyright 2020 The OpenSSL Project Authors. All Rights Reserved.
60
61 Licensed under the Apache License 2.0 (the "License").  You may not use
62 this file except in compliance with the License.  You can obtain a copy
63 in the file LICENSE in the source distribution or at
64 L<https://www.openssl.org/source/license.html>.
65
66 =cut