diff options
Diffstat (limited to 'src/lib/libcrypto/pem/pem_pkey.c')
-rw-r--r-- | src/lib/libcrypto/pem/pem_pkey.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/src/lib/libcrypto/pem/pem_pkey.c b/src/lib/libcrypto/pem/pem_pkey.c index 4da4c31ce5..9ecdbd5419 100644 --- a/src/lib/libcrypto/pem/pem_pkey.c +++ b/src/lib/libcrypto/pem/pem_pkey.c | |||
@@ -70,8 +70,7 @@ | |||
70 | EVP_PKEY *PEM_read_bio_PrivateKey(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, void *u) | 70 | EVP_PKEY *PEM_read_bio_PrivateKey(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, void *u) |
71 | { | 71 | { |
72 | char *nm=NULL; | 72 | char *nm=NULL; |
73 | const unsigned char *p=NULL; | 73 | unsigned char *p=NULL,*data=NULL; |
74 | unsigned char *data=NULL; | ||
75 | long len; | 74 | long len; |
76 | EVP_PKEY *ret=NULL; | 75 | EVP_PKEY *ret=NULL; |
77 | 76 | ||
@@ -83,8 +82,6 @@ EVP_PKEY *PEM_read_bio_PrivateKey(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, vo | |||
83 | ret=d2i_PrivateKey(EVP_PKEY_RSA,x,&p,len); | 82 | ret=d2i_PrivateKey(EVP_PKEY_RSA,x,&p,len); |
84 | else if (strcmp(nm,PEM_STRING_DSA) == 0) | 83 | else if (strcmp(nm,PEM_STRING_DSA) == 0) |
85 | ret=d2i_PrivateKey(EVP_PKEY_DSA,x,&p,len); | 84 | ret=d2i_PrivateKey(EVP_PKEY_DSA,x,&p,len); |
86 | else if (strcmp(nm,PEM_STRING_ECPRIVATEKEY) == 0) | ||
87 | ret=d2i_PrivateKey(EVP_PKEY_EC,x,&p,len); | ||
88 | else if (strcmp(nm,PEM_STRING_PKCS8INF) == 0) { | 85 | else if (strcmp(nm,PEM_STRING_PKCS8INF) == 0) { |
89 | PKCS8_PRIV_KEY_INFO *p8inf; | 86 | PKCS8_PRIV_KEY_INFO *p8inf; |
90 | p8inf=d2i_PKCS8_PRIV_KEY_INFO(NULL, &p, len); | 87 | p8inf=d2i_PKCS8_PRIV_KEY_INFO(NULL, &p, len); |
@@ -105,7 +102,7 @@ EVP_PKEY *PEM_read_bio_PrivateKey(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, vo | |||
105 | if (cb) klen=cb(psbuf,PEM_BUFSIZE,0,u); | 102 | if (cb) klen=cb(psbuf,PEM_BUFSIZE,0,u); |
106 | else klen=PEM_def_callback(psbuf,PEM_BUFSIZE,0,u); | 103 | else klen=PEM_def_callback(psbuf,PEM_BUFSIZE,0,u); |
107 | if (klen <= 0) { | 104 | if (klen <= 0) { |
108 | PEMerr(PEM_F_PEM_READ_BIO_PRIVATEKEY, | 105 | PEMerr(PEM_F_PEM_ASN1_READ_BIO, |
109 | PEM_R_BAD_PASSWORD_READ); | 106 | PEM_R_BAD_PASSWORD_READ); |
110 | X509_SIG_free(p8); | 107 | X509_SIG_free(p8); |
111 | goto err; | 108 | goto err; |
@@ -122,10 +119,9 @@ EVP_PKEY *PEM_read_bio_PrivateKey(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, vo | |||
122 | } | 119 | } |
123 | p8err: | 120 | p8err: |
124 | if (ret == NULL) | 121 | if (ret == NULL) |
125 | PEMerr(PEM_F_PEM_READ_BIO_PRIVATEKEY,ERR_R_ASN1_LIB); | 122 | PEMerr(PEM_F_PEM_ASN1_READ_BIO,ERR_R_ASN1_LIB); |
126 | err: | 123 | err: |
127 | OPENSSL_free(nm); | 124 | OPENSSL_free(nm); |
128 | OPENSSL_cleanse(data, len); | ||
129 | OPENSSL_free(data); | 125 | OPENSSL_free(data); |
130 | return(ret); | 126 | return(ret); |
131 | } | 127 | } |
@@ -138,7 +134,7 @@ EVP_PKEY *PEM_read_PrivateKey(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, void | |||
138 | 134 | ||
139 | if ((b=BIO_new(BIO_s_file())) == NULL) | 135 | if ((b=BIO_new(BIO_s_file())) == NULL) |
140 | { | 136 | { |
141 | PEMerr(PEM_F_PEM_READ_PRIVATEKEY,ERR_R_BUF_LIB); | 137 | PEMerr(PEM_F_PEM_ASN1_READ,ERR_R_BUF_LIB); |
142 | return(0); | 138 | return(0); |
143 | } | 139 | } |
144 | BIO_set_fp(b,fp,BIO_NOCLOSE); | 140 | BIO_set_fp(b,fp,BIO_NOCLOSE); |