1--TEST-- 2Crypto\Cipher::getTag in CCM mode basic usage. 3--SKIPIF-- 4<?php 5if (!Crypto\Cipher::hasMode(Crypto\Cipher::MODE_CCM)) { 6 die("Skip: CCM mode not defined (update OpenSSL version)"); 7} 8?> 9--FILE-- 10<?php 11$key = pack("H*", 'ceb009aea4454451feadf0e6b36f45555dd04723baa448e8'); 12$nonce = pack("H*", '764043c49460b7'); 13 14$data = pack("H*", 'c8d275f919e17d7fe69c2a1f58939dfe4d403791b5df1310'); 15 16$cipher = new Crypto\Cipher('aes-192-ccm'); 17 18try { 19 $cipher->getTag(); 20} 21catch (Crypto\CipherException $e) { 22 if ($e->getCode() == Crypto\CipherException::TAG_GETTER_FORBIDDEN) { 23 echo "FLOW\n"; 24 } 25} 26 27// init first 28echo bin2hex($cipher->encrypt($data, $key, $nonce)) . "\n"; 29echo bin2hex($cipher->getTag()) . "\n"; 30 31 32?> 33--EXPECT-- 34FLOW 358a0f3d8229e48e7487fd95a28ad392c80b3681d4fbc7bbfd 363ec1bc9d62356008ce6a4f78f6e3ceb1 37 38