OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <html> |
3 <head> | 3 <head> |
4 <script src="../resources/js-test.js"></script> | 4 <script src="../resources/js-test.js"></script> |
5 <script src="resources/common.js"></script> | 5 <script src="resources/common.js"></script> |
| 6 <script src="resources/keys.js"></script> |
6 </head> | 7 </head> |
7 <body> | 8 <body> |
8 <p id="description"></p> | 9 <p id="description"></p> |
9 <div id="console"></div> | 10 <div id="console"></div> |
10 | 11 |
11 <script> | 12 <script> |
12 description("Tests cypto.subtle.importKey."); | 13 description("Tests cypto.subtle.importKey."); |
13 | 14 |
14 jsTestIsAsync = true; | 15 jsTestIsAsync = true; |
15 | 16 |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 algorithm = aesCbc; | 71 algorithm = aesCbc; |
71 extractable = false; | 72 extractable = false; |
72 keyUsages = []; | 73 keyUsages = []; |
73 | 74 |
74 return crypto.subtle.importKey(keyFormat, data, algorithm, extractable, keyU
sages); | 75 return crypto.subtle.importKey(keyFormat, data, algorithm, extractable, keyU
sages); |
75 }).then(undefined, function(result) { | 76 }).then(undefined, function(result) { |
76 debug("rejected with " + result); | 77 debug("rejected with " + result); |
77 | 78 |
78 // Import an spki formatted public key | 79 // Import an spki formatted public key |
79 keyFormat = "spki"; | 80 keyFormat = "spki"; |
80 data = hexStringToUint8Array(kPublicKeySpkiDerHex); | 81 data = hexStringToUint8Array(kKeyData.rsa1.spki); |
81 algorithm = {name: 'RsasSA-pKCS1-v1_5', hash: {name: 'sha-1'}}; | 82 algorithm = {name: 'RsasSA-pKCS1-v1_5', hash: {name: 'sha-1'}}; |
82 extractable = false; | 83 extractable = false; |
83 keyUsages = []; | 84 keyUsages = []; |
84 | 85 |
85 return crypto.subtle.importKey(keyFormat, data, algorithm, extractable, keyU
sages); | 86 return crypto.subtle.importKey(keyFormat, data, algorithm, extractable, keyU
sages); |
86 }).then(function(result) { | 87 }).then(function(result) { |
87 key = result; | 88 key = result; |
88 shouldBe("key.type", "'public'"); | 89 shouldBe("key.type", "'public'"); |
89 // FIXME: Enable this once updated. | 90 // FIXME: Enable this once updated. |
90 //shouldBe("key.extractable", "true"); | 91 //shouldBe("key.extractable", "true"); |
91 shouldBe("key.algorithm.name", "'RSASSA-PKCS1-v1_5'"); | 92 shouldBe("key.algorithm.name", "'RSASSA-PKCS1-v1_5'"); |
92 shouldBe("key.algorithm.hash.name", '"SHA-1"'); | 93 shouldBe("key.algorithm.hash.name", '"SHA-1"'); |
93 shouldBe("key.algorithm.modulusLength", '1024'); | 94 shouldEvaluateAs("key.algorithm.modulusLength", kKeyData.rsa1.modulusLengthB
its); |
94 bytesShouldMatchHexString("key.algorithm.publicExponent", "010001", key.algo
rithm.publicExponent); | 95 bytesShouldMatchHexString("key.algorithm.publicExponent", kKeyData.rsa1.publ
icExponent, key.algorithm.publicExponent); |
95 shouldBe("key.usages.join(',')", "''"); | 96 shouldBe("key.usages.join(',')", "''"); |
96 | 97 |
97 // Import a pkcs8 formatted private key | 98 // Import a pkcs8 formatted private key |
98 keyFormat = "pkcs8"; | 99 keyFormat = "pkcs8"; |
99 data = hexStringToUint8Array(kPrivateKeyPkcs8DerHex); | 100 data = hexStringToUint8Array(kKeyData.rsa1.pkcs8); |
100 algorithm = {name: 'RsasSA-pKCS1-v1_5', hash: {name: 'sha-1'}}; | 101 algorithm = {name: 'RsasSA-pKCS1-v1_5', hash: {name: 'sha-1'}}; |
101 extractable = false; | 102 extractable = false; |
102 keyUsages = []; | 103 keyUsages = []; |
103 | 104 |
104 return crypto.subtle.importKey(keyFormat, data, algorithm, extractable, keyU
sages); | 105 return crypto.subtle.importKey(keyFormat, data, algorithm, extractable, keyU
sages); |
105 }).then(function(result) { | 106 }).then(function(result) { |
106 key = result; | 107 key = result; |
107 shouldBe("key.type", "'private'"); | 108 shouldBe("key.type", "'private'"); |
108 shouldBe("key.extractable", "false"); | 109 shouldBe("key.extractable", "false"); |
109 shouldBe("key.algorithm.name", "'RSASSA-PKCS1-v1_5'"); | 110 shouldBe("key.algorithm.name", "'RSASSA-PKCS1-v1_5'"); |
110 shouldBe("key.algorithm.hash.name", '"SHA-1"'); | 111 shouldBe("key.algorithm.hash.name", '"SHA-1"'); |
111 shouldBe("key.algorithm.modulusLength", '1024'); | 112 shouldEvaluateAs("key.algorithm.modulusLength", kKeyData.rsa1.modulusLengthB
its); |
112 bytesShouldMatchHexString("key.algorithm.publicExponent", "010001", key.algo
rithm.publicExponent); | 113 bytesShouldMatchHexString("key.algorithm.publicExponent", kKeyData.rsa1.publ
icExponent, key.algorithm.publicExponent); |
113 shouldBe("key.usages.join(',')", "''") | 114 shouldBe("key.usages.join(',')", "''") |
114 | 115 |
115 keyFormat = "raw"; | 116 keyFormat = "raw"; |
116 data = asciiToUint8Array(""); | 117 data = asciiToUint8Array(""); |
117 algorithm = aesCbc; | 118 algorithm = aesCbc; |
118 extractable = true; | 119 extractable = true; |
119 keyUsages = []; | 120 keyUsages = []; |
120 | 121 |
121 // Invalid format. | 122 // Invalid format. |
122 shouldRejectPromiseWithNull("crypto.subtle.importKey('invalid format', data,
algorithm, extractable, keyUsages)"); | 123 shouldRejectPromiseWithNull("crypto.subtle.importKey('invalid format', data,
algorithm, extractable, keyUsages)"); |
(...skipping 20 matching lines...) Expand all Loading... |
143 shouldRejectPromiseWithNull("crypto.subtle.importKey(keyFormat, data, {name:
'hmac'}, extractable, keyUsages)"); | 144 shouldRejectPromiseWithNull("crypto.subtle.importKey(keyFormat, data, {name:
'hmac'}, extractable, keyUsages)"); |
144 | 145 |
145 // SHA-1 doesn't support the importKey operation. | 146 // SHA-1 doesn't support the importKey operation. |
146 shouldRejectPromiseWithNull("crypto.subtle.importKey(keyFormat, data, {name:
'sha-1'}, extractable, keyUsages)"); | 147 shouldRejectPromiseWithNull("crypto.subtle.importKey(keyFormat, data, {name:
'sha-1'}, extractable, keyUsages)"); |
147 }).then(finishJSTest, failAndFinishJSTest); | 148 }).then(finishJSTest, failAndFinishJSTest); |
148 | 149 |
149 </script> | 150 </script> |
150 | 151 |
151 </body> | 152 </body> |
152 </html> | 153 </html> |
OLD | NEW |