Sha256: bf0aea467a11e472010f66d63201df40139ed9b6148c3e38869bce40a4685c3c
Contents?: true
Size: 1.56 KB
Versions: 19
Compression:
Stored size: 1.56 KB
Contents
/** * TripleDESKeyTest * * A test class for TripleDESKey * Copyright (c) 2007 Henri Torgemane * * See LICENSE.txt for full license information. */ package com.hurlant.crypto.tests { import com.hurlant.crypto.symmetric.TripleDESKey; import com.hurlant.util.Hex; import flash.utils.ByteArray; import com.hurlant.crypto.symmetric.ICipher; import com.hurlant.crypto.symmetric.ECBMode; public class TripleDESKeyTest extends TestCase { public function TripleDESKeyTest(h:ITestHarness) { super(h, "Triped Des Test"); runTest(testECB,"Triple DES ECB Test Vectors"); h.endTestCase(); } /** * Lots of vectors at http://csrc.nist.gov/publications/nistpubs/800-20/800-20.pdf * XXX move them in here. */ public function testECB():void { var keys:Array = [ "010101010101010101010101010101010101010101010101", "dd24b3aafcc69278d650dad234956b01e371384619492ac4", ]; var pts:Array = [ "8000000000000000", "F36B21045A030303", ]; var cts:Array = [ "95F8A5E5DD31D900", "E823A43DEEA4D0A4", ]; for (var i:uint=0;i<keys.length;i++) { var key:ByteArray = Hex.toArray(keys[i]); var pt:ByteArray = Hex.toArray(pts[i]); var ede:TripleDESKey = new TripleDESKey(key); ede.encrypt(pt); var out:String = Hex.fromArray(pt).toUpperCase(); assert("comparing "+cts[i]+" to "+out, cts[i]==out); // now go back to plaintext ede.decrypt(pt); out = Hex.fromArray(pt).toUpperCase(); assert("comparing "+pts[i]+" to "+out, pts[i]==out); } } } }
Version data entries
19 entries across 19 versions & 4 rubygems