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 | } |
