<!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 an AES key using AES-CBC algorithm.");
jsTestIsAsync = true;
var extractable = true;
debug("Generating a key...");
Promise.resolve(null).then(function(result) {
return crypto.subtle.generateKey({name: "aes-cbc"}, extractable, ["encrypt", "decrypt"]);
}).then(failAndFinishJSTest, function(result) {
logError(result);
return crypto.subtle.generateKey({name: "aes-cbc", length: undefined}, extractable, ["encrypt", "decrypt"]);
}).then(failAndFinishJSTest, function(result) {
logError(result);
return crypto.subtle.generateKey({name: "aes-cbc", length: {}}, extractable, ["encrypt", "decrypt"]);
}).then(failAndFinishJSTest, function(result) {
logError(result);
return crypto.subtle.generateKey({name: "aes-cbc", length: 128}, extractable, ["encrypt", "decrypt"]);
}).then(function(result) {
key = result;
shouldBe("key.type", "'secret'");
shouldBe("key.extractable", "true");
shouldBe("key.algorithm.name", "'AES-CBC'");
shouldBe("key.algorithm.length", "128");
shouldBe("key.usages", "['encrypt', 'decrypt']");
}).then(finishJSTest, failAndFinishJSTest);
</script>
</body>
</html>