summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/pem/pem.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/lib/libcrypto/pem/pem.h156
1 files changed, 78 insertions, 78 deletions
diff --git a/src/lib/libcrypto/pem/pem.h b/src/lib/libcrypto/pem/pem.h
index e27440330c..4af2db4b3c 100644
--- a/src/lib/libcrypto/pem/pem.h
+++ b/src/lib/libcrypto/pem/pem.h
@@ -5,21 +5,21 @@
5 * This package is an SSL implementation written 5 * This package is an SSL implementation written
6 * by Eric Young (eay@cryptsoft.com). 6 * by Eric Young (eay@cryptsoft.com).
7 * The implementation was written so as to conform with Netscapes SSL. 7 * The implementation was written so as to conform with Netscapes SSL.
8 * 8 *
9 * This library is free for commercial and non-commercial use as long as 9 * This library is free for commercial and non-commercial use as long as
10 * the following conditions are aheared to. The following conditions 10 * the following conditions are aheared to. The following conditions
11 * apply to all code found in this distribution, be it the RC4, RSA, 11 * apply to all code found in this distribution, be it the RC4, RSA,
12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 12 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
13 * included with this distribution is covered by the same copyright terms 13 * included with this distribution is covered by the same copyright terms
14 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 14 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
15 * 15 *
16 * Copyright remains Eric Young's, and as such any Copyright notices in 16 * Copyright remains Eric Young's, and as such any Copyright notices in
17 * the code are not to be removed. 17 * the code are not to be removed.
18 * If this package is used in a product, Eric Young should be given attribution 18 * If this package is used in a product, Eric Young should be given attribution
19 * as the author of the parts of the library used. 19 * as the author of the parts of the library used.
20 * This can be in the form of a textual message at program startup or 20 * This can be in the form of a textual message at program startup or
21 * in documentation (online or textual) provided with the package. 21 * in documentation (online or textual) provided with the package.
22 * 22 *
23 * Redistribution and use in source and binary forms, with or without 23 * Redistribution and use in source and binary forms, with or without
24 * modification, are permitted provided that the following conditions 24 * modification, are permitted provided that the following conditions
25 * are met: 25 * are met:
@@ -34,10 +34,10 @@
34 * Eric Young (eay@cryptsoft.com)" 34 * Eric Young (eay@cryptsoft.com)"
35 * The word 'cryptographic' can be left out if the rouines from the library 35 * The word 'cryptographic' can be left out if the rouines from the library
36 * being used are not cryptographic related :-). 36 * being used are not cryptographic related :-).
37 * 4. If you include any Windows specific code (or a derivative thereof) from 37 * 4. If you include any Windows specific code (or a derivative thereof) from
38 * the apps directory (application code) you must include an acknowledgement: 38 * the apps directory (application code) you must include an acknowledgement:
39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 39 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
40 * 40 *
41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 41 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 42 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 43 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -49,7 +49,7 @@
49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 49 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 50 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51 * SUCH DAMAGE. 51 * SUCH DAMAGE.
52 * 52 *
53 * The licence and distribution terms for any publically available version or 53 * The licence and distribution terms for any publically available version or
54 * derivative of this code cannot be changed. i.e. this code cannot simply be 54 * derivative of this code cannot be changed. i.e. this code cannot simply be
55 * copied and put under another distribution licence 55 * copied and put under another distribution licence
@@ -139,12 +139,11 @@ extern "C" {
139 139
140 /* Note that this structure is initialised by PEM_SealInit and cleaned up 140 /* Note that this structure is initialised by PEM_SealInit and cleaned up
141 by PEM_SealFinal (at least for now) */ 141 by PEM_SealFinal (at least for now) */
142typedef struct PEM_Encode_Seal_st 142typedef struct PEM_Encode_Seal_st {
143 {
144 EVP_ENCODE_CTX encode; 143 EVP_ENCODE_CTX encode;
145 EVP_MD_CTX md; 144 EVP_MD_CTX md;
146 EVP_CIPHER_CTX cipher; 145 EVP_CIPHER_CTX cipher;
147 } PEM_ENCODE_SEAL_CTX; 146} PEM_ENCODE_SEAL_CTX;
148 147
149/* enc_type is one off */ 148/* enc_type is one off */
150#define PEM_TYPE_ENCRYPTED 10 149#define PEM_TYPE_ENCRYPTED 10
@@ -152,24 +151,22 @@ typedef struct PEM_Encode_Seal_st
152#define PEM_TYPE_MIC_CLEAR 30 151#define PEM_TYPE_MIC_CLEAR 30
153#define PEM_TYPE_CLEAR 40 152#define PEM_TYPE_CLEAR 40
154 153
155typedef struct pem_recip_st 154typedef struct pem_recip_st {
156 {
157 char *name; 155 char *name;
158 X509_NAME *dn; 156 X509_NAME *dn;
159 157
160 int cipher; 158 int cipher;
161 int key_enc; 159 int key_enc;
162 /* char iv[8]; unused and wrong size */ 160 /* char iv[8]; unused and wrong size */
163 } PEM_USER; 161} PEM_USER;
164 162
165typedef struct pem_ctx_st 163typedef struct pem_ctx_st {
166 {
167 int type; /* what type of object */ 164 int type; /* what type of object */
168 165
169 struct { 166 struct {
170 int version; 167 int version;
171 int mode; 168 int mode;
172 } proc_type; 169 } proc_type;
173 170
174 char *domain; 171 char *domain;
175 172
@@ -177,14 +174,14 @@ typedef struct pem_ctx_st
177 int cipher; 174 int cipher;
178 /* unused, and wrong size 175 /* unused, and wrong size
179 unsigned char iv[8]; */ 176 unsigned char iv[8]; */
180 } DEK_info; 177 } DEK_info;
181 178
182 PEM_USER *originator; 179 PEM_USER *originator;
183 180
184 int num_recipient; 181 int num_recipient;
185 PEM_USER **recipient; 182 PEM_USER **recipient;
186 183
187 /* XXX(ben): don#t think this is used! 184 /* XXX(ben): don#t think this is used!
188 STACK *x509_chain; / * certificate chain */ 185 STACK *x509_chain; / * certificate chain */
189 EVP_MD *md; /* signature type */ 186 EVP_MD *md; /* signature type */
190 187
@@ -198,11 +195,10 @@ typedef struct pem_ctx_st
198 /* unused, and wrong size 195 /* unused, and wrong size
199 unsigned char iv[8]; */ 196 unsigned char iv[8]; */
200 197
201
202 int data_enc; /* is the data encrypted */ 198 int data_enc; /* is the data encrypted */
203 int data_len; 199 int data_len;
204 unsigned char *data; 200 unsigned char *data;
205 } PEM_CTX; 201} PEM_CTX;
206 202
207/* These macros make the PEM_read/PEM_write functions easier to maintain and 203/* These macros make the PEM_read/PEM_write functions easier to maintain and
208 * write. Now they are all implemented with either: 204 * write. Now they are all implemented with either:
@@ -223,7 +219,7 @@ typedef struct pem_ctx_st
223type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u)\ 219type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u)\
224{ \ 220{ \
225return PEM_ASN1_read((d2i_of_void *)d2i_##asn1, str,fp,(void **)x,cb,u); \ 221return PEM_ASN1_read((d2i_of_void *)d2i_##asn1, str,fp,(void **)x,cb,u); \
226} 222}
227 223
228#define IMPLEMENT_PEM_write_fp(name, type, str, asn1) \ 224#define IMPLEMENT_PEM_write_fp(name, type, str, asn1) \
229int PEM_write_##name(FILE *fp, type *x) \ 225int PEM_write_##name(FILE *fp, type *x) \
@@ -289,23 +285,23 @@ int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \
289 285
290#define IMPLEMENT_PEM_write(name, type, str, asn1) \ 286#define IMPLEMENT_PEM_write(name, type, str, asn1) \
291 IMPLEMENT_PEM_write_bio(name, type, str, asn1) \ 287 IMPLEMENT_PEM_write_bio(name, type, str, asn1) \
292 IMPLEMENT_PEM_write_fp(name, type, str, asn1) 288 IMPLEMENT_PEM_write_fp(name, type, str, asn1)
293 289
294#define IMPLEMENT_PEM_write_const(name, type, str, asn1) \ 290#define IMPLEMENT_PEM_write_const(name, type, str, asn1) \
295 IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \ 291 IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \
296 IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) 292 IMPLEMENT_PEM_write_fp_const(name, type, str, asn1)
297 293
298#define IMPLEMENT_PEM_write_cb(name, type, str, asn1) \ 294#define IMPLEMENT_PEM_write_cb(name, type, str, asn1) \
299 IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \ 295 IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \
300 IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) 296 IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1)
301 297
302#define IMPLEMENT_PEM_write_cb_const(name, type, str, asn1) \ 298#define IMPLEMENT_PEM_write_cb_const(name, type, str, asn1) \
303 IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \ 299 IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \
304 IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) 300 IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1)
305 301
306#define IMPLEMENT_PEM_read(name, type, str, asn1) \ 302#define IMPLEMENT_PEM_read(name, type, str, asn1) \
307 IMPLEMENT_PEM_read_bio(name, type, str, asn1) \ 303 IMPLEMENT_PEM_read_bio(name, type, str, asn1) \
308 IMPLEMENT_PEM_read_fp(name, type, str, asn1) 304 IMPLEMENT_PEM_read_fp(name, type, str, asn1)
309 305
310#define IMPLEMENT_PEM_rw(name, type, str, asn1) \ 306#define IMPLEMENT_PEM_rw(name, type, str, asn1) \
311 IMPLEMENT_PEM_read(name, type, str, asn1) \ 307 IMPLEMENT_PEM_read(name, type, str, asn1) \
@@ -369,7 +365,7 @@ int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \
369 365
370#define DECLARE_PEM_write(name, type) \ 366#define DECLARE_PEM_write(name, type) \
371 DECLARE_PEM_write_bio(name, type) \ 367 DECLARE_PEM_write_bio(name, type) \
372 DECLARE_PEM_write_fp(name, type) 368 DECLARE_PEM_write_fp(name, type)
373 369
374#define DECLARE_PEM_write_const(name, type) \ 370#define DECLARE_PEM_write_const(name, type) \
375 DECLARE_PEM_write_bio_const(name, type) \ 371 DECLARE_PEM_write_bio_const(name, type) \
@@ -377,7 +373,7 @@ int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \
377 373
378#define DECLARE_PEM_write_cb(name, type) \ 374#define DECLARE_PEM_write_cb(name, type) \
379 DECLARE_PEM_write_cb_bio(name, type) \ 375 DECLARE_PEM_write_cb_bio(name, type) \
380 DECLARE_PEM_write_cb_fp(name, type) 376 DECLARE_PEM_write_cb_fp(name, type)
381 377
382#define DECLARE_PEM_read(name, type) \ 378#define DECLARE_PEM_read(name, type) \
383 DECLARE_PEM_read_bio(name, type) \ 379 DECLARE_PEM_read_bio(name, type) \
@@ -404,50 +400,52 @@ typedef int pem_password_cb(char *buf, int size, int rwflag);
404#endif 400#endif
405 401
406int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher); 402int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher);
407int PEM_do_header (EVP_CIPHER_INFO *cipher, unsigned char *data,long *len, 403int PEM_do_header (EVP_CIPHER_INFO *cipher, unsigned char *data, long *len,
408 pem_password_cb *callback,void *u); 404 pem_password_cb *callback, void *u);
409 405
410#ifndef OPENSSL_NO_BIO 406#ifndef OPENSSL_NO_BIO
411int PEM_read_bio(BIO *bp, char **name, char **header, 407int PEM_read_bio(BIO *bp, char **name, char **header,
412 unsigned char **data,long *len); 408 unsigned char **data, long *len);
413int PEM_write_bio(BIO *bp,const char *name,char *hdr,unsigned char *data, 409int PEM_write_bio(BIO *bp, const char *name, char *hdr, unsigned char *data,
414 long len); 410 long len);
415int PEM_bytes_read_bio(unsigned char **pdata, long *plen, char **pnm, const char *name, BIO *bp, 411int PEM_bytes_read_bio(unsigned char **pdata, long *plen, char **pnm,
416 pem_password_cb *cb, void *u); 412 const char *name, BIO *bp, pem_password_cb *cb, void *u);
417void * PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp, 413void * PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp,
418 void **x, pem_password_cb *cb, void *u); 414 void **x, pem_password_cb *cb, void *u);
419int PEM_ASN1_write_bio(i2d_of_void *i2d,const char *name,BIO *bp, void *x, 415int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, void *x,
420 const EVP_CIPHER *enc,unsigned char *kstr,int klen, 416 const EVP_CIPHER *enc, unsigned char *kstr, int klen,
421 pem_password_cb *cb, void *u); 417 pem_password_cb *cb, void *u);
422 418
423STACK_OF(X509_INFO) * PEM_X509_INFO_read_bio(BIO *bp, STACK_OF(X509_INFO) *sk, pem_password_cb *cb, void *u); 419STACK_OF(X509_INFO) * PEM_X509_INFO_read_bio(BIO *bp,
424int PEM_X509_INFO_write_bio(BIO *bp,X509_INFO *xi, EVP_CIPHER *enc, 420 STACK_OF(X509_INFO) *sk, pem_password_cb *cb, void *u);
425 unsigned char *kstr, int klen, pem_password_cb *cd, void *u); 421int PEM_X509_INFO_write_bio(BIO *bp, X509_INFO *xi, EVP_CIPHER *enc,
422 unsigned char *kstr, int klen, pem_password_cb *cd, void *u);
426#endif 423#endif
427 424
428int PEM_read(FILE *fp, char **name, char **header, 425int PEM_read(FILE *fp, char **name, char **header,
429 unsigned char **data,long *len); 426 unsigned char **data, long *len);
430int PEM_write(FILE *fp,char *name,char *hdr,unsigned char *data,long len); 427int PEM_write(FILE *fp, char *name, char *hdr, unsigned char *data,
428 long len);
431void * PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x, 429void * PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x,
432 pem_password_cb *cb, void *u); 430 pem_password_cb *cb, void *u);
433int PEM_ASN1_write(i2d_of_void *i2d,const char *name,FILE *fp, 431int PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp,
434 void *x,const EVP_CIPHER *enc,unsigned char *kstr, 432 void *x, const EVP_CIPHER *enc, unsigned char *kstr,
435 int klen,pem_password_cb *callback, void *u); 433 int klen, pem_password_cb *callback, void *u);
436STACK_OF(X509_INFO) * PEM_X509_INFO_read(FILE *fp, STACK_OF(X509_INFO) *sk, 434STACK_OF(X509_INFO) * PEM_X509_INFO_read(FILE *fp, STACK_OF(X509_INFO) *sk,
437 pem_password_cb *cb, void *u); 435 pem_password_cb *cb, void *u);
438 436
439int PEM_SealInit(PEM_ENCODE_SEAL_CTX *ctx, EVP_CIPHER *type, 437int PEM_SealInit(PEM_ENCODE_SEAL_CTX *ctx, EVP_CIPHER *type,
440 EVP_MD *md_type, unsigned char **ek, int *ekl, 438 EVP_MD *md_type, unsigned char **ek, int *ekl,
441 unsigned char *iv, EVP_PKEY **pubk, int npubk); 439 unsigned char *iv, EVP_PKEY **pubk, int npubk);
442void PEM_SealUpdate(PEM_ENCODE_SEAL_CTX *ctx, unsigned char *out, int *outl, 440void PEM_SealUpdate(PEM_ENCODE_SEAL_CTX *ctx, unsigned char *out, int *outl,
443 unsigned char *in, int inl); 441 unsigned char *in, int inl);
444int PEM_SealFinal(PEM_ENCODE_SEAL_CTX *ctx, unsigned char *sig,int *sigl, 442int PEM_SealFinal(PEM_ENCODE_SEAL_CTX *ctx, unsigned char *sig, int *sigl,
445 unsigned char *out, int *outl, EVP_PKEY *priv); 443 unsigned char *out, int *outl, EVP_PKEY *priv);
446 444
447void PEM_SignInit(EVP_MD_CTX *ctx, EVP_MD *type); 445void PEM_SignInit(EVP_MD_CTX *ctx, EVP_MD *type);
448void PEM_SignUpdate(EVP_MD_CTX *ctx,unsigned char *d,unsigned int cnt); 446void PEM_SignUpdate(EVP_MD_CTX *ctx, unsigned char *d, unsigned int cnt);
449int PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, 447int PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret,
450 unsigned int *siglen, EVP_PKEY *pkey); 448 unsigned int *siglen, EVP_PKEY *pkey);
451 449
452int PEM_def_callback(char *buf, int num, int w, void *key); 450int PEM_def_callback(char *buf, int num, int w, void *key);
453void PEM_proc_type(char *buf, int type); 451void PEM_proc_type(char *buf, int type);
@@ -509,32 +507,34 @@ DECLARE_PEM_rw_cb(PrivateKey, EVP_PKEY)
509DECLARE_PEM_rw(PUBKEY, EVP_PKEY) 507DECLARE_PEM_rw(PUBKEY, EVP_PKEY)
510 508
511int PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp, EVP_PKEY *x, int nid, 509int PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp, EVP_PKEY *x, int nid,
512 char *kstr, int klen, 510 char *kstr, int klen,
513 pem_password_cb *cb, void *u); 511 pem_password_cb *cb, void *u);
514int PEM_write_bio_PKCS8PrivateKey(BIO *, EVP_PKEY *, const EVP_CIPHER *, 512int PEM_write_bio_PKCS8PrivateKey(BIO *, EVP_PKEY *, const EVP_CIPHER *,
515 char *, int, pem_password_cb *, void *); 513 char *, int, pem_password_cb *, void *);
516int i2d_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc, 514int i2d_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc,
517 char *kstr, int klen, 515 char *kstr, int klen,
518 pem_password_cb *cb, void *u); 516 pem_password_cb *cb, void *u);
519int i2d_PKCS8PrivateKey_nid_bio(BIO *bp, EVP_PKEY *x, int nid, 517int i2d_PKCS8PrivateKey_nid_bio(BIO *bp, EVP_PKEY *x, int nid,
520 char *kstr, int klen, 518 char *kstr, int klen,
521 pem_password_cb *cb, void *u); 519 pem_password_cb *cb, void *u);
522EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, void *u); 520EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb,
521 void *u);
523 522
524int i2d_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, 523int i2d_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc,
525 char *kstr, int klen, 524 char *kstr, int klen,
526 pem_password_cb *cb, void *u); 525 pem_password_cb *cb, void *u);
527int i2d_PKCS8PrivateKey_nid_fp(FILE *fp, EVP_PKEY *x, int nid, 526int i2d_PKCS8PrivateKey_nid_fp(FILE *fp, EVP_PKEY *x, int nid,
528 char *kstr, int klen, 527 char *kstr, int klen,
529 pem_password_cb *cb, void *u); 528 pem_password_cb *cb, void *u);
530int PEM_write_PKCS8PrivateKey_nid(FILE *fp, EVP_PKEY *x, int nid, 529int PEM_write_PKCS8PrivateKey_nid(FILE *fp, EVP_PKEY *x, int nid,
531 char *kstr, int klen, 530 char *kstr, int klen,
532 pem_password_cb *cb, void *u); 531 pem_password_cb *cb, void *u);
533 532
534EVP_PKEY *d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, void *u); 533EVP_PKEY *d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb,
534 void *u);
535 535
536int PEM_write_PKCS8PrivateKey(FILE *fp,EVP_PKEY *x,const EVP_CIPHER *enc, 536int PEM_write_PKCS8PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc,
537 char *kstr,int klen, pem_password_cb *cd, void *u); 537 char *kstr, int klen, pem_password_cb *cd, void *u);
538 538
539EVP_PKEY *PEM_read_bio_Parameters(BIO *bp, EVP_PKEY **x); 539EVP_PKEY *PEM_read_bio_Parameters(BIO *bp, EVP_PKEY **x);
540int PEM_write_bio_Parameters(BIO *bp, EVP_PKEY *x); 540int PEM_write_bio_Parameters(BIO *bp, EVP_PKEY *x);
@@ -548,8 +548,8 @@ int i2b_PrivateKey_bio(BIO *out, EVP_PKEY *pk);
548int i2b_PublicKey_bio(BIO *out, EVP_PKEY *pk); 548int i2b_PublicKey_bio(BIO *out, EVP_PKEY *pk);
549#ifndef OPENSSL_NO_RC4 549#ifndef OPENSSL_NO_RC4
550EVP_PKEY *b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u); 550EVP_PKEY *b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u);
551int i2b_PVK_bio(BIO *out, EVP_PKEY *pk, int enclevel, 551int i2b_PVK_bio(BIO *out, EVP_PKEY *pk, int enclevel, pem_password_cb *cb,
552 pem_password_cb *cb, void *u); 552 void *u);
553#endif 553#endif
554 554
555 555