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 / TripleDESKeyTest.as
1 /**\r
2  * TripleDESKeyTest\r
3  * \r
4  * A test class for TripleDESKey\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.TripleDESKey;\r
12         import com.hurlant.util.Hex;\r
13         import flash.utils.ByteArray;\r
14         import com.hurlant.crypto.symmetric.ICipher;\r
15         import com.hurlant.crypto.symmetric.ECBMode;\r
16         \r
17         public class TripleDESKeyTest extends TestCase\r
18         {\r
19                 public function TripleDESKeyTest(h:ITestHarness)\r
20                 {\r
21                         super(h, "Triped Des Test");\r
22                         runTest(testECB,"Triple DES ECB Test Vectors");\r
23                         h.endTestCase();\r
24                 }\r
25                 \r
26                 /**\r
27                  * Lots of vectors at http://csrc.nist.gov/publications/nistpubs/800-20/800-20.pdf\r
28                  * XXX move them in here.\r
29                  */\r
30                 public function testECB():void {\r
31                         var keys:Array = [\r
32                         "010101010101010101010101010101010101010101010101",\r
33                         "dd24b3aafcc69278d650dad234956b01e371384619492ac4",\r
34                         ];\r
35                         var pts:Array = [\r
36                         "8000000000000000",\r
37                         "F36B21045A030303",\r
38                         ];\r
39                         var cts:Array = [\r
40                         "95F8A5E5DD31D900",\r
41                         "E823A43DEEA4D0A4",\r
42                         ];\r
43                         \r
44                         for (var i:uint=0;i<keys.length;i++) {\r
45                                 var key:ByteArray = Hex.toArray(keys[i]);\r
46                                 var pt:ByteArray = Hex.toArray(pts[i]);\r
47                                 var ede:TripleDESKey = new TripleDESKey(key);\r
48                                 ede.encrypt(pt);\r
49                                 var out:String = Hex.fromArray(pt).toUpperCase();\r
50                                 assert("comparing "+cts[i]+" to "+out, cts[i]==out);\r
51                                 // now go back to plaintext\r
52                                 ede.decrypt(pt);\r
53                                 out = Hex.fromArray(pt).toUpperCase();\r
54                                 assert("comparing "+pts[i]+" to "+out, pts[i]==out);\r
55                         }\r
56                 }\r
57                 \r
58         }\r
59 }