diff options
author | djm <> | 2008-09-06 12:17:54 +0000 |
---|---|---|
committer | djm <> | 2008-09-06 12:17:54 +0000 |
commit | 38ce604e3cc97706b876b0525ddff0121115456d (patch) | |
tree | 7ccc28afe1789ea3dbedf72365f955d5b8e105b5 /src/lib/libcrypto/pem/pem_lib.c | |
parent | 12867252827c8efaa8ddd1fa3b3d6e321e2bcdef (diff) | |
download | openbsd-38ce604e3cc97706b876b0525ddff0121115456d.tar.gz openbsd-38ce604e3cc97706b876b0525ddff0121115456d.tar.bz2 openbsd-38ce604e3cc97706b876b0525ddff0121115456d.zip |
resolve conflicts
Diffstat (limited to 'src/lib/libcrypto/pem/pem_lib.c')
-rw-r--r-- | src/lib/libcrypto/pem/pem_lib.c | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/src/lib/libcrypto/pem/pem_lib.c b/src/lib/libcrypto/pem/pem_lib.c index 82815067b3..9bae4c8850 100644 --- a/src/lib/libcrypto/pem/pem_lib.c +++ b/src/lib/libcrypto/pem/pem_lib.c | |||
@@ -69,7 +69,7 @@ | |||
69 | #include <openssl/des.h> | 69 | #include <openssl/des.h> |
70 | #endif | 70 | #endif |
71 | 71 | ||
72 | const char *PEM_version="PEM" OPENSSL_VERSION_PTEXT; | 72 | const char PEM_version[]="PEM" OPENSSL_VERSION_PTEXT; |
73 | 73 | ||
74 | #define MIN_LENGTH 4 | 74 | #define MIN_LENGTH 4 |
75 | 75 | ||
@@ -81,7 +81,7 @@ int PEM_def_callback(char *buf, int num, int w, void *key) | |||
81 | #ifdef OPENSSL_NO_FP_API | 81 | #ifdef OPENSSL_NO_FP_API |
82 | /* We should not ever call the default callback routine from | 82 | /* We should not ever call the default callback routine from |
83 | * windows. */ | 83 | * windows. */ |
84 | PEMerr(PEM_F_DEF_CALLBACK,ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); | 84 | PEMerr(PEM_F_PEM_DEF_CALLBACK,ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); |
85 | return(-1); | 85 | return(-1); |
86 | #else | 86 | #else |
87 | int i,j; | 87 | int i,j; |
@@ -102,7 +102,7 @@ int PEM_def_callback(char *buf, int num, int w, void *key) | |||
102 | i=EVP_read_pw_string(buf,num,prompt,w); | 102 | i=EVP_read_pw_string(buf,num,prompt,w); |
103 | if (i != 0) | 103 | if (i != 0) |
104 | { | 104 | { |
105 | PEMerr(PEM_F_DEF_CALLBACK,PEM_R_PROBLEMS_GETTING_PASSWORD); | 105 | PEMerr(PEM_F_PEM_DEF_CALLBACK,PEM_R_PROBLEMS_GETTING_PASSWORD); |
106 | memset(buf,0,(unsigned int)num); | 106 | memset(buf,0,(unsigned int)num); |
107 | return(-1); | 107 | return(-1); |
108 | } | 108 | } |
@@ -158,11 +158,11 @@ void PEM_dek_info(char *buf, const char *type, int len, char *str) | |||
158 | } | 158 | } |
159 | 159 | ||
160 | #ifndef OPENSSL_NO_FP_API | 160 | #ifndef OPENSSL_NO_FP_API |
161 | char *PEM_ASN1_read(char *(*d2i)(), const char *name, FILE *fp, char **x, | 161 | void *PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x, |
162 | pem_password_cb *cb, void *u) | 162 | pem_password_cb *cb, void *u) |
163 | { | 163 | { |
164 | BIO *b; | 164 | BIO *b; |
165 | char *ret; | 165 | void *ret; |
166 | 166 | ||
167 | if ((b=BIO_new(BIO_s_file())) == NULL) | 167 | if ((b=BIO_new(BIO_s_file())) == NULL) |
168 | { | 168 | { |
@@ -195,6 +195,8 @@ static int check_pem(const char *nm, const char *name) | |||
195 | if(!strcmp(nm,PEM_STRING_DSA) && | 195 | if(!strcmp(nm,PEM_STRING_DSA) && |
196 | !strcmp(name,PEM_STRING_EVP_PKEY)) return 1; | 196 | !strcmp(name,PEM_STRING_EVP_PKEY)) return 1; |
197 | 197 | ||
198 | if(!strcmp(nm,PEM_STRING_ECPRIVATEKEY) && | ||
199 | !strcmp(name,PEM_STRING_EVP_PKEY)) return 1; | ||
198 | /* Permit older strings */ | 200 | /* Permit older strings */ |
199 | 201 | ||
200 | if(!strcmp(nm,PEM_STRING_X509_OLD) && | 202 | if(!strcmp(nm,PEM_STRING_X509_OLD) && |
@@ -258,9 +260,9 @@ err: | |||
258 | } | 260 | } |
259 | 261 | ||
260 | #ifndef OPENSSL_NO_FP_API | 262 | #ifndef OPENSSL_NO_FP_API |
261 | int PEM_ASN1_write(int (*i2d)(), const char *name, FILE *fp, char *x, | 263 | int PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp, |
262 | const EVP_CIPHER *enc, unsigned char *kstr, int klen, | 264 | char *x, const EVP_CIPHER *enc, unsigned char *kstr, |
263 | pem_password_cb *callback, void *u) | 265 | int klen, pem_password_cb *callback, void *u) |
264 | { | 266 | { |
265 | BIO *b; | 267 | BIO *b; |
266 | int ret; | 268 | int ret; |
@@ -277,9 +279,9 @@ int PEM_ASN1_write(int (*i2d)(), const char *name, FILE *fp, char *x, | |||
277 | } | 279 | } |
278 | #endif | 280 | #endif |
279 | 281 | ||
280 | int PEM_ASN1_write_bio(int (*i2d)(), const char *name, BIO *bp, char *x, | 282 | int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, |
281 | const EVP_CIPHER *enc, unsigned char *kstr, int klen, | 283 | char *x, const EVP_CIPHER *enc, unsigned char *kstr, |
282 | pem_password_cb *callback, void *u) | 284 | int klen, pem_password_cb *callback, void *u) |
283 | { | 285 | { |
284 | EVP_CIPHER_CTX ctx; | 286 | EVP_CIPHER_CTX ctx; |
285 | int dsize=0,i,j,ret=0; | 287 | int dsize=0,i,j,ret=0; |
@@ -336,7 +338,7 @@ int PEM_ASN1_write_bio(int (*i2d)(), const char *name, BIO *bp, char *x, | |||
336 | kstr=(unsigned char *)buf; | 338 | kstr=(unsigned char *)buf; |
337 | } | 339 | } |
338 | RAND_add(data,i,0);/* put in the RSA key. */ | 340 | RAND_add(data,i,0);/* put in the RSA key. */ |
339 | OPENSSL_assert(enc->iv_len <= sizeof iv); | 341 | OPENSSL_assert(enc->iv_len <= (int)sizeof(iv)); |
340 | if (RAND_pseudo_bytes(iv,enc->iv_len) < 0) /* Generate a salt */ | 342 | if (RAND_pseudo_bytes(iv,enc->iv_len) < 0) /* Generate a salt */ |
341 | goto err; | 343 | goto err; |
342 | /* The 'iv' is used as the iv and as a salt. It is | 344 | /* The 'iv' is used as the iv and as a salt. It is |
@@ -577,6 +579,7 @@ int PEM_write_bio(BIO *bp, const char *name, char *header, unsigned char *data, | |||
577 | } | 579 | } |
578 | EVP_EncodeFinal(&ctx,buf,&outl); | 580 | EVP_EncodeFinal(&ctx,buf,&outl); |
579 | if ((outl > 0) && (BIO_write(bp,(char *)buf,outl) != outl)) goto err; | 581 | if ((outl > 0) && (BIO_write(bp,(char *)buf,outl) != outl)) goto err; |
582 | OPENSSL_cleanse(buf, PEM_BUFSIZE*8); | ||
580 | OPENSSL_free(buf); | 583 | OPENSSL_free(buf); |
581 | buf = NULL; | 584 | buf = NULL; |
582 | if ( (BIO_write(bp,"-----END ",9) != 9) || | 585 | if ( (BIO_write(bp,"-----END ",9) != 9) || |
@@ -585,8 +588,10 @@ int PEM_write_bio(BIO *bp, const char *name, char *header, unsigned char *data, | |||
585 | goto err; | 588 | goto err; |
586 | return(i+outl); | 589 | return(i+outl); |
587 | err: | 590 | err: |
588 | if (buf) | 591 | if (buf) { |
592 | OPENSSL_cleanse(buf, PEM_BUFSIZE*8); | ||
589 | OPENSSL_free(buf); | 593 | OPENSSL_free(buf); |
594 | } | ||
590 | PEMerr(PEM_F_PEM_WRITE_BIO,reason); | 595 | PEMerr(PEM_F_PEM_WRITE_BIO,reason); |
591 | return(0); | 596 | return(0); |
592 | } | 597 | } |