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 / PKCS5.as
1 /**\r
2  * PKCS5\r
3  * \r
4  * A padding implementation of PKCS5.\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 PKCS5 implements IPad\r
14         {\r
15                 private var blockSize:uint;\r
16                 \r
17                 public function PKCS5(blockSize:uint=0) {\r
18                         this.blockSize = blockSize;\r
19                 }\r
20                 \r
21                 public function pad(a:ByteArray):void {\r
22                         var c:uint = blockSize-a.length%blockSize;\r
23                         for (var i:uint=0;i<c;i++){\r
24                                 a[a.length] = c;\r
25                         }\r
26                 }\r
27                 public function unpad(a:ByteArray):void {\r
28                         var c:uint = a.length%blockSize;\r
29                         if (c!=0) throw new Error("PKCS#5::unpad: ByteArray.length isn't a multiple of the blockSize");\r
30                         c = a[a.length-1];\r
31                         for (var i:uint=c;i>0;i--) {\r
32                                 var v:uint = a[a.length-1];\r
33                                 a.length--;\r
34                                 if (c!=v) throw new Error("PKCS#5:unpad: Invalid padding value. expected ["+c+"], found ["+v+"]");\r
35                         }\r
36                         // that is all.\r
37                 }\r
38 \r
39                 public function setBlockSize(bs:uint):void {\r
40                         blockSize = bs;\r
41                 }\r
42 \r
43         }\r
44 }