diff options
Diffstat (limited to 'tests/unit_node/crypto/crypto_key_test.ts')
-rw-r--r-- | tests/unit_node/crypto/crypto_key_test.ts | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/tests/unit_node/crypto/crypto_key_test.ts b/tests/unit_node/crypto/crypto_key_test.ts index 6dae79336..9b8224cd1 100644 --- a/tests/unit_node/crypto/crypto_key_test.ts +++ b/tests/unit_node/crypto/crypto_key_test.ts @@ -2,7 +2,9 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. import { + createHmac, createPrivateKey, + createPublicKey, createSecretKey, generateKeyPair, generateKeyPairSync, @@ -12,7 +14,6 @@ import { import { promisify } from "node:util"; import { Buffer } from "node:buffer"; import { assertEquals, assertThrows } from "@std/assert/mod.ts"; -import { createHmac } from "node:crypto"; const RUN_SLOW_TESTS = Deno.env.get("SLOW_TESTS") === "1"; @@ -240,3 +241,28 @@ Deno.test("createPrivateKey ec", function () { assertEquals(key.asymmetricKeyType, "ec"); assertEquals(key.asymmetricKeyDetails?.namedCurve, "p256"); }); + +const rsaPublicKey = Deno.readTextFileSync( + new URL("../testdata/rsa_public.pem", import.meta.url), +); + +Deno.test("createPublicKey() RSA", () => { + const key = createPublicKey(rsaPublicKey); + assertEquals(key.type, "public"); + assertEquals(key.asymmetricKeyType, "rsa"); + assertEquals(key.asymmetricKeyDetails?.modulusLength, 2048); + assertEquals(key.asymmetricKeyDetails?.publicExponent, 65537n); +}); + +// openssl ecparam -name prime256v1 -genkey -noout -out a.pem +// openssl ec -in a.pem -pubout -out b.pem +const ecPublicKey = Deno.readTextFileSync( + new URL("../testdata/ec_prime256v1_public.pem", import.meta.url), +); + +Deno.test("createPublicKey() EC", function () { + const key = createPublicKey(ecPublicKey); + assertEquals(key.type, "public"); + assertEquals(key.asymmetricKeyType, "ec"); + assertEquals(key.asymmetricKeyDetails?.namedCurve, "p256"); +}); |