diff options
author | Asher Gomez <ashersaupingomez@gmail.com> | 2024-03-13 19:17:23 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-13 08:17:23 +0000 |
commit | 5cfa03ceca396b1c21a826cb44a984329cf35078 (patch) | |
tree | b1fae2dafbb53aeff0a3b973c39d6a6bbe03415c /tests/unit_node/crypto/crypto_key_test.ts | |
parent | 6e6c316c9d3950cd23cb28af41b0525695438c3c (diff) |
fix(ext/node): initial `crypto.createPublicKey()` support (#22509)
Closes #21807
Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
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"); +}); |