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 / OFBMode.as
1 /**\r
2  * OFBMode\r
3  * \r
4  * An ActionScript 3 implementation of the OFB 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         public class OFBMode extends IVMode implements IMode\r
14         {\r
15                 public function OFBMode(key:ISymmetricKey, padding:IPad=null)\r
16                 {\r
17                         super(key, null);\r
18                 }\r
19                 \r
20                 public function encrypt(src:ByteArray):void\r
21                 {\r
22                         var vector:ByteArray = getIV4e();\r
23                         core(src, vector);\r
24                 }\r
25                 \r
26                 public function decrypt(src:ByteArray):void\r
27                 {\r
28                         var vector:ByteArray = getIV4d();\r
29                         core(src, vector);\r
30                 }\r
31                 \r
32                 private function core(src:ByteArray, iv:ByteArray):void { \r
33                         var l:uint = src.length;\r
34                         var tmp:ByteArray = new ByteArray;\r
35                         for (var i:uint=0;i<src.length;i+=blockSize) {\r
36                                 key.encrypt(iv);\r
37                                 tmp.position=0;\r
38                                 tmp.writeBytes(iv);\r
39                                 var chunk:uint = (i+blockSize<l)?blockSize:l-i;\r
40                                 for (var j:uint=0;j<chunk;j++) {\r
41                                         src[i+j] ^= iv[j];\r
42                                 }\r
43                                 iv.position=0;\r
44                                 iv.writeBytes(tmp);\r
45                         }\r
46                 }\r
47                 public function toString():String {\r
48                         return key.toString()+"-ofb";\r
49                 }\r
50                 \r
51         }\r
52 }