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