diff options
author | lookshe <github@lookshe.org> | 2015-03-14 20:45:20 +0100 |
---|---|---|
committer | lookshe <github@lookshe.org> | 2015-03-14 20:45:20 +0100 |
commit | b60df56157ee1fd0bd4938799bac05a62fda91a1 (patch) | |
tree | 2bc906c45ff9ec940e07f9676f5ed34ddd4ae022 /signaling-server/node_modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/BulkCiphers.as |
initial commit from working version
Diffstat (limited to 'signaling-server/node_modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/BulkCiphers.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/tls/BulkCiphers.as | 102 |
1 files changed, 102 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/tls/BulkCiphers.as b/signaling-server/node_modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/BulkCiphers.as new file mode 100644 index 0000000..2b1e717 --- /dev/null +++ b/signaling-server/node_modules/socket.io/node_modules/socket.io-client/lib/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/BulkCiphers.as @@ -0,0 +1,102 @@ +/** + * BulkCiphers + * + * An enumeration of bulk ciphers available for TLS, along with their properties, + * with a few convenience methods to go with it. + * Copyright (c) 2007 Henri Torgemane + * + * See LICENSE.txt for full license information. + */ +package com.hurlant.crypto.tls { + import com.hurlant.crypto.Crypto; + import flash.utils.ByteArray; + import com.hurlant.crypto.symmetric.ICipher; + import com.hurlant.crypto.symmetric.TLSPad; + import com.hurlant.crypto.symmetric.SSLPad; + + public class BulkCiphers { + public static const STREAM_CIPHER:uint = 0; + public static const BLOCK_CIPHER:uint = 1; + + public static const NULL:uint = 0; + public static const RC4_40:uint = 1; + public static const RC4_128:uint = 2 + public static const RC2_CBC_40:uint = 3; // XXX I don't have that one. + public static const DES_CBC:uint = 4; + public static const DES3_EDE_CBC:uint = 5; + public static const DES40_CBC:uint = 6; + public static const IDEA_CBC:uint = 7; // XXX I don't have that one. + public static const AES_128:uint = 8; + public static const AES_256:uint = 9; + + private static const algos:Array = + ['', 'rc4', 'rc4', '', 'des-cbc', '3des-cbc', 'des-cbc', '', 'aes', 'aes']; + + private static var _props:Array; + + init(); + private static function init():void { + _props = []; + _props[NULL] = new BulkCiphers(STREAM_CIPHER, 0, 0, 0, 0, 0); + _props[RC4_40] = new BulkCiphers(STREAM_CIPHER, 5, 16, 40, 0, 0); + _props[RC4_128] = new BulkCiphers(STREAM_CIPHER, 16, 16, 128, 0, 0); + _props[RC2_CBC_40] = new BulkCiphers( BLOCK_CIPHER, 5, 16, 40, 8, 8); + _props[DES_CBC] = new BulkCiphers( BLOCK_CIPHER, 8, 8, 56, 8, 8); + _props[DES3_EDE_CBC] = new BulkCiphers( BLOCK_CIPHER, 24, 24, 168, 8, 8); + _props[DES40_CBC] = new BulkCiphers( BLOCK_CIPHER, 5, 8, 40, 8, 8); + _props[IDEA_CBC] = new BulkCiphers( BLOCK_CIPHER, 16, 16, 128, 8, 8); + _props[AES_128] = new BulkCiphers( BLOCK_CIPHER, 16, 16, 128, 16, 16); + _props[AES_256] = new BulkCiphers( BLOCK_CIPHER, 32, 32, 256, 16, 16); + } + + private static function getProp(cipher:uint):BulkCiphers { + var p:BulkCiphers = _props[cipher]; + if (p==null) { + throw new Error("Unknown bulk cipher "+cipher.toString(16)); + } + return p; + } + public static function getType(cipher:uint):uint { + return getProp(cipher).type; + } + public static function getKeyBytes(cipher:uint):uint { + return getProp(cipher).keyBytes; + } + public static function getExpandedKeyBytes(cipher:uint):uint { + return getProp(cipher).expandedKeyBytes; + } + public static function getEffectiveKeyBits(cipher:uint):uint { + return getProp(cipher).effectiveKeyBits; + } + public static function getIVSize(cipher:uint):uint { + return getProp(cipher).IVSize; + } + public static function getBlockSize(cipher:uint):uint { + return getProp(cipher).blockSize; + } + public static function getCipher(cipher:uint, key:ByteArray, proto:uint):ICipher { + if (proto == TLSSecurityParameters.PROTOCOL_VERSION) { + return Crypto.getCipher(algos[cipher], key, new TLSPad); + } else { + return Crypto.getCipher(algos[cipher], key, new SSLPad); + } + } + + + private var type:uint; + private var keyBytes:uint; + private var expandedKeyBytes:uint; + private var effectiveKeyBits:uint; + private var IVSize:uint; + private var blockSize:uint; + + public function BulkCiphers(t:uint, kb:uint, ekb:uint, fkb:uint, ivs:uint, bs:uint) { + type = t; + keyBytes = kb; + expandedKeyBytes = ekb; + effectiveKeyBits = fkb; + IVSize = ivs; + blockSize = bs; + } + } +} |