From ef356912b3c4e114d373960178fb8bf138668566 Mon Sep 17 00:00:00 2001 From: Jakub Zelenka Date: Sun, 31 Jan 2016 14:28:13 +0000 Subject: [PATCH] Rewrite OpenSSL SPKI tests to speed them up Also fix some CS issue and naming --- ext/openssl/tests/openssl_spki_export.phpt | 62 ------------- .../tests/openssl_spki_export_basic.phpt | 60 ++++++++++++ ... openssl_spki_export_challenge_basic.phpt} | 56 ++++++------ ext/openssl/tests/openssl_spki_new.phpt | 77 ---------------- ext/openssl/tests/openssl_spki_new_basic.phpt | 73 +++++++++++++++ ext/openssl/tests/openssl_spki_verify.phpt | 91 ------------------- .../tests/openssl_spki_verify_basic.phpt | 88 ++++++++++++++++++ 7 files changed, 248 insertions(+), 259 deletions(-) delete mode 100644 ext/openssl/tests/openssl_spki_export.phpt create mode 100644 ext/openssl/tests/openssl_spki_export_basic.phpt rename ext/openssl/tests/{openssl_spki_export_challenge.phpt => openssl_spki_export_challenge_basic.phpt} (64%) delete mode 100644 ext/openssl/tests/openssl_spki_new.phpt create mode 100644 ext/openssl/tests/openssl_spki_new_basic.phpt delete mode 100644 ext/openssl/tests/openssl_spki_verify.phpt create mode 100644 ext/openssl/tests/openssl_spki_verify_basic.phpt diff --git a/ext/openssl/tests/openssl_spki_export.phpt b/ext/openssl/tests/openssl_spki_export.phpt deleted file mode 100644 index 59332f70a5..0000000000 --- a/ext/openssl/tests/openssl_spki_export.phpt +++ /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-- - ---FILE-- -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 index 0000000000..1e3bd1fd39 --- /dev/null +++ b/ext/openssl/tests/openssl_spki_export_basic.phpt @@ -0,0 +1,60 @@ +--TEST-- +openssl_spki_export() tests for exporting public key +--SKIPIF-- + +--FILE-- + +--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_challenge.phpt b/ext/openssl/tests/openssl_spki_export_challenge_basic.phpt 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 71ef62edd5..07a69d3b45 100644 --- a/ext/openssl/tests/openssl_spki_export_challenge.phpt +++ b/ext/openssl/tests/openssl_spki_export_challenge_basic.phpt @@ -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"); 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 index e40f9bf28e..0000000000 --- a/ext/openssl/tests/openssl_spki_new.phpt +++ /dev/null @@ -1,77 +0,0 @@ ---TEST-- -Testing openssl_spki_new() -Tests SPKAC for all available private key sizes & hashing algorithms ---SKIPIF-- - ---FILE-- -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 index 0000000000..b31d6f9184 --- /dev/null +++ b/ext/openssl/tests/openssl_spki_new_basic.phpt @@ -0,0 +1,73 @@ +--TEST-- +openssl_spki_new() test for creating SPKI string +--SKIPIF-- + +--FILE-- + +--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 index 52dc8e2045..0000000000 --- a/ext/openssl/tests/openssl_spki_verify.phpt +++ /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-- - ---FILE-- -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 index 0000000000..7b56a37e13 --- /dev/null +++ b/ext/openssl/tests/openssl_spki_verify_basic.phpt @@ -0,0 +1,88 @@ +--TEST-- +openssl_spki_verify() tests for valid signature +--INI-- +error_reporting=0 +--SKIPIF-- + +--FILE-- + +--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) -- 2.40.0