]> granicus.if.org Git - php/commitdiff
Merge branch 'PHP-5.6'
authorDaniel Lowrey <rdlowrey@php.net>
Thu, 5 Mar 2015 17:27:11 +0000 (10:27 -0700)
committerDaniel Lowrey <rdlowrey@php.net>
Thu, 5 Mar 2015 17:27:11 +0000 (10:27 -0700)
* PHP-5.6:
  Fix bug #67403 (Add signatureType to openssl_x509_parse)
  5.5.24 now

Conflicts:
ext/openssl/openssl.c

1  2 
ext/openssl/openssl.c

index 956f36171f75c02d22b378356246b14df7f273d5,290b480eaa7757b709b9f7f74fa637b6e6608586..bce3f202f6ca4cbc63271d0e977f6ce10be53b56
@@@ -1935,13 -1924,13 +1935,13 @@@ static int openssl_x509v3_subjectAltNam
     Returns an array of the fields/values of the CERT */
  PHP_FUNCTION(openssl_x509_parse)
  {
 -      zval ** zcert;
 +      zval * zcert;
        X509 * cert = NULL;
 -      long certresource = -1;
 +      zend_resource *certresource = NULL;
-       int i;
+       int i, sig_nid;
        zend_bool useshortnames = 1;
        char * tmpstr;
 -      zval subitem;
 +      zval subitem;
        X509_EXTENSION *extension;
        char *extname;
        BIO  *bio_out;
  
        tmpstr = (char *)X509_alias_get0(cert, NULL);
        if (tmpstr) {
 -              add_assoc_string(return_value, "alias", tmpstr, 1);
 +              add_assoc_string(return_value, "alias", tmpstr);
        }
- /*
-       add_assoc_long(return_value, "signaturetypeLONG", X509_get_signature_type(cert));
-       add_assoc_string(return_value, "signaturetype", OBJ_nid2sn(X509_get_signature_type(cert)));
-       add_assoc_string(return_value, "signaturetypeLN", OBJ_nid2ln(X509_get_signature_type(cert)));
- */
+       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);
++      add_assoc_string(return_value, "signatureTypeSN", (char*)OBJ_nid2sn(sig_nid));
++      add_assoc_string(return_value, "signatureTypeLN", (char*)OBJ_nid2ln(sig_nid));
++      add_assoc_long(return_value, "signatureTypeNID", sig_nid);
 +      array_init(&subitem);
  
        /* NOTE: the purposes are added as integer keys - the keys match up to the X509_PURPOSE_SSL_XXX defines
           in x509v3.h */