Chromium Code Reviews| Index: LayoutTests/crypto/rsa-importKey-failures.html |
| diff --git a/LayoutTests/crypto/rsa-importKey-failures.html b/LayoutTests/crypto/rsa-importKey-failures.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..183c4f4f5dd48e4f369e4ebc6360547a3ddaaf6b |
| --- /dev/null |
| +++ b/LayoutTests/crypto/rsa-importKey-failures.html |
| @@ -0,0 +1,75 @@ |
| +<!DOCTYPE html> |
|
eroman
2014/10/30 19:13:07
Can you rename the file to describe it is about us
|
| +<html> |
| +<head> |
| +<script src="../resources/js-test.js"></script> |
| +<script src="resources/common.js"></script> |
| +<script src="resources/keys.js"></script> |
| +</head> |
| +<body> |
| +<p id="description"></p> |
| +<div id="console"></div> |
| + |
| +<script> |
| +description("Tests that importing keys with invalid usages should fail with SyntaxError."); |
| + |
| +jsTestIsAsync = true; |
| + |
| +function importPkcs8ForDecryption() |
| +{ |
| + var keyData = hexStringToUint8Array(kKeyData.rsa1.pkcs8); |
| + var usages = ['decrypt']; |
| + var extractable = false; |
| + var algorithm = {name: 'RSASSA-PKCS1-v1_5', hash: {name: 'sha-1'}}; |
| + |
| + return crypto.subtle.importKey('pkcs8', keyData, algorithm, extractable, usages); |
| +} |
| + |
| +function importSpkiForEncryption() |
| +{ |
| + var keyData = hexStringToUint8Array(kKeyData.rsa1.spki); |
| + var usages = ['encrypt']; |
| + var extractable = false; |
| + var algorithm = {name: 'RSASSA-PKCS1-v1_5', hash: {name: 'sha-1'}}; |
| + |
| + return crypto.subtle.importKey('spki', keyData, algorithm, extractable, usages); |
| +} |
| + |
| +function importJwkPublicKeyForSigning() |
| +{ |
| + var keyData = kKeyData.jwkRSAPublicKeyJSON; |
| + var usages = ['sign']; |
| + var extractable = false; |
| + var algorithm = {name: 'RSASSA-PKCS1-v1_5', hash: {name: "sha-1"}}; |
| + |
| + return crypto.subtle.importKey('jwk', keyData, algorithm, extractable, usages); |
| +} |
| + |
| +function importJwkPrivateKeyForEncryption() |
| +{ |
| + var keyData = kKeyData.jwkRSAPrivateKeyJSON; |
| + var usages = ['encrypt']; |
| + var extractable = false; |
| + var algorithm = {name: 'RSASSA-PKCS1-v1_5', hash: {name: "sha-1"}}; |
| + |
| + return crypto.subtle.importKey('jwk', keyData, algorithm, extractable, usages); |
| +} |
| + |
| +importPkcs8ForDecryption().then(failAndFinishJSTest, function(result) { |
| + logError(result); |
| + |
| + return importSpkiForEncryption(); |
| +}).then(failAndFinishJSTest, function(result) { |
| + logError(result); |
| + |
| + return importJwkPublicKeyForSigning(); |
| +}).then(failAndFinishJSTest, function(result) { |
| + logError(result); |
| + |
| + return importJwkPrivateKeyForEncryption(); |
| +}).then(failAndFinishJSTest, function(result) { |
| + logError(result); |
| +}).then(finishJSTest, failAndFinishJSTest); |
| +</script> |
| + |
| +</body> |
| +</html> |