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 / CFBModeTest.as
1 /**\r
2  * CFBModeTest\r
3  * \r
4  * A test class for CFBMode\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.AESKey;\r
12         import com.hurlant.crypto.symmetric.CFBMode;\r
13         import com.hurlant.crypto.symmetric.NullPad;\r
14         import com.hurlant.util.Hex;\r
15         \r
16         import flash.utils.ByteArray;\r
17 \r
18         public class CFBModeTest extends TestCase\r
19         {\r
20                 public function CFBModeTest(h:ITestHarness)\r
21                 {\r
22                         super(h, "CFBMode Test");\r
23                         runTest(testCFB_AES128, "CFB AES-128 Test Vectors");\r
24                         runTest(testCFB_AES192, "CFB AES-192 Test Vectors");\r
25                         runTest(testCFB_AES256, "CFB AES-256 Test Vectors");\r
26                         h.endTestCase();\r
27                 }\r
28                 \r
29                 /**\r
30                  * http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf\r
31                  */\r
32                 public function testCFB_AES128():void {\r
33                         var key:ByteArray = Hex.toArray("2b7e151628aed2a6abf7158809cf4f3c");\r
34                         var pt:ByteArray = Hex.toArray(\r
35                                 "6bc1bee22e409f96e93d7e117393172a" + \r
36                                 "ae2d8a571e03ac9c9eb76fac45af8e51" + \r
37                                 "30c81c46a35ce411e5fbc1191a0a52ef" + \r
38                                 "f69f2445df4f9b17ad2b417be66c3710");\r
39                         var ct:ByteArray = Hex.toArray(\r
40                                 "3b3fd92eb72dad20333449f8e83cfb4a" + \r
41                                 "c8a64537a0b3a93fcde3cdad9f1ce58b" + \r
42                                 "26751f67a3cbb140b1808cf187a4f4df" + \r
43                                 "c04b05357c5d1c0eeac4c66f9ff7f2e6");\r
44                         var cfb:CFBMode = new CFBMode(new AESKey(key), new NullPad);\r
45                         cfb.IV = Hex.toArray("000102030405060708090a0b0c0d0e0f");\r
46                         var src:ByteArray = new ByteArray;\r
47                         src.writeBytes(pt);\r
48                         cfb.encrypt(src);\r
49                         assert("CFB_AES128 test 1", Hex.fromArray(src)==Hex.fromArray(ct));\r
50                         cfb.decrypt(src);\r
51                         assert("CFB_AES128 test 2", Hex.fromArray(src)==Hex.fromArray(pt));\r
52                 }\r
53                 public function testCFB_AES192():void {\r
54                         var key:ByteArray = Hex.toArray("8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b");\r
55                         var pt:ByteArray = Hex.toArray(\r
56                                 "6bc1bee22e409f96e93d7e117393172a" + \r
57                                 "ae2d8a571e03ac9c9eb76fac45af8e51" + \r
58                                 "30c81c46a35ce411e5fbc1191a0a52ef" + \r
59                                 "f69f2445df4f9b17ad2b417be66c3710");\r
60                         var ct:ByteArray = Hex.toArray(\r
61                                 "cdc80d6fddf18cab34c25909c99a4174" + \r
62                                 "67ce7f7f81173621961a2b70171d3d7a" + \r
63                                 "2e1e8a1dd59b88b1c8e60fed1efac4c9" + \r
64                                 "c05f9f9ca9834fa042ae8fba584b09ff");\r
65                         var cfb:CFBMode = new CFBMode(new AESKey(key), new NullPad);\r
66                         cfb.IV = Hex.toArray("000102030405060708090a0b0c0d0e0f");\r
67                         var src:ByteArray = new ByteArray;\r
68                         src.writeBytes(pt);\r
69                         cfb.encrypt(src);\r
70                         assert("CFB_AES192 test 1", Hex.fromArray(src)==Hex.fromArray(ct));\r
71                         cfb.decrypt(src);\r
72                         assert("CFB_AES192 test 2", Hex.fromArray(src)==Hex.fromArray(pt));\r
73                 }\r
74                 public function testCFB_AES256():void {\r
75                         var key:ByteArray = Hex.toArray(\r
76                                 "603deb1015ca71be2b73aef0857d7781" + \r
77                                 "1f352c073b6108d72d9810a30914dff4");\r
78                         var pt:ByteArray = Hex.toArray(\r
79                                 "6bc1bee22e409f96e93d7e117393172a" + \r
80                                 "ae2d8a571e03ac9c9eb76fac45af8e51" + \r
81                                 "30c81c46a35ce411e5fbc1191a0a52ef" + \r
82                                 "f69f2445df4f9b17ad2b417be66c3710");\r
83                         var ct:ByteArray = Hex.toArray(\r
84                                 "dc7e84bfda79164b7ecd8486985d3860" + \r
85                                 "39ffed143b28b1c832113c6331e5407b" + \r
86                                 "df10132415e54b92a13ed0a8267ae2f9" + \r
87                                 "75a385741ab9cef82031623d55b1e471");\r
88                         var cfb:CFBMode = new CFBMode(new AESKey(key), new NullPad);\r
89                         cfb.IV = Hex.toArray("000102030405060708090a0b0c0d0e0f");\r
90                         var src:ByteArray = new ByteArray;\r
91                         src.writeBytes(pt);\r
92                         cfb.encrypt(src);\r
93                         assert("CFB_AES256 test 1", Hex.fromArray(src)==Hex.fromArray(ct));\r
94                         cfb.decrypt(src);\r
95                         assert("CFB_AES256 test 2", Hex.fromArray(src)==Hex.fromArray(pt));\r
96                 }\r
97         }\r
98 }