summaryrefslogtreecommitdiff
path: root/tests/unit_node/crypto/crypto_import_export.ts
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit_node/crypto/crypto_import_export.ts')
-rw-r--r--tests/unit_node/crypto/crypto_import_export.ts31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/unit_node/crypto/crypto_import_export.ts b/tests/unit_node/crypto/crypto_import_export.ts
new file mode 100644
index 000000000..fc41cbacc
--- /dev/null
+++ b/tests/unit_node/crypto/crypto_import_export.ts
@@ -0,0 +1,31 @@
+// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
+import crypto, { KeyFormat } from "node:crypto";
+import path from "node:path";
+import { Buffer } from "node:buffer";
+import { assert } from "@std/assert/mod.ts";
+import asymmetric from "./testdata/asymmetric.json" with { type: "json" };
+
+Deno.test("crypto.createPrivateKey", async (t) => {
+ for (const key of asymmetric) {
+ await testCreatePrivateKey(t, key.name, "pem", "pkcs8");
+ await testCreatePrivateKey(t, key.name, "der", "pkcs8");
+ }
+});
+
+function testCreatePrivateKey(
+ t: Deno.TestContext,
+ name: string,
+ format: KeyFormat,
+ type: "pkcs8" | "pkcs1" | "sec1",
+) {
+ if (name.includes("dh")) return;
+ return t.step(`crypto.createPrivateKey ${name} ${format} ${type}`, () => {
+ const file = path.join(
+ "./tests/unit_node/crypto/testdata/asymmetric",
+ `${name}.${type}.${format}`,
+ );
+ const key = Buffer.from(Deno.readFileSync(file));
+ const privateKey = crypto.createPrivateKey({ key, format, type });
+ assert(privateKey);
+ });
+}