From: Ilia Alshanetsky Date: Fri, 31 Jan 2003 22:27:28 +0000 (+0000) Subject: MFH X-Git-Tag: php-4.3.2RC1~360 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=43e6623c3d0e64167e6e4d29ce90bc548b216150;p=php MFH --- diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c index 5ecbffdb05..3b3ac2e088 100644 --- a/ext/openssl/openssl.c +++ b/ext/openssl/openssl.c @@ -1728,27 +1728,23 @@ 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 { + in = BIO_new_mem_buf(Z_STRVAL_PP(val), Z_STRLEN_PP(val)); } - 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); + if (in == NULL) { + return NULL; } + + key = PEM_read_bio_PrivateKey(in, NULL,NULL, passphrase); + BIO_free(in); } }