@brix-crypto/crypto-js 0.0.1-security → 4.2.2

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.

Potentially problematic release.


This version of @brix-crypto/crypto-js might be problematic. Click here for more details.

Files changed (109) hide show
  1. package/.jshintrc +33 -0
  2. package/.travis.yml +15 -0
  3. package/CONTRIBUTING.md +28 -0
  4. package/LICENSE +24 -0
  5. package/README.md +273 -3
  6. package/aes.js +214 -0
  7. package/blowfish.js +451 -0
  8. package/cipher-core.js +877 -0
  9. package/core.js +796 -0
  10. package/docs/QuickStartGuide.wiki +470 -0
  11. package/enc-base64.js +116 -0
  12. package/enc-base64url.js +128 -0
  13. package/enc-utf16.js +129 -0
  14. package/evpkdf.js +114 -0
  15. package/format-hex.js +46 -0
  16. package/hmac.js +125 -0
  17. package/index.js +18 -0
  18. package/lib-typedarrays.js +56 -0
  19. package/md5.js +248 -0
  20. package/mode-cfb.js +60 -0
  21. package/mode-ctr-gladman.js +96 -0
  22. package/mode-ctr.js +38 -0
  23. package/mode-ecb.js +20 -0
  24. package/mode-ofb.js +34 -0
  25. package/package.json +45 -3
  26. package/pad-ansix923.js +29 -0
  27. package/pad-iso10126.js +24 -0
  28. package/pad-iso97971.js +20 -0
  29. package/pad-nopadding.js +10 -0
  30. package/pad-zeropadding.js +27 -0
  31. package/pbkdf2.js +125 -0
  32. package/rabbit-legacy.js +170 -0
  33. package/rabbit.js +172 -0
  34. package/rc4.js +119 -0
  35. package/ripemd160.js +247 -0
  36. package/sha1.js +130 -0
  37. package/sha224.js +60 -0
  38. package/sha256.js +179 -0
  39. package/sha3.js +306 -0
  40. package/sha384.js +63 -0
  41. package/sha512.js +306 -0
  42. package/test/aes-profile.js +31 -0
  43. package/test/aes-test.js +80 -0
  44. package/test/blowfish-test.js +33 -0
  45. package/test/cipher-test.js +522 -0
  46. package/test/config-test.js +51 -0
  47. package/test/des-profile.js +31 -0
  48. package/test/des-test.js +104 -0
  49. package/test/enc-base64-test.js +71 -0
  50. package/test/enc-hex-test.js +15 -0
  51. package/test/enc-latin1-test.js +15 -0
  52. package/test/enc-utf16-test.js +55 -0
  53. package/test/enc-utf8-test.js +39 -0
  54. package/test/evpkdf-profile.js +11 -0
  55. package/test/evpkdf-test.js +32 -0
  56. package/test/format-openssl-test.js +37 -0
  57. package/test/hmac-md5-profile.js +30 -0
  58. package/test/hmac-md5-test.js +59 -0
  59. package/test/hmac-sha224-test.js +59 -0
  60. package/test/hmac-sha256-test.js +59 -0
  61. package/test/hmac-sha384-test.js +59 -0
  62. package/test/hmac-sha512-test.js +59 -0
  63. package/test/kdf-openssl-test.js +15 -0
  64. package/test/lib-base-test.js +92 -0
  65. package/test/lib-cipherparams-test.js +59 -0
  66. package/test/lib-passwordbasedcipher-test.js +25 -0
  67. package/test/lib-serializablecipher-test.js +51 -0
  68. package/test/lib-typedarrays-test.js +57 -0
  69. package/test/lib-wordarray-test.js +85 -0
  70. package/test/md5-profile.js +24 -0
  71. package/test/md5-test.js +70 -0
  72. package/test/mode-cbc-test.js +49 -0
  73. package/test/mode-cfb-test.js +51 -0
  74. package/test/mode-ctr-test.js +55 -0
  75. package/test/mode-ecb-test.js +38 -0
  76. package/test/mode-ofb-test.js +50 -0
  77. package/test/pad-ansix923-test.js +28 -0
  78. package/test/pad-iso10126-test.js +50 -0
  79. package/test/pad-iso97971-test.js +35 -0
  80. package/test/pad-pkcs7-test.js +28 -0
  81. package/test/pad-zeropadding-test.js +28 -0
  82. package/test/pbkdf2-profile.js +11 -0
  83. package/test/pbkdf2-test.js +80 -0
  84. package/test/profile.html +281 -0
  85. package/test/rabbit-legacy-test.js +80 -0
  86. package/test/rabbit-profile.js +30 -0
  87. package/test/rabbit-test.js +84 -0
  88. package/test/rc4-profile.js +30 -0
  89. package/test/rc4-test.js +68 -0
  90. package/test/ripemd160-test.js +19 -0
  91. package/test/sha1-profile.js +24 -0
  92. package/test/sha1-test.js +70 -0
  93. package/test/sha224-test.js +19 -0
  94. package/test/sha256-profile.js +24 -0
  95. package/test/sha256-test.js +70 -0
  96. package/test/sha3-profile.js +24 -0
  97. package/test/sha3-test.js +69 -0
  98. package/test/sha384-test.js +54 -0
  99. package/test/sha512-profile.js +24 -0
  100. package/test/sha512-test.js +54 -0
  101. package/test/test-build.html +105 -0
  102. package/test/test.html +138 -0
  103. package/test/test1.html +63 -0
  104. package/test/tripledes-profile.js +31 -0
  105. package/test/tripledes-test.js +121 -0
  106. package/test/x64-word-test.js +99 -0
  107. package/test/x64-wordarray-test.js +38 -0
  108. package/tripledes.js +759 -0
  109. package/x64-core.js +284 -0
@@ -0,0 +1,70 @@
1
+ YUI.add('algo-sha1-test', function (Y) {
2
+ var C = CryptoJS;
3
+
4
+ Y.Test.Runner.add(new Y.Test.Case({
5
+ name: 'SHA1',
6
+
7
+ testVector1: function () {
8
+ Y.Assert.areEqual('da39a3ee5e6b4b0d3255bfef95601890afd80709', C.SHA1('').toString());
9
+ },
10
+
11
+ testVector2: function () {
12
+ Y.Assert.areEqual('86f7e437faa5a7fce15d1ddcb9eaeaea377667b8', C.SHA1('a').toString());
13
+ },
14
+
15
+ testVector3: function () {
16
+ Y.Assert.areEqual('a9993e364706816aba3e25717850c26c9cd0d89d', C.SHA1('abc').toString());
17
+ },
18
+
19
+ testVector4: function () {
20
+ Y.Assert.areEqual('c12252ceda8be8994d5fa0290a47231c1d16aae3', C.SHA1('message digest').toString());
21
+ },
22
+
23
+ testVector5: function () {
24
+ Y.Assert.areEqual('32d10c7b8cf96570ca04ce37f2a19d84240d3a89', C.SHA1('abcdefghijklmnopqrstuvwxyz').toString());
25
+ },
26
+
27
+ testVector6: function () {
28
+ Y.Assert.areEqual('761c457bf73b14d27e9e9265c46f4b4dda11f940', C.SHA1('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789').toString());
29
+ },
30
+
31
+ testVector7: function () {
32
+ Y.Assert.areEqual('50abf5706a150990a08b2c5ea40fa0e585554732', C.SHA1('12345678901234567890123456789012345678901234567890123456789012345678901234567890').toString());
33
+ },
34
+
35
+ testUpdateAndLongMessage: function () {
36
+ var sha1 = C.algo.SHA1.create();
37
+ for (var i = 0; i < 100; i++) {
38
+ sha1.update('12345678901234567890123456789012345678901234567890');
39
+ }
40
+
41
+ Y.Assert.areEqual('85e4c4b3933d5553ebf82090409a9d90226d845c', sha1.finalize().toString());
42
+ },
43
+
44
+ testClone: function () {
45
+ var sha1 = C.algo.SHA1.create();
46
+
47
+ Y.Assert.areEqual(C.SHA1('a').toString(), sha1.update('a').clone().finalize().toString());
48
+ Y.Assert.areEqual(C.SHA1('ab').toString(), sha1.update('b').clone().finalize().toString());
49
+ Y.Assert.areEqual(C.SHA1('abc').toString(), sha1.update('c').clone().finalize().toString());
50
+ },
51
+
52
+ testInputIntegrity: function () {
53
+ var message = C.lib.WordArray.create([0x12345678]);
54
+
55
+ var expected = message.toString();
56
+
57
+ C.SHA1(message);
58
+
59
+ Y.Assert.areEqual(expected, message.toString());
60
+ },
61
+
62
+ testHelper: function () {
63
+ Y.Assert.areEqual(C.algo.SHA1.create().finalize('').toString(), C.SHA1('').toString());
64
+ },
65
+
66
+ testHmacHelper: function () {
67
+ Y.Assert.areEqual(C.algo.HMAC.create(C.algo.SHA1, C.enc.Hex.parse('0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b')).finalize('Hi There').toString(), C.HmacSHA1('Hi There', C.enc.Hex.parse('0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b')).toString());
68
+ }
69
+ }));
70
+ }, '$Rev$');
@@ -0,0 +1,19 @@
1
+ YUI.add('algo-sha224-test', function (Y) {
2
+ var C = CryptoJS;
3
+
4
+ Y.Test.Runner.add(new Y.Test.Case({
5
+ name: 'SHA224',
6
+
7
+ testVector1: function () {
8
+ Y.Assert.areEqual('d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f', C.SHA224('').toString());
9
+ },
10
+
11
+ testVector2: function () {
12
+ Y.Assert.areEqual('730e109bd7a8a32b1cb9d9a09aa2325d2430587ddbc0c38bad911525', C.SHA224('The quick brown fox jumps over the lazy dog').toString());
13
+ },
14
+
15
+ testVector3: function () {
16
+ Y.Assert.areEqual('619cba8e8e05826e9b8c519c0a5c68f4fb653e8a3d8aa04bb2c8cd4c', C.SHA224('The quick brown fox jumps over the lazy dog.').toString());
17
+ }
18
+ }));
19
+ }, '$Rev$');
@@ -0,0 +1,24 @@
1
+ YUI.add('algo-sha256-profile', function (Y) {
2
+ var C = CryptoJS;
3
+
4
+ Y.Profiler.add({
5
+ name: 'SHA256',
6
+
7
+ profileSinglePartMessage: function () {
8
+ var singlePartMessage = '';
9
+ for (var i = 0; i < 500; i++) {
10
+ singlePartMessage += '12345678901234567890123456789012345678901234567890';
11
+ }
12
+
13
+ C.algo.SHA256.create().finalize(singlePartMessage) + '';
14
+ },
15
+
16
+ profileMultiPartMessage: function () {
17
+ var sha256 = C.algo.SHA256.create();
18
+ for (var i = 0; i < 500; i++) {
19
+ sha256.update('12345678901234567890123456789012345678901234567890');
20
+ }
21
+ sha256.finalize() + '';
22
+ }
23
+ });
24
+ }, '$Rev$');
@@ -0,0 +1,70 @@
1
+ YUI.add('algo-sha256-test', function (Y) {
2
+ var C = CryptoJS;
3
+
4
+ Y.Test.Runner.add(new Y.Test.Case({
5
+ name: 'SHA256',
6
+
7
+ testVector1: function () {
8
+ Y.Assert.areEqual('e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', C.SHA256('').toString());
9
+ },
10
+
11
+ testVector2: function () {
12
+ Y.Assert.areEqual('ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb', C.SHA256('a').toString());
13
+ },
14
+
15
+ testVector3: function () {
16
+ Y.Assert.areEqual('ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad', C.SHA256('abc').toString());
17
+ },
18
+
19
+ testVector4: function () {
20
+ Y.Assert.areEqual('f7846f55cf23e14eebeab5b4e1550cad5b509e3348fbc4efa3a1413d393cb650', C.SHA256('message digest').toString());
21
+ },
22
+
23
+ testVector5: function () {
24
+ Y.Assert.areEqual('71c480df93d6ae2f1efad1447c66c9525e316218cf51fc8d9ed832f2daf18b73', C.SHA256('abcdefghijklmnopqrstuvwxyz').toString());
25
+ },
26
+
27
+ testVector6: function () {
28
+ Y.Assert.areEqual('db4bfcbd4da0cd85a60c3c37d3fbd8805c77f15fc6b1fdfe614ee0a7c8fdb4c0', C.SHA256('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789').toString());
29
+ },
30
+
31
+ testVector7: function () {
32
+ Y.Assert.areEqual('f371bc4a311f2b009eef952dd83ca80e2b60026c8e935592d0f9c308453c813e', C.SHA256('12345678901234567890123456789012345678901234567890123456789012345678901234567890').toString());
33
+ },
34
+
35
+ testUpdateAndLongMessage: function () {
36
+ var sha256 = C.algo.SHA256.create();
37
+ for (var i = 0; i < 100; i++) {
38
+ sha256.update('12345678901234567890123456789012345678901234567890');
39
+ }
40
+
41
+ Y.Assert.areEqual('f8146961d9b73d8da49ccd526fca65439cdd5b402f76971556d5f52fd129843e', sha256.finalize().toString());
42
+ },
43
+
44
+ testClone: function () {
45
+ var sha256 = C.algo.SHA256.create();
46
+
47
+ Y.Assert.areEqual(C.SHA256('a').toString(), sha256.update('a').clone().finalize().toString());
48
+ Y.Assert.areEqual(C.SHA256('ab').toString(), sha256.update('b').clone().finalize().toString());
49
+ Y.Assert.areEqual(C.SHA256('abc').toString(), sha256.update('c').clone().finalize().toString());
50
+ },
51
+
52
+ testInputIntegrity: function () {
53
+ var message = C.lib.WordArray.create([0x12345678]);
54
+
55
+ var expected = message.toString();
56
+
57
+ C.SHA256(message);
58
+
59
+ Y.Assert.areEqual(expected, message.toString());
60
+ },
61
+
62
+ testHelper: function () {
63
+ Y.Assert.areEqual(C.algo.SHA256.create().finalize('').toString(), C.SHA256('').toString());
64
+ },
65
+
66
+ testHmacHelper: function () {
67
+ Y.Assert.areEqual(C.algo.HMAC.create(C.algo.SHA256, C.enc.Hex.parse('0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b')).finalize('Hi There').toString(), C.HmacSHA256('Hi There', C.enc.Hex.parse('0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b')).toString());
68
+ }
69
+ }));
70
+ }, '$Rev$');
@@ -0,0 +1,24 @@
1
+ YUI.add('algo-sha3-profile', function (Y) {
2
+ var C = CryptoJS;
3
+
4
+ Y.Profiler.add({
5
+ name: 'SHA3',
6
+
7
+ profileSinglePartMessage: function () {
8
+ var singlePartMessage = '';
9
+ for (var i = 0; i < 500; i++) {
10
+ singlePartMessage += '12345678901234567890123456789012345678901234567890';
11
+ }
12
+
13
+ C.algo.SHA3.create().finalize(singlePartMessage) + '';
14
+ },
15
+
16
+ profileMultiPartMessage: function () {
17
+ var sha3 = C.algo.SHA3.create();
18
+ for (var i = 0; i < 500; i++) {
19
+ sha3.update('12345678901234567890123456789012345678901234567890');
20
+ }
21
+ sha3.finalize() + '';
22
+ }
23
+ });
24
+ }, '$Rev$');
@@ -0,0 +1,69 @@
1
+ YUI.add('algo-sha3-test', function (Y) {
2
+ var C = CryptoJS;
3
+
4
+ Y.Test.Runner.add(new Y.Test.Case({
5
+ name: 'SHA3',
6
+
7
+ testVector1: function () {
8
+ Y.Assert.areEqual('0eab42de4c3ceb9235fc91acffe746b29c29a8c366b7c60e4e67c466f36a4304c00fa9caf9d87976ba469bcbe06713b435f091ef2769fb160cdab33d3670680e', C.SHA3('', { outputLength: 512 }).toString());
9
+ },
10
+
11
+ testVector2: function () {
12
+ Y.Assert.areEqual('81950e7096d31d4f22e3db71cac725bf59e81af54c7ca9e6aeee71c010fc5467466312a01aa5c137cfb140646941556796f612c9351268737c7e9a2b9631d1fa', C.SHA3(C.enc.Hex.parse('3a3a819c48efde2ad914fbf00e18ab6bc4f14513ab27d0c178a188b61431e7f5623cb66b23346775d386b50e982c493adbbfc54b9a3cd383382336a1a0b2150a15358f336d03ae18f666c7573d55c4fd181c29e6ccfde63ea35f0adf5885cfc0a3d84a2b2e4dd24496db789e663170cef74798aa1bbcd4574ea0bba40489d764b2f83aadc66b148b4a0cd95246c127d5871c4f11418690a5ddf01246a0c80a43c70088b6183639dcfda4125bd113a8f49ee23ed306faac576c3fb0c1e256671d817fc2534a52f5b439f72e424de376f4c565cca82307dd9ef76da5b7c4eb7e085172e328807c02d011ffbf33785378d79dc266f6a5be6bb0e4a92eceebaeb1'), { outputLength: 512 }).toString());
13
+ },
14
+
15
+ testVector3: function () {
16
+ Y.Assert.areEqual('2c23146a63a29acf99e73b88f8c24eaa7dc60aa771780ccc006afbfa8fe2479b2dd2b21362337441ac12b515911957ff', C.SHA3('', { outputLength: 384 }).toString());
17
+ },
18
+
19
+ testVector4: function () {
20
+ Y.Assert.areEqual('6bff1c8405a3fe594e360e3bccea1ebcd509310dc79b9e45c263783d7a5dd662c6789b18bd567dbdda1554f5bee6a860', C.SHA3(C.enc.Hex.parse('3a3a819c48efde2ad914fbf00e18ab6bc4f14513ab27d0c178a188b61431e7f5623cb66b23346775d386b50e982c493adbbfc54b9a3cd383382336a1a0b2150a15358f336d03ae18f666c7573d55c4fd181c29e6ccfde63ea35f0adf5885cfc0a3d84a2b2e4dd24496db789e663170cef74798aa1bbcd4574ea0bba40489d764b2f83aadc66b148b4a0cd95246c127d5871c4f11418690a5ddf01246a0c80a43c70088b6183639dcfda4125bd113a8f49ee23ed306faac576c3fb0c1e256671d817fc2534a52f5b439f72e424de376f4c565cca82307dd9ef76da5b7c4eb7e085172e328807c02d011ffbf33785378d79dc266f6a5be6bb0e4a92eceebaeb1'), { outputLength: 384 }).toString());
21
+ },
22
+
23
+ testVector5: function () {
24
+ Y.Assert.areEqual('c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470', C.SHA3('', { outputLength: 256 }).toString());
25
+ },
26
+
27
+ testVector6: function () {
28
+ Y.Assert.areEqual('348fb774adc970a16b1105669442625e6adaa8257a89effdb5a802f161b862ea', C.SHA3(C.enc.Hex.parse('3a3a819c48efde2ad914fbf00e18ab6bc4f14513ab27d0c178a188b61431e7f5623cb66b23346775d386b50e982c493adbbfc54b9a3cd383382336a1a0b2150a15358f336d03ae18f666c7573d55c4fd181c29e6ccfde63ea35f0adf5885cfc0a3d84a2b2e4dd24496db789e663170cef74798aa1bbcd4574ea0bba40489d764b2f83aadc66b148b4a0cd95246c127d5871c4f11418690a5ddf01246a0c80a43c70088b6183639dcfda4125bd113a8f49ee23ed306faac576c3fb0c1e256671d817fc2534a52f5b439f72e424de376f4c565cca82307dd9ef76da5b7c4eb7e085172e328807c02d011ffbf33785378d79dc266f6a5be6bb0e4a92eceebaeb1'), { outputLength: 256 }).toString());
29
+ },
30
+
31
+ testVector7: function () {
32
+ Y.Assert.areEqual('f71837502ba8e10837bdd8d365adb85591895602fc552b48b7390abd', C.SHA3('', { outputLength: 224 }).toString());
33
+ },
34
+
35
+ testVector8: function () {
36
+ Y.Assert.areEqual('5af56987ea9cf11fcd0eac5ebc14b037365e9b1123e31cb2dfc7929a', C.SHA3(C.enc.Hex.parse('3a3a819c48efde2ad914fbf00e18ab6bc4f14513ab27d0c178a188b61431e7f5623cb66b23346775d386b50e982c493adbbfc54b9a3cd383382336a1a0b2150a15358f336d03ae18f666c7573d55c4fd181c29e6ccfde63ea35f0adf5885cfc0a3d84a2b2e4dd24496db789e663170cef74798aa1bbcd4574ea0bba40489d764b2f83aadc66b148b4a0cd95246c127d5871c4f11418690a5ddf01246a0c80a43c70088b6183639dcfda4125bd113a8f49ee23ed306faac576c3fb0c1e256671d817fc2534a52f5b439f72e424de376f4c565cca82307dd9ef76da5b7c4eb7e085172e328807c02d011ffbf33785378d79dc266f6a5be6bb0e4a92eceebaeb1'), { outputLength: 224 }).toString());
37
+ },
38
+
39
+ testDefaultOutputLength: function () {
40
+ Y.Assert.areEqual('0eab42de4c3ceb9235fc91acffe746b29c29a8c366b7c60e4e67c466f36a4304c00fa9caf9d87976ba469bcbe06713b435f091ef2769fb160cdab33d3670680e', C.SHA3('').toString());
41
+ },
42
+
43
+ testClone: function () {
44
+ var sha3 = C.algo.SHA3.create();
45
+
46
+ Y.Assert.areEqual(C.SHA3('a').toString(), sha3.update('a').clone().finalize().toString());
47
+ Y.Assert.areEqual(C.SHA3('ab').toString(), sha3.update('b').clone().finalize().toString());
48
+ Y.Assert.areEqual(C.SHA3('abc').toString(), sha3.update('c').clone().finalize().toString());
49
+ },
50
+
51
+ testInputIntegrity: function () {
52
+ var message = C.lib.WordArray.create([0x12345678]);
53
+
54
+ var expected = message.toString();
55
+
56
+ C.SHA3(message);
57
+
58
+ Y.Assert.areEqual(expected, message.toString());
59
+ },
60
+
61
+ testHelper: function () {
62
+ Y.Assert.areEqual(C.algo.SHA3.create({ outputLength: 256 }).finalize('').toString(), C.SHA3('', { outputLength: 256 }).toString());
63
+ },
64
+
65
+ testHmacHelper: function () {
66
+ Y.Assert.areEqual(C.algo.HMAC.create(C.algo.SHA3, C.enc.Hex.parse('0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b')).finalize('Hi There').toString(), C.HmacSHA3('Hi There', C.enc.Hex.parse('0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b')).toString());
67
+ }
68
+ }));
69
+ }, '$Rev$');
@@ -0,0 +1,54 @@
1
+ YUI.add('algo-sha384-test', function (Y) {
2
+ var C = CryptoJS;
3
+
4
+ Y.Test.Runner.add(new Y.Test.Case({
5
+ name: 'SHA384',
6
+
7
+ testVector1: function () {
8
+ Y.Assert.areEqual('38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b', C.SHA384('').toString());
9
+ },
10
+
11
+ testVector2: function () {
12
+ Y.Assert.areEqual('ca737f1014a48f4c0b6dd43cb177b0afd9e5169367544c494011e3317dbf9a509cb1e5dc1e85a941bbee3d7f2afbc9b1', C.SHA384('The quick brown fox jumps over the lazy dog').toString());
13
+ },
14
+
15
+ testVector3: function () {
16
+ Y.Assert.areEqual('ed892481d8272ca6df370bf706e4d7bc1b5739fa2177aae6c50e946678718fc67a7af2819a021c2fc34e91bdb63409d7', C.SHA384('The quick brown fox jumps over the lazy dog.').toString());
17
+ },
18
+
19
+ testUpdateAndLongMessage: function () {
20
+ var sha384 = C.algo.SHA384.create();
21
+ for (var i = 0; i < 100; i++) {
22
+ sha384.update('12345678901234567890123456789012345678901234567890');
23
+ }
24
+
25
+ Y.Assert.areEqual('297a519246d6f639a4020119e1f03fc8d77171647b2ff75ea4125b7150fed0cdcc93f8dca1c3c6a624d5e88d780d82cd', sha384.finalize().toString());
26
+ },
27
+
28
+ testClone: function () {
29
+ var sha384 = C.algo.SHA384.create();
30
+
31
+ Y.Assert.areEqual(C.SHA384('a').toString(), sha384.update('a').clone().finalize().toString());
32
+ Y.Assert.areEqual(C.SHA384('ab').toString(), sha384.update('b').clone().finalize().toString());
33
+ Y.Assert.areEqual(C.SHA384('abc').toString(), sha384.update('c').clone().finalize().toString());
34
+ },
35
+
36
+ testInputIntegrity: function () {
37
+ var message = C.lib.WordArray.create([0x12345678]);
38
+
39
+ var expected = message.toString();
40
+
41
+ C.SHA384(message);
42
+
43
+ Y.Assert.areEqual(expected, message.toString());
44
+ },
45
+
46
+ testHelper: function () {
47
+ Y.Assert.areEqual(C.algo.SHA384.create().finalize('').toString(), C.SHA384('').toString());
48
+ },
49
+
50
+ testHmacHelper: function () {
51
+ Y.Assert.areEqual(C.algo.HMAC.create(C.algo.SHA384, C.enc.Hex.parse('0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b')).finalize('Hi There').toString(), C.HmacSHA384('Hi There', C.enc.Hex.parse('0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b')).toString());
52
+ }
53
+ }));
54
+ }, '$Rev$');
@@ -0,0 +1,24 @@
1
+ YUI.add('algo-sha512-profile', function (Y) {
2
+ var C = CryptoJS;
3
+
4
+ Y.Profiler.add({
5
+ name: 'SHA512',
6
+
7
+ profileSinglePartMessage: function () {
8
+ var singlePartMessage = '';
9
+ for (var i = 0; i < 500; i++) {
10
+ singlePartMessage += '12345678901234567890123456789012345678901234567890';
11
+ }
12
+
13
+ C.algo.SHA512.create().finalize(singlePartMessage) + '';
14
+ },
15
+
16
+ profileMultiPartMessage: function () {
17
+ var sha512 = C.algo.SHA512.create();
18
+ for (var i = 0; i < 500; i++) {
19
+ sha512.update('12345678901234567890123456789012345678901234567890');
20
+ }
21
+ sha512.finalize() + '';
22
+ }
23
+ });
24
+ }, '$Rev$');
@@ -0,0 +1,54 @@
1
+ YUI.add('algo-sha512-test', function (Y) {
2
+ var C = CryptoJS;
3
+
4
+ Y.Test.Runner.add(new Y.Test.Case({
5
+ name: 'SHA512',
6
+
7
+ testVector1: function () {
8
+ Y.Assert.areEqual('cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e', C.SHA512('').toString());
9
+ },
10
+
11
+ testVector2: function () {
12
+ Y.Assert.areEqual('07e547d9586f6a73f73fbac0435ed76951218fb7d0c8d788a309d785436bbb642e93a252a954f23912547d1e8a3b5ed6e1bfd7097821233fa0538f3db854fee6', C.SHA512('The quick brown fox jumps over the lazy dog').toString());
13
+ },
14
+
15
+ testVector3: function () {
16
+ Y.Assert.areEqual('91ea1245f20d46ae9a037a989f54f1f790f0a47607eeb8a14d12890cea77a1bbc6c7ed9cf205e67b7f2b8fd4c7dfd3a7a8617e45f3c463d481c7e586c39ac1ed', C.SHA512('The quick brown fox jumps over the lazy dog.').toString());
17
+ },
18
+
19
+ testUpdateAndLongMessage: function () {
20
+ var sha512 = C.algo.SHA512.create();
21
+ for (var i = 0; i < 100; i++) {
22
+ sha512.update('12345678901234567890123456789012345678901234567890');
23
+ }
24
+
25
+ Y.Assert.areEqual('9bc64f37c54606dff234b6607e06683c7ba248558d0ec74a11525d9f59e0be566489cc9413c00ca5e9db705fc52ba71214bcf118f65072fe284af8f8cf9500af', sha512.finalize().toString());
26
+ },
27
+
28
+ testClone: function () {
29
+ var sha512 = C.algo.SHA512.create();
30
+
31
+ Y.Assert.areEqual(C.SHA512('a').toString(), sha512.update('a').clone().finalize().toString());
32
+ Y.Assert.areEqual(C.SHA512('ab').toString(), sha512.update('b').clone().finalize().toString());
33
+ Y.Assert.areEqual(C.SHA512('abc').toString(), sha512.update('c').clone().finalize().toString());
34
+ },
35
+
36
+ testInputIntegrity: function () {
37
+ var message = C.lib.WordArray.create([0x12345678]);
38
+
39
+ var expected = message.toString();
40
+
41
+ C.SHA512(message);
42
+
43
+ Y.Assert.areEqual(expected, message.toString());
44
+ },
45
+
46
+ testHelper: function () {
47
+ Y.Assert.areEqual(C.algo.SHA512.create().finalize('').toString(), C.SHA512('').toString());
48
+ },
49
+
50
+ testHmacHelper: function () {
51
+ Y.Assert.areEqual(C.algo.HMAC.create(C.algo.SHA512, C.enc.Hex.parse('0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b')).finalize('Hi There').toString(), C.HmacSHA512('Hi There', C.enc.Hex.parse('0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b')).toString());
52
+ }
53
+ }));
54
+ }, '$Rev$');
@@ -0,0 +1,105 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>CryptoJS Test Suite</title>
6
+
7
+ <!-- CryptoJS -->
8
+ <script src="../build/crypto-js.js"></script>
9
+
10
+ <!-- YUI -->
11
+ <script src="http://yui.yahooapis.com/3.5.1/build/yui/yui-min.js"></script>
12
+
13
+ <!-- Tests -->
14
+ <script src="lib-base-test.js"></script>
15
+ <script src="lib-wordarray-test.js"></script>
16
+ <script src="lib-typedarrays-test.js"></script>
17
+ <script src="x64-word-test.js"></script>
18
+ <script src="x64-wordarray-test.js"></script>
19
+ <script src="enc-hex-test.js"></script>
20
+ <script src="enc-latin1-test.js"></script>
21
+ <script src="enc-utf8-test.js"></script>
22
+ <script src="enc-utf16-test.js"></script>
23
+ <script src="enc-base64-test.js"></script>
24
+ <script src="md5-test.js"></script>
25
+ <script src="sha1-test.js"></script>
26
+ <script src="sha256-test.js"></script>
27
+ <script src="sha224-test.js"></script>
28
+ <script src="sha512-test.js"></script>
29
+ <script src="sha384-test.js"></script>
30
+ <script src="sha3-test.js"></script>
31
+ <script src="ripemd160-test.js"></script>
32
+ <script src="hmac-md5-test.js"></script>
33
+ <script src="hmac-sha224-test.js"></script>
34
+ <script src="hmac-sha256-test.js"></script>
35
+ <script src="hmac-sha384-test.js"></script>
36
+ <script src="hmac-sha512-test.js"></script>
37
+ <script src="pbkdf2-test.js"></script>
38
+ <script src="evpkdf-test.js"></script>
39
+ <script src="mode-cbc-test.js"></script>
40
+ <script src="mode-cfb-test.js"></script>
41
+ <script src="mode-ctr-test.js"></script>
42
+ <script src="mode-ofb-test.js"></script>
43
+ <script src="mode-ecb-test.js"></script>
44
+ <script src="pad-pkcs7-test.js"></script>
45
+ <script src="pad-ansix923-test.js"></script>
46
+ <script src="pad-iso10126-test.js"></script>
47
+ <script src="pad-zeropadding-test.js"></script>
48
+ <script src="pad-iso97971-test.js"></script>
49
+ <script src="lib-cipherparams-test.js"></script>
50
+ <script src="format-openssl-test.js"></script>
51
+ <script src="lib-serializablecipher-test.js"></script>
52
+ <script src="kdf-openssl-test.js"></script>
53
+ <script src="lib-passwordbasedcipher-test.js"></script>
54
+ <script src="rc4-test.js"></script>
55
+ <script src="rabbit-test.js"></script>
56
+ <script src="rabbit-legacy-test.js"></script>
57
+ <script src="cipher-test.js"></script>
58
+ <script src="aes-test.js"></script>
59
+ <script src="des-test.js"></script>
60
+ <script src="tripledes-test.js"></script>
61
+
62
+ <!-- Test runner -->
63
+ <script>
64
+ YUI().use('test', 'console', function (Y) {
65
+ Y.use('*', function (Y) {
66
+ new Y.Console({
67
+ style: 'block',
68
+ width: '600px',
69
+ height: '600px',
70
+ entryTemplate:
71
+ '<div class="{entry_class} {cat_class} {src_class}">' +
72
+ ' <p class="{entry_meta_class}">' +
73
+ ' <span class="{entry_cat_class}">{category}</span>' +
74
+ ' </p>' +
75
+ ' <pre class="{entry_content_class}">{message}</pre>' +
76
+ '</div>',
77
+ newestOnTop: false,
78
+ consoleLimit: 500,
79
+ render: true
80
+ });
81
+
82
+ Y.Test.Runner.run();
83
+ });
84
+ });
85
+ </script>
86
+
87
+ <style>
88
+ body.yui3-skin-sam .yui3-console-entry-meta,
89
+ body.yui3-skin-sam .yui3-console-entry-content {
90
+ display: inline-block;
91
+ vertical-align: top;
92
+ }
93
+ body.yui3-skin-sam .yui3-console-entry-cat {
94
+ display: inline-block;
95
+ width: 35px;
96
+ text-align: center;
97
+ }
98
+ body.yui3-skin-sam .yui3-console-entry {
99
+ min-height: 0;
100
+ }
101
+ </style>
102
+ </head>
103
+ <body class="yui3-skin-sam">
104
+ </body>
105
+ </html>
package/test/test.html ADDED
@@ -0,0 +1,138 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>CryptoJS Test Suite</title>
6
+
7
+ <!-- CryptoJS -->
8
+ <script src="../src/core.js"></script>
9
+ <script src="../src/lib-typedarrays.js"></script>
10
+ <script src="../src/x64-core.js"></script>
11
+ <script src="../src/enc-utf16.js"></script>
12
+ <script src="../src/enc-base64.js"></script>
13
+ <script src="../src/md5.js"></script>
14
+ <script src="../src/sha1.js"></script>
15
+ <script src="../src/sha256.js"></script>
16
+ <script src="../src/sha224.js"></script>
17
+ <script src="../src/sha512.js"></script>
18
+ <script src="../src/sha384.js"></script>
19
+ <script src="../src/sha3.js"></script>
20
+ <script src="../src/ripemd160.js"></script>
21
+ <script src="../src/hmac.js"></script>
22
+ <script src="../src/pbkdf2.js"></script>
23
+ <script src="../src/evpkdf.js"></script>
24
+ <script src="../src/cipher-core.js"></script>
25
+ <script src="../src/mode-cfb.js"></script>
26
+ <script src="../src/mode-ctr.js"></script>
27
+ <script src="../src/mode-ofb.js"></script>
28
+ <script src="../src/mode-ecb.js"></script>
29
+ <script src="../src/pad-ansix923.js"></script>
30
+ <script src="../src/pad-iso10126.js"></script>
31
+ <script src="../src/pad-zeropadding.js"></script>
32
+ <script src="../src/pad-iso97971.js"></script>
33
+ <script src="../src/pad-nopadding.js"></script>
34
+ <script src="../src/rc4.js"></script>
35
+ <script src="../src/rabbit.js"></script>
36
+ <script src="../src/rabbit-legacy.js"></script>
37
+ <script src="../src/aes.js"></script>
38
+ <script src="../src/blowfish.js"></script>
39
+ <script src="../src/tripledes.js"></script>
40
+
41
+ <!-- YUI -->
42
+ <script src="http://yui.yahooapis.com/3.5.1/build/yui/yui-min.js"></script>
43
+
44
+ <!-- Tests -->
45
+ <script src="lib-base-test.js"></script>
46
+ <script src="lib-wordarray-test.js"></script>
47
+ <script src="lib-typedarrays-test.js"></script>
48
+ <script src="x64-word-test.js"></script>
49
+ <script src="x64-wordarray-test.js"></script>
50
+ <script src="enc-hex-test.js"></script>
51
+ <script src="enc-latin1-test.js"></script>
52
+ <script src="enc-utf8-test.js"></script>
53
+ <script src="enc-utf16-test.js"></script>
54
+ <script src="enc-base64-test.js"></script>
55
+ <script src="md5-test.js"></script>
56
+ <script src="sha1-test.js"></script>
57
+ <script src="sha256-test.js"></script>
58
+ <script src="sha224-test.js"></script>
59
+ <script src="sha512-test.js"></script>
60
+ <script src="sha384-test.js"></script>
61
+ <script src="sha3-test.js"></script>
62
+ <script src="ripemd160-test.js"></script>
63
+ <script src="hmac-md5-test.js"></script>
64
+ <script src="hmac-sha224-test.js"></script>
65
+ <script src="hmac-sha256-test.js"></script>
66
+ <script src="hmac-sha384-test.js"></script>
67
+ <script src="hmac-sha512-test.js"></script>
68
+ <script src="pbkdf2-test.js"></script>
69
+ <script src="evpkdf-test.js"></script>
70
+ <script src="mode-cbc-test.js"></script>
71
+ <script src="mode-cfb-test.js"></script>
72
+ <script src="mode-ctr-test.js"></script>
73
+ <script src="mode-ofb-test.js"></script>
74
+ <script src="mode-ecb-test.js"></script>
75
+ <script src="pad-pkcs7-test.js"></script>
76
+ <script src="pad-ansix923-test.js"></script>
77
+ <script src="pad-iso10126-test.js"></script>
78
+ <script src="pad-zeropadding-test.js"></script>
79
+ <script src="pad-iso97971-test.js"></script>
80
+ <script src="lib-cipherparams-test.js"></script>
81
+ <script src="format-openssl-test.js"></script>
82
+ <script src="lib-serializablecipher-test.js"></script>
83
+ <script src="kdf-openssl-test.js"></script>
84
+ <script src="lib-passwordbasedcipher-test.js"></script>
85
+ <script src="rc4-test.js"></script>
86
+ <script src="rabbit-test.js"></script>
87
+ <script src="rabbit-legacy-test.js"></script>
88
+ <script src="cipher-test.js"></script>
89
+ <script src="aes-test.js"></script>
90
+ <script src="des-test.js"></script>
91
+ <script src="tripledes-test.js"></script>
92
+ <script src="config-test.js"></script>
93
+ <script src="blowfish-test.js"></script>
94
+
95
+ <!-- Test runner -->
96
+ <script>
97
+ YUI().use('test', 'console', function (Y) {
98
+ Y.use('*', function (Y) {
99
+ new Y.Console({
100
+ style: 'block',
101
+ width: '600px',
102
+ height: '600px',
103
+ entryTemplate:
104
+ '<div class="{entry_class} {cat_class} {src_class}">' +
105
+ ' <p class="{entry_meta_class}">' +
106
+ ' <span class="{entry_cat_class}">{category}</span>' +
107
+ ' </p>' +
108
+ ' <pre class="{entry_content_class}">{message}</pre>' +
109
+ '</div>',
110
+ newestOnTop: false,
111
+ consoleLimit: 500,
112
+ render: true
113
+ });
114
+
115
+ Y.Test.Runner.run();
116
+ });
117
+ });
118
+ </script>
119
+
120
+ <style>
121
+ body.yui3-skin-sam .yui3-console-entry-meta,
122
+ body.yui3-skin-sam .yui3-console-entry-content {
123
+ display: inline-block;
124
+ vertical-align: top;
125
+ }
126
+ body.yui3-skin-sam .yui3-console-entry-cat {
127
+ display: inline-block;
128
+ width: 35px;
129
+ text-align: center;
130
+ }
131
+ body.yui3-skin-sam .yui3-console-entry {
132
+ min-height: 0;
133
+ }
134
+ </style>
135
+ </head>
136
+ <body class="yui3-skin-sam">
137
+ </body>
138
+ </html>