summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/unit_node/crypto/crypto_key_test.ts29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/unit_node/crypto/crypto_key_test.ts b/tests/unit_node/crypto/crypto_key_test.ts
index 656c7bb24..bcb47b5a7 100644
--- a/tests/unit_node/crypto/crypto_key_test.ts
+++ b/tests/unit_node/crypto/crypto_key_test.ts
@@ -284,3 +284,32 @@ Deno.test("createPublicKey() EC", function () {
assertEquals(key.asymmetricKeyType, "ec");
assertEquals(key.asymmetricKeyDetails?.namedCurve, "p256");
});
+
+Deno.test("createPublicKey SPKI for DH", async function () {
+ const { publicKey, privateKey } = await crypto.subtle.generateKey(
+ {
+ name: "ECDH",
+ namedCurve: "P-384",
+ },
+ true,
+ ["deriveKey", "deriveBits"],
+ );
+
+ const exportedPublicKey = await crypto.subtle.exportKey("spki", publicKey);
+ const exportedPrivateKey = await crypto.subtle.exportKey("pkcs8", privateKey);
+
+ const pubKey = createPublicKey({
+ key: Buffer.from(exportedPublicKey),
+ format: "der",
+ type: "spki",
+ });
+
+ const privKey = createPrivateKey({
+ key: Buffer.from(exportedPrivateKey),
+ format: "der",
+ type: "pkcs8",
+ });
+
+ assertEquals(pubKey.asymmetricKeyType, "ec");
+ assertEquals(privKey.asymmetricKeyType, "ec");
+});