Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / crypto / subtle / rsa-importKey-badUsages.html
blob1d863bf3d910800443dae63225a50fd58e6098d6
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <script src="../../resources/js-test.js"></script>
5 <script src="resources/common.js"></script>
6 <script src="resources/keys.js"></script>
7 </head>
8 <body>
9 <p id="description"></p>
10 <div id="console"></div>
12 <script>
13 description("Tests that importing keys with invalid usages should fail with SyntaxError.");
15 jsTestIsAsync = true;
17 function importPkcs8ForDecryption()
19 var keyData = hexStringToUint8Array(kKeyData.rsa1.pkcs8);
20 var usages = ['decrypt'];
21 var extractable = false;
22 var algorithm = {name: 'RSASSA-PKCS1-v1_5', hash: {name: 'sha-1'}};
24 return crypto.subtle.importKey('pkcs8', keyData, algorithm, extractable, usages);
27 function importSpkiForEncryption()
29 var keyData = hexStringToUint8Array(kKeyData.rsa1.spki);
30 var usages = ['encrypt'];
31 var extractable = false;
32 var algorithm = {name: 'RSASSA-PKCS1-v1_5', hash: {name: 'sha-1'}};
34 return crypto.subtle.importKey('spki', keyData, algorithm, extractable, usages);
37 function importJwkPublicKeyForSigning()
39 var keyData = kKeyData.jwkRSAPublicKeyJSON;
40 var usages = ['sign'];
41 var extractable = false;
42 var algorithm = {name: 'RSASSA-PKCS1-v1_5', hash: {name: "sha-1"}};
44 return crypto.subtle.importKey('jwk', keyData, algorithm, extractable, usages);
47 function importJwkPrivateKeyForEncryption()
49 var keyData = kKeyData.jwkRSAPrivateKeyJSON;
50 var usages = ['encrypt'];
51 var extractable = false;
52 var algorithm = {name: 'RSASSA-PKCS1-v1_5', hash: {name: "sha-1"}};
54 return crypto.subtle.importKey('jwk', keyData, algorithm, extractable, usages);
57 importPkcs8ForDecryption().then(failAndFinishJSTest, function(result) {
58 logError(result);
60 return importSpkiForEncryption();
61 }).then(failAndFinishJSTest, function(result) {
62 logError(result);
64 return importJwkPublicKeyForSigning();
65 }).then(failAndFinishJSTest, function(result) {
66 logError(result);
68 return importJwkPrivateKeyForEncryption();
69 }).then(failAndFinishJSTest, function(result) {
70 logError(result);
71 }).then(finishJSTest, failAndFinishJSTest);
72 </script>
74 </body>
75 </html>