4 <script src=
"../../resources/js-test.js"></script>
5 <script src=
"resources/common.js"></script>
8 <p id=
"description"></p>
9 <div id=
"console"></div>
12 description("Tests that a string can be passed in place of an AlgorithmIdentifier");
16 Promise
.resolve(null).then(function() {
17 // Use a string algorithm identifier ("aes-cbc") as a parameter to importKey().
18 return crypto
.subtle
.importKey("raw", new Uint8Array(16), "aes-cbc", true, ["encrypt"]);
19 }).then(function(result
) {
20 // Verify that the key was imported correctly.
22 shouldEvaluateAs("key.type", "secret");
23 shouldEvaluateAs("key.algorithm.name", "AES-CBC");
24 shouldEvaluateAs("key.algorithm.length", 128);
26 // Use a string algorithm identifier ("sha-1") as a parameter to digest().
27 return crypto
.subtle
.digest("sha-1", new Uint8Array(0));
28 }).then(function(result
) {
29 bytesShouldMatchHexString("sha-1 of empty string", "da39a3ee5e6b4b0d3255bfef95601890afd80709", result
);
31 // Use a string algorithm identifier ("sha-256") for the hash property to hmac key import.
32 return crypto
.subtle
.importKey("raw", new Uint8Array(15), {name
: "hmac", hash
: "sha-256"}, false, ["sign"]);
33 }).then(function(result
) {
34 // Verify that the key was imported correctly.
36 shouldEvaluateAs("key.type", "secret");
37 shouldEvaluateAs("key.algorithm.name", "HMAC");
38 shouldEvaluateAs("key.algorithm.hash.name", "SHA-256");
39 shouldEvaluateAs("key.algorithm.length", 120);
40 }).then(finishJSTest
, failAndFinishJSTest
);