]>
Commit | Line | Data |
---|---|---|
9de6bb8a DSH |
1 | =pod |
2 | ||
3 | =head1 NAME | |
4 | ||
5 | d2i_PKCS8PrivateKey_bio, d2i_PKCS8PrivateKey_fp, | |
6 | i2d_PKCS8PrivateKey_bio, i2d_PKCS8PrivateKey_fp, | |
7 | i2d_PKCS8PrivateKey_nid_bio, i2d_PKCS8PrivateKey_nid_fp - PKCS#8 format private key functions | |
8 | ||
9 | =head1 SYNOPSIS | |
10 | ||
11 | #include <openssl/evp.h> | |
12 | ||
13 | EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, void *u); | |
14 | EVP_PKEY *d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, void *u); | |
15 | ||
9fdcc21f | 16 | int i2d_PKCS8PrivateKey_bio(BIO *bp, const EVP_PKEY *x, const EVP_CIPHER *enc, |
e9b77246 BB |
17 | char *kstr, int klen, |
18 | pem_password_cb *cb, void *u); | |
9de6bb8a | 19 | |
9fdcc21f | 20 | int i2d_PKCS8PrivateKey_fp(FILE *fp, const EVP_PKEY *x, const EVP_CIPHER *enc, |
e9b77246 BB |
21 | char *kstr, int klen, |
22 | pem_password_cb *cb, void *u); | |
9de6bb8a | 23 | |
9fdcc21f | 24 | int i2d_PKCS8PrivateKey_nid_bio(BIO *bp, const EVP_PKEY *x, int nid, |
e9b77246 BB |
25 | char *kstr, int klen, |
26 | pem_password_cb *cb, void *u); | |
9de6bb8a | 27 | |
9fdcc21f | 28 | int i2d_PKCS8PrivateKey_nid_fp(FILE *fp, const EVP_PKEY *x, int nid, |
e9b77246 BB |
29 | char *kstr, int klen, |
30 | pem_password_cb *cb, void *u); | |
9de6bb8a DSH |
31 | |
32 | =head1 DESCRIPTION | |
33 | ||
34 | The PKCS#8 functions encode and decode private keys in PKCS#8 format using both | |
35 | PKCS#5 v1.5 and PKCS#5 v2.0 password based encryption algorithms. | |
36 | ||
37 | Other than the use of DER as opposed to PEM these functions are identical to the | |
8162f6f5 | 38 | corresponding B<PEM> function as described in L<PEM_read_PrivateKey(3)>. |
9de6bb8a DSH |
39 | |
40 | =head1 NOTES | |
41 | ||
9de6bb8a DSH |
42 | These functions are currently the only way to store encrypted private keys using DER format. |
43 | ||
44 | Currently all the functions use BIOs or FILE pointers, there are no functions which | |
45 | work directly on memory: this can be readily worked around by converting the buffers | |
9b86974e | 46 | to memory BIOs, see L<BIO_s_mem(3)> for details. |
9de6bb8a | 47 | |
84814344 RL |
48 | These functions make no assumption regarding the pass phrase received from the |
49 | password callback. | |
50 | It will simply be treated as a byte sequence. | |
51 | ||
1f13ad31 PY |
52 | =head1 RETURN VALUES |
53 | ||
54 | d2i_PKCS8PrivateKey_bio() and d2i_PKCS8PrivateKey_fp() return a valid B<EVP_PKEY> | |
55 | structure or NULL if an error occurred. | |
56 | ||
57 | i2d_PKCS8PrivateKey_bio(), i2d_PKCS8PrivateKey_fp(), i2d_PKCS8PrivateKey_nid_bio() | |
58 | and i2d_PKCS8PrivateKey_nid_fp() return 1 on success or 0 on error. | |
59 | ||
9de6bb8a DSH |
60 | =head1 SEE ALSO |
61 | ||
84814344 RL |
62 | L<PEM_read_PrivateKey(3)>, |
63 | L<passphrase-encoding(7)> | |
9de6bb8a | 64 | |
e2f92610 RS |
65 | =head1 COPYRIGHT |
66 | ||
61f805c1 | 67 | Copyright 2002-2018 The OpenSSL Project Authors. All Rights Reserved. |
e2f92610 | 68 | |
4746f25a | 69 | Licensed under the Apache License 2.0 (the "License"). You may not use |
e2f92610 RS |
70 | this file except in compliance with the License. You can obtain a copy |
71 | in the file LICENSE in the source distribution or at | |
72 | L<https://www.openssl.org/source/license.html>. | |
73 | ||
74 | =cut |