com php-src: added option for raw output: ext/openssl/openssl.c
| From: | Michael Wallner | Date: | Fri, 20 Sep 2013 07:45:41 +0000 |
| Subject: | com php-src: added option for raw output: ext/openssl/openssl.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-73387@lists.php.net to get a copy of this message | ||
Commit: 5cff92fb12e83f4c6c81c6e8b89480def3ee5e9e
Author: datibbaw <datibbaw@php.net> Fri, 20 Sep 2013 15:45:41 +0800
Parents: b8f9a20286c6d88c11e81967df42d118bdba2f02
Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=5cff92fb12e83f4c6c81c6e8b89480def3ee5e9e
Log:
added option for raw output
Changed paths:
M ext/openssl/openssl.c
Diff:
diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c
index c7203a7..5dfb9b4 100644
--- a/ext/openssl/openssl.c
+++ b/ext/openssl/openssl.c
@@ -132,6 +132,7 @@ ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_openssl_x509_digest, 0, 0, 2)
ZEND_ARG_INFO(0, x509)
ZEND_ARG_INFO(1, out)
+ ZEND_ARG_INFO(0, raw_output)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO(arginfo_openssl_x509_check_private_key, 0)
@@ -1676,13 +1677,14 @@ PHP_FUNCTION(openssl_x509_digest)
X509 *cert;
zval **zcert, *zout;
long certresource;
+ zend_bool raw_output = 0;
unsigned char md[EVP_MAX_MD_SIZE];
unsigned int n;
RETVAL_FALSE;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Zz", &zcert, &zout) ==
FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Zz|b", &zcert, &zout,
&raw_output) == FAILURE) {
return;
}
@@ -1698,7 +1700,16 @@ PHP_FUNCTION(openssl_x509_digest)
}
zval_dtor(zout);
- ZVAL_STRINGL(zout, md, n, 1);
+
+ if (raw_output) {
+ ZVAL_STRINGL(zout, md, n, 1);
+ } else {
+ int digest_str_len = n * 2;
+ char *digest_str = emalloc(digest_str_len + 1);
+
+ make_digest_ex(digest_str, md, n);
+ ZVAL_STRINGL(zout, digest_str, digest_str_len, 0);
+ }
if (certresource == -1 && cert) {
X509_free(cert);