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 / CTRModeTest.as
1 /**\r
2  * CTRModeTest\r
3  * \r
4  * A test class for CTRMode\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.CTRMode;\r
14         import com.hurlant.crypto.symmetric.AESKey;\r
15         import com.hurlant.crypto.symmetric.NullPad;\r
16         \r
17         public class CTRModeTest extends TestCase\r
18         {\r
19                 public function CTRModeTest(h:ITestHarness)\r
20                 {\r
21                         super(h, "CTRMode Test");\r
22                         runTest(testCTR_AES128, "CTR AES-128 Test Vectors");\r
23                         runTest(testCTR_AES192, "CTR AES-192 Test Vectors");\r
24                         runTest(testCTR_AES256, "CTR AES-256 Test Vectors");\r
25                         h.endTestCase();\r
26                 }\r
27                 \r
28                 /**\r
29                  * Vectors from http://csrc.nist.gov/CryptoToolkit/modes/800-38_Series_Publications/SP800-38A.pdf\r
30                  * Section F.5.1 and below.\r
31                  */\r
32                 public function testCTR_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                                 "874d6191b620e3261bef6864990db6ce" + \r
41                                 "9806f66b7970fdff8617187bb9fffdff" + \r
42                                 "5ae4df3edbd5d35e5b4f09020db03eab" + \r
43                                 "1e031dda2fbe03d1792170a0f3009cee");\r
44                         var ctr:CTRMode = new CTRMode(new AESKey(key), new NullPad);\r
45                         ctr.IV = Hex.toArray("f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff");\r
46                         var src:ByteArray = new ByteArray;\r
47                         src.writeBytes(pt);\r
48                         ctr.encrypt(src);\r
49                         var hsrc:String = Hex.fromArray(src);\r
50                         var hct:String = Hex.fromArray(ct);\r
51                         assert("CTR_AES128 test 1: "+hsrc+" != "+hct, hsrc==hct);\r
52                         ctr.decrypt(src);\r
53                         hsrc = Hex.fromArray(src);\r
54                         var hpt:String = Hex.fromArray(pt);\r
55                         assert("CTR_AES128 test 2: "+hsrc+" != "+hpt, hsrc==hpt);\r
56                 }\r
57                 public function testCTR_AES192():void {\r
58                         var key:ByteArray = Hex.toArray("8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b");\r
59                         var pt:ByteArray = Hex.toArray(\r
60                                 "6bc1bee22e409f96e93d7e117393172a" +\r
61                                 "ae2d8a571e03ac9c9eb76fac45af8e51" + \r
62                                 "30c81c46a35ce411e5fbc1191a0a52ef" + \r
63                                 "f69f2445df4f9b17ad2b417be66c3710");\r
64                         var ct:ByteArray = Hex.toArray(\r
65                                 "1abc932417521ca24f2b0459fe7e6e0b" + \r
66                                 "090339ec0aa6faefd5ccc2c6f4ce8e94" + \r
67                                 "1e36b26bd1ebc670d1bd1d665620abf7" + \r
68                                 "4f78a7f6d29809585a97daec58c6b050");\r
69                         var ctr:CTRMode = new CTRMode(new AESKey(key), new NullPad);\r
70                         ctr.IV = Hex.toArray("f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff");\r
71                         var src:ByteArray = new ByteArray;\r
72                         src.writeBytes(pt);\r
73                         ctr.encrypt(src);\r
74                         var hsrc:String = Hex.fromArray(src);\r
75                         var hct:String = Hex.fromArray(ct);\r
76                         assert("CTR_AES192 test 1: "+hsrc+" != "+hct, hsrc==hct);\r
77                         ctr.decrypt(src);\r
78                         hsrc = Hex.fromArray(src);\r
79                         var hpt:String = Hex.fromArray(pt);\r
80                         assert("CTR_AES192 test 2: "+hsrc+" != "+hpt, hsrc==hpt);\r
81                 }\r
82                 public function testCTR_AES256():void {\r
83                         var key:ByteArray = Hex.toArray("603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4");\r
84                         var pt:ByteArray = Hex.toArray(\r
85                                 "6bc1bee22e409f96e93d7e117393172a" +\r
86                                 "ae2d8a571e03ac9c9eb76fac45af8e51" + \r
87                                 "30c81c46a35ce411e5fbc1191a0a52ef" + \r
88                                 "f69f2445df4f9b17ad2b417be66c3710");\r
89                         var ct:ByteArray = Hex.toArray(\r
90                                 "601ec313775789a5b7a7f504bbf3d228" + \r
91                                 "f443e3ca4d62b59aca84e990cacaf5c5" + \r
92                                 "2b0930daa23de94ce87017ba2d84988d" + \r
93                                 "dfc9c58db67aada613c2dd08457941a6");\r
94                         var ctr:CTRMode = new CTRMode(new AESKey(key), new NullPad);\r
95                         ctr.IV = Hex.toArray("f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff");\r
96                         var src:ByteArray = new ByteArray;\r
97                         src.writeBytes(pt);\r
98                         ctr.encrypt(src);\r
99                         var hsrc:String = Hex.fromArray(src);\r
100                         var hct:String = Hex.fromArray(ct);\r
101                         assert("CTR_AES256 test 1: "+hsrc+" != "+hct, hsrc==hct);\r
102                         ctr.decrypt(src);\r
103                         hsrc = Hex.fromArray(src);\r
104                         var hpt:String = Hex.fromArray(pt);\r
105                         assert("CTR_AES256 test 2: "+hsrc+" != "+hpt, hsrc==hpt);\r
106                 }\r
107                 \r
108         }\r
109 }