/js/lib/Socket.IO-node/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/XTeaKeyTest.as
ActionScript | 66 lines | 45 code | 7 blank | 14 comment | 1 complexity | f2b74d2fe48379a963ff5732c64835d5 MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.1, MPL-2.0-no-copyleft-exception, BSD-3-Clause
- /**
- * XTeaKeyTest
- *
- * A test class for XTeaKey
- * Copyright (c) 2007 Henri Torgemane
- *
- * See LICENSE.txt for full license information.
- */
- package com.hurlant.crypto.tests
- {
- import com.hurlant.crypto.prng.Random;
- import com.hurlant.crypto.symmetric.ECBMode;
- import com.hurlant.crypto.symmetric.XTeaKey;
- import com.hurlant.util.Hex;
-
- import flash.utils.ByteArray;
- import flash.utils.getTimer;
-
- public class XTeaKeyTest extends TestCase
- {
- public function XTeaKeyTest(h:ITestHarness) {
- super(h, "XTeaKey Test");
- runTest(testGetBlockSize, "XTea Block Size");
- runTest(testVectors, "XTea Test Vectors");
-
- h.endTestCase();
- }
-
- public function testGetBlockSize():void {
- var tea:XTeaKey = new XTeaKey(Hex.toArray("deadbabecafebeefdeadbabecafebeef"));
- assert("tea blocksize", tea.getBlockSize()==8);
- }
-
- public function testVectors():void {
- // blah.
- // can't find working test vectors.
- // algorithms should not get published without vectors :(
- var keys:Array=[
- "00000000000000000000000000000000",
- "2b02056806144976775d0e266c287843"];
- var pts:Array=[
- "0000000000000000",
- "74657374206d652e"];
- var cts:Array=[
- "2dc7e8d3695b0538",
- "7909582138198783"];
- // self-fullfilling vectors.
- // oh well, at least I can decrypt what I produce. :(
-
- for (var i:uint=0;i<keys.length;i++) {
- var key:ByteArray = Hex.toArray(keys[i]);
- var pt:ByteArray = Hex.toArray(pts[i]);
- var tea:XTeaKey = new XTeaKey(key);
- tea.encrypt(pt);
- var out:String = Hex.fromArray(pt);
- assert("comparing "+cts[i]+" to "+out, cts[i]==out);
- // now go back to plaintext.
- pt.position=0;
- tea.decrypt(pt);
- out = Hex.fromArray(pt);
- assert("comparing "+pts[i]+" to "+out, pts[i]==out);
- }
- }
-
- }
- }