@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.
- package/.jshintrc +33 -0
- package/.travis.yml +15 -0
- package/CONTRIBUTING.md +28 -0
- package/LICENSE +24 -0
- package/README.md +273 -3
- package/aes.js +214 -0
- package/blowfish.js +451 -0
- package/cipher-core.js +877 -0
- package/core.js +796 -0
- package/docs/QuickStartGuide.wiki +470 -0
- package/enc-base64.js +116 -0
- package/enc-base64url.js +128 -0
- package/enc-utf16.js +129 -0
- package/evpkdf.js +114 -0
- package/format-hex.js +46 -0
- package/hmac.js +125 -0
- package/index.js +18 -0
- package/lib-typedarrays.js +56 -0
- package/md5.js +248 -0
- package/mode-cfb.js +60 -0
- package/mode-ctr-gladman.js +96 -0
- package/mode-ctr.js +38 -0
- package/mode-ecb.js +20 -0
- package/mode-ofb.js +34 -0
- package/package.json +45 -3
- package/pad-ansix923.js +29 -0
- package/pad-iso10126.js +24 -0
- package/pad-iso97971.js +20 -0
- package/pad-nopadding.js +10 -0
- package/pad-zeropadding.js +27 -0
- package/pbkdf2.js +125 -0
- package/rabbit-legacy.js +170 -0
- package/rabbit.js +172 -0
- package/rc4.js +119 -0
- package/ripemd160.js +247 -0
- package/sha1.js +130 -0
- package/sha224.js +60 -0
- package/sha256.js +179 -0
- package/sha3.js +306 -0
- package/sha384.js +63 -0
- package/sha512.js +306 -0
- package/test/aes-profile.js +31 -0
- package/test/aes-test.js +80 -0
- package/test/blowfish-test.js +33 -0
- package/test/cipher-test.js +522 -0
- package/test/config-test.js +51 -0
- package/test/des-profile.js +31 -0
- package/test/des-test.js +104 -0
- package/test/enc-base64-test.js +71 -0
- package/test/enc-hex-test.js +15 -0
- package/test/enc-latin1-test.js +15 -0
- package/test/enc-utf16-test.js +55 -0
- package/test/enc-utf8-test.js +39 -0
- package/test/evpkdf-profile.js +11 -0
- package/test/evpkdf-test.js +32 -0
- package/test/format-openssl-test.js +37 -0
- package/test/hmac-md5-profile.js +30 -0
- package/test/hmac-md5-test.js +59 -0
- package/test/hmac-sha224-test.js +59 -0
- package/test/hmac-sha256-test.js +59 -0
- package/test/hmac-sha384-test.js +59 -0
- package/test/hmac-sha512-test.js +59 -0
- package/test/kdf-openssl-test.js +15 -0
- package/test/lib-base-test.js +92 -0
- package/test/lib-cipherparams-test.js +59 -0
- package/test/lib-passwordbasedcipher-test.js +25 -0
- package/test/lib-serializablecipher-test.js +51 -0
- package/test/lib-typedarrays-test.js +57 -0
- package/test/lib-wordarray-test.js +85 -0
- package/test/md5-profile.js +24 -0
- package/test/md5-test.js +70 -0
- package/test/mode-cbc-test.js +49 -0
- package/test/mode-cfb-test.js +51 -0
- package/test/mode-ctr-test.js +55 -0
- package/test/mode-ecb-test.js +38 -0
- package/test/mode-ofb-test.js +50 -0
- package/test/pad-ansix923-test.js +28 -0
- package/test/pad-iso10126-test.js +50 -0
- package/test/pad-iso97971-test.js +35 -0
- package/test/pad-pkcs7-test.js +28 -0
- package/test/pad-zeropadding-test.js +28 -0
- package/test/pbkdf2-profile.js +11 -0
- package/test/pbkdf2-test.js +80 -0
- package/test/profile.html +281 -0
- package/test/rabbit-legacy-test.js +80 -0
- package/test/rabbit-profile.js +30 -0
- package/test/rabbit-test.js +84 -0
- package/test/rc4-profile.js +30 -0
- package/test/rc4-test.js +68 -0
- package/test/ripemd160-test.js +19 -0
- package/test/sha1-profile.js +24 -0
- package/test/sha1-test.js +70 -0
- package/test/sha224-test.js +19 -0
- package/test/sha256-profile.js +24 -0
- package/test/sha256-test.js +70 -0
- package/test/sha3-profile.js +24 -0
- package/test/sha3-test.js +69 -0
- package/test/sha384-test.js +54 -0
- package/test/sha512-profile.js +24 -0
- package/test/sha512-test.js +54 -0
- package/test/test-build.html +105 -0
- package/test/test.html +138 -0
- package/test/test1.html +63 -0
- package/test/tripledes-profile.js +31 -0
- package/test/tripledes-test.js +121 -0
- package/test/x64-word-test.js +99 -0
- package/test/x64-wordarray-test.js +38 -0
- package/tripledes.js +759 -0
- 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>
|