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 an unextractable key cannot be exported.");
17 // FIXME: Should also test unextractable keys created from generateKey().
19 function importUnextractableAesKey()
21 var keyData
= new Uint8Array(16);
22 var usages
= ['encrypt'];
23 var extractable
= false;
24 var algorithm
= {name
: 'aes-cbc'};
26 return crypto
.subtle
.importKey('raw', keyData
, algorithm
, extractable
, usages
);
29 function importUnextractableHmacKey()
31 var keyData
= new Uint8Array(16);
32 var usages
= ['sign'];
33 var extractable
= false;
34 var algorithm
= {name
: 'HMAC', hash
: {name
: 'sha-1'}};
36 return crypto
.subtle
.importKey('raw', keyData
, algorithm
, extractable
, usages
);
39 function importUnextractableRsaPrivateKey()
41 var keyData
= hexStringToUint8Array(kKeyData
.rsa1
.pkcs8
);
42 var usages
= ['sign'];
43 var extractable
= false;
44 var algorithm
= {name
: 'RSASSA-PKCS1-v1_5', hash
: {name
: "sha-1"}};
46 return crypto
.subtle
.importKey('pkcs8', keyData
, algorithm
, extractable
, usages
);
49 importUnextractableAesKey().then(function(key
) {
50 return crypto
.subtle
.exportKey('raw', key
);
51 }).then(failAndFinishJSTest
, function(result
) {
54 return importUnextractableHmacKey();
55 }).then(function(key
) {
56 return crypto
.subtle
.exportKey('raw', key
);
57 }).then(failAndFinishJSTest
, function(result
) {
60 return importUnextractableRsaPrivateKey();
61 }).then(function(key
) {
62 return crypto
.subtle
.exportKey('pkcs8', key
);
63 }).then(failAndFinishJSTest
, function(result
) {
65 }).then(finishJSTest
, failAndFinishJSTest
);