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