rocket-js 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +5 -52
- data/spec/ruby/spec_helper.rb +2 -1
- metadata +7 -129
- data/src/vendor/web-socket-js/FABridge.js +0 -604
- data/src/vendor/web-socket-js/README.txt +0 -109
- data/src/vendor/web-socket-js/WebSocketMain.swf +0 -0
- data/src/vendor/web-socket-js/WebSocketMainInsecure.zip +0 -0
- data/src/vendor/web-socket-js/flash-src/WebSocket.as +0 -473
- data/src/vendor/web-socket-js/flash-src/WebSocketMain.as +0 -88
- data/src/vendor/web-socket-js/flash-src/WebSocketMainInsecure.as +0 -19
- data/src/vendor/web-socket-js/flash-src/WebSocketStateEvent.as +0 -32
- data/src/vendor/web-socket-js/flash-src/bridge/FABridge.as +0 -943
- data/src/vendor/web-socket-js/flash-src/build.sh +0 -10
- data/src/vendor/web-socket-js/flash-src/com/adobe/net/proxies/RFC2817Socket.as +0 -204
- data/src/vendor/web-socket-js/flash-src/com/gsolo/encryption/MD5.as +0 -375
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/Crypto.as +0 -287
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/MozillaRootCertificates.as +0 -3235
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/X509Certificate.as +0 -218
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/X509CertificateCollection.as +0 -57
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/HMAC.as +0 -82
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/IHMAC.as +0 -27
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/IHash.as +0 -21
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MAC.as +0 -137
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MD2.as +0 -124
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MD5.as +0 -204
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA1.as +0 -106
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA224.as +0 -28
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA256.as +0 -115
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHABase.as +0 -71
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/ARC4.as +0 -90
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/IPRNG.as +0 -20
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/Random.as +0 -119
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/TLSPRF.as +0 -142
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/rsa/RSAKey.as +0 -339
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/AESKey.as +0 -2797
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/BlowFishKey.as +0 -375
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CBCMode.as +0 -55
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CFB8Mode.as +0 -61
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CFBMode.as +0 -64
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CTRMode.as +0 -58
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/DESKey.as +0 -365
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ECBMode.as +0 -86
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ICipher.as +0 -21
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IMode.as +0 -15
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IPad.as +0 -32
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IStreamCipher.as +0 -21
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ISymmetricKey.as +0 -35
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IVMode.as +0 -110
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/NullPad.as +0 -34
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/OFBMode.as +0 -52
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/PKCS5.as +0 -44
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/SSLPad.as +0 -44
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/SimpleIVMode.as +0 -60
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/TLSPad.as +0 -42
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/TripleDESKey.as +0 -88
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/XTeaKey.as +0 -94
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/aeskey.pl +0 -29
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/dump.txt +0 -2304
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/AESKeyTest.as +0 -1220
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ARC4Test.as +0 -58
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/BigIntegerTest.as +0 -39
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/BlowFishKeyTest.as +0 -148
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CBCModeTest.as +0 -160
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CFB8ModeTest.as +0 -71
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CFBModeTest.as +0 -98
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CTRModeTest.as +0 -109
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/DESKeyTest.as +0 -112
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ECBModeTest.as +0 -151
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/HMACTest.as +0 -184
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ITestHarness.as +0 -20
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/MD2Test.as +0 -56
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/MD5Test.as +0 -58
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/OFBModeTest.as +0 -101
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/RSAKeyTest.as +0 -92
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA1Test.as +0 -198
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA224Test.as +0 -58
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA256Test.as +0 -60
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TLSPRFTest.as +0 -51
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TestCase.as +0 -42
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TripleDESKeyTest.as +0 -59
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/XTeaKeyTest.as +0 -66
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/BulkCiphers.as +0 -102
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/CipherSuites.as +0 -117
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/IConnectionState.as +0 -14
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/ISecurityParameters.as +0 -29
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/KeyExchanges.as +0 -24
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/MACs.as +0 -38
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/SSLConnectionState.as +0 -171
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/SSLEvent.as +0 -26
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/SSLSecurityParameters.as +0 -340
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSConfig.as +0 -70
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSConnectionState.as +0 -151
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSEngine.as +0 -895
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSError.as +0 -39
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSEvent.as +0 -27
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSSecurityParameters.as +0 -197
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSSocket.as +0 -370
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSSocketEvent.as +0 -26
- data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSTest.as +0 -180
- data/src/vendor/web-socket-js/flash-src/com/hurlant/math/BarrettReduction.as +0 -90
- data/src/vendor/web-socket-js/flash-src/com/hurlant/math/BigInteger.as +0 -1543
- data/src/vendor/web-socket-js/flash-src/com/hurlant/math/ClassicReduction.as +0 -35
- data/src/vendor/web-socket-js/flash-src/com/hurlant/math/IReduction.as +0 -11
- data/src/vendor/web-socket-js/flash-src/com/hurlant/math/MontgomeryReduction.as +0 -85
- data/src/vendor/web-socket-js/flash-src/com/hurlant/math/NullReduction.as +0 -34
- data/src/vendor/web-socket-js/flash-src/com/hurlant/math/bi_internal.as +0 -11
- data/src/vendor/web-socket-js/flash-src/com/hurlant/util/ArrayUtil.as +0 -25
- data/src/vendor/web-socket-js/flash-src/com/hurlant/util/Base64.as +0 -189
- data/src/vendor/web-socket-js/flash-src/com/hurlant/util/Hex.as +0 -66
- data/src/vendor/web-socket-js/flash-src/com/hurlant/util/Memory.as +0 -28
- data/src/vendor/web-socket-js/flash-src/com/hurlant/util/der/ByteString.as +0 -43
- data/src/vendor/web-socket-js/flash-src/com/hurlant/util/der/DER.as +0 -210
- data/src/vendor/web-socket-js/flash-src/com/hurlant/util/der/IAsn1Type.as +0 -21
- data/src/vendor/web-socket-js/flash-src/com/hurlant/util/der/Integer.as +0 -44
- data/src/vendor/web-socket-js/flash-src/com/hurlant/util/der/OID.as +0 -35
- data/src/vendor/web-socket-js/flash-src/com/hurlant/util/der/ObjectIdentifier.as +0 -112
- data/src/vendor/web-socket-js/flash-src/com/hurlant/util/der/PEM.as +0 -118
- data/src/vendor/web-socket-js/flash-src/com/hurlant/util/der/PrintableString.as +0 -49
- data/src/vendor/web-socket-js/flash-src/com/hurlant/util/der/Sequence.as +0 -90
- data/src/vendor/web-socket-js/flash-src/com/hurlant/util/der/Set.as +0 -27
- data/src/vendor/web-socket-js/flash-src/com/hurlant/util/der/Type.as +0 -94
- data/src/vendor/web-socket-js/flash-src/com/hurlant/util/der/UTCTime.as +0 -60
- data/src/vendor/web-socket-js/sample.html +0 -76
- data/src/vendor/web-socket-js/swfobject.js +0 -4
- data/src/vendor/web-socket-js/web_socket.js +0 -388
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ARC4Test
|
|
3
|
-
*
|
|
4
|
-
* A test class for ARC4
|
|
5
|
-
* Copyright (c) 2007 Henri Torgemane
|
|
6
|
-
*
|
|
7
|
-
* See LICENSE.txt for full license information.
|
|
8
|
-
*/
|
|
9
|
-
package com.hurlant.crypto.tests
|
|
10
|
-
{
|
|
11
|
-
import com.hurlant.util.Hex;
|
|
12
|
-
import flash.utils.ByteArray;
|
|
13
|
-
import com.hurlant.crypto.prng.ARC4;
|
|
14
|
-
|
|
15
|
-
public class ARC4Test extends TestCase
|
|
16
|
-
{
|
|
17
|
-
public function ARC4Test(h:ITestHarness)
|
|
18
|
-
{
|
|
19
|
-
super(h, "ARC4 Test");
|
|
20
|
-
runTest(testLameVectors,"ARC4 Test Vectors");
|
|
21
|
-
h.endTestCase();
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Sad test vectors pilfered from
|
|
26
|
-
* http://en.wikipedia.org/wiki/RC4
|
|
27
|
-
*/
|
|
28
|
-
public function testLameVectors():void {
|
|
29
|
-
var keys:Array = [
|
|
30
|
-
Hex.fromString("Key"),
|
|
31
|
-
Hex.fromString("Wiki"),
|
|
32
|
-
Hex.fromString("Secret")];
|
|
33
|
-
var pts:Array = [
|
|
34
|
-
Hex.fromString("Plaintext"),
|
|
35
|
-
Hex.fromString("pedia"),
|
|
36
|
-
Hex.fromString("Attack at dawn")];
|
|
37
|
-
var cts:Array = [
|
|
38
|
-
"BBF316E8D940AF0AD3",
|
|
39
|
-
"1021BF0420",
|
|
40
|
-
"45A01F645FC35B383552544B9BF5"];
|
|
41
|
-
|
|
42
|
-
for (var i:uint=0;i<keys.length;i++) {
|
|
43
|
-
var key:ByteArray = Hex.toArray(keys[i]);
|
|
44
|
-
var pt:ByteArray = Hex.toArray(pts[i]);
|
|
45
|
-
var rc4:ARC4 = new ARC4(key);
|
|
46
|
-
rc4.encrypt(pt);
|
|
47
|
-
var out:String = Hex.fromArray(pt).toUpperCase();
|
|
48
|
-
assert("comparing "+cts[i]+" to "+out, cts[i]==out);
|
|
49
|
-
// now go back to plaintext
|
|
50
|
-
rc4.init(key);
|
|
51
|
-
rc4.decrypt(pt);
|
|
52
|
-
out = Hex.fromArray(pt);
|
|
53
|
-
assert("comparing "+pts[i]+" to "+out, pts[i]==out);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* BigIntegerTest
|
|
3
|
-
*
|
|
4
|
-
* A test class for BigInteger
|
|
5
|
-
* Copyright (c) 2007 Henri Torgemane
|
|
6
|
-
*
|
|
7
|
-
* See LICENSE.txt for full license information.
|
|
8
|
-
*/
|
|
9
|
-
package com.hurlant.crypto.tests
|
|
10
|
-
{
|
|
11
|
-
import com.hurlant.math.BigInteger;
|
|
12
|
-
import com.hurlant.util.Hex;
|
|
13
|
-
|
|
14
|
-
public class BigIntegerTest extends TestCase
|
|
15
|
-
{
|
|
16
|
-
public function BigIntegerTest(h:ITestHarness)
|
|
17
|
-
{
|
|
18
|
-
super(h, "BigInteger Tests");
|
|
19
|
-
runTest(testAdd, "BigInteger Addition");
|
|
20
|
-
h.endTestCase();
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
public function testAdd():void {
|
|
24
|
-
var n1:BigInteger = BigInteger.nbv(25);
|
|
25
|
-
var n2:BigInteger = BigInteger.nbv(1002);
|
|
26
|
-
var n3:BigInteger = n1.add(n2);
|
|
27
|
-
var v:int = n3.valueOf();
|
|
28
|
-
assert("25+1002 = "+v, 25+1002==v);
|
|
29
|
-
|
|
30
|
-
var p:BigInteger = new BigInteger(Hex.toArray("e564d8b801a61f47"));
|
|
31
|
-
var xp:BigInteger = new BigInteger(Hex.toArray("99246db2a3507fa"));
|
|
32
|
-
|
|
33
|
-
xp = xp.add(p);
|
|
34
|
-
|
|
35
|
-
assert("xp==eef71f932bdb2741", xp.toString(16)=="eef71f932bdb2741");
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
}
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* BlowFishKeyTest
|
|
3
|
-
*
|
|
4
|
-
* A test class for BlowFishKey
|
|
5
|
-
* Copyright (c) 2007 Henri Torgemane
|
|
6
|
-
*
|
|
7
|
-
* See LICENSE.txt for full license information.
|
|
8
|
-
*/
|
|
9
|
-
package com.hurlant.crypto.tests
|
|
10
|
-
{
|
|
11
|
-
import com.hurlant.crypto.symmetric.BlowFishKey;
|
|
12
|
-
import com.hurlant.util.Hex;
|
|
13
|
-
import flash.utils.ByteArray;
|
|
14
|
-
|
|
15
|
-
public class BlowFishKeyTest extends TestCase
|
|
16
|
-
{
|
|
17
|
-
public function BlowFishKeyTest(h:ITestHarness)
|
|
18
|
-
{
|
|
19
|
-
super(h, "BlowFishKey Test");
|
|
20
|
-
runTest(testECB,"BlowFish ECB Test Vectors");
|
|
21
|
-
h.endTestCase();
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Test vectors from http://www.schneier.com/code/vectors.txt
|
|
26
|
-
*/
|
|
27
|
-
public function testECB():void {
|
|
28
|
-
var keys:Array = [
|
|
29
|
-
"0000000000000000",
|
|
30
|
-
"FFFFFFFFFFFFFFFF",
|
|
31
|
-
"3000000000000000",
|
|
32
|
-
"1111111111111111",
|
|
33
|
-
"0123456789ABCDEF",
|
|
34
|
-
"1111111111111111",
|
|
35
|
-
"0000000000000000",
|
|
36
|
-
"FEDCBA9876543210",
|
|
37
|
-
"7CA110454A1A6E57",
|
|
38
|
-
"0131D9619DC1376E",
|
|
39
|
-
"07A1133E4A0B2686",
|
|
40
|
-
"3849674C2602319E",
|
|
41
|
-
"04B915BA43FEB5B6",
|
|
42
|
-
"0113B970FD34F2CE",
|
|
43
|
-
"0170F175468FB5E6",
|
|
44
|
-
"43297FAD38E373FE",
|
|
45
|
-
"07A7137045DA2A16",
|
|
46
|
-
"04689104C2FD3B2F",
|
|
47
|
-
"37D06BB516CB7546",
|
|
48
|
-
"1F08260D1AC2465E",
|
|
49
|
-
"584023641ABA6176",
|
|
50
|
-
"025816164629B007",
|
|
51
|
-
"49793EBC79B3258F",
|
|
52
|
-
"4FB05E1515AB73A7",
|
|
53
|
-
"49E95D6D4CA229BF",
|
|
54
|
-
"018310DC409B26D6",
|
|
55
|
-
"1C587F1C13924FEF",
|
|
56
|
-
"0101010101010101",
|
|
57
|
-
"1F1F1F1F0E0E0E0E",
|
|
58
|
-
"E0FEE0FEF1FEF1FE",
|
|
59
|
-
"0000000000000000",
|
|
60
|
-
"FFFFFFFFFFFFFFFF",
|
|
61
|
-
"0123456789ABCDEF",
|
|
62
|
-
"FEDCBA9876543210" ];
|
|
63
|
-
var pts:Array = [
|
|
64
|
-
"0000000000000000",
|
|
65
|
-
"FFFFFFFFFFFFFFFF",
|
|
66
|
-
"1000000000000001",
|
|
67
|
-
"1111111111111111",
|
|
68
|
-
"1111111111111111",
|
|
69
|
-
"0123456789ABCDEF",
|
|
70
|
-
"0000000000000000",
|
|
71
|
-
"0123456789ABCDEF",
|
|
72
|
-
"01A1D6D039776742",
|
|
73
|
-
"5CD54CA83DEF57DA",
|
|
74
|
-
"0248D43806F67172",
|
|
75
|
-
"51454B582DDF440A",
|
|
76
|
-
"42FD443059577FA2",
|
|
77
|
-
"059B5E0851CF143A",
|
|
78
|
-
"0756D8E0774761D2",
|
|
79
|
-
"762514B829BF486A",
|
|
80
|
-
"3BDD119049372802",
|
|
81
|
-
"26955F6835AF609A",
|
|
82
|
-
"164D5E404F275232",
|
|
83
|
-
"6B056E18759F5CCA",
|
|
84
|
-
"004BD6EF09176062",
|
|
85
|
-
"480D39006EE762F2",
|
|
86
|
-
"437540C8698F3CFA",
|
|
87
|
-
"072D43A077075292",
|
|
88
|
-
"02FE55778117F12A",
|
|
89
|
-
"1D9D5C5018F728C2",
|
|
90
|
-
"305532286D6F295A",
|
|
91
|
-
"0123456789ABCDEF",
|
|
92
|
-
"0123456789ABCDEF",
|
|
93
|
-
"0123456789ABCDEF",
|
|
94
|
-
"FFFFFFFFFFFFFFFF",
|
|
95
|
-
"0000000000000000",
|
|
96
|
-
"0000000000000000",
|
|
97
|
-
"FFFFFFFFFFFFFFFF" ];
|
|
98
|
-
var cts:Array = [
|
|
99
|
-
"4EF997456198DD78",
|
|
100
|
-
"51866FD5B85ECB8A",
|
|
101
|
-
"7D856F9A613063F2",
|
|
102
|
-
"2466DD878B963C9D",
|
|
103
|
-
"61F9C3802281B096",
|
|
104
|
-
"7D0CC630AFDA1EC7",
|
|
105
|
-
"4EF997456198DD78",
|
|
106
|
-
"0ACEAB0FC6A0A28D",
|
|
107
|
-
"59C68245EB05282B",
|
|
108
|
-
"B1B8CC0B250F09A0",
|
|
109
|
-
"1730E5778BEA1DA4",
|
|
110
|
-
"A25E7856CF2651EB",
|
|
111
|
-
"353882B109CE8F1A",
|
|
112
|
-
"48F4D0884C379918",
|
|
113
|
-
"432193B78951FC98",
|
|
114
|
-
"13F04154D69D1AE5",
|
|
115
|
-
"2EEDDA93FFD39C79",
|
|
116
|
-
"D887E0393C2DA6E3",
|
|
117
|
-
"5F99D04F5B163969",
|
|
118
|
-
"4A057A3B24D3977B",
|
|
119
|
-
"452031C1E4FADA8E",
|
|
120
|
-
"7555AE39F59B87BD",
|
|
121
|
-
"53C55F9CB49FC019",
|
|
122
|
-
"7A8E7BFA937E89A3",
|
|
123
|
-
"CF9C5D7A4986ADB5",
|
|
124
|
-
"D1ABB290658BC778",
|
|
125
|
-
"55CB3774D13EF201",
|
|
126
|
-
"FA34EC4847B268B2",
|
|
127
|
-
"A790795108EA3CAE",
|
|
128
|
-
"C39E072D9FAC631D",
|
|
129
|
-
"014933E0CDAFF6E4",
|
|
130
|
-
"F21E9A77B71C49BC",
|
|
131
|
-
"245946885754369A",
|
|
132
|
-
"6B5C5A9C5D9E0A5A" ];
|
|
133
|
-
|
|
134
|
-
for (var i:uint=0;i<keys.length;i++) {
|
|
135
|
-
var key:ByteArray = Hex.toArray(keys[i]);
|
|
136
|
-
var pt:ByteArray = Hex.toArray(pts[i]);
|
|
137
|
-
var bf:BlowFishKey = new BlowFishKey(key);
|
|
138
|
-
bf.encrypt(pt);
|
|
139
|
-
var out:String = Hex.fromArray(pt).toUpperCase();
|
|
140
|
-
assert("comparing "+cts[i]+" to "+out, cts[i]==out);
|
|
141
|
-
// now go back to plaintext
|
|
142
|
-
bf.decrypt(pt);
|
|
143
|
-
out = Hex.fromArray(pt).toUpperCase();
|
|
144
|
-
assert("comparing "+pts[i]+" to "+out, pts[i]==out);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
}
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CBCModeTest
|
|
3
|
-
*
|
|
4
|
-
* A test class for CBCMode
|
|
5
|
-
* Copyright (c) 2007 Henri Torgemane
|
|
6
|
-
*
|
|
7
|
-
* See LICENSE.txt for full license information.
|
|
8
|
-
*/
|
|
9
|
-
package com.hurlant.crypto.tests
|
|
10
|
-
{
|
|
11
|
-
import com.hurlant.crypto.symmetric.AESKey;
|
|
12
|
-
import com.hurlant.crypto.symmetric.CBCMode;
|
|
13
|
-
import com.hurlant.crypto.symmetric.NullPad;
|
|
14
|
-
import com.hurlant.crypto.symmetric.XTeaKey;
|
|
15
|
-
import com.hurlant.util.Hex;
|
|
16
|
-
|
|
17
|
-
import flash.utils.ByteArray;
|
|
18
|
-
|
|
19
|
-
public class CBCModeTest extends TestCase
|
|
20
|
-
{
|
|
21
|
-
public function CBCModeTest(h:ITestHarness) {
|
|
22
|
-
super(h, "CBCMode Test");
|
|
23
|
-
runTest(testAES,"CBC AES Test Vectors");
|
|
24
|
-
runTest(testXTea,"CBC XTea Test Vectors");
|
|
25
|
-
//
|
|
26
|
-
runTest(testCBC_AES128, "CBC AES-128 Test Vectors");
|
|
27
|
-
runTest(testCBC_AES192, "CBC AES-192 Test Vectors");
|
|
28
|
-
runTest(testCBC_AES256, "CBC AES-256 Test Vectors");
|
|
29
|
-
h.endTestCase();
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Hawt NIST Vectors: http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf
|
|
34
|
-
* Section F.2.1 and below.
|
|
35
|
-
*/
|
|
36
|
-
public function testCBC_AES128():void {
|
|
37
|
-
var key:ByteArray = Hex.toArray("2b7e151628aed2a6abf7158809cf4f3c");
|
|
38
|
-
var pt:ByteArray = Hex.toArray(
|
|
39
|
-
"6bc1bee22e409f96e93d7e117393172a" +
|
|
40
|
-
"ae2d8a571e03ac9c9eb76fac45af8e51" +
|
|
41
|
-
"30c81c46a35ce411e5fbc1191a0a52ef" +
|
|
42
|
-
"f69f2445df4f9b17ad2b417be66c3710");
|
|
43
|
-
var ct:ByteArray = Hex.toArray(
|
|
44
|
-
"7649abac8119b246cee98e9b12e9197d" +
|
|
45
|
-
"5086cb9b507219ee95db113a917678b2" +
|
|
46
|
-
"73bed6b8e3c1743b7116e69e22229516" +
|
|
47
|
-
"3ff1caa1681fac09120eca307586e1a7");
|
|
48
|
-
var cbc:CBCMode = new CBCMode(new AESKey(key), new NullPad);
|
|
49
|
-
cbc.IV = Hex.toArray("000102030405060708090a0b0c0d0e0f");
|
|
50
|
-
var src:ByteArray = new ByteArray;
|
|
51
|
-
src.writeBytes(pt);
|
|
52
|
-
cbc.encrypt(src);
|
|
53
|
-
assert("CBC_AES128 test 1", Hex.fromArray(src)==Hex.fromArray(ct));
|
|
54
|
-
cbc.decrypt(src);
|
|
55
|
-
assert("CBC_AES128 test 2", Hex.fromArray(src)==Hex.fromArray(pt));
|
|
56
|
-
}
|
|
57
|
-
public function testCBC_AES192():void {
|
|
58
|
-
var key:ByteArray = Hex.toArray("8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b");
|
|
59
|
-
var pt:ByteArray = Hex.toArray(
|
|
60
|
-
"6bc1bee22e409f96e93d7e117393172a" +
|
|
61
|
-
"ae2d8a571e03ac9c9eb76fac45af8e51" +
|
|
62
|
-
"30c81c46a35ce411e5fbc1191a0a52ef" +
|
|
63
|
-
"f69f2445df4f9b17ad2b417be66c3710");
|
|
64
|
-
var ct:ByteArray = Hex.toArray(
|
|
65
|
-
"4f021db243bc633d7178183a9fa071e8" +
|
|
66
|
-
"b4d9ada9ad7dedf4e5e738763f69145a" +
|
|
67
|
-
"571b242012fb7ae07fa9baac3df102e0" +
|
|
68
|
-
"08b0e27988598881d920a9e64f5615cd");
|
|
69
|
-
var cbc:CBCMode = new CBCMode(new AESKey(key), new NullPad);
|
|
70
|
-
cbc.IV = Hex.toArray("000102030405060708090a0b0c0d0e0f");
|
|
71
|
-
var src:ByteArray = new ByteArray;
|
|
72
|
-
src.writeBytes(pt);
|
|
73
|
-
cbc.encrypt(src);
|
|
74
|
-
assert("CBC_AES192 test 1", Hex.fromArray(src)==Hex.fromArray(ct));
|
|
75
|
-
cbc.decrypt(src);
|
|
76
|
-
assert("CBC_AES192 test 2", Hex.fromArray(src)==Hex.fromArray(pt));
|
|
77
|
-
}
|
|
78
|
-
public function testCBC_AES256():void {
|
|
79
|
-
var key:ByteArray = Hex.toArray(
|
|
80
|
-
"603deb1015ca71be2b73aef0857d7781" +
|
|
81
|
-
"1f352c073b6108d72d9810a30914dff4");
|
|
82
|
-
var pt:ByteArray = Hex.toArray(
|
|
83
|
-
"6bc1bee22e409f96e93d7e117393172a" +
|
|
84
|
-
"ae2d8a571e03ac9c9eb76fac45af8e51" +
|
|
85
|
-
"30c81c46a35ce411e5fbc1191a0a52ef" +
|
|
86
|
-
"f69f2445df4f9b17ad2b417be66c3710");
|
|
87
|
-
var ct:ByteArray = Hex.toArray(
|
|
88
|
-
"f58c4c04d6e5f1ba779eabfb5f7bfbd6" +
|
|
89
|
-
"9cfc4e967edb808d679f777bc6702c7d" +
|
|
90
|
-
"39f23369a9d9bacfa530e26304231461" +
|
|
91
|
-
"b2eb05e2c39be9fcda6c19078c6a9d1b");
|
|
92
|
-
var cbc:CBCMode = new CBCMode(new AESKey(key), new NullPad);
|
|
93
|
-
cbc.IV = Hex.toArray("000102030405060708090a0b0c0d0e0f");
|
|
94
|
-
var src:ByteArray = new ByteArray;
|
|
95
|
-
src.writeBytes(pt);
|
|
96
|
-
cbc.encrypt(src);
|
|
97
|
-
assert("CBC_AES256 test 1", Hex.fromArray(src)==Hex.fromArray(ct));
|
|
98
|
-
cbc.decrypt(src);
|
|
99
|
-
assert("CBC_AES256 test 2", Hex.fromArray(src)==Hex.fromArray(pt));
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* For now the main goal is to show we can decrypt what we encrypt in this mode.
|
|
105
|
-
* Eventually, this should get correlated with some well known vectors.
|
|
106
|
-
*/
|
|
107
|
-
public function testAES():void {
|
|
108
|
-
var keys:Array = [
|
|
109
|
-
"00010203050607080A0B0C0D0F101112",
|
|
110
|
-
"14151617191A1B1C1E1F202123242526"];
|
|
111
|
-
var cts:Array = [
|
|
112
|
-
"D8F532538289EF7D06B506A4FD5BE9C94894C5508A8D8E29AB600DB0261F0555A8FA287B89E65C0973F1F8283E70C72863FE1C8F1F782084CE05626E961A67B3",
|
|
113
|
-
"59AB30F4D4EE6E4FF9907EF65B1FB68C96890CE217689B1BE0C93ED51CF21BB5A0101A8C30714EC4F52DBC9C6F4126067D363F67ABE58463005E679B68F0B496"];
|
|
114
|
-
var pts:Array = [
|
|
115
|
-
"506812A45F08C889B97F5980038B8359506812A45F08C889B97F5980038B8359506812A45F08C889B97F5980038B8359",
|
|
116
|
-
"5C6D71CA30DE8B8B00549984D2EC7D4B5C6D71CA30DE8B8B00549984D2EC7D4B5C6D71CA30DE8B8B00549984D2EC7D4B"];
|
|
117
|
-
|
|
118
|
-
for (var i:uint=0;i<keys.length;i++) {
|
|
119
|
-
var key:ByteArray = Hex.toArray(keys[i]);
|
|
120
|
-
var pt:ByteArray = Hex.toArray(pts[i]);
|
|
121
|
-
var aes:AESKey = new AESKey(key);
|
|
122
|
-
var cbc:CBCMode = new CBCMode(aes);
|
|
123
|
-
cbc.IV = Hex.toArray("00000000000000000000000000000000");
|
|
124
|
-
cbc.encrypt(pt);
|
|
125
|
-
var str:String = Hex.fromArray(pt).toUpperCase();
|
|
126
|
-
assert("comparing "+cts[i]+" to "+str, cts[i]==str);
|
|
127
|
-
// back to pt
|
|
128
|
-
cbc.decrypt(pt);
|
|
129
|
-
str = Hex.fromArray(pt).toUpperCase();
|
|
130
|
-
assert("comparing "+pts[i]+" to "+str, pts[i]==str);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
public function testXTea():void {
|
|
134
|
-
var keys:Array=[
|
|
135
|
-
"00000000000000000000000000000000",
|
|
136
|
-
"2b02056806144976775d0e266c287843"];
|
|
137
|
-
var cts:Array = [
|
|
138
|
-
"2dc7e8d3695b0538d8f1640d46dca717790af2ab545e11f3b08e798eb3f17b1744299d4d20b534aa",
|
|
139
|
-
"790958213819878370eb8251ffdac371081c5a457fc42502c63910306fea150be8674c3b8e675516"];
|
|
140
|
-
var pts:Array=[
|
|
141
|
-
"0000000000000000000000000000000000000000000000000000000000000000",
|
|
142
|
-
"74657374206d652e74657374206d652e74657374206d652e74657374206d652e"];
|
|
143
|
-
|
|
144
|
-
for (var i:uint=0;i<keys.length;i++) {
|
|
145
|
-
var key:ByteArray = Hex.toArray(keys[i]);
|
|
146
|
-
var pt:ByteArray = Hex.toArray(pts[i]);
|
|
147
|
-
var tea:XTeaKey = new XTeaKey(key);
|
|
148
|
-
var cbc:CBCMode = new CBCMode(tea);
|
|
149
|
-
cbc.IV = Hex.toArray("0000000000000000");
|
|
150
|
-
cbc.encrypt(pt);
|
|
151
|
-
var str:String = Hex.fromArray(pt);
|
|
152
|
-
assert("comparing "+cts[i]+" to "+str, cts[i]==str);
|
|
153
|
-
// now go back to plaintext.
|
|
154
|
-
cbc.decrypt(pt);
|
|
155
|
-
str = Hex.fromArray(pt);
|
|
156
|
-
assert("comparing "+pts[i]+" to "+str, pts[i]==str);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CFB8ModeTest
|
|
3
|
-
*
|
|
4
|
-
* A test class for CFB8Mode
|
|
5
|
-
* Copyright (c) 2007 Henri Torgemane
|
|
6
|
-
*
|
|
7
|
-
* See LICENSE.txt for full license information.
|
|
8
|
-
*/
|
|
9
|
-
package com.hurlant.crypto.tests
|
|
10
|
-
{
|
|
11
|
-
import flash.utils.ByteArray;
|
|
12
|
-
import com.hurlant.util.Hex;
|
|
13
|
-
import com.hurlant.crypto.symmetric.CFB8Mode;
|
|
14
|
-
import com.hurlant.crypto.symmetric.AESKey;
|
|
15
|
-
import com.hurlant.crypto.symmetric.NullPad;
|
|
16
|
-
|
|
17
|
-
public class CFB8ModeTest extends TestCase
|
|
18
|
-
{
|
|
19
|
-
public function CFB8ModeTest(h:ITestHarness) {
|
|
20
|
-
super(h,"CBF8Mode Test");
|
|
21
|
-
runTest(testCFB8_AES128, "CFB-8 AES-128 Test Vectors");
|
|
22
|
-
runTest(testCFB8_AES192, "CFB-8 AES-192 Test Vectors");
|
|
23
|
-
runTest(testCFB8_AES256, "CFB-8 AES-192 Test Vectors");
|
|
24
|
-
h.endTestCase();
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf
|
|
29
|
-
*/
|
|
30
|
-
public function testCFB8_AES128():void {
|
|
31
|
-
var key:ByteArray = Hex.toArray("2b7e151628aed2a6abf7158809cf4f3c");
|
|
32
|
-
var pt:ByteArray = Hex.toArray("6bc1bee22e409f96e93d7e117393172aae2d");
|
|
33
|
-
var ct:ByteArray = Hex.toArray("3b79424c9c0dd436bace9e0ed4586a4f32b9");
|
|
34
|
-
var cfb8:CFB8Mode = new CFB8Mode(new AESKey(key), new NullPad);
|
|
35
|
-
cfb8.IV = Hex.toArray("000102030405060708090a0b0c0d0e0f");
|
|
36
|
-
var src:ByteArray = new ByteArray;
|
|
37
|
-
src.writeBytes(pt);
|
|
38
|
-
cfb8.encrypt(src);
|
|
39
|
-
assert("CFB8_AES128 test 1", Hex.fromArray(src)==Hex.fromArray(ct));
|
|
40
|
-
cfb8.decrypt(src);
|
|
41
|
-
assert("CFB8_AES128 test 2", Hex.fromArray(src)==Hex.fromArray(pt));
|
|
42
|
-
}
|
|
43
|
-
public function testCFB8_AES192():void {
|
|
44
|
-
var key:ByteArray = Hex.toArray("8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b");
|
|
45
|
-
var pt:ByteArray = Hex.toArray("6bc1bee22e409f96e93d7e117393172aae2d");
|
|
46
|
-
var ct:ByteArray = Hex.toArray("cda2521ef0a905ca44cd057cbf0d47a0678a");
|
|
47
|
-
var cfb8:CFB8Mode = new CFB8Mode(new AESKey(key), new NullPad);
|
|
48
|
-
cfb8.IV = Hex.toArray("000102030405060708090a0b0c0d0e0f");
|
|
49
|
-
var src:ByteArray = new ByteArray;
|
|
50
|
-
src.writeBytes(pt);
|
|
51
|
-
cfb8.encrypt(src);
|
|
52
|
-
assert("CFB8_AES128 test 1", Hex.fromArray(src)==Hex.fromArray(ct));
|
|
53
|
-
cfb8.decrypt(src);
|
|
54
|
-
assert("CFB8_AES128 test 2", Hex.fromArray(src)==Hex.fromArray(pt));
|
|
55
|
-
}
|
|
56
|
-
public function testCFB8_AES256():void {
|
|
57
|
-
var key:ByteArray = Hex.toArray("603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4");
|
|
58
|
-
var pt:ByteArray = Hex.toArray("6bc1bee22e409f96e93d7e117393172aae2d");
|
|
59
|
-
var ct:ByteArray = Hex.toArray("dc1f1a8520a64db55fcc8ac554844e889700");
|
|
60
|
-
var cfb8:CFB8Mode = new CFB8Mode(new AESKey(key), new NullPad);
|
|
61
|
-
cfb8.IV = Hex.toArray("000102030405060708090a0b0c0d0e0f");
|
|
62
|
-
var src:ByteArray = new ByteArray;
|
|
63
|
-
src.writeBytes(pt);
|
|
64
|
-
cfb8.encrypt(src);
|
|
65
|
-
assert("CFB8_AES128 test 1", Hex.fromArray(src)==Hex.fromArray(ct));
|
|
66
|
-
cfb8.decrypt(src);
|
|
67
|
-
assert("CFB8_AES128 test 2", Hex.fromArray(src)==Hex.fromArray(pt));
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
}
|