Index: LayoutTests/crypto/rsassa-pkcs1-v1_5-generate-key.html |
diff --git a/LayoutTests/crypto/rsassa-pkcs1-v1_5-generate-key.html b/LayoutTests/crypto/rsassa-pkcs1-v1_5-generate-key.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..648bdde8be234ea1b926813768fc7faea0024427 |
--- /dev/null |
+++ b/LayoutTests/crypto/rsassa-pkcs1-v1_5-generate-key.html |
@@ -0,0 +1,57 @@ |
+<!DOCTYPE html> |
+<html> |
+<head> |
+<script src="../resources/js-test.js"></script> |
+<script src="resources/common.js"></script> |
+</head> |
+<body> |
+<p id="description"></p> |
+<div id="console"></div> |
+ |
+<script> |
+description("Test generating an RSA key pair for RSASSA-PKCS1-v1_5."); |
+ |
+jsTestIsAsync = true; |
+ |
+var algorithmKeyGen = { |
+ name: "RSASSA-PKCS1-v1_5", |
+ hash: {name: "sha-256"}, |
+ // RsaKeyGenParams |
+ modulusLength: 2048, |
+ publicExponent: new Uint8Array([0x01, 0x00, 0x01]), // Equivalent to 65537 |
+}; |
+var extractable = true; |
+ |
+debug("Generating a key pair..."); |
+crypto.subtle.generateKey(algorithmKeyGen, extractable, ["sign", "verify"]).then(function(result) { |
+ keyPair = result; |
+ shouldBe("keyPair.toString()", "'[object KeyPair]'"); |
+ shouldBe("keyPair.publicKey.type", "'public'"); |
+ shouldBe("keyPair.publicKey.algorithm.name", "'RSASSA-PKCS1-v1_5'"); |
+ shouldBe("keyPair.publicKey.algorithm.hash.name", "'SHA-256'"); |
+ shouldBe("keyPair.publicKey.algorithm.modulusLength", "2048"); |
+ shouldBe("bytesToHexString(keyPair.publicKey.algorithm.publicExponent)", "'010001'"); |
+ shouldBe("keyPair.publicKey.usages", '["verify"]'); |
+ shouldBe("keyPair.privateKey.type", "'private'"); |
+ shouldBe("keyPair.privateKey.algorithm.name", "'RSASSA-PKCS1-v1_5'"); |
+ shouldBe("keyPair.privateKey.algorithm.hash.name", "'SHA-256'"); |
+ shouldBe("keyPair.privateKey.algorithm.modulusLength", "2048"); |
+ shouldBe("bytesToHexString(keyPair.privateKey.algorithm.publicExponent)", "'010001'"); |
+ shouldBe("keyPair.privateKey.usages", '["sign"]'); |
+ |
+ debug("\nTesting that custom attributes on keys survive garbage collection..."); |
+ keyPair.publicKey.foo = "bar"; |
+ gc(); |
+ setTimeout(function() { |
+ gc(); |
+ setTimeout(function() { |
+ shouldBe("keyPair.publicKey.foo", "'bar'"); |
+ finishJSTest(); |
+ }, 0); |
+ }, 0); |
+}).catch(failAndFinishJSTest); |
+ |
+</script> |
+ |
+</body> |
+</html> |