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/SimpleIVMode.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/SimpleIVMode.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/SimpleIVMode.as60
1 files changed, 60 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/SimpleIVMode.as b/signaling-server/node_modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/SimpleIVMode.as
new file mode 100644
index 0000000..590f0df
--- /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/SimpleIVMode.as
@@ -0,0 +1,60 @@
+/**
+ * SimpleIVMode
+ *
+ * A convenience class that automatically places the IV
+ * at the beginning of the encrypted stream, so it doesn't have to
+ * be handled explicitely.
+ * Copyright (c) 2007 Henri Torgemane
+ *
+ * See LICENSE.txt for full license information.
+ */
+package com.hurlant.crypto.symmetric
+{
+ import flash.utils.ByteArray;
+ import com.hurlant.util.Memory;
+
+ public class SimpleIVMode implements IMode, ICipher
+ {
+ protected var mode:IVMode;
+ protected var cipher:ICipher;
+
+ public function SimpleIVMode(mode:IVMode) {
+ this.mode = mode;
+ cipher = mode as ICipher;
+ }
+
+ public function getBlockSize():uint {
+ return mode.getBlockSize();
+ }
+
+ public function dispose():void {
+ mode.dispose();
+ mode = null;
+ cipher = null;
+ Memory.gc();
+ }
+
+ public function encrypt(src:ByteArray):void {
+ cipher.encrypt(src);
+ var tmp:ByteArray = new ByteArray;
+ tmp.writeBytes(mode.IV);
+ tmp.writeBytes(src);
+ src.position=0;
+ src.writeBytes(tmp);
+ }
+
+ public function decrypt(src:ByteArray):void {
+ var tmp:ByteArray = new ByteArray;
+ tmp.writeBytes(src, 0, getBlockSize());
+ mode.IV = tmp;
+ tmp = new ByteArray;
+ tmp.writeBytes(src, getBlockSize());
+ cipher.decrypt(tmp);
+ src.length=0;
+ src.writeBytes(tmp);
+ }
+ public function toString():String {
+ return "simple-"+cipher.toString();
+ }
+ }
+} \ No newline at end of file