| 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 |