summaryrefslogtreecommitdiff
path: root/ext/openssl/openssl.c
diff options
context:
space:
mode:
authorDaniel Lowrey <rdlowrey@php.net>2015-03-05 09:50:04 -0700
committerDaniel Lowrey <rdlowrey@php.net>2015-03-05 10:09:06 -0700
commit94140afa69e334405688d3cb09a47c07aeaef825 (patch)
tree6d1a281630e33e6a1aba2655b891f724285dc892 /ext/openssl/openssl.c
parent0f334a1265d9927e11a7f0d22eba3b1b05ee0686 (diff)
downloadphp-git-94140afa69e334405688d3cb09a47c07aeaef825.tar.gz
Fix bug #67403 (Add signatureType to openssl_x509_parse)
Diffstat (limited to 'ext/openssl/openssl.c')
-rw-r--r--ext/openssl/openssl.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c
index 64bb0623ed..5c8c479362 100644
--- a/ext/openssl/openssl.c
+++ b/ext/openssl/openssl.c
@@ -1501,7 +1501,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;
@@ -1548,11 +1548,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);