summaryrefslogtreecommitdiff
path: root/tests/unit_node/crypto/crypto_key_test.ts
diff options
context:
space:
mode:
authorAsher Gomez <ashersaupingomez@gmail.com>2024-03-13 19:17:23 +1100
committerGitHub <noreply@github.com>2024-03-13 08:17:23 +0000
commit5cfa03ceca396b1c21a826cb44a984329cf35078 (patch)
treeb1fae2dafbb53aeff0a3b973c39d6a6bbe03415c /tests/unit_node/crypto/crypto_key_test.ts
parent6e6c316c9d3950cd23cb28af41b0525695438c3c (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.ts28
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");
+});