4 <script src=
"../../resources/js-test.js"></script>
5 <script src=
"resources/common.js"></script>
6 <script src=
"resources/keys.js"></script>
9 <p id=
"description"></p>
10 <div id=
"console"></div>
13 description("Tests that importing keys with invalid usages should fail with SyntaxError.");
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
) {
60 return importSpkiForEncryption();
61 }).then(failAndFinishJSTest
, function(result
) {
64 return importJwkPublicKeyForSigning();
65 }).then(failAndFinishJSTest
, function(result
) {
68 return importJwkPrivateKeyForEncryption();
69 }).then(failAndFinishJSTest
, function(result
) {
71 }).then(finishJSTest
, failAndFinishJSTest
);