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 / hash / SHABase.as
1 /**\r
2  * SHABase\r
3  * \r
4  * An ActionScript 3 abstract class for the SHA family of hash functions\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.hash\r
10 {\r
11         import flash.utils.ByteArray;\r
12         import flash.utils.Endian;\r
13 \r
14         public class SHABase implements IHash\r
15         {\r
16 \r
17         public function SHABase() { }\r
18 \r
19                 public var pad_size:int = 40;\r
20                 public function getInputSize():uint\r
21                 {\r
22                         return 64;\r
23                 }\r
24                 \r
25                 public function getHashSize():uint\r
26                 {\r
27                         return 0;\r
28                 }\r
29                 \r
30                 public function getPadSize():int \r
31                 {\r
32                         return pad_size;\r
33                 }\r
34                 \r
35                 public function hash(src:ByteArray):ByteArray\r
36                 {\r
37                         var savedLength:uint = src.length;\r
38                         var savedEndian:String = src.endian;\r
39                         \r
40                         src.endian = Endian.BIG_ENDIAN;\r
41                         var len:uint = savedLength *8;\r
42                         // pad to nearest int.\r
43                         while (src.length%4!=0) {\r
44                                 src[src.length]=0;\r
45                         }\r
46                         // convert ByteArray to an array of uint\r
47                         src.position=0;\r
48                         var a:Array = [];\r
49                         for (var i:uint=0;i<src.length;i+=4) {\r
50                                 a.push(src.readUnsignedInt());\r
51                         }\r
52                         var h:Array = core(a, len);\r
53                         var out:ByteArray = new ByteArray;\r
54                         var words:uint = getHashSize()/4;\r
55                         for (i=0;i<words;i++) {\r
56                                 out.writeUnsignedInt(h[i]);\r
57                         }\r
58                         // unpad, to leave the source untouched.\r
59                         src.length = savedLength;\r
60                         src.endian = savedEndian;\r
61                         return out;\r
62                 }\r
63                 protected function core(x:Array, len:uint):Array {\r
64                         return null;\r
65                 }\r
66                 \r
67                 public function toString():String {\r
68                         return "sha";\r
69                 }\r
70         }\r
71 }\r