Bug:Fix file validation issue
[vnfsdk/refrepo.git] / vnfmarket / src / main / webapp / vnfmarket / node_modules / socket.io-client / lib / vendor / web-socket-js / flash-src / com / hurlant / crypto / tests / XTeaKeyTest.as
1 /**\r
2  * XTeaKeyTest\r
3  * \r
4  * A test class for XTeaKey\r
5  * Copyright (c) 2007 Henri Torgemane\r
6  * \r
7  * See LICENSE.txt for full license information.\r
8  */\r
9 package com.hurlant.crypto.tests\r
10 {\r
11         import com.hurlant.crypto.prng.Random;\r
12         import com.hurlant.crypto.symmetric.ECBMode;\r
13         import com.hurlant.crypto.symmetric.XTeaKey;\r
14         import com.hurlant.util.Hex;\r
15         \r
16         import flash.utils.ByteArray;\r
17         import flash.utils.getTimer;\r
18         \r
19         public class XTeaKeyTest extends TestCase\r
20         {\r
21                 public function XTeaKeyTest(h:ITestHarness) {\r
22                         super(h, "XTeaKey Test");\r
23                         runTest(testGetBlockSize, "XTea Block Size");\r
24                         runTest(testVectors, "XTea Test Vectors");\r
25                         \r
26                         h.endTestCase();\r
27                 }\r
28                 \r
29                 public function testGetBlockSize():void {\r
30                         var tea:XTeaKey = new XTeaKey(Hex.toArray("deadbabecafebeefdeadbabecafebeef"));\r
31                         assert("tea blocksize", tea.getBlockSize()==8);\r
32                 }\r
33                 \r
34                 public function testVectors():void {\r
35                         // blah.\r
36                         // can't find working test vectors.\r
37                         // algorithms should not get published without vectors :(\r
38                         var keys:Array=[\r
39                         "00000000000000000000000000000000",\r
40                         "2b02056806144976775d0e266c287843"];\r
41                         var pts:Array=[\r
42                         "0000000000000000",\r
43                         "74657374206d652e"];\r
44                         var cts:Array=[\r
45                         "2dc7e8d3695b0538",\r
46                         "7909582138198783"];\r
47                         // self-fullfilling vectors.\r
48                         // oh well, at least I can decrypt what I produce. :(\r
49                         \r
50                         for (var i:uint=0;i<keys.length;i++) {\r
51                                 var key:ByteArray = Hex.toArray(keys[i]);\r
52                                 var pt:ByteArray = Hex.toArray(pts[i]);\r
53                                 var tea:XTeaKey = new XTeaKey(key);\r
54                                 tea.encrypt(pt);\r
55                                 var out:String = Hex.fromArray(pt);\r
56                                 assert("comparing "+cts[i]+" to "+out, cts[i]==out);\r
57                                 // now go back to plaintext.\r
58                                 pt.position=0;\r
59                                 tea.decrypt(pt);\r
60                                 out = Hex.fromArray(pt);\r
61                                 assert("comparing "+pts[i]+" to "+out, pts[i]==out);\r
62                         }\r
63                 }\r
64 \r
65         }\r
66 }