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 / DESKeyTest.as
1 /**\r
2  * DesKeyTest\r
3  * \r
4  * A test class for DesKey\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.symmetric.DESKey;\r
12         import com.hurlant.util.Hex;\r
13         import flash.utils.ByteArray;\r
14         \r
15         public class DESKeyTest extends TestCase\r
16         {\r
17                 public function DESKeyTest(h:ITestHarness)\r
18                 {\r
19                         super(h, "DESKey Test");\r
20                         runTest(testECB,"DES ECB Test Vectors");\r
21                         h.endTestCase();\r
22                 }\r
23                 \r
24                 /**\r
25                  * Test vectors mostly grabbed from\r
26                  * http://csrc.nist.gov/publications/nistpubs/800-17/800-17.pdf\r
27                  * (Appendix A and B)\r
28                  * incomplete.\r
29                  */\r
30                 public function testECB():void {\r
31                         var keys:Array = [\r
32                         "3b3898371520f75e", // grabbed from the output of some js implementation out there\r
33                         "10316E028C8F3B4A", // appendix A vector\r
34                         "0101010101010101", // appendix B Table 1, round 0\r
35                         "0101010101010101", // round 1\r
36                         "0101010101010101", // 2\r
37                         "0101010101010101", \r
38                         "0101010101010101",\r
39                         "0101010101010101",\r
40                         "0101010101010101",\r
41                         "0101010101010101",\r
42                         "0101010101010101", // round 8\r
43                         "8001010101010101", // app B, tbl 2, round 0\r
44                         "4001010101010101",\r
45                         "2001010101010101",\r
46                         "1001010101010101",\r
47                         "0801010101010101",\r
48                         "0401010101010101",\r
49                         "0201010101010101",\r
50                         "0180010101010101",\r
51                         "0140010101010101", // round 8\r
52                          ];\r
53                         var pts:Array = [\r
54                         "0000000000000000", // js\r
55                         "0000000000000000", // App A\r
56                         "8000000000000000", // App B, tbl 1, rnd0\r
57                         "4000000000000000",\r
58                         "2000000000000000",\r
59                         "1000000000000000",\r
60                         "0800000000000000", // rnd 4\r
61                         "0400000000000000",\r
62                         "0200000000000000",\r
63                         "0100000000000000",\r
64                         "0080000000000000", // round 8\r
65                         "0000000000000000", // App B, tbl2, rnd0\r
66                         "0000000000000000",\r
67                         "0000000000000000",\r
68                         "0000000000000000",\r
69                         "0000000000000000",\r
70                         "0000000000000000",\r
71                         "0000000000000000",\r
72                         "0000000000000000",\r
73                         "0000000000000000", // rnd 8\r
74                          ];\r
75                         var cts:Array = [\r
76                         "83A1E814889253E0", // js\r
77                         "82DCBAFBDEAB6602", // App A\r
78                         "95F8A5E5DD31D900", // App b, tbl 1, rnd 0\r
79                         "DD7F121CA5015619",\r
80                         "2E8653104F3834EA",\r
81                         "4BD388FF6CD81D4F",\r
82                         "20B9E767B2FB1456",\r
83                         "55579380D77138EF",\r
84                         "6CC5DEFAAF04512F",\r
85                         "0D9F279BA5D87260",\r
86                         "D9031B0271BD5A0A", // rnd 8\r
87                         "95A8D72813DAA94D", // App B, tbl 2, rnd 0\r
88                         "0EEC1487DD8C26D5",\r
89                         "7AD16FFB79C45926",\r
90                         "D3746294CA6A6CF3",\r
91                         "809F5F873C1FD761",\r
92                         "C02FAFFEC989D1FC",\r
93                         "4615AA1D33E72F10",\r
94                         "2055123350C00858",\r
95                         "DF3B99D6577397C8", // rnd 8\r
96                          ];\r
97                         \r
98                         for (var i:uint=0;i<keys.length;i++) {\r
99                                 var key:ByteArray = Hex.toArray(keys[i]);\r
100                                 var pt:ByteArray = Hex.toArray(pts[i]);\r
101                                 var des:DESKey = new DESKey(key);\r
102                                 des.encrypt(pt);\r
103                                 var out:String = Hex.fromArray(pt).toUpperCase();\r
104                                 assert("comparing "+cts[i]+" to "+out, cts[i]==out);\r
105                                 // now go back to plaintext\r
106                                 des.decrypt(pt);\r
107                                 out = Hex.fromArray(pt).toUpperCase();\r
108                                 assert("comparing "+pts[i]+" to "+out, pts[i]==out);\r
109                         }\r
110                 }\r
111         }\r
112 }