| Index: LayoutTests/crypto/aes-kw-key-manipulation.html
|
| diff --git a/LayoutTests/crypto/aes-kw-key-manipulation.html b/LayoutTests/crypto/aes-kw-key-manipulation.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..69dcdf8e77dfafaef9025413ebf8e08fd9b33964
|
| --- /dev/null
|
| +++ b/LayoutTests/crypto/aes-kw-key-manipulation.html
|
| @@ -0,0 +1,52 @@
|
| +<!DOCTYPE html>
|
| +<html>
|
| +<head>
|
| +<script src="../resources/js-test.js"></script>
|
| +<script src="resources/common.js"></script>
|
| +</head>
|
| +<body>
|
| +<p id="description"></p>
|
| +<div id="console"></div>
|
| +
|
| +<script>
|
| +description("Test generating, importing and exporting keys for AES-KW. Test that they can't be used with another algorithm.");
|
| +
|
| +jsTestIsAsync = true;
|
| +
|
| +var extractable = true;
|
| +
|
| +debug("Generating a key...");
|
| +crypto.subtle.generateKey({name: "aes-kw", length: 256}, extractable, ["wrapKey", "unwrapKey"]).then(function(result) {
|
| + key = result;
|
| + shouldBe("key.toString()", "'[object Key]'");
|
| + shouldBe("key.type", "'secret'");
|
| + shouldBe("key.algorithm.name", "'AES-KW'");
|
| + shouldBe("key.algorithm.length", "256");
|
| +
|
| + debug("\nTesting that the key can't be used with AES-CBC...");
|
| + iv = hexStringToUint8Array("000102030405060708090a0b0c0d0e0f");
|
| +
|
| + return crypto.subtle.wrapKey("raw", key, key, {name: "AES-CBC", iv: iv});
|
| +}).then(failAndFinishJSTest, function(result) {
|
| + logError(result);
|
| +
|
| + debug("\nExporting the key to raw...");
|
| + return crypto.subtle.exportKey('raw', key);
|
| +}).then(function(result) {
|
| + exportedKey = result;
|
| + shouldBe("exportedKey.toString()", "'[object ArrayBuffer]'");
|
| + debug("Importing it back...");
|
| + return crypto.subtle.importKey('raw', exportedKey, {name: "aes-kw"}, extractable, ["wrapKey", "unwrapKey"]);
|
| +}).then(function(result) {
|
| + importedKey = result;
|
| +
|
| + shouldBe("importedKey.toString()", "'[object Key]'");
|
| + shouldBe("importedKey.type", "'secret'");
|
| + shouldBe("importedKey.algorithm.name", "'AES-KW'");
|
| + shouldBe("importedKey.algorithm.length", "256");
|
| +}).then(finishJSTest, failAndFinishJSTest);
|
| +
|
| +</script>
|
| +
|
| +</body>
|
| +</html>
|
|
|