openssl_decrypt_ocb.phpt 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. --TEST--
  2. openssl_decrypt() with OCB cipher algorithm tests
  3. --EXTENSIONS--
  4. openssl
  5. --SKIPIF--
  6. <?php
  7. if (!in_array('aes-128-ocb', openssl_get_cipher_methods()))
  8. die("skip: aes-128-ocb not available");
  9. ?>
  10. --FILE--
  11. <?php
  12. require_once __DIR__ . "/cipher_tests.inc";
  13. $method = 'aes-128-ocb';
  14. $tests = openssl_get_cipher_tests($method);
  15. foreach ($tests as $idx => $test) {
  16. echo "TEST $idx\n";
  17. $pt = openssl_decrypt($test['ct'], $method, $test['key'], OPENSSL_RAW_DATA,
  18. $test['iv'], $test['tag'], $test['aad']);
  19. var_dump($test['pt'] === $pt);
  20. }
  21. // no IV
  22. var_dump(openssl_decrypt($test['ct'], $method, $test['key'], OPENSSL_RAW_DATA,
  23. '', $test['tag'], $test['aad']));
  24. // IV too long
  25. var_dump(openssl_decrypt($test['ct'], $method, $test['key'], OPENSSL_RAW_DATA,
  26. str_repeat('x', 32), $test['tag'], $test['aad']));
  27. // failed because no AAD
  28. var_dump(openssl_decrypt($test['ct'], $method, $test['key'], OPENSSL_RAW_DATA,
  29. $test['iv'], $test['tag']));
  30. // failed because wrong tag
  31. var_dump(openssl_decrypt($test['ct'], $method, $test['key'], OPENSSL_RAW_DATA,
  32. $test['iv'], str_repeat('x', 16), $test['aad']));
  33. ?>
  34. --EXPECTF--
  35. TEST 0
  36. bool(true)
  37. TEST 1
  38. bool(true)
  39. TEST 2
  40. bool(true)
  41. TEST 3
  42. bool(true)
  43. TEST 4
  44. bool(true)
  45. TEST 5
  46. bool(true)
  47. Warning: openssl_decrypt(): Setting of IV length for AEAD mode failed in %s on line %d
  48. bool(false)
  49. Warning: openssl_decrypt(): Setting of IV length for AEAD mode failed in %s on line %d
  50. bool(false)
  51. bool(false)
  52. bool(false)