aboutsummaryrefslogtreecommitdiffstats
path: root/signaling-server/node_modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/TripleDESKey.as
diff options
context:
space:
mode:
Diffstat (limited to 'signaling-server/node_modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/TripleDESKey.as')
-rw-r--r--signaling-server/node_modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/TripleDESKey.as88
1 files changed, 88 insertions, 0 deletions
diff --git a/signaling-server/node_modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/TripleDESKey.as b/signaling-server/node_modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/TripleDESKey.as
new file mode 100644
index 0000000..1e75011
--- /dev/null
+++ b/signaling-server/node_modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/TripleDESKey.as
@@ -0,0 +1,88 @@
+/**
+ * TripleDESKey
+ *
+ * An Actionscript 3 implementation of Triple DES
+ * Copyright (c) 2007 Henri Torgemane
+ *
+ * Derived from:
+ * The Bouncy Castle Crypto package,
+ * Copyright (c) 2000-2004 The Legion Of The Bouncy Castle
+ * (http://www.bouncycastle.org)
+ *
+ * See LICENSE.txt for full license information.
+ */
+package com.hurlant.crypto.symmetric
+{
+ import flash.utils.ByteArray;
+ import com.hurlant.util.Memory;
+ import com.hurlant.util.Hex;
+
+ public class TripleDESKey extends DESKey
+ {
+ protected var encKey2:Array;
+ protected var encKey3:Array;
+ protected var decKey2:Array;
+ protected var decKey3:Array;
+
+ /**
+ * This supports 2TDES and 3TDES.
+ * If the key passed is 128 bits, 2TDES is used.
+ * If the key has 192 bits, 3TDES is used.
+ * Other key lengths give "undefined" results.
+ */
+ public function TripleDESKey(key:ByteArray)
+ {
+ super(key);
+ encKey2 = generateWorkingKey(false, key, 8);
+ decKey2 = generateWorkingKey(true, key, 8);
+ if (key.length>16) {
+ encKey3 = generateWorkingKey(true, key, 16);
+ decKey3 = generateWorkingKey(false, key, 16);
+ } else {
+ encKey3 = encKey;
+ decKey3 = decKey;
+ }
+ }
+
+ public override function dispose():void
+ {
+ super.dispose();
+ var i:uint = 0;
+ if (encKey2!=null) {
+ for (i=0;i<encKey2.length;i++) { encKey2[i]=0; }
+ encKey2=null;
+ }
+ if (encKey3!=null) {
+ for (i=0;i<encKey3.length;i++) { encKey3[i]=0; }
+ encKey3=null;
+ }
+ if (decKey2!=null) {
+ for (i=0;i<decKey2.length;i++) { decKey2[i]=0; }
+ decKey2=null
+ }
+ if (decKey3!=null) {
+ for (i=0;i<decKey3.length;i++) { decKey3[i]=0; }
+ decKey3=null;
+ }
+ Memory.gc();
+ }
+
+ public override function encrypt(block:ByteArray, index:uint=0):void
+ {
+ desFunc(encKey, block,index, block,index);
+ desFunc(encKey2, block,index, block,index);
+ desFunc(encKey3, block,index, block,index);
+ }
+
+ public override function decrypt(block:ByteArray, index:uint=0):void
+ {
+ desFunc(decKey3, block, index, block, index);
+ desFunc(decKey2, block, index, block, index);
+ desFunc(decKey, block, index, block, index);
+ }
+
+ public override function toString():String {
+ return "3des";
+ }
+ }
+} \ No newline at end of file