openssl_spki_verify_basic.phpt 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. --TEST--
  2. openssl_spki_verify() tests for valid signature
  3. --INI--
  4. error_reporting=0
  5. --SKIPIF--
  6. <?php
  7. if (!extension_loaded("openssl")) die("skip");
  8. ?>
  9. --FILE--
  10. <?php
  11. /* array of private key sizes to test */
  12. $key_sizes = array(1024, 2048, 4096);
  13. $pkeys = array();
  14. foreach ($key_sizes as $key_size) {
  15. $key_file = "file://" . dirname(__FILE__) . "/private_rsa_" . $key_size . ".key";
  16. $pkeys[] = openssl_pkey_get_private($key_file);
  17. }
  18. /* array of available hashings to test */
  19. $algo = array(
  20. OPENSSL_ALGO_SHA1,
  21. OPENSSL_ALGO_SHA224,
  22. OPENSSL_ALGO_SHA256,
  23. OPENSSL_ALGO_SHA384,
  24. OPENSSL_ALGO_SHA512,
  25. OPENSSL_ALGO_RMD160
  26. );
  27. /* loop over key sizes for test */
  28. foreach ($pkeys as $pkey) {
  29. /* loop to create and verify results */
  30. foreach ($algo as $value) {
  31. $spkac = openssl_spki_new($pkey, _uuid(), $value);
  32. var_dump(openssl_spki_verify(preg_replace('/SPKAC=/', '', $spkac)));
  33. var_dump(openssl_spki_verify($spkac . 'Make it fail'));
  34. }
  35. }
  36. /* generate a random challenge */
  37. function _uuid() {
  38. return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', mt_rand(0, 0xffff),
  39. mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0x0fff) | 0x4000,
  40. mt_rand(0, 0x3fff) | 0x8000, mt_rand(0, 0xffff),
  41. mt_rand(0, 0xffff), mt_rand(0, 0xffff));
  42. }
  43. ?>
  44. --EXPECT--
  45. bool(true)
  46. bool(false)
  47. bool(true)
  48. bool(false)
  49. bool(true)
  50. bool(false)
  51. bool(true)
  52. bool(false)
  53. bool(true)
  54. bool(false)
  55. bool(true)
  56. bool(false)
  57. bool(true)
  58. bool(false)
  59. bool(true)
  60. bool(false)
  61. bool(true)
  62. bool(false)
  63. bool(true)
  64. bool(false)
  65. bool(true)
  66. bool(false)
  67. bool(true)
  68. bool(false)
  69. bool(true)
  70. bool(false)
  71. bool(true)
  72. bool(false)
  73. bool(true)
  74. bool(false)
  75. bool(true)
  76. bool(false)
  77. bool(true)
  78. bool(false)
  79. bool(true)
  80. bool(false)