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.
Files changed (125) hide show
  1. data/Rakefile +5 -52
  2. data/spec/ruby/spec_helper.rb +2 -1
  3. metadata +7 -129
  4. data/src/vendor/web-socket-js/FABridge.js +0 -604
  5. data/src/vendor/web-socket-js/README.txt +0 -109
  6. data/src/vendor/web-socket-js/WebSocketMain.swf +0 -0
  7. data/src/vendor/web-socket-js/WebSocketMainInsecure.zip +0 -0
  8. data/src/vendor/web-socket-js/flash-src/WebSocket.as +0 -473
  9. data/src/vendor/web-socket-js/flash-src/WebSocketMain.as +0 -88
  10. data/src/vendor/web-socket-js/flash-src/WebSocketMainInsecure.as +0 -19
  11. data/src/vendor/web-socket-js/flash-src/WebSocketStateEvent.as +0 -32
  12. data/src/vendor/web-socket-js/flash-src/bridge/FABridge.as +0 -943
  13. data/src/vendor/web-socket-js/flash-src/build.sh +0 -10
  14. data/src/vendor/web-socket-js/flash-src/com/adobe/net/proxies/RFC2817Socket.as +0 -204
  15. data/src/vendor/web-socket-js/flash-src/com/gsolo/encryption/MD5.as +0 -375
  16. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/Crypto.as +0 -287
  17. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/MozillaRootCertificates.as +0 -3235
  18. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/X509Certificate.as +0 -218
  19. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/cert/X509CertificateCollection.as +0 -57
  20. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/HMAC.as +0 -82
  21. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/IHMAC.as +0 -27
  22. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/IHash.as +0 -21
  23. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MAC.as +0 -137
  24. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MD2.as +0 -124
  25. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/MD5.as +0 -204
  26. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA1.as +0 -106
  27. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA224.as +0 -28
  28. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHA256.as +0 -115
  29. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/hash/SHABase.as +0 -71
  30. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/ARC4.as +0 -90
  31. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/IPRNG.as +0 -20
  32. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/Random.as +0 -119
  33. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/prng/TLSPRF.as +0 -142
  34. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/rsa/RSAKey.as +0 -339
  35. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/AESKey.as +0 -2797
  36. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/BlowFishKey.as +0 -375
  37. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CBCMode.as +0 -55
  38. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CFB8Mode.as +0 -61
  39. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CFBMode.as +0 -64
  40. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/CTRMode.as +0 -58
  41. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/DESKey.as +0 -365
  42. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ECBMode.as +0 -86
  43. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ICipher.as +0 -21
  44. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IMode.as +0 -15
  45. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IPad.as +0 -32
  46. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IStreamCipher.as +0 -21
  47. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/ISymmetricKey.as +0 -35
  48. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/IVMode.as +0 -110
  49. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/NullPad.as +0 -34
  50. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/OFBMode.as +0 -52
  51. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/PKCS5.as +0 -44
  52. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/SSLPad.as +0 -44
  53. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/SimpleIVMode.as +0 -60
  54. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/TLSPad.as +0 -42
  55. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/TripleDESKey.as +0 -88
  56. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/XTeaKey.as +0 -94
  57. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/aeskey.pl +0 -29
  58. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/symmetric/dump.txt +0 -2304
  59. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/AESKeyTest.as +0 -1220
  60. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ARC4Test.as +0 -58
  61. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/BigIntegerTest.as +0 -39
  62. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/BlowFishKeyTest.as +0 -148
  63. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CBCModeTest.as +0 -160
  64. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CFB8ModeTest.as +0 -71
  65. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CFBModeTest.as +0 -98
  66. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/CTRModeTest.as +0 -109
  67. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/DESKeyTest.as +0 -112
  68. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ECBModeTest.as +0 -151
  69. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/HMACTest.as +0 -184
  70. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/ITestHarness.as +0 -20
  71. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/MD2Test.as +0 -56
  72. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/MD5Test.as +0 -58
  73. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/OFBModeTest.as +0 -101
  74. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/RSAKeyTest.as +0 -92
  75. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA1Test.as +0 -198
  76. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA224Test.as +0 -58
  77. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/SHA256Test.as +0 -60
  78. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TLSPRFTest.as +0 -51
  79. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TestCase.as +0 -42
  80. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/TripleDESKeyTest.as +0 -59
  81. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tests/XTeaKeyTest.as +0 -66
  82. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/BulkCiphers.as +0 -102
  83. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/CipherSuites.as +0 -117
  84. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/IConnectionState.as +0 -14
  85. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/ISecurityParameters.as +0 -29
  86. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/KeyExchanges.as +0 -24
  87. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/MACs.as +0 -38
  88. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/SSLConnectionState.as +0 -171
  89. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/SSLEvent.as +0 -26
  90. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/SSLSecurityParameters.as +0 -340
  91. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSConfig.as +0 -70
  92. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSConnectionState.as +0 -151
  93. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSEngine.as +0 -895
  94. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSError.as +0 -39
  95. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSEvent.as +0 -27
  96. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSSecurityParameters.as +0 -197
  97. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSSocket.as +0 -370
  98. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSSocketEvent.as +0 -26
  99. data/src/vendor/web-socket-js/flash-src/com/hurlant/crypto/tls/TLSTest.as +0 -180
  100. data/src/vendor/web-socket-js/flash-src/com/hurlant/math/BarrettReduction.as +0 -90
  101. data/src/vendor/web-socket-js/flash-src/com/hurlant/math/BigInteger.as +0 -1543
  102. data/src/vendor/web-socket-js/flash-src/com/hurlant/math/ClassicReduction.as +0 -35
  103. data/src/vendor/web-socket-js/flash-src/com/hurlant/math/IReduction.as +0 -11
  104. data/src/vendor/web-socket-js/flash-src/com/hurlant/math/MontgomeryReduction.as +0 -85
  105. data/src/vendor/web-socket-js/flash-src/com/hurlant/math/NullReduction.as +0 -34
  106. data/src/vendor/web-socket-js/flash-src/com/hurlant/math/bi_internal.as +0 -11
  107. data/src/vendor/web-socket-js/flash-src/com/hurlant/util/ArrayUtil.as +0 -25
  108. data/src/vendor/web-socket-js/flash-src/com/hurlant/util/Base64.as +0 -189
  109. data/src/vendor/web-socket-js/flash-src/com/hurlant/util/Hex.as +0 -66
  110. data/src/vendor/web-socket-js/flash-src/com/hurlant/util/Memory.as +0 -28
  111. data/src/vendor/web-socket-js/flash-src/com/hurlant/util/der/ByteString.as +0 -43
  112. data/src/vendor/web-socket-js/flash-src/com/hurlant/util/der/DER.as +0 -210
  113. data/src/vendor/web-socket-js/flash-src/com/hurlant/util/der/IAsn1Type.as +0 -21
  114. data/src/vendor/web-socket-js/flash-src/com/hurlant/util/der/Integer.as +0 -44
  115. data/src/vendor/web-socket-js/flash-src/com/hurlant/util/der/OID.as +0 -35
  116. data/src/vendor/web-socket-js/flash-src/com/hurlant/util/der/ObjectIdentifier.as +0 -112
  117. data/src/vendor/web-socket-js/flash-src/com/hurlant/util/der/PEM.as +0 -118
  118. data/src/vendor/web-socket-js/flash-src/com/hurlant/util/der/PrintableString.as +0 -49
  119. data/src/vendor/web-socket-js/flash-src/com/hurlant/util/der/Sequence.as +0 -90
  120. data/src/vendor/web-socket-js/flash-src/com/hurlant/util/der/Set.as +0 -27
  121. data/src/vendor/web-socket-js/flash-src/com/hurlant/util/der/Type.as +0 -94
  122. data/src/vendor/web-socket-js/flash-src/com/hurlant/util/der/UTCTime.as +0 -60
  123. data/src/vendor/web-socket-js/sample.html +0 -76
  124. data/src/vendor/web-socket-js/swfobject.js +0 -4
  125. data/src/vendor/web-socket-js/web_socket.js +0 -388
@@ -1,184 +0,0 @@
1
- /**
2
- * HMACTest
3
- *
4
- * A test class for HMAC
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.hash.HMAC;
12
- import com.hurlant.crypto.hash.MD5;
13
- import com.hurlant.crypto.hash.SHA1;
14
- import com.hurlant.crypto.hash.SHA224;
15
- import com.hurlant.crypto.hash.SHA256;
16
- import com.hurlant.util.Hex;
17
-
18
- import flash.utils.ByteArray;
19
-
20
- public class HMACTest extends TestCase
21
- {
22
- public function HMACTest(h:ITestHarness)
23
- {
24
- super(h, "HMAC Test");
25
- runTest(testHMAC_MD5,"HMAC MD5 Test Vectors");
26
- runTest(testHMAC_SHA_1,"HMAC SHA-1 Test Vectors");
27
- runTest(testHMAC_SHA_2,"HMAC SHA-224/SHA-256 Test Vectors");
28
- runTest(testHMAC96_MD5,"HMAC-96 MD5 Test Vectors");
29
- runTest(testHMAC96_SHA_1,"HMAC-96 SHA-1 Test Vectors");
30
- runTest(testHMAC128_SHA_2,"HMAC-128 SHA-224/SHA-256 Test Vectors");
31
- h.endTestCase();
32
- }
33
- /**
34
- * Test vectors taking from RFC2202
35
- * http://tools.ietf.org/html/rfc2202
36
- * Yes, it's from an RFC, jefe! Now waddayawant?
37
- */
38
- public function testHMAC_SHA_1():void {
39
- var keys:Array = [
40
- "0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b",
41
- Hex.fromString("Jefe"),
42
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
43
- "0102030405060708090a0b0c0d0e0f10111213141516171819",
44
- "0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c",
45
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
46
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"];
47
- var pts:Array = [
48
- Hex.fromString("Hi There"),
49
- Hex.fromString("what do ya want for nothing?"),
50
- "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
51
- "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd",
52
- Hex.fromString("Test With Truncation"),
53
- Hex.fromString("Test Using Larger Than Block-Size Key - Hash Key First"),
54
- Hex.fromString("Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data")];
55
- var cts:Array = [
56
- "b617318655057264e28bc0b6fb378c8ef146be00",
57
- "effcdf6ae5eb2fa2d27416d5f184df9c259a7c79",
58
- "125d7342b9ac11cd91a39af48aa17b4f63f175d3",
59
- "4c9007f4026250c6bc8414f9bf50c86c2d7235da",
60
- "4c1a03424b55e07fe7f27be1d58bb9324a9a5a04",
61
- "aa4ae5e15272d00e95705637ce8a3b55ed402112",
62
- "e8e99d0f45237d786d6bbaa7965c7808bbff1a91"];
63
-
64
- var hmac:HMAC = new HMAC(new SHA1());
65
- for (var i:uint=0;i<keys.length;i++) {
66
- var key:ByteArray = Hex.toArray(keys[i]);
67
- var pt:ByteArray = Hex.toArray(pts[i]);
68
- var digest:ByteArray = hmac.compute(key, pt);
69
- assert("HMAC-SHA-1 test "+i, Hex.fromArray(digest) == cts[i]);
70
- }
71
- }
72
- public function testHMAC96_SHA_1():void {
73
- var hmac:HMAC = new HMAC(new SHA1, 96);
74
- var key:ByteArray = Hex.toArray("0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c");
75
- var pt:ByteArray = Hex.toArray(Hex.fromString("Test With Truncation"));
76
- var ct:String = "4c1a03424b55e07fe7f27be1";
77
- var digest:ByteArray = hmac.compute(key, pt);
78
- assert("HMAC96-SHA-1 test", Hex.fromArray(digest) == ct);
79
- }
80
-
81
- public function testHMAC_MD5():void {
82
- var keys:Array = [
83
- Hex.fromString("Jefe"),
84
- "0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b",
85
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
86
- "0102030405060708090a0b0c0d0e0f10111213141516171819",
87
- "0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c",
88
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
89
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"];
90
- var pts:Array = [
91
- Hex.fromString("what do ya want for nothing?"),
92
- Hex.fromString("Hi There"),
93
- "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
94
- "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd",
95
- Hex.fromString("Test With Truncation"),
96
- Hex.fromString("Test Using Larger Than Block-Size Key - Hash Key First"),
97
- Hex.fromString("Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data")];
98
- var cts:Array = [
99
- "750c783e6ab0b503eaa86e310a5db738",
100
- "9294727a3638bb1c13f48ef8158bfc9d",
101
- "56be34521d144c88dbb8c733f0e8b3f6",
102
- "697eaf0aca3a3aea3a75164746ffaa79",
103
- "56461ef2342edc00f9bab995690efd4c",
104
- "6b1ab7fe4bd7bf8f0b62e6ce61b9d0cd",
105
- "6f630fad67cda0ee1fb1f562db3aa53e"];
106
-
107
- var hmac:HMAC = new HMAC(new MD5());
108
- for (var i:uint=0;i<keys.length;i++) {
109
- var key:ByteArray = Hex.toArray(keys[i]);
110
- var pt:ByteArray = Hex.toArray(pts[i]);
111
- var digest:ByteArray = hmac.compute(key, pt);
112
- assert("HMAC-MD5 test "+i, Hex.fromArray(digest) == cts[i]);
113
- }
114
- }
115
- public function testHMAC96_MD5():void {
116
- var hmac:HMAC = new HMAC(new MD5, 96);
117
- var key:ByteArray = Hex.toArray("0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c");
118
- var pt:ByteArray = Hex.toArray(Hex.fromString("Test With Truncation"));
119
- var ct:String = "56461ef2342edc00f9bab995";
120
- var digest:ByteArray = hmac.compute(key, pt);
121
- assert("HMAC96-MD5 test", Hex.fromArray(digest) == ct);
122
- }
123
-
124
- /**
125
- * Test vectors for HMAC-SHA-2 taken from RFC4231
126
- * http://www.ietf.org/rfc/rfc4231.txt
127
- * Still the same lame strings, but hidden in hex. why not.
128
- */
129
- public function testHMAC_SHA_2():void {
130
- var keys:Array = [
131
- "0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b",
132
- "4a656665",
133
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
134
- "0102030405060708090a0b0c0d0e0f10111213141516171819",
135
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
136
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"];
137
- var pts:Array = [
138
- "4869205468657265",
139
- "7768617420646f2079612077616e7420666f72206e6f7468696e673f",
140
- "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
141
- "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd",
142
- "54657374205573696e67204c6172676572205468616e20426c6f636b2d53697a65204b6579202d2048617368204b6579204669727374",
143
- "5468697320697320612074657374207573696e672061206c6172676572207468616e20626c6f636b2d73697a65206b657920616e642061206c6172676572207468616e20626c6f636b2d73697a6520646174612e20546865206b6579206e6565647320746f20626520686173686564206265666f7265206265696e6720757365642062792074686520484d414320616c676f726974686d2e"];
144
- var cts224:Array = [
145
- "896fb1128abbdf196832107cd49df33f47b4b1169912ba4f53684b22",
146
- "a30e01098bc6dbbf45690f3a7e9e6d0f8bbea2a39e6148008fd05e44",
147
- "7fb3cb3588c6c1f6ffa9694d7d6ad2649365b0c1f65d69d1ec8333ea",
148
- "6c11506874013cac6a2abc1bb382627cec6a90d86efc012de7afec5a",
149
- "95e9a0db962095adaebe9b2d6f0dbce2d499f112f2d2b7273fa6870e",
150
- "3a854166ac5d9f023f54d517d0b39dbd946770db9c2b95c9f6f565d1"];
151
- var cts256:Array = [
152
- "b0344c61d8db38535ca8afceaf0bf12b881dc200c9833da726e9376c2e32cff7",
153
- "5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843",
154
- "773ea91e36800e46854db8ebd09181a72959098b3ef8c122d9635514ced565fe",
155
- "82558a389a443c0ea4cc819899f2083a85f0faa3e578f8077a2e3ff46729665b",
156
- "60e431591ee0b67f0d8a26aacbf5b77f8e0bc6213728c5140546040f0ee37f54",
157
- "9b09ffa71b942fcb27635fbcd5b0e944bfdc63644f0713938a7f51535c3a35e2"];
158
- // 384 and 512 will be added. someday. if I ever figure how to do 64bit computations half efficiently in as3
159
-
160
- var hmac224:HMAC = new HMAC(new SHA224);
161
- var hmac256:HMAC = new HMAC(new SHA256);
162
- for (var i:uint=0;i<keys.length;i++) {
163
- var key:ByteArray = Hex.toArray(keys[i]);
164
- var pt:ByteArray = Hex.toArray(pts[i]);
165
- var digest224:ByteArray = hmac224.compute(key, pt);
166
- assert("HMAC-SHA-224 test "+i, Hex.fromArray(digest224) == cts224[i]);
167
- var digest256:ByteArray = hmac256.compute(key, pt);
168
- assert("HMAC-SHA-256 test "+i, Hex.fromArray(digest256) == cts256[i]);
169
- }
170
- }
171
- public function testHMAC128_SHA_2():void {
172
- var hmac224:HMAC = new HMAC(new SHA224,128);
173
- var hmac256:HMAC = new HMAC(new SHA256,128);
174
- var key:ByteArray = Hex.toArray("0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c");
175
- var pt:ByteArray = Hex.toArray("546573742057697468205472756e636174696f6e");
176
- var ct224:String = "0e2aea68a90c8d37c988bcdb9fca6fa8";
177
- var ct256:String = "a3b6167473100ee06e0c796c2955552b";
178
- var digest224:ByteArray = hmac224.compute(key, pt);
179
- assert("HMAC128-SHA-224 test", Hex.fromArray(digest224) == ct224);
180
- var digest256:ByteArray = hmac256.compute(key, pt);
181
- assert("HMAC128-SHA-256 test", Hex.fromArray(digest256) == ct256);
182
- }
183
- }
184
- }
@@ -1,20 +0,0 @@
1
- /**
2
- * ITestHarness
3
- *
4
- * An interface to specify what's available for test cases to use.
5
- * Copyright (c) 2007 Henri Torgemane
6
- *
7
- * See LICENSE.txt for full license information.
8
- */
9
- package com.hurlant.crypto.tests
10
- {
11
- public interface ITestHarness
12
- {
13
- function beginTestCase(name:String):void;
14
- function endTestCase():void;
15
-
16
- function beginTest(name:String):void;
17
- function passTest():void;
18
- function failTest(msg:String):void;
19
- }
20
- }
@@ -1,56 +0,0 @@
1
- /**
2
- * MD2Test
3
- *
4
- * A test class for MD2
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.hash.MD2;
12
- import com.hurlant.util.Hex;
13
-
14
- import flash.utils.ByteArray;
15
-
16
- public class MD2Test extends TestCase
17
- {
18
- public function MD2Test(h:ITestHarness)
19
- {
20
- super(h, "MD2 Test");
21
- runTest(testMd2, "MD2 Test Vectors");
22
- h.endTestCase();
23
- }
24
-
25
- /**
26
- * Test Vectors grabbed from
27
- * http://www.faqs.org/rfcs/rfc1319.html
28
- */
29
- public function testMd2():void {
30
- var srcs:Array = [
31
- "",
32
- Hex.fromString("a"),
33
- Hex.fromString("abc"),
34
- Hex.fromString("message digest"),
35
- Hex.fromString("abcdefghijklmnopqrstuvwxyz"),
36
- Hex.fromString("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"),
37
- Hex.fromString("12345678901234567890123456789012345678901234567890123456789012345678901234567890")
38
- ];
39
- var hashes:Array = [
40
- "8350e5a3e24c153df2275c9f80692773",
41
- "32ec01ec4a6dac72c0ab96fb34c0b5d1",
42
- "da853b0d3f88d99b30283a69e6ded6bb",
43
- "ab4f496bfb2a530b219ff33031fe06b0",
44
- "4e8ddff3650292ab5a4108c3aa47940b",
45
- "da33def2a42df13975352846c30338cd",
46
- "d5976f79d83d3a0dc9806c3c66f3efd8"
47
- ];
48
- var md2:MD2 = new MD2;
49
- for (var i:uint=0;i<srcs.length;i++) {
50
- var src:ByteArray = Hex.toArray(srcs[i]);
51
- var digest:ByteArray = md2.hash(src);
52
- assert("MD2 Test "+i, Hex.fromArray(digest) == hashes[i]);
53
- }
54
- }
55
- }
56
- }
@@ -1,58 +0,0 @@
1
- /**
2
- * MD5Test
3
- *
4
- * A test class for MD5
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.hash.MD5;
12
- import com.hurlant.util.Hex;
13
-
14
- import flash.utils.ByteArray;
15
-
16
- public class MD5Test extends TestCase
17
- {
18
- public function MD5Test(h:ITestHarness)
19
- {
20
- super(h, "MD5 Test");
21
- runTest(testMd5,"MD5 Test Vectors");
22
- h.endTestCase();
23
- }
24
-
25
- /**
26
- * Test Vectors grabbed from
27
- * http://www.faqs.org/rfcs/rfc1321.html
28
- */
29
- public function testMd5():void {
30
- var srcs:Array = [
31
- "",
32
- Hex.fromString("a"),
33
- Hex.fromString("abc"),
34
- Hex.fromString("message digest"),
35
- Hex.fromString("abcdefghijklmnopqrstuvwxyz"),
36
- Hex.fromString("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"),
37
- Hex.fromString("12345678901234567890123456789012345678901234567890123456789012345678901234567890")
38
- ];
39
- var hashes:Array = [
40
- "d41d8cd98f00b204e9800998ecf8427e",
41
- "0cc175b9c0f1b6a831c399e269772661",
42
- "900150983cd24fb0d6963f7d28e17f72",
43
- "f96b697d7cb7938d525a2f31aaf161d0",
44
- "c3fcd3d76192e4007dfb496cca67e13b",
45
- "d174ab98d277d9f5a5611c2c9f419d9f",
46
- "57edf4a22be3c955ac49da2e2107b67a"
47
- ];
48
- var md5:MD5 = new MD5;
49
- for (var i:uint=0;i<srcs.length;i++) {
50
- var src:ByteArray = Hex.toArray(srcs[i]);
51
- var digest:ByteArray = md5.hash(src);
52
- assert("MD5 Test "+i, Hex.fromArray(digest) == hashes[i]);
53
- }
54
-
55
- }
56
-
57
- }
58
- }
@@ -1,101 +0,0 @@
1
- /**
2
- * OFBModeTest
3
- *
4
- * A test class for OFBMode
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.OFBMode;
14
- import com.hurlant.crypto.symmetric.AESKey;
15
- import com.hurlant.crypto.symmetric.NullPad;
16
-
17
- public class OFBModeTest extends TestCase
18
- {
19
- public function OFBModeTest(h:ITestHarness)
20
- {
21
- super(h, "OFBMode Test");
22
- runTest(testOFB_AES128,"OFB AES-128 Test Vectors");
23
- runTest(testOFB_AES192,"OFB AES-192 Test Vectors");
24
- runTest(testOFB_AES256,"OFB AES-256 Test Vectors");
25
- h.endTestCase();
26
- }
27
-
28
- /**
29
- * Nist Vectors: http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf
30
- * Section F.4.1 and below.
31
- */
32
- public function testOFB_AES128():void {
33
- var key:ByteArray = Hex.toArray("2b7e151628aed2a6abf7158809cf4f3c");
34
- var pt:ByteArray = Hex.toArray(
35
- "6bc1bee22e409f96e93d7e117393172a" +
36
- "ae2d8a571e03ac9c9eb76fac45af8e51" +
37
- "30c81c46a35ce411e5fbc1191a0a52ef" +
38
- "f69f2445df4f9b17ad2b417be66c3710");
39
- var ct:ByteArray = Hex.toArray(
40
- "3b3fd92eb72dad20333449f8e83cfb4a" +
41
- "7789508d16918f03f53c52dac54ed825" +
42
- "9740051e9c5fecf64344f7a82260edcc" +
43
- "304c6528f659c77866a510d9c1d6ae5e");
44
- var ofb:OFBMode = new OFBMode(new AESKey(key), new NullPad);
45
- ofb.IV = Hex.toArray("000102030405060708090a0b0c0d0e0f");
46
- var src:ByteArray = new ByteArray;
47
- src.writeBytes(pt);
48
- ofb.encrypt(src);
49
- assert("OFB_AES128 test 1", Hex.fromArray(src)==Hex.fromArray(ct));
50
- ofb.decrypt(src);
51
- assert("OFB_AES128 test 2", Hex.fromArray(src)==Hex.fromArray(pt));
52
- }
53
-
54
- public function testOFB_AES192():void {
55
- var key:ByteArray = Hex.toArray("8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b");
56
- var pt:ByteArray = Hex.toArray(
57
- "6bc1bee22e409f96e93d7e117393172a" +
58
- "ae2d8a571e03ac9c9eb76fac45af8e51" +
59
- "30c81c46a35ce411e5fbc1191a0a52ef" +
60
- "f69f2445df4f9b17ad2b417be66c3710");
61
- var ct:ByteArray = Hex.toArray(
62
- "cdc80d6fddf18cab34c25909c99a4174" +
63
- "fcc28b8d4c63837c09e81700c1100401" +
64
- "8d9a9aeac0f6596f559c6d4daf59a5f2" +
65
- "6d9f200857ca6c3e9cac524bd9acc92a");
66
- var ofb:OFBMode = new OFBMode(new AESKey(key), new NullPad);
67
- ofb.IV = Hex.toArray("000102030405060708090a0b0c0d0e0f");
68
- var src:ByteArray = new ByteArray;
69
- src.writeBytes(pt);
70
- ofb.encrypt(src);
71
- assert("OFB_AES192 test 1", Hex.fromArray(src)==Hex.fromArray(ct));
72
- ofb.decrypt(src);
73
- assert("OFB_AES192 test 2", Hex.fromArray(src)==Hex.fromArray(pt));
74
- }
75
-
76
- public function testOFB_AES256():void {
77
- var key:ByteArray = Hex.toArray(
78
- "603deb1015ca71be2b73aef0857d7781" +
79
- "1f352c073b6108d72d9810a30914dff4");
80
- var pt:ByteArray = Hex.toArray(
81
- "6bc1bee22e409f96e93d7e117393172a" +
82
- "ae2d8a571e03ac9c9eb76fac45af8e51" +
83
- "30c81c46a35ce411e5fbc1191a0a52ef" +
84
- "f69f2445df4f9b17ad2b417be66c3710");
85
- var ct:ByteArray = Hex.toArray(
86
- "dc7e84bfda79164b7ecd8486985d3860" +
87
- "4febdc6740d20b3ac88f6ad82a4fb08d" +
88
- "71ab47a086e86eedf39d1c5bba97c408" +
89
- "0126141d67f37be8538f5a8be740e484");
90
- var ofb:OFBMode = new OFBMode(new AESKey(key), new NullPad);
91
- ofb.IV = Hex.toArray("000102030405060708090a0b0c0d0e0f");
92
- var src:ByteArray = new ByteArray;
93
- src.writeBytes(pt);
94
- ofb.encrypt(src);
95
- assert("OFB_AES256 test 1", Hex.fromArray(src)==Hex.fromArray(ct));
96
- ofb.decrypt(src);
97
- assert("OFB_AES256 test 2", Hex.fromArray(src)==Hex.fromArray(pt));
98
- }
99
-
100
- }
101
- }
@@ -1,92 +0,0 @@
1
- /**
2
- * RSAKeyTest
3
- *
4
- * A test class for RSAKey
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.rsa.RSAKey;
12
- import flash.utils.ByteArray;
13
- import com.hurlant.util.Hex;
14
- import com.hurlant.util.der.PEM;
15
-
16
- public class RSAKeyTest extends TestCase
17
- {
18
- public function RSAKeyTest(h:ITestHarness)
19
- {
20
- super(h, "RSA Testing");
21
-
22
- runTest(testSmoke,"RSA smoke test");
23
- runTest(testGenerate, "RSA Key Generation test");
24
- runTest(testPEM, "RSA Private Key PEM parsing");
25
- runTest(testPEM2, "RSA Public Key PEM parsing");
26
- h.endTestCase();
27
- }
28
-
29
- public function testSmoke():void {
30
- var N:String ="C4E3F7212602E1E396C0B6623CF11D26204ACE3E7D26685E037AD2507DCE82FC" +
31
- "28F2D5F8A67FC3AFAB89A6D818D1F4C28CFA548418BD9F8E7426789A67E73E41";
32
- var E:String = "10001";
33
- var D:String = "7cd1745aec69096129b1f42da52ac9eae0afebbe0bc2ec89253598dcf454960e" +
34
- "3e5e4ec9f8c87202b986601dd167253ee3fb3fa047e14f1dfd5ccd37e931b29d";
35
- var P:String = "f0e4dd1eac5622bd3932860fc749bbc48662edabdf3d2826059acc0251ac0d3b";
36
- var Q:String = "d13cb38fbcd06ee9bca330b4000b3dae5dae12b27e5173e4d888c325cda61ab3";
37
- var DMP1:String = "b3d5571197fc31b0eb6b4153b425e24c033b054d22b9c8282254fe69d8c8c593";
38
- var DMQ1:String = "968ffe89e50d7b72585a79b65cfdb9c1da0963cceb56c3759e57334de5a0ac3f";
39
- var IQMP:String = "d9bc4f420e93adad9f007d0e5744c2fe051c9ed9d3c9b65f439a18e13d6e3908";
40
- // create a key.
41
- var rsa:RSAKey = RSAKey.parsePrivateKey(N,E,D, P,Q,DMP1,DMQ1,IQMP);
42
- var txt:String = "hello";
43
- var src:ByteArray = Hex.toArray(Hex.fromString(txt));
44
- var dst:ByteArray = new ByteArray;
45
- var dst2:ByteArray = new ByteArray;
46
- rsa.encrypt(src, dst, src.length);
47
- rsa.decrypt(dst, dst2, dst.length);
48
- var txt2:String = Hex.toString(Hex.fromArray(dst2));
49
- assert("rsa encrypt+decrypt", txt==txt2);
50
- }
51
-
52
- public function testGenerate():void {
53
- var rsa:RSAKey = RSAKey.generate(256, "10001");
54
- // same lame smoke test here.
55
- var txt:String = "hello";
56
- var src:ByteArray = Hex.toArray(Hex.fromString(txt));
57
- var dst:ByteArray = new ByteArray;
58
- var dst2:ByteArray = new ByteArray;
59
- rsa.encrypt(src, dst, src.length);
60
- rsa.decrypt(dst, dst2, dst.length);
61
- var txt2:String = Hex.toString(Hex.fromArray(dst2));
62
- assert("rsa encrypt+decrypt", txt==txt2);
63
- }
64
-
65
- public function testPEM():void {
66
- var pem:String = "-----BEGIN RSA PRIVATE KEY-----\n" +
67
- "MGQCAQACEQDJG3bkuB9Ie7jOldQTVdzPAgMBAAECEQCOGqcPhP8t8mX8cb4cQEaR\n" +
68
- "AgkA5WTYuAGmH0cCCQDgbrto0i7qOQIINYr5btGrtccCCQCYy4qX4JDEMQIJAJll\n" +
69
- "OnLVtCWk\n" +
70
- "-----END RSA PRIVATE KEY-----";
71
- var rsa:RSAKey = PEM.readRSAPrivateKey(pem);
72
- //trace(rsa.dump());
73
-
74
- // obligatory use
75
- var txt:String = "hello";
76
- var src:ByteArray = Hex.toArray(Hex.fromString(txt));
77
- var dst:ByteArray = new ByteArray;
78
- var dst2:ByteArray = new ByteArray;
79
- rsa.encrypt(src, dst, src.length);
80
- rsa.decrypt(dst, dst2, dst.length);
81
- var txt2:String = Hex.toString(Hex.fromArray(dst2));
82
- assert("rsa encrypt+decrypt", txt==txt2);
83
- }
84
- public function testPEM2():void {
85
- var pem:String = "-----BEGIN PUBLIC KEY-----\n" +
86
- "MCwwDQYJKoZIhvcNAQEBBQADGwAwGAIRAMkbduS4H0h7uM6V1BNV3M8CAwEAAQ==\n" +
87
- "-----END PUBLIC KEY-----";
88
- var rsa:RSAKey = PEM.readRSAPublicKey(pem);
89
- //trace(rsa.dump());
90
- }
91
- }
92
- }