X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=ssl%2Fssl_rsa.c;h=27113eba5088cfb196a56dca250c2ed7f12572fc;hb=e8da6a1d0fd119e170df49e1f5e28f980794144d;hp=f639d9a08fde9855c99fefba5fd5956e39a69366;hpb=6049399bafac74bd809ffac2108e8d5d284cd720;p=oweals%2Fopenssl.git diff --git a/ssl/ssl_rsa.c b/ssl/ssl_rsa.c index f639d9a08f..27113eba50 100644 --- a/ssl/ssl_rsa.c +++ b/ssl/ssl_rsa.c @@ -335,6 +335,11 @@ int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type) pkey=PEM_read_bio_PrivateKey(in,NULL, ssl->ctx->default_passwd_callback,ssl->ctx->default_passwd_callback_userdata); } + else if (type == SSL_FILETYPE_ASN1) + { + j = ERR_R_ASN1_LIB; + pkey = d2i_PrivateKey_bio(in,NULL); + } else { SSLerr(SSL_F_SSL_USE_PRIVATEKEY_FILE,SSL_R_BAD_SSL_FILETYPE); @@ -649,6 +654,11 @@ int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int type) pkey=PEM_read_bio_PrivateKey(in,NULL, ctx->default_passwd_callback,ctx->default_passwd_callback_userdata); } + else if (type == SSL_FILETYPE_ASN1) + { + j = ERR_R_ASN1_LIB; + pkey = d2i_PrivateKey_bio(in,NULL); + } else { SSLerr(SSL_F_SSL_CTX_USE_PRIVATEKEY_FILE,SSL_R_BAD_SSL_FILETYPE); @@ -698,6 +708,8 @@ int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file) int ret=0; X509 *x=NULL; + ERR_clear_error(); /* clear error stack for SSL_CTX_use_certificate() */ + in=BIO_new(BIO_s_file_internal()); if (in == NULL) {