pajoye Tue Nov 18 02:12:48 2008 UTC
Modified files:
/php-src/ext/openssl openssl.c
/php-src/ext/openssl/tests bug41033.pem bug41033.phpt
bug41033pub.pem
Log:
- MFB: #41033, enable signing with DSA keys
http://cvs.php.net/viewvc.cgi/php-src/ext/openssl/openssl.c?r1=1.176&r2=1.177&diff_format=u
Index: php-src/ext/openssl/openssl.c
diff -u php-src/ext/openssl/openssl.c:1.176 php-src/ext/openssl/openssl.c:1.177
--- php-src/ext/openssl/openssl.c:1.176 Mon Nov 17 21:54:20 2008
+++ php-src/ext/openssl/openssl.c Tue Nov 18 02:12:47 2008
@@ -20,7 +20,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: openssl.c,v 1.176 2008/11/17 21:54:20 scottmac Exp $ */
+/* $Id: openssl.c,v 1.177 2008/11/18 02:12:47 pajoye Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -55,7 +55,7 @@
#define OPENSSL_ALGO_MD5 2
#define OPENSSL_ALGO_MD4 3
#define OPENSSL_ALGO_MD2 4
-
+#define OPENSSL_ALGO_DSS1 5
#define DEBUG_SMIME 0
/* FIXME: Use the openssl constants instead of
@@ -904,6 +904,9 @@
case OPENSSL_ALGO_MD2:
mdtype = (EVP_MD *) EVP_md2();
break;
+ case OPENSSL_ALGO_DSS1:
+ mdtype = (EVP_MD *) EVP_dss1();
+ break;
default:
return NULL;
break;
@@ -983,6 +986,7 @@
REGISTER_LONG_CONSTANT("OPENSSL_ALGO_MD5", OPENSSL_ALGO_MD5,
CONST_CS|CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("OPENSSL_ALGO_MD4", OPENSSL_ALGO_MD4,
CONST_CS|CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("OPENSSL_ALGO_MD2", OPENSSL_ALGO_MD2,
CONST_CS|CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("OPENSSL_ALGO_DSS1", OPENSSL_ALGO_DSS1,
CONST_CS|CONST_PERSISTENT);
/* flags for S/MIME */
REGISTER_LONG_CONSTANT("PKCS7_DETACHED", PKCS7_DETACHED,
CONST_CS|CONST_PERSISTENT);
http://cvs.php.net/viewvc.cgi/php-src/ext/openssl/tests/bug41033.pem?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/openssl/tests/bug41033.pem
diff -u /dev/null php-src/ext/openssl/tests/bug41033.pem:1.2
--- /dev/null Tue Nov 18 02:12:48 2008
+++ php-src/ext/openssl/tests/bug41033.pem Tue Nov 18 02:12:48 2008
@@ -0,0 +1,12 @@
+-----BEGIN DSA PRIVATE KEY-----
+MIIBuwIBAAKBgQCrQ/By/Y5OQRmmc/e+W+eFVoeR5y8WPOkykwS2hc21aSNY5X3q
+8ZHdV467thFd/QCoR55hHTRGRbYmfOkXSiscotU08ISlxIH39EEhFSzwqzkxFfak
+cgHEu41AUOIfJ2Dz+vcmuasME159pDP0d0gt55pKRPcXoh916p2VS/FBiQIVAMnQ
+C6W+K1brelHqpUqwQ1cdNJklAoGAN858gG/UIF+U3CYTcgl5/OUAqOzvitMV2ue+
+AkDEkGNEZs3KUAjpqHduf1E3znl7hJJIRr+33sul9USxn0vczDBkEJPralQjNX2C
+dnYKDDhJ+UKlAFG2JZint4CBKPFiZC0tVo04iDQQUUfDC4c8K3cS5uzypebJyoLo
+e5b8rScCgYBedJg6vklhMWv2wZD10hbQaXEX5r8T6EQujbfO0RcKpuaJziPPrXO8
+QwPtLt0f40yjTmPxN3LcpgMymiun9UCSTZ3MhVKekCmSNzs5+lQpCm1VlDrCg+jn
+djw0VCX8Cm0lOPIyQ4eCNAB6nQLtBnXFWaqYuUS8iVDE7wmT0iwnkAIVAMKogWVA
+ZOKwjTj9Yztv3lGj7VTa
+-----END DSA PRIVATE KEY-----
http://cvs.php.net/viewvc.cgi/php-src/ext/openssl/tests/bug41033.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/openssl/tests/bug41033.phpt
diff -u /dev/null php-src/ext/openssl/tests/bug41033.phpt:1.2
--- /dev/null Tue Nov 18 02:12:48 2008
+++ php-src/ext/openssl/tests/bug41033.phpt Tue Nov 18 02:12:48 2008
@@ -0,0 +1,27 @@
+--TEST--
+#41033, enable signing with DSA keys
+--SKIPIF--
+<?php
+if (!extension_loaded("openssl")) die("skip, openssl required");
+if (OPENSSL_VERSION_NUMBER < 0x009070af) die("skip");
+?>
+--FILE--
+<?php
+$prv = 'file://' . dirname(__FILE__) . '/' . 'bug41033.pem';
+$pub = 'file://' . dirname(__FILE__) . '/' . 'bug41033pub.pem';
+
+
+$prkeyid = openssl_get_privatekey($prv, "1234");
+$ct = b"Hello I am some text!";
+openssl_sign($ct, $signature, $prkeyid, OPENSSL_ALGO_DSS1);
+echo "Signature: ".base64_encode($signature) . "\n";
+
+$pukeyid = openssl_get_publickey($pub);
+$valid = openssl_verify($ct, $signature, $pukeyid, OPENSSL_ALGO_DSS1);
+echo "Signature validity: " . $valid . "\n";
+
+
+?>
+--EXPECTF--
+Signature: %s
+Signature validity: 1
http://cvs.php.net/viewvc.cgi/php-src/ext/openssl/tests/bug41033pub.pem?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/openssl/tests/bug41033pub.pem
diff -u /dev/null php-src/ext/openssl/tests/bug41033pub.pem:1.2
--- /dev/null Tue Nov 18 02:12:48 2008
+++ php-src/ext/openssl/tests/bug41033pub.pem Tue Nov 18 02:12:48 2008
@@ -0,0 +1,12 @@
+-----BEGIN PUBLIC KEY-----
+MIIBtjCCASsGByqGSM44BAEwggEeAoGBAKtD8HL9jk5BGaZz975b54VWh5HnLxY8
+6TKTBLaFzbVpI1jlferxkd1Xjru2EV39AKhHnmEdNEZFtiZ86RdKKxyi1TTwhKXE
+gff0QSEVLPCrOTEV9qRyAcS7jUBQ4h8nYPP69ya5qwwTXn2kM/R3SC3nmkpE9xei
+H3XqnZVL8UGJAhUAydALpb4rVut6UeqlSrBDVx00mSUCgYA3znyAb9QgX5TcJhNy
+CXn85QCo7O+K0xXa574CQMSQY0RmzcpQCOmod25/UTfOeXuEkkhGv7fey6X1RLGf
+S9zMMGQQk+tqVCM1fYJ2dgoMOEn5QqUAUbYlmKe3gIEo8WJkLS1WjTiINBBRR8ML
+hzwrdxLm7PKl5snKguh7lvytJwOBhAACgYBedJg6vklhMWv2wZD10hbQaXEX5r8T
+6EQujbfO0RcKpuaJziPPrXO8QwPtLt0f40yjTmPxN3LcpgMymiun9UCSTZ3MhVKe
+kCmSNzs5+lQpCm1VlDrCg+jndjw0VCX8Cm0lOPIyQ4eCNAB6nQLtBnXFWaqYuUS8
+iVDE7wmT0iwnkA==
+-----END PUBLIC KEY-----
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php