<? include 'ocb2.php';
$tests = array( array( 'adata'=>'0123456789ABCDEF', 'key'=>'JD9qiIWjCNMTGYouA3BzRKQJOCIpnzHQCC76mOxObIk=', 'text'=>'Androcles A slave named Androcles once escaped from his master and fled to the forest. As he was wandering about there he came upon a Lion lying down moaning and groaning. At first he turned to flee, but finding that the Lion did not pursue him, he turned back and went up to him. As he came near, the Lion put out his paw, which was all swollen and bleeding, and Androcles found that a huge thorn had got into it, and was causing all the pain. He pulled out the thorn and bound up the paw of the Lion, who was soon able to rise and lick the hand of Androcles like a dog. Then the Lion took Androcles to his cave, and every day used to bring him meat from which to live. But shortly afterwards both Androcles and the Lion were captured, and the slave was sentenced to be thrown to the Lion, after the latter had been kept without food for several days. The Emperor and all his Court came to see the spectacle, and Androcles was led out into the middle of the arena. Soon the Lion was let loose from his den, and rushed bounding and roaring towards his victim. But as soon as he came near to Androcles he recognised his friend, and fawned upon him, and licked his hands like a friendly dog. The Emperor, surprised at this, summoned Androcles to him, who told him the whole story. Whereupon the slave was pardoned and freed, and the Lion let loose to his native forest.
Gratitude is the sign of noble souls.' ), array( 'adata'=>'0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF', 'key'=>'RSgh5jjQE3e+VGbPNOkMbMCsKbfJfFDdP4TVtbVHCRc=', 'text'=>'The Cock and the Jewel A COCK, scratching for food for himself and his hens, found a precious stone and exclaimed: "If your owner had found thee, and not I, he would have taken thee up, and have set thee in thy first estate; but I have found thee for no purpose. I would rather have one barleycorn than all the jewels in the world."' ), array( 'adata'=>'swordfish', 'key'=>'khbV2Yl5+xvRMQummN+1rC/9ctvQGt+3uOGv7WomfpY=', 'text'=>'The Rose and the Amaranth AN AMARANTH planted in a garden near a Rose-Tree, thus addressed it: "What a lovely flower is the Rose, a favorite alike with Gods and with men. I envy you your beauty and your perfume." The Rose replied, "I indeed, dear Amaranth, flourish but for a brief season! If no cruel hand pluck me from my stem, yet I must perish by an early doom. But thou art immortal and dost never fade, but bloomest for ever in renewed youth."' ), array( 'adata'=>'the swordfish is the most delicious of all weapon named fish, save the pike.', 'key'=>'unyQRfEsf5kkoZlHs5Fs9wgB8uKFjvwWY2kg2HFXTmk=', 'text'=>'The Traveler and Fortune A TRAVELER wearied from a long journey lay down, overcome with fatigue, on the very brink of a deep well. Just as he was about to fall into the water, Dame Fortune, it is said, appeared to him and waking him from his slumber thus addressed him: "Good Sir, pray wake up: for if you fall into the well, the blame will be thrown on me, and I shall get an ill name among mortals; for I find that men are sure to impute their calamities to me, however much by their own folly they have really brought them on themselves."
Everyone is more or less master of his own fate. ' ) );
$enc = new ocb2('rijndael-128',null); for ($i = 0, $len = sizeof($tests); $i < $len; $i++) { $iv = mcrypt_create_iv(16, MCRYPT_DEV_URANDOM); $enc->setKey(Base64_Decode($tests[$i]['key'])); $tests[$i]['iv'] = base64_Encode($iv); $tests[$i]['ct'] = base64_Encode($enc->encrypt($tests[$i]['text'],$iv,$tests[$i]['adata'])); $temp = $enc->decrypt(base64_Decode($tests[$i]['ct']),$iv,$tests[$i]['adata']); if ($temp != $tests[$i]['text']) { echo "<br>FAILED IN PHP<br>$temp<br><br>"; } unset($tests[$i]['text']); } $json = json_encode($tests); echo <<<EOD <html> <body> <script src="sjcl.js"></script> <pre> <script> var tests = $json
for (var i = 0, len = tests.length; i < len; i++) { document.writeln(sjcl.codec.utf8String.fromBits( sjcl.mode.ocb2.decrypt( new sjcl.cipher.aes(sjcl.codec.base64.toBits(tests[i]['key'])), sjcl.codec.base64.toBits(tests[i]['ct']), sjcl.codec.base64.toBits(tests[i]['iv']), sjcl.codec.utf8String.toBits(tests[i]['adata']) ) )+"\\n\\n"); } </script> <pre> </body> </html> EOD;
?>
|