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 / symmetric / CFBMode.as
1 /**\r
2  * CFBMode\r
3  * \r
4  * An ActionScript 3 implementation of the CFB confidentiality mode\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.symmetric\r
10 {\r
11         import flash.utils.ByteArray;\r
12 \r
13         /**\r
14          * This is the "full" CFB.\r
15          * CFB1 and CFB8 are hiding somewhere else.\r
16          * \r
17          * Note: The constructor accepts an optional padding argument, but ignores it otherwise.\r
18          */\r
19         public class CFBMode extends IVMode implements IMode\r
20         {\r
21                 \r
22                 public function CFBMode(key:ISymmetricKey, padding:IPad = null) {\r
23                         super(key,null);\r
24                 }\r
25 \r
26                 public function encrypt(src:ByteArray):void\r
27                 {\r
28                         var l:uint = src.length;\r
29                         var vector:ByteArray = getIV4e();\r
30                         for (var i:uint=0;i<src.length;i+=blockSize) {\r
31                                 key.encrypt(vector);\r
32                                 var chunk:uint = (i+blockSize<l)?blockSize:l-i;\r
33                                 for (var j:uint=0;j<chunk;j++) {\r
34                                         src[i+j] ^= vector[j];\r
35                                 }\r
36                                 vector.position=0;\r
37                                 vector.writeBytes(src, i, chunk);\r
38                         }\r
39                 }\r
40                 \r
41                 public function decrypt(src:ByteArray):void\r
42                 {\r
43                         var l:uint = src.length;\r
44                         var vector:ByteArray = getIV4d();\r
45                         var tmp:ByteArray = new ByteArray;\r
46                         for (var i:uint=0;i<src.length;i+=blockSize) {\r
47                                 key.encrypt(vector);\r
48                                 var chunk:uint = (i+blockSize<l)?blockSize:l-i;\r
49                                 tmp.position=0;\r
50                                 tmp.writeBytes(src, i, chunk);\r
51                                 for (var j:uint=0;j<chunk;j++) {\r
52                                         src[i+j] ^= vector[j];\r
53                                 }\r
54                                 vector.position=0;\r
55                                 vector.writeBytes(tmp);\r
56                         }\r
57                 }\r
58                 \r
59                 public function toString():String {\r
60                         return key.toString()+"-cfb";\r
61                 }\r
62 \r
63         }\r
64 }