]> granicus.if.org Git - php/commitdiff
Fixed bug #21986 (openssl test failure).
authorIlia Alshanetsky <iliaa@php.net>
Fri, 31 Jan 2003 22:15:56 +0000 (22:15 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Fri, 31 Jan 2003 22:15:56 +0000 (22:15 +0000)
ext/openssl/openssl.c

index dd125602b3cc2c2f726ec2ea454fc0c35064e27c..cde8e952b56a30a3fe52beabb92a6b5f907710ec 100644 (file)
@@ -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);
                }
        }