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 / OFBModeTest.as
1 /**\r
2  * OFBModeTest\r
3  * \r
4  * A test class for OFBMode\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 flash.utils.ByteArray;\r
12         import com.hurlant.util.Hex;\r
13         import com.hurlant.crypto.symmetric.OFBMode;\r
14         import com.hurlant.crypto.symmetric.AESKey;\r
15         import com.hurlant.crypto.symmetric.NullPad;\r
16         \r
17         public class OFBModeTest extends TestCase\r
18         {\r
19                 public function OFBModeTest(h:ITestHarness)\r
20                 {\r
21                         super(h, "OFBMode Test");\r
22                         runTest(testOFB_AES128,"OFB AES-128 Test Vectors");\r
23                         runTest(testOFB_AES192,"OFB AES-192 Test Vectors");\r
24                         runTest(testOFB_AES256,"OFB AES-256 Test Vectors");\r
25                         h.endTestCase();\r
26                 }\r
27                 \r
28                 /**\r
29                  * Nist Vectors: http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf\r
30                  * Section F.4.1 and below.\r
31                  */\r
32                 public function testOFB_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                                 "7789508d16918f03f53c52dac54ed825" + \r
42                                 "9740051e9c5fecf64344f7a82260edcc" + \r
43                                 "304c6528f659c77866a510d9c1d6ae5e");\r
44                         var ofb:OFBMode = new OFBMode(new AESKey(key), new NullPad);\r
45                         ofb.IV = Hex.toArray("000102030405060708090a0b0c0d0e0f");\r
46                         var src:ByteArray = new ByteArray;\r
47                         src.writeBytes(pt);\r
48                         ofb.encrypt(src);\r
49                         assert("OFB_AES128 test 1", Hex.fromArray(src)==Hex.fromArray(ct));\r
50                         ofb.decrypt(src);\r
51                         assert("OFB_AES128 test 2", Hex.fromArray(src)==Hex.fromArray(pt));\r
52                 }\r
53                 \r
54                 public function testOFB_AES192():void {\r
55                         var key:ByteArray = Hex.toArray("8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b");\r
56                         var pt:ByteArray = Hex.toArray(\r
57                                 "6bc1bee22e409f96e93d7e117393172a" + \r
58                                 "ae2d8a571e03ac9c9eb76fac45af8e51" + \r
59                                 "30c81c46a35ce411e5fbc1191a0a52ef" + \r
60                                 "f69f2445df4f9b17ad2b417be66c3710");\r
61                         var ct:ByteArray = Hex.toArray(\r
62                                 "cdc80d6fddf18cab34c25909c99a4174" + \r
63                                 "fcc28b8d4c63837c09e81700c1100401" + \r
64                                 "8d9a9aeac0f6596f559c6d4daf59a5f2" + \r
65                                 "6d9f200857ca6c3e9cac524bd9acc92a");\r
66                         var ofb:OFBMode = new OFBMode(new AESKey(key), new NullPad);\r
67                         ofb.IV = Hex.toArray("000102030405060708090a0b0c0d0e0f");\r
68                         var src:ByteArray = new ByteArray;\r
69                         src.writeBytes(pt);\r
70                         ofb.encrypt(src);\r
71                         assert("OFB_AES192 test 1", Hex.fromArray(src)==Hex.fromArray(ct));\r
72                         ofb.decrypt(src);\r
73                         assert("OFB_AES192 test 2", Hex.fromArray(src)==Hex.fromArray(pt));\r
74                 }\r
75                 \r
76                 public function testOFB_AES256():void {\r
77                         var key:ByteArray = Hex.toArray(\r
78                                 "603deb1015ca71be2b73aef0857d7781" + \r
79                                 "1f352c073b6108d72d9810a30914dff4");\r
80                         var pt:ByteArray = Hex.toArray(\r
81                                 "6bc1bee22e409f96e93d7e117393172a" + \r
82                                 "ae2d8a571e03ac9c9eb76fac45af8e51" + \r
83                                 "30c81c46a35ce411e5fbc1191a0a52ef" + \r
84                                 "f69f2445df4f9b17ad2b417be66c3710");\r
85                         var ct:ByteArray = Hex.toArray(\r
86                                 "dc7e84bfda79164b7ecd8486985d3860" + \r
87                                 "4febdc6740d20b3ac88f6ad82a4fb08d" + \r
88                                 "71ab47a086e86eedf39d1c5bba97c408" + \r
89                                 "0126141d67f37be8538f5a8be740e484");\r
90                         var ofb:OFBMode = new OFBMode(new AESKey(key), new NullPad);\r
91                         ofb.IV = Hex.toArray("000102030405060708090a0b0c0d0e0f");\r
92                         var src:ByteArray = new ByteArray;\r
93                         src.writeBytes(pt);\r
94                         ofb.encrypt(src);\r
95                         assert("OFB_AES256 test 1", Hex.fromArray(src)==Hex.fromArray(ct));\r
96                         ofb.decrypt(src);\r
97                         assert("OFB_AES256 test 2", Hex.fromArray(src)==Hex.fromArray(pt));\r
98                 }\r
99                 \r
100         }\r
101 }