mirror of
https://github.com/php/php-src.git
synced 2026-04-04 14:42:49 +02:00
Merge branch 'PHP-7.0'
This commit is contained in:
@@ -8,12 +8,12 @@ $fp = fopen(dirname(__FILE__) . "/cert.crt","r");
|
||||
$a = fread($fp,8192);
|
||||
fclose($fp);
|
||||
|
||||
$fp = fopen(dirname(__FILE__) . "/private.key","r");
|
||||
$fp = fopen(dirname(__FILE__) . "/private_rsa_1024.key","r");
|
||||
$b = fread($fp,8192);
|
||||
fclose($fp);
|
||||
|
||||
$cert = "file://" . dirname(__FILE__) . "/cert.crt";
|
||||
$key = "file://" . dirname(__FILE__) . "/private.key";
|
||||
$key = "file://" . dirname(__FILE__) . "/private_rsa_1024.key";
|
||||
|
||||
var_dump(openssl_x509_check_private_key($cert, $key));
|
||||
var_dump(openssl_x509_check_private_key("", $key));
|
||||
|
||||
@@ -6,7 +6,7 @@ openssl_open() tests
|
||||
<?php
|
||||
$data = "openssl_open() test";
|
||||
$pub_key = "file://" . dirname(__FILE__) . "/public.key";
|
||||
$priv_key = "file://" . dirname(__FILE__) . "/private.key";
|
||||
$priv_key = "file://" . dirname(__FILE__) . "/private_rsa_1024.key";
|
||||
$wrong = "wrong";
|
||||
|
||||
openssl_seal($data, $sealed, $ekeys, array($pub_key, $pub_key, $pub_key));
|
||||
|
||||
@@ -5,7 +5,7 @@ openssl_private_encrypt() tests
|
||||
--FILE--
|
||||
<?php
|
||||
$data = "Testing openssl_private_encrypt()";
|
||||
$privkey = "file://" . dirname(__FILE__) . "/private.key";
|
||||
$privkey = "file://" . dirname(__FILE__) . "/private_rsa_1024.key";
|
||||
$pubkey = "file://" . dirname(__FILE__) . "/public.key";
|
||||
$wrong = "wrong";
|
||||
class test {
|
||||
|
||||
@@ -5,7 +5,7 @@ openssl_public_encrypt() tests
|
||||
--FILE--
|
||||
<?php
|
||||
$data = "Testing openssl_public_encrypt()";
|
||||
$privkey = "file://" . dirname(__FILE__) . "/private.key";
|
||||
$privkey = "file://" . dirname(__FILE__) . "/private_rsa_1024.key";
|
||||
$pubkey = "file://" . dirname(__FILE__) . "/public.key";
|
||||
$wrong = "wrong";
|
||||
class test {
|
||||
|
||||
@@ -5,7 +5,7 @@ openssl_public_decrypt() tests
|
||||
--FILE--
|
||||
<?php
|
||||
$data = "Testing openssl_public_decrypt()";
|
||||
$privkey = "file://" . dirname(__FILE__) . "/private.key";
|
||||
$privkey = "file://" . dirname(__FILE__) . "/private_rsa_1024.key";
|
||||
$pubkey = "file://" . dirname(__FILE__) . "/public.key";
|
||||
$wrong = "wrong";
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ openssl_private_decrypt() tests
|
||||
--FILE--
|
||||
<?php
|
||||
$data = "Testing openssl_public_decrypt()";
|
||||
$privkey = "file://" . dirname(__FILE__) . "/private.key";
|
||||
$privkey = "file://" . dirname(__FILE__) . "/private_rsa_1024.key";
|
||||
$pubkey = "file://" . dirname(__FILE__) . "/public.key";
|
||||
$wrong = "wrong";
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ openssl_sign() tests
|
||||
--FILE--
|
||||
<?php
|
||||
$data = "Testing openssl_sign()";
|
||||
$privkey = "file://" . dirname(__FILE__) . "/private.key";
|
||||
$privkey = "file://" . dirname(__FILE__) . "/private_rsa_1024.key";
|
||||
$wrong = "wrong";
|
||||
|
||||
var_dump(openssl_sign($data, $sign, $privkey)); // no output
|
||||
|
||||
@@ -5,7 +5,7 @@ openssl_verify() tests
|
||||
--FILE--
|
||||
<?php
|
||||
$data = "Testing openssl_verify()";
|
||||
$privkey = "file://" . dirname(__FILE__) . "/private.key";
|
||||
$privkey = "file://" . dirname(__FILE__) . "/private_rsa_1024.key";
|
||||
$pubkey = "file://" . dirname(__FILE__) . "/public.key";
|
||||
$wrong = "wrong";
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ openssl_csr_sign() tests
|
||||
--FILE--
|
||||
<?php
|
||||
$cert = "file://" . dirname(__FILE__) . "/cert.crt";
|
||||
$priv = "file://" . dirname(__FILE__) . "/private.key";
|
||||
$priv = "file://" . dirname(__FILE__) . "/private_rsa_1024.key";
|
||||
$wrong = "wrong";
|
||||
$pub = "file://" . dirname(__FILE__) . "/public.key";
|
||||
$config = __DIR__ . DIRECTORY_SEPARATOR . 'openssl.cnf';
|
||||
|
||||
@@ -13,7 +13,7 @@ if ($outfile2 === false)
|
||||
die("failed to get a temporary filename!");
|
||||
|
||||
$single_cert = "file://" . dirname(__FILE__) . "/cert.crt";
|
||||
$privkey = "file://" . dirname(__FILE__) . "/private.key";
|
||||
$privkey = "file://" . dirname(__FILE__) . "/private_rsa_1024.key";
|
||||
$multi_certs = array($single_cert, $single_cert);
|
||||
$assoc_headers = array("To" => "test@test", "Subject" => "testing openssl_pkcs7_encrypt()");
|
||||
$headers = array("test@test", "testing openssl_pkcs7_encrypt()");
|
||||
|
||||
@@ -5,7 +5,7 @@ openssl_pkcs7_decrypt() tests
|
||||
--FILE--
|
||||
<?php
|
||||
$infile = dirname(__FILE__) . "/cert.crt";
|
||||
$privkey = "file://" . dirname(__FILE__) . "/private.key";
|
||||
$privkey = "file://" . dirname(__FILE__) . "/private_rsa_1024.key";
|
||||
$encrypted = tempnam("/tmp", "ssl");
|
||||
if ($encrypted === false)
|
||||
die("failed to get a temporary filename!");
|
||||
|
||||
@@ -9,7 +9,7 @@ $outfile = tempnam("/tmp", "ssl");
|
||||
if ($outfile === false)
|
||||
die("failed to get a temporary filename!");
|
||||
|
||||
$privkey = "file://" . dirname(__FILE__) . "/private.key";
|
||||
$privkey = "file://" . dirname(__FILE__) . "/private_rsa_1024.key";
|
||||
$single_cert = "file://" . dirname(__FILE__) . "/cert.crt";
|
||||
$assoc_headers = array("To" => "test@test", "Subject" => "testing openssl_pkcs7_sign()");
|
||||
$headers = array("test@test", "testing openssl_pkcs7_sign()");
|
||||
|
||||
@@ -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\-\-\-\-\-
|
||||
60
ext/openssl/tests/openssl_spki_export_basic.phpt
Normal file
60
ext/openssl/tests/openssl_spki_export_basic.phpt
Normal file
@@ -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\-\-\-\-\-
|
||||
@@ -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}\"
|
||||
@@ -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"
|
||||
73
ext/openssl/tests/openssl_spki_new_basic.phpt
Normal file
73
ext/openssl/tests/openssl_spki_new_basic.phpt
Normal file
@@ -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"
|
||||
@@ -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)
|
||||
88
ext/openssl/tests/openssl_spki_verify_basic.phpt
Normal file
88
ext/openssl/tests/openssl_spki_verify_basic.phpt
Normal file
@@ -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)
|
||||
27
ext/openssl/tests/private_rsa_2048.key
Normal file
27
ext/openssl/tests/private_rsa_2048.key
Normal file
@@ -0,0 +1,27 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEpAIBAAKCAQEArbUmVW1Y+rJzZRC3DYB0kdIgvk7MAday78ybGPPDhVlbAb4C
|
||||
jWbaPs4nyUCTEt9KVG0H7pXHxDbWSsC2974zdvqlP0L2op1/M2SteTcGCBOdwGH2
|
||||
jORVAZL8/WbTOf9IpKAM77oN14scsyOlQBJqhh+xrLg8ksB2dOos54yDqo0Tq7R5
|
||||
tldV+alKZXWlJnqRCfFuxvqtfWI5nGTAedVZhvjQfLQQgujfXHoFWoGbXn2buzfw
|
||||
KGJEeqWPbQOZF/FeOJPlgOBhhDb3BAFNVCtM3k71Rblj54pNd3yvq152xsgFd0o3
|
||||
s15fuSwZgerUjeEuw/wTK9k7vyp+MrIQHQmPdQIDAQABAoIBABPDKDlP12+uHbLB
|
||||
1BGVK63rWg5MqKkM5A6kGIEeOoBRSilIlMHBkdLTYXNkBVeAT9SLEvvxzmhkVLzs
|
||||
b+R/nxtKKMKpu6WEhZQzQAkqWWVR1gCtJH+i+ojTUDUEHcPbZ0hTbSVY5XpAOWOo
|
||||
CoTfk37u3CfqTfnkK5XhjnpJYjFk60fLeTKKG90xb4WmPGCOxBZGeI9yk+gEgMVx
|
||||
4qYBQEgcaJEBXebvM0q8BCDh/rlYxwQ/q0RJ6W1D84SOeyYv/9LesFZSbnUN16tA
|
||||
/YezkhYVkVIrQFzh1al7NKvWEUZ3Yx3AEuggKtijlZyO9zOAOigSiFQjtqOl7S6e
|
||||
jbVfLYECgYEA51E5TNvN6IW6p58wOXTmINnsW3sDYS1CyPh3TkSvWU2OqMXJxQSA
|
||||
bASpXtqicAY32wkBOiazyY/+L7x1ReG/8z3tTm53AsYwkLKrgUfjdrOFhXWk8QI3
|
||||
0WS/1hS7qZ4Ycxi5B2X+rPPLnc2+mUvaEX6/B2Fjbqp4nIt+ZAE8SvcCgYEAwD47
|
||||
anMk8z68wdgzxY4J10sgCKfgHCe7J8ikpzloznX1HnbZTWf74FLlA/8ctfFJCVAy
|
||||
4dG1s0D+JSpxxMSkk4hvi10Ha6t5U+BreD9VPAQRspGSKhn8JfwvLfKPH65uazBP
|
||||
yvBtVIdagBf/msLfF33vkrQSjAEJM1njl6XMEfMCgYB1BddqNa0G3Figol0gRC6E
|
||||
Iht78FC2YdJun5yj4QWgtSbd5Sn9XRinDPiufwc8izjIu9Z+F8ROzWT3u2zMzLdy
|
||||
FDswuZvFsIQzP+CaB8dgbtO2v9yQ/OFGMqUGZfjGh6+w0qoQvx3HW5MAI20wWnpY
|
||||
7Xkw/6jw/JcGA2AOsb1R4wKBgQCFfnF54Q1GkEk4/m4tAA4bX4KWICUCyCAxZyXX
|
||||
LYl23PhiuDr7gnqockevt8ZzHWMPQY6juyFGoZoZqtinv7lc7YAvsWEGxmMQ+KUI
|
||||
Mkp4y4aSjn2GGNc8dVs5t9blNBZe/oRaMwxohzkz+/Y1vJ54TK5BHCRI7is6anAd
|
||||
jTchOwKBgQDP9yOdQTfUwJRUMERWmzXWU2oDXeEMdpbGPLGJ4/e/hu1CW7bdQRoc
|
||||
jBSEpn3hOodmdwdmoXtbJReMCE8qS6yVHNn4orpJf+uOBr5fVnHwttFfN8HID9js
|
||||
Lml8jAAQItMFw1CEPR75NVdFb7ksNKlxE9376tG63JhrTttRGwO3CA==
|
||||
-----END RSA PRIVATE KEY-----
|
||||
51
ext/openssl/tests/private_rsa_4096.key
Normal file
51
ext/openssl/tests/private_rsa_4096.key
Normal file
@@ -0,0 +1,51 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
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
|
||||
-----END RSA PRIVATE KEY-----
|
||||
Reference in New Issue
Block a user