cvs: php-src /ext/openssl openssl.c /ext/openssl/tests bug39217.phpt bug39217cert1.txt bug39217cert2.txt

From: Date: Sat, 21 Oct 2006 00:28:55 +0000
Subject: cvs: php-src /ext/openssl openssl.c /ext/openssl/tests bug39217.phpt bug39217cert1.txt bug39217cert2.txt
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-41185@lists.php.net to get a copy of this message
pajoye Sat Oct 21 00:28:55 2006 UTC Added files: /php-src/ext/openssl/tests bug39217.phpt bug39217cert1.txt bug39217cert2.txt Modified files: /php-src/ext/openssl openssl.c Log: - #39217, use openssl i2s_ASN1_INTEGER to get a string representation of the integer (large or not). It also keeps BC by using only decimal fmt - add test http://cvs.php.net/viewvc.cgi/php-src/ext/openssl/openssl.c?r1=1.129&r2=1.130&diff_format=u Index: php-src/ext/openssl/openssl.c diff -u php-src/ext/openssl/openssl.c:1.129 php-src/ext/openssl/openssl.c:1.130 --- php-src/ext/openssl/openssl.c:1.129 Fri Oct 20 23:21:06 2006 +++ php-src/ext/openssl/openssl.c Sat Oct 21 00:28:55 2006 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: openssl.c,v 1.129 2006/10/20 23:21:06 tony2001 Exp $ */ +/* $Id: openssl.c,v 1.130 2006/10/21 00:28:55 pajoye Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -367,40 +367,6 @@ } /* }}} */ -static void php_asn1_integer_to_string(ASN1_INTEGER *a, char **str, int *str_len TSRMLS_DC) /* {{{ */ -{ - int i; - static const char *h="0123456789ABCDEF"; - zend_bool negative = 0; - - *str = NULL; - *str_len = 0; - - if (a == NULL) { - return; - } - - if (a->type & V_ASN1_NEG) { - negative = 1; - } - - if (a->length == 0) { - *str_len = spprintf(str, 0, "%s00", negative ? "-" : ""); - } else { - *str_len = a->length*2 + negative; - *str = emalloc(*str_len + 1); - if (negative) { - (*str)[0] = '-'; - } - for (i=0; i<a->length; i++) { - (*str)[i*2 + negative]=h[((unsigned char)a->data[i]>>4)&0x0f]; - (*str)[i*2 + negative + 1]=h[((unsigned char)a->data[i])&0x0f]; - } - (*str)[a->length*2 + negative] = '\0'; - } -} -/* }}} */ - static inline int php_openssl_config_check_syntax( const char * section_label, const char * config_filename, @@ -998,8 +964,6 @@ X509_EXTENSION *extension; ASN1_OCTET_STRING *extdata; char *extname; - char *serial; - int serial_len; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z|b", &zcert, &useshortnames) == FAILURE) { return; @@ -1026,8 +990,7 @@ add_assoc_name_entry(return_value, "issuer", X509_get_issuer_name(cert), useshortnames TSRMLS_CC); add_assoc_long(return_value, "version", X509_get_version(cert)); - php_asn1_integer_to_string(X509_get_serialNumber(cert), &serial, &serial_len TSRMLS_CC); - add_assoc_stringl(return_value, "serialNumber", serial, serial_len, 0); + add_assoc_string(return_value, "serialNumber", i2s_ASN1_INTEGER(NULL, X509_get_serialNumber(cert)), 1); add_assoc_asn1_string(return_value, "validFrom", X509_get_notBefore(cert)); add_assoc_asn1_string(return_value, "validTo", X509_get_notAfter(cert)); http://cvs.php.net/viewvc.cgi/php-src/ext/openssl/tests/bug39217.phpt?view=markup&rev=1.1 Index: php-src/ext/openssl/tests/bug39217.phpt +++ php-src/ext/openssl/tests/bug39217.phpt --TEST-- #39217, Large serial number return -1 --SKIPIF-- <?php if (!extension_loaded("openssl")) die("skip"); ?> --FILE-- <?php $dir = dirname(__FILE__); $certs = array('bug39217cert2.txt', 'bug39217cert1.txt'); foreach($certs as $cert) { $res = openssl_x509_parse(file_get_contents($dir . '/' . $cert)); print_r($res['serialNumber']); echo "\n"; } ?> --EXPECTF-- 163040343498260435477161879008842183802 15 http://cvs.php.net/viewvc.cgi/php-src/ext/openssl/tests/bug39217cert1.txt?view=markup&rev=1.1 Index: php-src/ext/openssl/tests/bug39217cert1.txt +++ php-src/ext/openssl/tests/bug39217cert1.txt -----BEGIN CERTIFICATE----- MIICvzCCAiigAwIBAgIBDzANBgkqhkiG9w0BAQUFADBbMRkwFwYDVQQKExBET0Ug U2NpZW5jZSBHcmlkMSAwHgYDVQQLExdDZXJ0aWZpY2F0ZSBBdXRob3JpdGllczEc MBoGA1UEAxMTQ2VydGlmaWNhdGUgTWFuYWdlcjAeFw0wMDA4MjkyMjI4MDJaFw0w MTA4MjkyMjI4MDJaMHgxDTALBgNVBAoTBEdyaWQxLjAsBgNVBAoTJUxhd3JlbmNl IEJlcmtlbGV5IE5hdGlvbmFsIExhYm9yYXRvcnkxIDAeBgNVBAsTF0NlcnRpZmlj YXRlIEF1dGhvcml0aWVzMRUwEwYDVQQDEwxMQk5MLUdyaWQtQ0EwgZ8wDQYJKoZI hvcNAQEBBQADgY0AMIGJAoGBAL2t4aX933WXYlofuY+L+16Tdl/KxpAammyfcW8u kHHT6RYDjaQdfV1FpNEqfSrRjKNwGGGkrG4XHZWiUO0Di0AlBN04lsRY6jB68l6B 5byujfZv+8EeCI2c1ObBLYZYi4lToJf0sm0Hpn3GD7PZBv6BVHLOuwEFDl9z9Dnc DFDdAgMBAAGjdjB0MBEGCWCGSAGG+EIBAQQEAwIAhzAOBgNVHQ8BAf8EBAMCAcYw HQYDVR0OBBYEFIn+csPVyp+iprpYUIu1SziMQiDxMA8GA1UdEwEB/wQFMAMBAf8w HwYDVR0jBBgwFoAUm85P8ry9WHAx1fIyDn6eveJRFOcwDQYJKoZIhvcNAQEFBQAD gYEAHindWQ4P4VUmJVt5sUGA05hSAZriDJDDnkvkm/9AR7xgGxtsy21QruhUVe2E eVFBws85zbwRqMpfUQyE/xHhUcka2GQTaKlBlcEjZTMnsh27Si2PMYU/UPr/PIpq kBkoxVV1bMWRK57mG2tzzTy9j0wkct4G5IjEsrYNDzW6U3E= -----END CERTIFICATE----- http://cvs.php.net/viewvc.cgi/php-src/ext/openssl/tests/bug39217cert2.txt?view=markup&rev=1.1 Index: php-src/ext/openssl/tests/bug39217cert2.txt +++ php-src/ext/openssl/tests/bug39217cert2.txt -----BEGIN CERTIFICATE----- MIIC3DCCAkWgAwIBAgIQeqhtj1pzHCrTTq2AldV0ejANBgkqhkiG9w0BAQQFADAy MRcwFQYDVQQKEw5FLUFDSEFUIE1JTkRFRjEXMBUGA1UEAxMORS1BQ0hBVCBNSU5E RUYwHhcNMDQwMTA1MDAwMDAwWhcNMDYwMTA0MjM1OTU5WjCB5DEOMAwGA1UEBxQF UEFSSVMxCzAJBgNVBAYTAkZSMRcwFQYDVQQKFA5FLUFDSEFUIE1JTkRFRjEtMCsG A1UECxQkRW50LiAtIENhcCBHZW1pbmkgRXJuc3QgWW91bmcgRnJhbmNlMR8wHQYD VQQLFBZTSVJFTiAtIDMyODc4MTc4NjAwMDUzMTQwMgYDVQQDEytDR0VZIEZyYW5j ZSAtIENhcCBHZW1pbmkgRXJuc3QgWW91bmcgRnJhbmNlMSYwJAYJKoZIhvcNAQkB FhdkZ2FlbWEtbWNvQGNhcGdlbWluaS5mcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAw gYkCgYEApFgcuVTuUe0z+iGTaPw7yVxhZsPq6aIqGHsCvU9fqUcymbmg9l4oTfAk gR5bvDo+JTQb1/OPlQCKqyVa7wn6lPs97dMOZMobjCRcvw7z0jVphortA1NS8FRH 6LsWELZ13uC57IIakpW726Vz3tST9qHHbQoWbX/n8NjHcwL4zUECAwEAAaNAMD4w CQYDVR0TBAIwADALBgNVHQ8EBAMCBaAwEQYJYIZIAYb4QgEBBAQDAgeAMBEGCmCG SAGG+EUBBgkEAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAWdmEu8TkFdgqA/xN6llo9 zZR3EUH0X5HstxJRYgofcQyfumJHhgvaNB8vkDhZ3iJORVVxcJ27W36TAJ6b4jcr yWjO/nc42XdgknS8r9NIV7VKzmjY7Ip2+9N6JOAWFkjGrnF1G69nrerIJavJTzrb PYlQnzJO6SHAoi5j6WsKPw== -----END CERTIFICATE-----

« previous php.cvs (#41185) next »