| =pod |
| |
| =head1 NAME |
| |
| PKCS12_create - create a PKCS#12 structure |
| |
| =head1 SYNOPSIS |
| |
| #include <openssl/pkcs12.h> |
| |
| PKCS12 *PKCS12_create(char *pass, char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, |
| int nid_key, int nid_cert, int iter, int mac_iter, int keytype); |
| |
| =head1 DESCRIPTION |
| |
| PKCS12_create() creates a PKCS#12 structure. |
| |
| B<pass> is the passphrase to use. B<name> is the B<friendlyName> to use for |
| the supplied certificate and key. B<pkey> is the private key to include in |
| the structure and B<cert> its corresponding certificates. B<ca>, if not B<NULL> |
| is an optional set of certificates to also include in the structure. |
| |
| B<nid_key> and B<nid_cert> are the encryption algorithms that should be used |
| for the key and certificate respectively. B<iter> is the encryption algorithm |
| iteration count to use and B<mac_iter> is the MAC iteration count to use. |
| B<keytype> is the type of key. |
| |
| =head1 NOTES |
| |
| The parameters B<nid_key>, B<nid_cert>, B<iter>, B<mac_iter> and B<keytype> |
| can all be set to zero and sensible defaults will be used. |
| |
| These defaults are: 40 bit RC2 encryption for certificates, triple DES |
| encryption for private keys, a key iteration count of PKCS12_DEFAULT_ITER |
| (currently 2048) and a MAC iteration count of 1. |
| |
| The default MAC iteration count is 1 in order to retain compatibility with |
| old software which did not interpret MAC iteration counts. If such compatibility |
| is not required then B<mac_iter> should be set to PKCS12_DEFAULT_ITER. |
| |
| B<keytype> adds a flag to the store private key. This is a non standard extension |
| that is only currently interpreted by MSIE. If set to zero the flag is omitted, |
| if set to B<KEY_SIG> the key can be used for signing only, if set to B<KEY_EX> |
| it can be used for signing and encryption. This option was useful for old |
| export grade software which could use signing only keys of arbitrary size but |
| had restrictions on the permissible sizes of keys which could be used for |
| encryption. |
| |
| If a certificate contains an B<alias> or B<keyid> then this will be |
| used for the corresponding B<friendlyName> or B<localKeyID> in the |
| PKCS12 structure. |
| |
| Either B<pkey>, B<cert> or both can be B<NULL> to indicate that no key or |
| certificate is required. In previous versions both had to be present or |
| a fatal error is returned. |
| |
| B<nid_key> or B<nid_cert> can be set to -1 indicating that no encryption |
| should be used. |
| |
| B<mac_iter> can be set to -1 and the MAC will then be omitted entirely. |
| |
| =head1 SEE ALSO |
| |
| L<d2i_PKCS12(3)> |
| |
| =cut |