diff options
Diffstat (limited to 'tests/unit_node/crypto/crypto_import_export.ts')
-rw-r--r-- | tests/unit_node/crypto/crypto_import_export.ts | 31 |
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); + }); +} |