]> granicus.if.org Git - php/commitdiff
Rewrite OpenSSL SPKI tests to speed them up
authorJakub Zelenka <bukka@php.net>
Sun, 31 Jan 2016 14:28:13 +0000 (14:28 +0000)
committerJakub Zelenka <bukka@php.net>
Sun, 31 Jan 2016 14:28:13 +0000 (14:28 +0000)
Also fix some CS issue and naming

ext/openssl/tests/openssl_spki_export.phpt [deleted file]
ext/openssl/tests/openssl_spki_export_basic.phpt [new file with mode: 0644]
ext/openssl/tests/openssl_spki_export_challenge_basic.phpt [moved from ext/openssl/tests/openssl_spki_export_challenge.phpt with 64% similarity]
ext/openssl/tests/openssl_spki_new.phpt [deleted file]
ext/openssl/tests/openssl_spki_new_basic.phpt [new file with mode: 0644]
ext/openssl/tests/openssl_spki_verify.phpt [deleted file]
ext/openssl/tests/openssl_spki_verify_basic.phpt [new file with mode: 0644]

diff --git a/ext/openssl/tests/openssl_spki_export.phpt b/ext/openssl/tests/openssl_spki_export.phpt
deleted file mode 100644 (file)
index 59332f7..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
---TEST--
-Testing openssl_spki_export()
-Creates SPKAC for all available key sizes & signature algorithms and exports public key
---SKIPIF--
-<?php
-if (!extension_loaded("openssl")) die("skip");
-if (!@openssl_pkey_new()) die("skip cannot create private key");
-?>
---FILE--
-<?php
-
-/* array of private key sizes to test */
-$ksize = array('1024'=>1024,
-                          '2048'=>2048,
-                          '4096'=>4096);
-
-/* array of available hashings to test */
-$algo = array('md4'=>OPENSSL_ALGO_MD4,
-              'md5'=>OPENSSL_ALGO_MD5,
-              'sha1'=>OPENSSL_ALGO_SHA1,
-                         'sha224'=>OPENSSL_ALGO_SHA224,
-              'sha256'=>OPENSSL_ALGO_SHA256,
-              'sha384'=>OPENSSL_ALGO_SHA384,
-              'sha512'=>OPENSSL_ALGO_SHA512,
-              'rmd160'=>OPENSSL_ALGO_RMD160);
-
-/* loop over key sizes for test */
-foreach($ksize as $k => $v) {
-
-       /* generate new private key of specified size to use for tests */
-       $pkey = openssl_pkey_new(array('digest_alg' => 'sha512',
-                                      'private_key_type' => OPENSSL_KEYTYPE_RSA,
-                                      'private_key_bits' => $v));
-       openssl_pkey_export($pkey, $pass);
-
-       /* loop to create and verify results */
-       foreach($algo as $key => $value) {
-               $spkac = openssl_spki_new($pkey, _uuid(), $value);
-               echo openssl_spki_export(preg_replace('/SPKAC=/', '', $spkac));
-       }
-       openssl_free_key($pkey);
-}
-
-/* generate a random challenge */
-function _uuid()
-{
- return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', mt_rand(0, 0xffff),
-                mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0x0fff) | 0x4000,
-                mt_rand(0, 0x3fff) | 0x8000, mt_rand(0, 0xffff),
-                mt_rand(0, 0xffff), mt_rand(0, 0xffff));
-}
-
-?>
---EXPECTREGEX--
-\-\-\-\-\-BEGIN PUBLIC KEY\-\-\-\-\-.*\-\-\-\-\-END PUBLIC KEY\-\-\-\-\-
-\-\-\-\-\-BEGIN PUBLIC KEY\-\-\-\-\-.*\-\-\-\-\-END PUBLIC KEY\-\-\-\-\-
-\-\-\-\-\-BEGIN PUBLIC KEY\-\-\-\-\-.*\-\-\-\-\-END PUBLIC KEY\-\-\-\-\-
-\-\-\-\-\-BEGIN PUBLIC KEY\-\-\-\-\-.*\-\-\-\-\-END PUBLIC KEY\-\-\-\-\-
-\-\-\-\-\-BEGIN PUBLIC KEY\-\-\-\-\-.*\-\-\-\-\-END PUBLIC KEY\-\-\-\-\-
-\-\-\-\-\-BEGIN PUBLIC KEY\-\-\-\-\-.*\-\-\-\-\-END PUBLIC KEY\-\-\-\-\-
-\-\-\-\-\-BEGIN PUBLIC KEY\-\-\-\-\-.*\-\-\-\-\-END PUBLIC KEY\-\-\-\-\-
-\-\-\-\-\-BEGIN PUBLIC KEY\-\-\-\-\-.*\-\-\-\-\-END PUBLIC KEY\-\-\-\-\-
diff --git a/ext/openssl/tests/openssl_spki_export_basic.phpt b/ext/openssl/tests/openssl_spki_export_basic.phpt
new file mode 100644 (file)
index 0000000..1e3bd1f
--- /dev/null
@@ -0,0 +1,60 @@
+--TEST--
+openssl_spki_export() tests for exporting public key
+--SKIPIF--
+<?php
+if (!extension_loaded("openssl")) die("skip");
+if (!@openssl_pkey_new()) die("skip cannot create private key");
+?>
+--FILE--
+<?php
+
+/* array of private key sizes to test */
+$key_sizes = array(1024, 2048, 4096);
+$pkeys = array();
+foreach ($key_sizes as $key_size) {
+       $key_file = "file://" . dirname(__FILE__) . "/private_rsa_" . $key_size . ".key";
+       $pkeys[] = openssl_pkey_get_private($key_file);
+}
+
+
+/* array of available hashings to test */
+$algo = array(
+       OPENSSL_ALGO_MD4,
+       OPENSSL_ALGO_MD5,
+       OPENSSL_ALGO_SHA1,
+       OPENSSL_ALGO_SHA224,
+       OPENSSL_ALGO_SHA256,
+       OPENSSL_ALGO_SHA384,
+       OPENSSL_ALGO_SHA512,
+       OPENSSL_ALGO_RMD160
+);
+
+/* loop over key sizes for test */
+foreach ($pkeys as $pkey) {
+
+       /* loop to create and verify results */
+       foreach ($algo as $value) {
+               $spkac = openssl_spki_new($pkey, _uuid(), $value);
+               echo openssl_spki_export(preg_replace('/SPKAC=/', '', $spkac));
+       }
+}
+
+/* generate a random challenge */
+function _uuid() {
+       return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', mt_rand(0, 0xffff),
+               mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0x0fff) | 0x4000,
+               mt_rand(0, 0x3fff) | 0x8000, mt_rand(0, 0xffff),
+               mt_rand(0, 0xffff), mt_rand(0, 0xffff));
+}
+
+
+?>
+--EXPECTREGEX--
+\-\-\-\-\-BEGIN PUBLIC KEY\-\-\-\-\-.*\-\-\-\-\-END PUBLIC KEY\-\-\-\-\-
+\-\-\-\-\-BEGIN PUBLIC KEY\-\-\-\-\-.*\-\-\-\-\-END PUBLIC KEY\-\-\-\-\-
+\-\-\-\-\-BEGIN PUBLIC KEY\-\-\-\-\-.*\-\-\-\-\-END PUBLIC KEY\-\-\-\-\-
+\-\-\-\-\-BEGIN PUBLIC KEY\-\-\-\-\-.*\-\-\-\-\-END PUBLIC KEY\-\-\-\-\-
+\-\-\-\-\-BEGIN PUBLIC KEY\-\-\-\-\-.*\-\-\-\-\-END PUBLIC KEY\-\-\-\-\-
+\-\-\-\-\-BEGIN PUBLIC KEY\-\-\-\-\-.*\-\-\-\-\-END PUBLIC KEY\-\-\-\-\-
+\-\-\-\-\-BEGIN PUBLIC KEY\-\-\-\-\-.*\-\-\-\-\-END PUBLIC KEY\-\-\-\-\-
+\-\-\-\-\-BEGIN PUBLIC KEY\-\-\-\-\-.*\-\-\-\-\-END PUBLIC KEY\-\-\-\-\-
similarity index 64%
rename from ext/openssl/tests/openssl_spki_export_challenge.phpt
rename to ext/openssl/tests/openssl_spki_export_challenge_basic.phpt
index 71ef62edd50831878fc2642f6f20f5396d04952f..07a69d3b454ee97a4969dd5beb9b8f7d8c707d46 100644 (file)
@@ -1,6 +1,5 @@
 --TEST--
-Testing openssl_spki_export_challenge()
-Creates SPKAC for all available key sizes & signature algorithms and exports challenge
+openssl_spki_export_challenge() tests for exporting challenge
 --INI--
 error_reporting=0
 --SKIPIF--
@@ -12,47 +11,46 @@ if (!@openssl_pkey_new()) die("skip cannot create private key");
 <?php
 
 /* array of private key sizes to test */
-$ksize = array('1024'=>1024,
-                          '2048'=>2048,
-                          '4096'=>4096);
+$key_sizes = array(1024, 2048, 4096);
+$pkeys = array();
+foreach ($key_sizes as $key_size) {
+       $key_file = "file://" . dirname(__FILE__) . "/private_rsa_" . $key_size . ".key";
+       $pkeys[] = openssl_pkey_get_private($key_file);
+}
+
 
 /* array of available hashings to test */
-$algo = array('md4'=>OPENSSL_ALGO_MD4,
-              'md5'=>OPENSSL_ALGO_MD5,
-              'sha1'=>OPENSSL_ALGO_SHA1,
-                         'sha224'=>OPENSSL_ALGO_SHA224,
-              'sha256'=>OPENSSL_ALGO_SHA256,
-              'sha384'=>OPENSSL_ALGO_SHA384,
-              'sha512'=>OPENSSL_ALGO_SHA512,
-              'rmd160'=>OPENSSL_ALGO_RMD160);
+$algo = array(
+       OPENSSL_ALGO_MD4,
+       OPENSSL_ALGO_MD5,
+       OPENSSL_ALGO_SHA1,
+       OPENSSL_ALGO_SHA224,
+       OPENSSL_ALGO_SHA256,
+       OPENSSL_ALGO_SHA384,
+       OPENSSL_ALGO_SHA512,
+       OPENSSL_ALGO_RMD160
+);
 
 /* loop over key sizes for test */
-foreach($ksize as $k => $v) {
-
-       /* generate new private key of specified size to use for tests */
-       $pkey = openssl_pkey_new(array('digest_alg' => 'sha512',
-                                      'private_key_type' => OPENSSL_KEYTYPE_RSA,
-                                      'private_key_bits' => $v));
-       openssl_pkey_export($pkey, $pass);
+foreach ($pkeys as $pkey) {
 
        /* loop to create and verify results */
-       foreach($algo as $key => $value) {
+       foreach ($algo as $value) {
                $spkac = openssl_spki_new($pkey, _uuid(), $value);
                var_dump(openssl_spki_export_challenge(preg_replace('/SPKAC=/', '', $spkac)));
-               var_dump(openssl_spki_export_challenge($spkac.'Make it fail'));
+               var_dump(openssl_spki_export_challenge($spkac  . 'Make it fail'));
        }
-       openssl_free_key($pkey);
 }
 
 /* generate a random challenge */
-function _uuid()
-{
- return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', mt_rand(0, 0xffff),
-                mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0x0fff) | 0x4000,
-                mt_rand(0, 0x3fff) | 0x8000, mt_rand(0, 0xffff),
-                mt_rand(0, 0xffff), mt_rand(0, 0xffff));
+function _uuid() {
+       return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', mt_rand(0, 0xffff),
+               mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0x0fff) | 0x4000,
+               mt_rand(0, 0x3fff) | 0x8000, mt_rand(0, 0xffff),
+               mt_rand(0, 0xffff), mt_rand(0, 0xffff));
 }
 
+
 ?>
 --EXPECTREGEX--
 string\(36\) \"[0-9a-f]{8}\-([0-9a-f]{4}\-){3}[0-9a-f]{12}\"
diff --git a/ext/openssl/tests/openssl_spki_new.phpt b/ext/openssl/tests/openssl_spki_new.phpt
deleted file mode 100644 (file)
index e40f9bf..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
---TEST--
-Testing openssl_spki_new()
-Tests SPKAC for all available private key sizes & hashing algorithms
---SKIPIF--
-<?php
-if (!extension_loaded("openssl")) die("skip");
-if (!@openssl_pkey_new()) die("skip cannot create private key");
-?>
---FILE--
-<?php
-
-/* array of private key sizes to test */
-$ksize = array('1024'=>1024,
-                          '2048'=>2048,
-                          '4096'=>4096);
-
-/* array of available hashings to test */
-$algo = array('md4'=>OPENSSL_ALGO_MD4,
-              'md5'=>OPENSSL_ALGO_MD5,
-              'sha1'=>OPENSSL_ALGO_SHA1,
-                         'sha224'=>OPENSSL_ALGO_SHA224,
-              'sha256'=>OPENSSL_ALGO_SHA256,
-              'sha384'=>OPENSSL_ALGO_SHA384,
-              'sha512'=>OPENSSL_ALGO_SHA512,
-              'rmd160'=>OPENSSL_ALGO_RMD160);
-
-/* loop over key sizes for test */
-foreach($ksize as $k => $v) {
-
-       /* generate new private key of specified size to use for tests */
-       $pkey = openssl_pkey_new(array('digest_alg' => 'sha512',
-                                      'private_key_type' => OPENSSL_KEYTYPE_RSA,
-                                      'private_key_bits' => $v));
-       openssl_pkey_export($pkey, $pass);
-
-       /* loop to create and verify results */
-       foreach($algo as $key => $value) {
-               var_dump(openssl_spki_new($pkey, _uuid(), $value));
-       }
-       openssl_free_key($pkey);
-}
-
-/* generate a random challenge */
-function _uuid()
-{
- return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', mt_rand(0, 0xffff),
-                mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0x0fff) | 0x4000,
-                mt_rand(0, 0x3fff) | 0x8000, mt_rand(0, 0xffff),
-                mt_rand(0, 0xffff), mt_rand(0, 0xffff));
-}
-
-?>
---EXPECTF--
-string(478) "%s"
-string(478) "%s"
-string(478) "%s"
-string(478) "%s"
-string(478) "%s"
-string(478) "%s"
-string(478) "%s"
-string(474) "%s"
-string(830) "%s"
-string(830) "%s"
-string(830) "%s"
-string(830) "%s"
-string(830) "%s"
-string(830) "%s"
-string(830) "%s"
-string(826) "%s"
-string(1510) "%s"
-string(1510) "%s"
-string(1510) "%s"
-string(1510) "%s"
-string(1510) "%s"
-string(1510) "%s"
-string(1510) "%s"
-string(1506) "%s"
diff --git a/ext/openssl/tests/openssl_spki_new_basic.phpt b/ext/openssl/tests/openssl_spki_new_basic.phpt
new file mode 100644 (file)
index 0000000..b31d6f9
--- /dev/null
@@ -0,0 +1,73 @@
+--TEST--
+openssl_spki_new() test for creating SPKI string
+--SKIPIF--
+<?php
+if (!extension_loaded("openssl")) die("skip");
+?>
+--FILE--
+<?php
+
+/* array of private key sizes to test */
+$key_sizes = array(1024, 2048, 4096);
+$pkeys = array();
+foreach ($key_sizes as $key_size) {
+       $key_file = "file://" . dirname(__FILE__) . "/private_rsa_" . $key_size . ".key";
+       $pkeys[] = openssl_pkey_get_private($key_file);
+}
+
+
+/* array of available hashings to test */
+$algo = array(
+       OPENSSL_ALGO_MD4,
+       OPENSSL_ALGO_MD5,
+       OPENSSL_ALGO_SHA1,
+       OPENSSL_ALGO_SHA224,
+       OPENSSL_ALGO_SHA256,
+       OPENSSL_ALGO_SHA384,
+       OPENSSL_ALGO_SHA512,
+       OPENSSL_ALGO_RMD160
+);
+
+/* loop over key sizes for test */
+foreach ($pkeys as $pkey) {
+
+       /* loop to create and verify results */
+       foreach ($algo as $value) {
+               var_dump(openssl_spki_new($pkey, _uuid(), $value));
+       }
+}
+
+/* generate a random challenge */
+function _uuid() {
+       return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', mt_rand(0, 0xffff),
+               mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0x0fff) | 0x4000,
+               mt_rand(0, 0x3fff) | 0x8000, mt_rand(0, 0xffff),
+               mt_rand(0, 0xffff), mt_rand(0, 0xffff));
+}
+
+?>
+--EXPECTF--
+string(478) "%s"
+string(478) "%s"
+string(478) "%s"
+string(478) "%s"
+string(478) "%s"
+string(478) "%s"
+string(478) "%s"
+string(474) "%s"
+string(830) "%s"
+string(830) "%s"
+string(830) "%s"
+string(830) "%s"
+string(830) "%s"
+string(830) "%s"
+string(830) "%s"
+string(826) "%s"
+string(1510) "%s"
+string(1510) "%s"
+string(1510) "%s"
+string(1510) "%s"
+string(1510) "%s"
+string(1510) "%s"
+string(1510) "%s"
+string(1506) "%s"
diff --git a/ext/openssl/tests/openssl_spki_verify.phpt b/ext/openssl/tests/openssl_spki_verify.phpt
deleted file mode 100644 (file)
index 52dc8e2..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
---TEST--
-Testing openssl_spki_verify()
-Creates SPKAC for all available key sizes & signature algorithms and tests for valid signature
---INI--
-error_reporting=0
---SKIPIF--
-<?php
-if (!extension_loaded("openssl")) die("skip");
-if (!@openssl_pkey_new()) die("skip cannot create private key");
-?>
---FILE--
-<?php
-
-/* array of private key sizes to test */
-$ksize = array('1024'=>1024,
-               '2048'=>2048,
-                          '4096'=>4096);
-
-/* array of available hashings to test */
-$algo = array('sha1'=>OPENSSL_ALGO_SHA1,
-                         'sha224'=>OPENSSL_ALGO_SHA224,
-              'sha256'=>OPENSSL_ALGO_SHA256,
-              'sha384'=>OPENSSL_ALGO_SHA384,
-              'sha512'=>OPENSSL_ALGO_SHA512,
-              'rmd160'=>OPENSSL_ALGO_RMD160);
-
-/* loop over key sizes for test */
-foreach($ksize as $k => $v) {
-
-       /* generate new private key of specified size to use for tests */
-       $pkey = openssl_pkey_new(array('digest_alg' => 'sha512',
-                                      'private_key_type' => OPENSSL_KEYTYPE_RSA,
-                                      'private_key_bits' => $v));
-       openssl_pkey_export($pkey, $pass);
-
-       /* loop to create and verify results */
-       foreach($algo as $key => $value) {
-               $spkac = openssl_spki_new($pkey, _uuid(), $value);
-               var_dump(openssl_spki_verify(preg_replace('/SPKAC=/', '', $spkac)));
-               var_dump(openssl_spki_verify($spkac.'Make it fail'));
-       }
-       openssl_free_key($pkey);
-}
-
-/* generate a random challenge */
-function _uuid()
-{
- return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', mt_rand(0, 0xffff),
-                mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0x0fff) | 0x4000,
-                mt_rand(0, 0x3fff) | 0x8000, mt_rand(0, 0xffff),
-                mt_rand(0, 0xffff), mt_rand(0, 0xffff));
-}
-
-?>
---EXPECT--
-bool(true)
-bool(false)
-bool(true)
-bool(false)
-bool(true)
-bool(false)
-bool(true)
-bool(false)
-bool(true)
-bool(false)
-bool(true)
-bool(false)
-bool(true)
-bool(false)
-bool(true)
-bool(false)
-bool(true)
-bool(false)
-bool(true)
-bool(false)
-bool(true)
-bool(false)
-bool(true)
-bool(false)
-bool(true)
-bool(false)
-bool(true)
-bool(false)
-bool(true)
-bool(false)
-bool(true)
-bool(false)
-bool(true)
-bool(false)
-bool(true)
-bool(false)
\ No newline at end of file
diff --git a/ext/openssl/tests/openssl_spki_verify_basic.phpt b/ext/openssl/tests/openssl_spki_verify_basic.phpt
new file mode 100644 (file)
index 0000000..7b56a37
--- /dev/null
@@ -0,0 +1,88 @@
+--TEST--
+openssl_spki_verify() tests for valid signature
+--INI--
+error_reporting=0
+--SKIPIF--
+<?php
+if (!extension_loaded("openssl")) die("skip");
+?>
+--FILE--
+<?php
+
+/* array of private key sizes to test */
+$key_sizes = array(1024, 2048, 4096);
+$pkeys = array();
+foreach ($key_sizes as $key_size) {
+       $key_file = "file://" . dirname(__FILE__) . "/private_rsa_" . $key_size . ".key";
+       $pkeys[] = openssl_pkey_get_private($key_file);
+}
+
+
+/* array of available hashings to test */
+$algo = array(
+       OPENSSL_ALGO_SHA1,
+       OPENSSL_ALGO_SHA224,
+       OPENSSL_ALGO_SHA256,
+       OPENSSL_ALGO_SHA384,
+       OPENSSL_ALGO_SHA512,
+       OPENSSL_ALGO_RMD160
+);
+
+/* loop over key sizes for test */
+foreach ($pkeys as $pkey) {
+
+       /* loop to create and verify results */
+       foreach ($algo as $value) {
+               $spkac = openssl_spki_new($pkey, _uuid(), $value);
+               var_dump(openssl_spki_verify(preg_replace('/SPKAC=/', '', $spkac)));
+               var_dump(openssl_spki_verify($spkac . 'Make it fail'));
+       }
+}
+
+/* generate a random challenge */
+function _uuid() {
+       return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', mt_rand(0, 0xffff),
+               mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0x0fff) | 0x4000,
+               mt_rand(0, 0x3fff) | 0x8000, mt_rand(0, 0xffff),
+               mt_rand(0, 0xffff), mt_rand(0, 0xffff));
+}
+
+
+?>
+--EXPECT--
+bool(true)
+bool(false)
+bool(true)
+bool(false)
+bool(true)
+bool(false)
+bool(true)
+bool(false)
+bool(true)
+bool(false)
+bool(true)
+bool(false)
+bool(true)
+bool(false)
+bool(true)
+bool(false)
+bool(true)
+bool(false)
+bool(true)
+bool(false)
+bool(true)
+bool(false)
+bool(true)
+bool(false)
+bool(true)
+bool(false)
+bool(true)
+bool(false)
+bool(true)
+bool(false)
+bool(true)
+bool(false)
+bool(true)
+bool(false)
+bool(true)
+bool(false)