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 generateKey() with bad HMAC parameters.");
16 keyUsages = ['sign', 'verify'];
18 Promise.resolve(null).then(function() {
19 return crypto.subtle.generateKey({name: 'hmac', hash: {name: 'sha-256'}, length: -3}, extractable , keyUsages);
20 }).then(failAndFinishJSTest, function(result) {
22 shouldBeNull("error");
24 return crypto.subtle.generateKey({name: 'hmac', hash: {name: ''}, length: 48}, extractable , keyUsages);
25 }).then(failAndFinishJSTest, function(result) {
27 shouldBeNull("error");
29 return crypto.subtle.generateKey({name: 'hmac', hash: {name: 'sha-256'}, length: 5000000000}, extractable , keyUsages);
30 }).then(failAndFinishJSTest, function(result) {
32 shouldBeNull("error");
34 return crypto.subtle.generateKey({name: 'hmac', hash: {name: 'sha-256'}, length: NaN}, extractable , keyUsages);
35 }).then(failAndFinishJSTest, function(result) {
37 shouldBeNull("error");
39 return crypto.subtle.generateKey({name: 'hmac', hash: {name: 'sha-256'}, length: Infinity}, extractable , keyUsages);
40 }).then(failAndFinishJSTest, function(result) {
42 shouldBeNull("error");
44 return crypto.subtle.generateKey({name: 'hmac', hash: {name: 'sha-256'}, length: -Infinity}, extractable , keyUsages);
45 }).then(failAndFinishJSTest, function(result) {
47 shouldBeNull("error");
49 return crypto.subtle.generateKey({name: 'hmac', hash: {name: 'sha-256'}, length: crypto}, extractable , keyUsages);
50 }).then(failAndFinishJSTest, function(result) {
52 shouldBeNull("error");
54 return crypto.subtle.generateKey({name: 'hmac', hash: {name: 'sha-256'}, length: undefined}, extractable , keyUsages);
55 }).then(failAndFinishJSTest, function(result) {
57 shouldBeNull("error");
59 return crypto.subtle.generateKey({name: 'hmac', hash: {name: 'sha-256'}, length: true}, extractable , keyUsages);
60 }).then(failAndFinishJSTest, function(result) {
62 shouldBeNull("error");
63 }).then(finishJSTest, failAndFinishJSTest);