From: Ilia Alshanetsky Date: Fri, 31 Jan 2003 22:15:56 +0000 (+0000) Subject: Fixed bug #21986 (openssl test failure). X-Git-Tag: RELEASE_0_5~1342 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=31a313501429e79c3cd64395103ea87cdf7701f5;p=php Fixed bug #21986 (openssl test failure). --- diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c index dd125602b3..cde8e952b5 100644 --- a/ext/openssl/openssl.c +++ b/ext/openssl/openssl.c @@ -1726,27 +1726,22 @@ static EVP_PKEY * php_openssl_evp_from_zval(zval ** val, int public_key, char * } } else { /* we want the private key */ + BIO *in; + if (filename) { - BIO *in; if (php_openssl_safe_mode_chk(filename TSRMLS_CC)) { return NULL; } in = BIO_new_file(filename, "r"); - if (in == NULL) { - return NULL; - } - key = PEM_read_bio_PrivateKey(in, NULL,NULL, passphrase); - BIO_free(in); } else { - BIO *b = BIO_new_mem_buf(Z_STRVAL_PP(val), Z_STRLEN_PP(val)); - if (b == NULL) { - return NULL; - } - key = (EVP_PKEY *) PEM_ASN1_read_bio((char *(*)())d2i_PrivateKey, - PEM_STRING_EVP_PKEY, b, - NULL, NULL, passphrase); - BIO_free(b); + in = BIO_new_mem_buf(Z_STRVAL_PP(val), Z_STRLEN_PP(val)); + } + + if (in == NULL) { + return NULL; } + key = PEM_read_bio_PrivateKey(in, NULL,NULL, passphrase); + BIO_free(in); } }