/js/lib/Socket.IO-node/support/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/SimpleIVMode.as
ActionScript | 60 lines | 44 code | 6 blank | 10 comment | 0 complexity | 67f1216270273a0a5dbcd1df770e6f75 MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.1, MPL-2.0-no-copyleft-exception, BSD-3-Clause
- /**
- * 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();
- }
- }
- }