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

Reply via email to