From b60df56157ee1fd0bd4938799bac05a62fda91a1 Mon Sep 17 00:00:00 2001 From: lookshe Date: Sat, 14 Mar 2015 20:45:20 +0100 Subject: initial commit from working version --- .../flash-src/com/hurlant/crypto/prng/ARC4.as | 90 ++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 signaling-server/node_modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/ARC4.as (limited to 'signaling-server/node_modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/ARC4.as') diff --git a/signaling-server/node_modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/ARC4.as b/signaling-server/node_modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/ARC4.as new file mode 100644 index 0000000..f09a638 --- /dev/null +++ b/signaling-server/node_modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/ARC4.as @@ -0,0 +1,90 @@ +/** + * ARC4 + * + * An ActionScript 3 implementation of RC4 + * Copyright (c) 2007 Henri Torgemane + * + * Derived from: + * The jsbn library, Copyright (c) 2003-2005 Tom Wu + * + * See LICENSE.txt for full license information. + */ +package com.hurlant.crypto.prng +{ + import com.hurlant.crypto.symmetric.IStreamCipher; + import com.hurlant.util.Memory; + + import flash.utils.ByteArray; + + public class ARC4 implements IPRNG, IStreamCipher { + private var i:int = 0; + private var j:int = 0; + private var S:ByteArray; + private const psize:uint = 256; + public function ARC4(key:ByteArray = null){ + S = new ByteArray; + if (key) { + init(key); + } + } + public function getPoolSize():uint { + return psize; + } + public function init(key:ByteArray):void { + var i:int; + var j:int; + var t:int; + for (i=0; i<256; ++i) { + S[i] = i; + } + j=0; + for (i=0; i<256; ++i) { + j = (j + S[i] + key[i%key.length]) & 255; + t = S[i]; + S[i] = S[j]; + S[j] = t; + } + this.i=0; + this.j=0; + } + public function next():uint { + var t:int; + i = (i+1)&255; + j = (j+S[i])&255; + t = S[i]; + S[i] = S[j]; + S[j] = t; + return S[(t+S[i])&255]; + } + + public function getBlockSize():uint { + return 1; + } + + public function encrypt(block:ByteArray):void { + var i:uint = 0; + while (i