/js/lib/Socket.IO-node/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHABase.as
ActionScript | 71 lines | 52 code | 8 blank | 11 comment | 3 complexity | 0ebfb489fe55ae16f91a6ee69fb5b005 MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.1, MPL-2.0-no-copyleft-exception, BSD-3-Clause
- /**
- * SHABase
- *
- * An ActionScript 3 abstract class for the SHA family of hash functions
- * Copyright (c) 2007 Henri Torgemane
- *
- * See LICENSE.txt for full license information.
- */
- package com.hurlant.crypto.hash
- {
- import flash.utils.ByteArray;
- import flash.utils.Endian;
-
- public class SHABase implements IHash
- {
-
- public function SHABase() { }
-
- public var pad_size:int = 40;
- public function getInputSize():uint
- {
- return 64;
- }
-
- public function getHashSize():uint
- {
- return 0;
- }
-
- public function getPadSize():int
- {
- return pad_size;
- }
-
- public function hash(src:ByteArray):ByteArray
- {
- var savedLength:uint = src.length;
- var savedEndian:String = src.endian;
-
- src.endian = Endian.BIG_ENDIAN;
- var len:uint = savedLength *8;
- // pad to nearest int.
- while (src.length%4!=0) {
- src[src.length]=0;
- }
- // convert ByteArray to an array of uint
- src.position=0;
- var a:Array = [];
- for (var i:uint=0;i<src.length;i+=4) {
- a.push(src.readUnsignedInt());
- }
- var h:Array = core(a, len);
- var out:ByteArray = new ByteArray;
- var words:uint = getHashSize()/4;
- for (i=0;i<words;i++) {
- out.writeUnsignedInt(h[i]);
- }
- // unpad, to leave the source untouched.
- src.length = savedLength;
- src.endian = savedEndian;
- return out;
- }
- protected function core(x:Array, len:uint):Array {
- return null;
- }
-
- public function toString():String {
- return "sha";
- }
- }
- }