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

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 (108) 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/docs/QuickStartGuide.wiki +470 -0
  7. package/package.json +45 -3
  8. package/src/aes.js +214 -0
  9. package/src/blowfish.js +451 -0
  10. package/src/cipher-core.js +877 -0
  11. package/src/core.js +796 -0
  12. package/src/enc-base64.js +116 -0
  13. package/src/enc-base64url.js +128 -0
  14. package/src/enc-utf16.js +129 -0
  15. package/src/evpkdf.js +114 -0
  16. package/src/format-hex.js +46 -0
  17. package/src/hmac.js +125 -0
  18. package/src/lib-typedarrays.js +56 -0
  19. package/src/md5.js +248 -0
  20. package/src/mode-cfb.js +60 -0
  21. package/src/mode-ctr-gladman.js +96 -0
  22. package/src/mode-ctr.js +38 -0
  23. package/src/mode-ecb.js +20 -0
  24. package/src/mode-ofb.js +34 -0
  25. package/src/pad-ansix923.js +29 -0
  26. package/src/pad-iso10126.js +24 -0
  27. package/src/pad-iso97971.js +20 -0
  28. package/src/pad-nopadding.js +10 -0
  29. package/src/pad-zeropadding.js +27 -0
  30. package/src/pbkdf2.js +125 -0
  31. package/src/rabbit-legacy.js +170 -0
  32. package/src/rabbit.js +172 -0
  33. package/src/rc4.js +119 -0
  34. package/src/ripemd160.js +247 -0
  35. package/src/sha1.js +130 -0
  36. package/src/sha224.js +60 -0
  37. package/src/sha256.js +179 -0
  38. package/src/sha3.js +306 -0
  39. package/src/sha384.js +63 -0
  40. package/src/sha512.js +306 -0
  41. package/src/tripledes.js +759 -0
  42. package/src/x64-core.js +284 -0
  43. package/test/aes-profile.js +31 -0
  44. package/test/aes-test.js +80 -0
  45. package/test/blowfish-test.js +33 -0
  46. package/test/cipher-test.js +522 -0
  47. package/test/config-test.js +51 -0
  48. package/test/des-profile.js +31 -0
  49. package/test/des-test.js +104 -0
  50. package/test/enc-base64-test.js +71 -0
  51. package/test/enc-hex-test.js +15 -0
  52. package/test/enc-latin1-test.js +15 -0
  53. package/test/enc-utf16-test.js +55 -0
  54. package/test/enc-utf8-test.js +39 -0
  55. package/test/evpkdf-profile.js +11 -0
  56. package/test/evpkdf-test.js +32 -0
  57. package/test/format-openssl-test.js +37 -0
  58. package/test/hmac-md5-profile.js +30 -0
  59. package/test/hmac-md5-test.js +59 -0
  60. package/test/hmac-sha224-test.js +59 -0
  61. package/test/hmac-sha256-test.js +59 -0
  62. package/test/hmac-sha384-test.js +59 -0
  63. package/test/hmac-sha512-test.js +59 -0
  64. package/test/kdf-openssl-test.js +15 -0
  65. package/test/lib-base-test.js +92 -0
  66. package/test/lib-cipherparams-test.js +59 -0
  67. package/test/lib-passwordbasedcipher-test.js +25 -0
  68. package/test/lib-serializablecipher-test.js +51 -0
  69. package/test/lib-typedarrays-test.js +57 -0
  70. package/test/lib-wordarray-test.js +85 -0
  71. package/test/md5-profile.js +24 -0
  72. package/test/md5-test.js +70 -0
  73. package/test/mode-cbc-test.js +49 -0
  74. package/test/mode-cfb-test.js +51 -0
  75. package/test/mode-ctr-test.js +55 -0
  76. package/test/mode-ecb-test.js +38 -0
  77. package/test/mode-ofb-test.js +50 -0
  78. package/test/pad-ansix923-test.js +28 -0
  79. package/test/pad-iso10126-test.js +50 -0
  80. package/test/pad-iso97971-test.js +35 -0
  81. package/test/pad-pkcs7-test.js +28 -0
  82. package/test/pad-zeropadding-test.js +28 -0
  83. package/test/pbkdf2-profile.js +11 -0
  84. package/test/pbkdf2-test.js +80 -0
  85. package/test/profile.html +281 -0
  86. package/test/rabbit-legacy-test.js +80 -0
  87. package/test/rabbit-profile.js +30 -0
  88. package/test/rabbit-test.js +84 -0
  89. package/test/rc4-profile.js +30 -0
  90. package/test/rc4-test.js +68 -0
  91. package/test/ripemd160-test.js +19 -0
  92. package/test/sha1-profile.js +24 -0
  93. package/test/sha1-test.js +70 -0
  94. package/test/sha224-test.js +19 -0
  95. package/test/sha256-profile.js +24 -0
  96. package/test/sha256-test.js +70 -0
  97. package/test/sha3-profile.js +24 -0
  98. package/test/sha3-test.js +69 -0
  99. package/test/sha384-test.js +54 -0
  100. package/test/sha512-profile.js +24 -0
  101. package/test/sha512-test.js +54 -0
  102. package/test/test-build.html +105 -0
  103. package/test/test.html +138 -0
  104. package/test/test1.html +63 -0
  105. package/test/tripledes-profile.js +31 -0
  106. package/test/tripledes-test.js +121 -0
  107. package/test/x64-word-test.js +99 -0
  108. package/test/x64-wordarray-test.js +38 -0
@@ -0,0 +1,63 @@
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/enc-base64url.js"></script>
14
+ <script src="../src/md5.js"></script>
15
+ <script src="../src/sha1.js"></script>
16
+ <script src="../src/sha256.js"></script>
17
+ <script src="../src/sha224.js"></script>
18
+ <script src="../src/sha512.js"></script>
19
+ <script src="../src/sha384.js"></script>
20
+ <script src="../src/sha3.js"></script>
21
+ <script src="../src/ripemd160.js"></script>
22
+ <script src="../src/hmac.js"></script>
23
+ <script src="../src/pbkdf2.js"></script>
24
+ <script src="../src/evpkdf.js"></script>
25
+ <script src="../src/cipher-core.js"></script>
26
+ <script src="../src/mode-cfb.js"></script>
27
+ <script src="../src/mode-ctr.js"></script>
28
+ <script src="../src/mode-ofb.js"></script>
29
+ <script src="../src/mode-ecb.js"></script>
30
+ <script src="../src/pad-ansix923.js"></script>
31
+ <script src="../src/pad-iso10126.js"></script>
32
+ <script src="../src/pad-zeropadding.js"></script>
33
+ <script src="../src/pad-iso97971.js"></script>
34
+ <script src="../src/pad-nopadding.js"></script>
35
+ <script src="../src/rc4.js"></script>
36
+ <script src="../src/rabbit.js"></script>
37
+ <script src="../src/rabbit-legacy.js"></script>
38
+ <script src="../src/aes.js"></script>
39
+ <script src="../src/tripledes.js"></script>
40
+
41
+
42
+ <!-- Test runner -->
43
+ <script>
44
+ var message = "152999073894506063@http://localhost:3000/protected/index@89effb07-588e-4bf4-ba16-c10b2a136ae9@1553508995647";
45
+ var key = "u-rXsMB_aegAnzC_CJt27plLGNqOfR2EHI5o2ro1NO";
46
+ var baseKey = CryptoJS.enc.Base64url.parse(key);
47
+ console.log("key:"+baseKey.toString());
48
+ var hash = CryptoJS.HmacSHA256(message, baseKey);
49
+ var hashInBase64 = CryptoJS.enc.Base64url.stringify(hash);
50
+ document.write(hashInBase64);
51
+ document.write("\n");
52
+ var shashInBase64 = CryptoJS.enc.Base64url.stringify(hash);
53
+ console.log("result:"+hash.toString())
54
+ document.write(shashInBase64);
55
+ console.log("done:"+shashInBase64);
56
+ var url = 'http://www.ctyun.cn/serviceValidate?service=http://localhost:3000/protected/index&ticket=89effb07-588e-4bf4-ba16-c10b2a136ae9&timestamp=1553508995647&appId=152999073894506063&signature=evvc3Ix87nk-KkuIaQJrLP7Vu76dTsh-BwnC6AHXFfU'
57
+ </script>
58
+
59
+
60
+ </head>
61
+ <body>
62
+ </body>
63
+ </html>
@@ -0,0 +1,31 @@
1
+ YUI.add('algo-tripledes-profile', function (Y) {
2
+ var C = CryptoJS;
3
+
4
+ Y.Profiler.add({
5
+ name: 'TripleDES',
6
+
7
+ setUp: function () {
8
+ this.data = {
9
+ key: C.enc.Hex.parse('0001020304050607'),
10
+ iv: C.enc.Hex.parse('08090a0b0c0d0e0f')
11
+ };
12
+ },
13
+
14
+ profileSinglePartMessage: function () {
15
+ var singlePartMessage = '';
16
+ for (var i = 0; i < 100; i++) {
17
+ singlePartMessage += '12345678901234567890123456789012345678901234567890';
18
+ }
19
+
20
+ C.algo.TripleDES.createEncryptor(this.data.key, { iv: this.data.iv }).finalize(singlePartMessage) + '';
21
+ },
22
+
23
+ profileMultiPartMessage: function () {
24
+ var des = C.algo.TripleDES.createEncryptor(this.data.key, { iv: this.data.iv });
25
+ for (var i = 0; i < 100; i++) {
26
+ des.process('12345678901234567890123456789012345678901234567890') + '';
27
+ }
28
+ des.finalize() + '';
29
+ }
30
+ });
31
+ }, '$Rev$');
@@ -0,0 +1,121 @@
1
+ YUI.add('algo-tripledes-test', function (Y) {
2
+ var C = CryptoJS;
3
+
4
+ Y.Test.Runner.add(new Y.Test.Case({
5
+ name: 'TripleDES',
6
+
7
+ testEncrypt1: function () {
8
+ Y.Assert.areEqual('95a8d72813daa94d', C.TripleDES.encrypt(C.enc.Hex.parse('0000000000000000'), C.enc.Hex.parse('800101010101010180010101010101018001010101010101'), { mode: C.mode.ECB, padding: C.pad.NoPadding }).ciphertext.toString());
9
+ },
10
+
11
+ testEncrypt2: function () {
12
+ Y.Assert.areEqual('869efd7f9f265a09', C.TripleDES.encrypt(C.enc.Hex.parse('0000000000000000'), C.enc.Hex.parse('010101010101010201010101010101020101010101010102'), { mode: C.mode.ECB, padding: C.pad.NoPadding }).ciphertext.toString());
13
+ },
14
+
15
+ testEncrypt3: function () {
16
+ Y.Assert.areEqual('95f8a5e5dd31d900', C.TripleDES.encrypt(C.enc.Hex.parse('8000000000000000'), C.enc.Hex.parse('010101010101010101010101010101010101010101010101'), { mode: C.mode.ECB, padding: C.pad.NoPadding }).ciphertext.toString());
17
+ },
18
+
19
+ testEncrypt4: function () {
20
+ Y.Assert.areEqual('166b40b44aba4bd6', C.TripleDES.encrypt(C.enc.Hex.parse('0000000000000001'), C.enc.Hex.parse('010101010101010101010101010101010101010101010101'), { mode: C.mode.ECB, padding: C.pad.NoPadding }).ciphertext.toString());
21
+ },
22
+
23
+ testDecrypt1: function () {
24
+ Y.Assert.areEqual('0000000000000000', C.TripleDES.decrypt(C.lib.CipherParams.create({ ciphertext: C.enc.Hex.parse('95a8d72813daa94d') }), C.enc.Hex.parse('800101010101010180010101010101018001010101010101'), { mode: C.mode.ECB, padding: C.pad.NoPadding }).toString());
25
+ },
26
+
27
+ testDecrypt2: function () {
28
+ Y.Assert.areEqual('0000000000000000', C.TripleDES.decrypt(C.lib.CipherParams.create({ ciphertext: C.enc.Hex.parse('869efd7f9f265a09') }), C.enc.Hex.parse('010101010101010201010101010101020101010101010102'), { mode: C.mode.ECB, padding: C.pad.NoPadding }).toString());
29
+ },
30
+
31
+ testDecrypt3: function () {
32
+ Y.Assert.areEqual('8000000000000000', C.TripleDES.decrypt(C.lib.CipherParams.create({ ciphertext: C.enc.Hex.parse('95f8a5e5dd31d900') }), C.enc.Hex.parse('010101010101010101010101010101010101010101010101'), { mode: C.mode.ECB, padding: C.pad.NoPadding }).toString());
33
+ },
34
+
35
+ testDecrypt4: function () {
36
+ Y.Assert.areEqual('0000000000000001', C.TripleDES.decrypt(C.lib.CipherParams.create({ ciphertext: C.enc.Hex.parse('166b40b44aba4bd6') }), C.enc.Hex.parse('010101010101010101010101010101010101010101010101'), { mode: C.mode.ECB, padding: C.pad.NoPadding }).toString());
37
+ },
38
+
39
+ testMultiPart: function () {
40
+ var des = C.algo.TripleDES.createEncryptor(C.enc.Hex.parse('000102030405060708090a0b0c0d0e0f1011121314151617'), { mode: C.mode.ECB, padding: C.pad.NoPadding });
41
+ var ciphertext1 = des.process(C.enc.Hex.parse('001122334455'));
42
+ var ciphertext2 = des.process(C.enc.Hex.parse('66778899aa'));
43
+ var ciphertext3 = des.process(C.enc.Hex.parse('bbccddeeff'));
44
+ var ciphertext4 = des.finalize();
45
+
46
+ Y.Assert.areEqual(C.TripleDES.encrypt(C.enc.Hex.parse('00112233445566778899aabbccddeeff'), C.enc.Hex.parse('000102030405060708090a0b0c0d0e0f1011121314151617'), { mode: C.mode.ECB, padding: C.pad.NoPadding }).ciphertext.toString(), ciphertext1.concat(ciphertext2).concat(ciphertext3).concat(ciphertext4).toString());
47
+ },
48
+
49
+ testInputIntegrity: function () {
50
+ var message = C.enc.Hex.parse('00112233445566778899aabbccddeeff');
51
+ var key = C.enc.Hex.parse('000102030405060708090a0b0c0d0e0f1011121314151617');
52
+ var iv = C.enc.Hex.parse('08090a0b0c0d0e0f');
53
+
54
+ var expectedMessage = message.toString();
55
+ var expectedKey = key.toString();
56
+ var expectedIv = iv.toString();
57
+
58
+ C.TripleDES.encrypt(message, key, { iv: iv });
59
+
60
+ Y.Assert.areEqual(expectedMessage, message.toString());
61
+ Y.Assert.areEqual(expectedKey, key.toString());
62
+ Y.Assert.areEqual(expectedIv, iv.toString());
63
+ },
64
+
65
+ test64BitKey: function() {
66
+ var message = C.enc.Hex.parse('00112233445566778899aabbccddeeff');
67
+ var key = C.enc.Hex.parse('0011223344556677');
68
+ var extendedKey = C.enc.Hex.parse('001122334455667700112233445566770011223344556677')
69
+
70
+ var output1 = C.TripleDES.encrypt(message, key, { mode: C.mode.ECB }).toString();
71
+ var output2 = C.TripleDES.encrypt(message, extendedKey, { mode: C.mode.ECB }).toString();
72
+
73
+ Y.Assert.areEqual(output1, output2);
74
+ },
75
+
76
+ test128BitKey: function() {
77
+ var message = C.enc.Hex.parse('00112233445566778899aabbccddeeff');
78
+ var key = C.enc.Hex.parse('00112233445566778899aabbccddeeff');
79
+ var extendedKey = C.enc.Hex.parse('00112233445566778899aabbccddeeff0011223344556677')
80
+
81
+ var output1 = C.TripleDES.encrypt(message, key, { mode: C.mode.ECB }).toString();
82
+ var output2 = C.TripleDES.encrypt(message, extendedKey, { mode: C.mode.ECB }).toString();
83
+
84
+ Y.Assert.areEqual(output1, output2);
85
+ },
86
+
87
+ test256BitKey: function() {
88
+ var message = C.enc.Hex.parse('00112233445566778899aabbccddeeff');
89
+ var key = C.enc.Hex.parse('00112233445566778899aabbccddeeff0112233445566778899aabbccddeeff0');
90
+ var truncatedKey = C.enc.Hex.parse('00112233445566778899aabbccddeeff0112233445566778')
91
+
92
+ var output1 = C.TripleDES.encrypt(message, key, { mode: C.mode.ECB }).toString();
93
+ var output2 = C.TripleDES.encrypt(message, truncatedKey, { mode: C.mode.ECB }).toString();
94
+
95
+ Y.Assert.areEqual(output1, output2);
96
+ },
97
+
98
+ testHelper: function () {
99
+ // Save original random method
100
+ var random = C.lib.WordArray.random;
101
+
102
+ // Replace random method with one that returns a predictable value
103
+ C.lib.WordArray.random = function (nBytes) {
104
+ var words = [];
105
+ for (var i = 0; i < nBytes; i += 4) {
106
+ words.push([0x11223344]);
107
+ }
108
+
109
+ return C.lib.WordArray.create(words, nBytes);
110
+ };
111
+
112
+ // Test
113
+ Y.Assert.areEqual(C.algo.TripleDES.createEncryptor(C.SHA256('Jefe'), { mode: C.mode.ECB, padding: C.pad.NoPadding }).finalize('Hi There').toString(), C.TripleDES.encrypt('Hi There', C.SHA256('Jefe'), { mode: C.mode.ECB, padding: C.pad.NoPadding }).ciphertext.toString());
114
+ Y.Assert.areEqual(C.lib.SerializableCipher.encrypt(C.algo.TripleDES, 'Hi There', C.SHA256('Jefe'), { mode: C.mode.ECB, padding: C.pad.NoPadding }).toString(), C.TripleDES.encrypt('Hi There', C.SHA256('Jefe'), { mode: C.mode.ECB, padding: C.pad.NoPadding }).toString());
115
+ Y.Assert.areEqual(C.lib.PasswordBasedCipher.encrypt(C.algo.TripleDES, 'Hi There', 'Jefe', { mode: C.mode.ECB, padding: C.pad.NoPadding }).toString(), C.TripleDES.encrypt('Hi There', 'Jefe', { mode: C.mode.ECB, padding: C.pad.NoPadding }).toString());
116
+
117
+ // Restore random method
118
+ C.lib.WordArray.random = random;
119
+ }
120
+ }));
121
+ }, '$Rev$');
@@ -0,0 +1,99 @@
1
+ YUI.add('x64-word-test', function (Y) {
2
+ var C = CryptoJS;
3
+
4
+ Y.Test.Runner.add(new Y.Test.Case({
5
+ name: 'X64Word',
6
+
7
+ testInit: function () {
8
+ var word = C.x64.Word.create(0x00010203, 0x04050607);
9
+
10
+ Y.Assert.areEqual(0x00010203, word.high, 'word.high');
11
+ Y.Assert.areEqual(0x04050607, word.low, 'word.low');
12
+ }
13
+
14
+ // testNot: function () {
15
+ // var word = C.x64.Word.create(0x00010203, 0x04050607).not();
16
+
17
+ // Y.Assert.areEqual(~0x00010203, word.high, 'word.high');
18
+ // Y.Assert.areEqual(~0x04050607, word.low, 'word.low');
19
+ // },
20
+
21
+ // testAnd: function () {
22
+ // var word1 = C.x64.Word.create(0x00010203, 0x04050607);
23
+ // var word2 = C.x64.Word.create(0x18191a1b, 0x1c1d1e1f);
24
+ // var anded = word1.and(word2);
25
+
26
+ // Y.Assert.areEqual(0x00010203 & 0x18191a1b, anded.high, 'word.high');
27
+ // Y.Assert.areEqual(0x04050607 & 0x1c1d1e1f, anded.low, 'word.low');
28
+ // },
29
+
30
+ // testOr: function () {
31
+ // var word1 = C.x64.Word.create(0x00010203, 0x04050607);
32
+ // var word2 = C.x64.Word.create(0x18191a1b, 0x1c1d1e1f);
33
+ // var ored = word1.or(word2);
34
+
35
+ // Y.Assert.areEqual(0x00010203 | 0x18191a1b, ored.high, 'word.high');
36
+ // Y.Assert.areEqual(0x04050607 | 0x1c1d1e1f, ored.low, 'word.low');
37
+ // },
38
+
39
+ // testXor: function () {
40
+ // var word1 = C.x64.Word.create(0x00010203, 0x04050607);
41
+ // var word2 = C.x64.Word.create(0x18191a1b, 0x1c1d1e1f);
42
+ // var xored = word1.xor(word2);
43
+
44
+ // Y.Assert.areEqual(0x00010203 ^ 0x18191a1b, xored.high, 'word.high');
45
+ // Y.Assert.areEqual(0x04050607 ^ 0x1c1d1e1f, xored.low, 'word.low');
46
+ // },
47
+
48
+ // testShiftL25: function () {
49
+ // var word = C.x64.Word.create(0x00010203, 0x04050607).shiftL(25);
50
+
51
+ // Y.Assert.areEqual(0x06080a0c, word.high, 'word.high');
52
+ // Y.Assert.areEqual(0x0e000000, word.low, 'word.low');
53
+ // },
54
+
55
+ // testShiftL32: function () {
56
+ // var word = C.x64.Word.create(0x00010203, 0x04050607).shiftL(32);
57
+
58
+ // Y.Assert.areEqual(0x04050607, word.high, 'word.high');
59
+ // Y.Assert.areEqual(0x00000000, word.low, 'word.low');
60
+ // },
61
+
62
+ // testShiftR7: function () {
63
+ // var word = C.x64.Word.create(0x00010203, 0x04050607).shiftR(7);
64
+
65
+ // Y.Assert.areEqual(0x00000204, word.high, 'word.high');
66
+ // Y.Assert.areEqual(0x06080A0C, word.low, 'word.low');
67
+ // },
68
+
69
+ // testShiftR32: function () {
70
+ // var word = C.x64.Word.create(0x00010203, 0x04050607).shiftR(32);
71
+
72
+ // Y.Assert.areEqual(0x00000000, word.high, 'word.high');
73
+ // Y.Assert.areEqual(0x00010203, word.low, 'word.low');
74
+ // },
75
+
76
+ // testRotL: function () {
77
+ // var word = C.x64.Word.create(0x00010203, 0x04050607).rotL(25);
78
+
79
+ // Y.Assert.areEqual(0x06080a0c, word.high, 'word.high');
80
+ // Y.Assert.areEqual(0x0e000204, word.low, 'word.low');
81
+ // },
82
+
83
+ // testRotR: function () {
84
+ // var word = C.x64.Word.create(0x00010203, 0x04050607).rotR(7);
85
+
86
+ // Y.Assert.areEqual(0x0e000204, word.high, 'word.high');
87
+ // Y.Assert.areEqual(0x06080a0c, word.low, 'word.low');
88
+ // },
89
+
90
+ // testAdd: function () {
91
+ // var word1 = C.x64.Word.create(0x00010203, 0x04050607);
92
+ // var word2 = C.x64.Word.create(0x18191a1b, 0x1c1d1e1f);
93
+ // var added = word1.add(word2);
94
+
95
+ // Y.Assert.areEqual(0x181a1c1e, added.high, 'word.high');
96
+ // Y.Assert.areEqual(0x20222426, added.low, 'word.low');
97
+ // }
98
+ }));
99
+ }, '$Rev$');
@@ -0,0 +1,38 @@
1
+ YUI.add('x64-wordarray-test', function (Y) {
2
+ var C = CryptoJS;
3
+
4
+ Y.Test.Runner.add(new Y.Test.Case({
5
+ name: 'X64WordArray',
6
+
7
+ testInit0: function () {
8
+ Y.Assert.areEqual('', C.x64.WordArray.create().toX32().toString());
9
+ },
10
+
11
+ testInit1: function () {
12
+ var wordArray = C.x64.WordArray.create([
13
+ C.x64.Word.create(0x00010203, 0x04050607),
14
+ C.x64.Word.create(0x18191a1b, 0x1c1d1e1f)
15
+ ]);
16
+
17
+ Y.Assert.areEqual('000102030405060718191a1b1c1d1e1f', wordArray.toX32().toString());
18
+ },
19
+
20
+ testInit2: function () {
21
+ var wordArray = C.x64.WordArray.create([
22
+ C.x64.Word.create(0x00010203, 0x04050607),
23
+ C.x64.Word.create(0x18191a1b, 0x1c1d1e1f)
24
+ ], 10);
25
+
26
+ Y.Assert.areEqual('00010203040506071819', wordArray.toX32().toString());
27
+ },
28
+
29
+ testToX32: function () {
30
+ var wordArray = C.x64.WordArray.create([
31
+ C.x64.Word.create(0x00010203, 0x04050607),
32
+ C.x64.Word.create(0x18191a1b, 0x1c1d1e1f)
33
+ ], 10);
34
+
35
+ Y.Assert.areEqual('00010203040506071819', wordArray.toX32().toString());
36
+ }
37
+ }));
38
+ }, '$Rev$');