diff options
author | Daniel Lowrey <rdlowrey@php.net> | 2015-03-05 10:21:32 -0700 |
---|---|---|
committer | Daniel Lowrey <rdlowrey@php.net> | 2015-03-05 10:21:32 -0700 |
commit | 5939de35a8fc6b439c8a60db02a5181a386edaa0 (patch) | |
tree | 00372a834427609051028ee7300e6d55abeb8d1b | |
parent | e8e5913e5e3500d2efee4a60fdfd77ab46fe2021 (diff) | |
parent | 94140afa69e334405688d3cb09a47c07aeaef825 (diff) | |
download | php-git-5939de35a8fc6b439c8a60db02a5181a386edaa0.tar.gz |
Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
Fix bug #67403 (Add signatureType to openssl_x509_parse)
5.5.24 now
Conflicts:
configure.in
main/php_version.h
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | ext/openssl/openssl.c | 13 | ||||
-rw-r--r-- | ext/openssl/tests/bug67403.phpt | 23 | ||||
-rw-r--r-- | ext/openssl/tests/openssl_x509_parse_basic.phpt | 16 |
4 files changed, 45 insertions, 8 deletions
@@ -41,6 +41,7 @@ . Fixed bug #68879 (IP Address fields in subjectAltNames not used) (Daniel Lowrey) . Fixed bug #68265 (SAN match fails with trailing DNS dot) (Daniel Lowrey) + . Fixed bug #67403 (Add signatureType to openssl_x509_parse) (Daniel Lowrey) - pgsql: . Fixed bug #68638 (pg_update() fails to store infinite values). diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c index 5538ef76da..290b480eaa 100644 --- a/ext/openssl/openssl.c +++ b/ext/openssl/openssl.c @@ -1927,7 +1927,7 @@ PHP_FUNCTION(openssl_x509_parse) zval ** zcert; X509 * cert = NULL; long certresource = -1; - int i; + int i, sig_nid; zend_bool useshortnames = 1; char * tmpstr; zval * subitem; @@ -1974,11 +1974,12 @@ PHP_FUNCTION(openssl_x509_parse) if (tmpstr) { add_assoc_string(return_value, "alias", tmpstr, 1); } -/* - add_assoc_long(return_value, "signaturetypeLONG", X509_get_signature_type(cert)); - add_assoc_string(return_value, "signaturetype", OBJ_nid2sn(X509_get_signature_type(cert)), 1); - add_assoc_string(return_value, "signaturetypeLN", OBJ_nid2ln(X509_get_signature_type(cert)), 1); -*/ + + sig_nid = OBJ_obj2nid((cert)->sig_alg->algorithm); + add_assoc_string(return_value, "signatureTypeSN", (char*)OBJ_nid2sn(sig_nid), 1); + add_assoc_string(return_value, "signatureTypeLN", (char*)OBJ_nid2ln(sig_nid), 1); + add_assoc_long(return_value, "signatureTypeNID", sig_nid TSRMLS_CC); + MAKE_STD_ZVAL(subitem); array_init(subitem); diff --git a/ext/openssl/tests/bug67403.phpt b/ext/openssl/tests/bug67403.phpt new file mode 100644 index 0000000000..0a19686af1 --- /dev/null +++ b/ext/openssl/tests/bug67403.phpt @@ -0,0 +1,23 @@ +--TEST-- +Bug #67403: Add signatureType to openssl_x509_parse +--SKIPIF-- +<?php +if (!extension_loaded("openssl")) die("skip"); +--FILE-- +<?php +$r = openssl_x509_parse(file_get_contents(__DIR__.'/bug64802.pem')); +var_dump($r['signatureTypeSN']); +var_dump($r['signatureTypeLN']); +var_dump($r['signatureTypeNID']); + +$r = openssl_x509_parse(file_get_contents(__DIR__.'/bug37820cert.pem')); +var_dump($r['signatureTypeSN']); +var_dump($r['signatureTypeLN']); +var_dump($r['signatureTypeNID']); +--EXPECTF-- +string(8) "RSA-SHA1" +string(21) "sha1WithRSAEncryption" +int(65) +string(7) "RSA-MD5" +string(20) "md5WithRSAEncryption" +int(8) diff --git a/ext/openssl/tests/openssl_x509_parse_basic.phpt b/ext/openssl/tests/openssl_x509_parse_basic.phpt index fb0bbc7604..325b2ee4b9 100644 --- a/ext/openssl/tests/openssl_x509_parse_basic.phpt +++ b/ext/openssl/tests/openssl_x509_parse_basic.phpt @@ -12,7 +12,7 @@ var_dump(openssl_x509_parse($cert)); var_dump(openssl_x509_parse($cert, false)); ?> --EXPECTF-- -array(12) { +array(15) { ["name"]=> string(96) "/C=BR/ST=Rio Grande do Sul/L=Porto Alegre/CN=Henrique do N. Angelo/emailAddress=hnangelo@php.net" ["subject"]=> @@ -55,6 +55,12 @@ array(12) { int(1214821723) ["validTo_time_t"]=> int(1217413723) + ["signatureTypeSN"]=> + string(8) "RSA-SHA1" + ["signatureTypeLN"]=> + string(21) "sha1WithRSAEncryption" + ["signatureTypeNID"]=> + int(65) ["purposes"]=> array(9) { [1]=> @@ -152,7 +158,7 @@ serial:AE:C5:56:CC:72:37:50:A2 string(7) "CA:TRUE" } } -array(12) { +array(15) { ["name"]=> string(96) "/C=BR/ST=Rio Grande do Sul/L=Porto Alegre/CN=Henrique do N. Angelo/emailAddress=hnangelo@php.net" ["subject"]=> @@ -195,6 +201,12 @@ array(12) { int(1214821723) ["validTo_time_t"]=> int(1217413723) + ["signatureTypeSN"]=> + string(8) "RSA-SHA1" + ["signatureTypeLN"]=> + string(21) "sha1WithRSAEncryption" + ["signatureTypeNID"]=> + int(65) ["purposes"]=> array(9) { [1]=> |