4
* A test class for XTeaKey
5
* Copyright (c) 2007 Henri Torgemane
7
* See LICENSE.txt for full license information.
9
package com.hurlant.crypto.tests
11
import com.hurlant.crypto.prng.Random;
12
import com.hurlant.crypto.symmetric.ECBMode;
13
import com.hurlant.crypto.symmetric.XTeaKey;
14
import com.hurlant.util.Hex;
16
import flash.utils.ByteArray;
17
import flash.utils.getTimer;
19
public class XTeaKeyTest extends TestCase
21
public function XTeaKeyTest(h:ITestHarness) {
22
super(h, "XTeaKey Test");
23
runTest(testGetBlockSize, "XTea Block Size");
24
runTest(testVectors, "XTea Test Vectors");
29
public function testGetBlockSize():void {
30
var tea:XTeaKey = new XTeaKey(Hex.toArray("deadbabecafebeefdeadbabecafebeef"));
31
assert("tea blocksize", tea.getBlockSize()==8);
34
public function testVectors():void {
36
// can't find working test vectors.
37
// algorithms should not get published without vectors :(
39
"00000000000000000000000000000000",
40
"2b02056806144976775d0e266c287843"];
47
// self-fullfilling vectors.
48
// oh well, at least I can decrypt what I produce. :(
50
for (var i:uint=0;i<keys.length;i++) {
51
var key:ByteArray = Hex.toArray(keys[i]);
52
var pt:ByteArray = Hex.toArray(pts[i]);
53
var tea:XTeaKey = new XTeaKey(key);
55
var out:String = Hex.fromArray(pt);
56
assert("comparing "+cts[i]+" to "+out, cts[i]==out);
57
// now go back to plaintext.
60
out = Hex.fromArray(pt);
61
assert("comparing "+pts[i]+" to "+out, pts[i]==out);
b'\\ No newline at end of file'