1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
/*---
includes: [compatFs.js, compatBuffer.js, compatWebcrypto.js, runTsuite.js, webCryptoUtils.js]
flags: [async]
---*/
async function test(params) {
let digest = await crypto.subtle.digest(params.name, params.data);
digest = Buffer.from(digest).toString("hex");
if (params.expected != digest) {
throw Error(`${params.name} digest failed expected: "${params.expected}" vs "${digest}"`);
}
return 'SUCCESS';
}
function p(args) {
let params = Object.assign({}, args);
params.data = Buffer.from(params.data, "hex");
return params;
}
let digest_tsuite = {
name: "SHA digest",
skip: () => (!has_buffer() || !has_webcrypto()),
T: test,
prepare_args: p,
tests: [
{ name: "XXX", data: "",
exception: "TypeError: unknown hash name: \"XXX\"" },
{ name: "SHA-256", data: "",
expected: "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" },
{ name: "SHA-256", data: "aabbccdd",
expected: "8d70d691c822d55638b6e7fd54cd94170c87d19eb1f628b757506ede5688d297" },
{ name: "SHA-256", data: "aabbccdd".repeat(4096),
expected: "25077ac2e5ba760f015ef34b93bc2b4682b6b48a94d65e21aaf2c8a3a62f6368" },
{ name: "SHA-384", data: "",
expected: "38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b" },
{ name: "SHA-384", data: "aabbccdd",
expected: "f9616ef3495efbae2f6af1a754620f3034487e9c60f3a9ef8138b5ed55cdd8d18ad9565653a5d68f678bd34cfa6f4490" },
{ name: "SHA-384", data: "aabbccdd".repeat(4096),
expected: "50502d6e89bc34ecc826e0d56ccba0e010eff7b2b532e3bd627f4c828f6c741bf518fc834559360ccf7770f1b4d655d8" },
{ name: "SHA-512", data: "",
expected: "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e" },
{ name: "SHA-512", data: "aabbccdd",
expected: "48e218b30d4ea16305096fe35e84002a0d262eb3853131309423492228980c60238f9eed238285036f22e37c4662e40c80a461000a7aa9a03fb3cb6e4223e83b" },
{ name: "SHA-512", data: "aabbccdd".repeat(4096),
expected: "9fcd0bd297646e207a2d655feb4ed4473e07ff24560a1e180a5eb2a67824f68affd9c7b5a8f747b9c39201f5f86a0085bb636c6fc34c216d9c10b4d728be096a" },
{ name: "SHA-1", data: "",
expected: "da39a3ee5e6b4b0d3255bfef95601890afd80709" },
{ name: "SHA-1", data: "aabbccdd",
expected: "a7b7e9592daa0896db0517bf8ad53e56b1246923" },
{ name: "SHA-1", data: "aabbccdd".repeat(4096),
expected: "cdea58919606ea9ae078f7595b192b84446f2189" },
]};
run([digest_tsuite])
.then($DONE, $DONE);
|