com php-src: Fix for bug66501 - "key type not supported in this PHP build": ext/openssl/openssl.c ext/openssl/tests/bug66501.phpt

From: Date: Sat, 15 Feb 2014 01:11:46 +0000
Subject: com php-src: Fix for bug66501 - "key type not supported in this PHP build": ext/openssl/openssl.c ext/openssl/tests/bug66501.phpt
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-75985@lists.php.net to get a copy of this message
Commit: 19524fc6feb44050bbb70c19717c59864ae4955d Author: mk-j <mark@zedwood.com> Wed, 22 Jan 2014 12:58:44 -0700 Committer: Daniel Lowrey <rdlowrey@php.net> Fri, 14 Feb 2014 18:11:46 -0700 Parents: 35101e9ef4669bb076f6687f2fd1aa13f63695d0 Branches: master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=19524fc6feb44050bbb70c19717c59864ae4955d Log: Fix for bug66501 - "key type not supported in this PHP build" Bugs: https://bugs.php.net/66501 Changed paths: M ext/openssl/openssl.c A ext/openssl/tests/bug66501.phpt Diff: diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c index 2baf086..a6e4d03 100644 --- a/ext/openssl/openssl.c +++ b/ext/openssl/openssl.c @@ -3014,6 +3014,15 @@ static int php_openssl_is_private_key(EVP_PKEY* pkey TSRMLS_DC) } break; #endif +#ifdef EVP_PKEY_EC + case EVP_PKEY_EC: + assert(pkey->pkey.ec != NULL); + + if ( NULL == EC_KEY_get0_private_key(pkey->pkey.ec)) { + return 0; + } + break; +#endif default: php_error_docref(NULL TSRMLS_CC, E_WARNING, "key type not supported in this PHP build!"); break; diff --git a/ext/openssl/tests/bug66501.phpt b/ext/openssl/tests/bug66501.phpt new file mode 100644 index 0000000..5c57f21 --- /dev/null +++ b/ext/openssl/tests/bug66501.phpt @@ -0,0 +1,21 @@ +--TEST-- +Bug #66501: EC private key support in openssl_sign +--SKIPIF-- +<?php +if (!extension_loaded("openssl")) die("skip"); +--FILE-- +<?php +$pkey = 'ASN1 OID: prime256v1 +-----BEGIN EC PARAMETERS----- +BggqhkjOPQMBBw== +-----END EC PARAMETERS----- +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEILPkqoeyM7XgwYkuSj3077lrsrfWJK5LqMolv+m2oOjZoAoGCCqGSM49 +AwEHoUQDQgAEPq4hbIWHvB51rdWr8ejrjWo4qVNWVugYFtPg/xLQw0mHkIPZ4DvK +sqOTOnMoezkbSmVVMuwz9flvnqHGmQvmug== +-----END EC PRIVATE KEY-----'; +$key = openssl_pkey_get_private($pkey); +$res = openssl_sign($data ='alpha', $sign, $key, 'ecdsa-with-SHA1'); +var_dump($res); +--EXPECTF-- +bool(true)

« previous php.cvs (#75985) next »