summaryrefslogtreecommitdiff
path: root/tests/unit_node/crypto/crypto_hkdf_test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit_node/crypto/crypto_hkdf_test.ts')
-rw-r--r--tests/unit_node/crypto/crypto_hkdf_test.ts36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/unit_node/crypto/crypto_hkdf_test.ts b/tests/unit_node/crypto/crypto_hkdf_test.ts
new file mode 100644
index 000000000..be5d99086
--- /dev/null
+++ b/tests/unit_node/crypto/crypto_hkdf_test.ts
@@ -0,0 +1,36 @@
+// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
+import { hkdfSync } from "node:crypto";
+import { assertEquals } from "@std/assert/mod.ts";
+import { Buffer } from "node:buffer";
+import nodeFixtures from "../testdata/crypto_digest_fixtures.json" with {
+ type: "json",
+};
+
+Deno.test("crypto.hkdfSync - compare with node", async (t) => {
+ const DATA = "Hello, world!";
+ const SALT = "salt";
+ const INFO = "info";
+ const KEY_LEN = 64;
+
+ for (const { digest, hkdf } of nodeFixtures) {
+ await t.step({
+ name: digest,
+ ignore: digest.includes("blake"),
+ fn() {
+ let actual: string | null;
+ try {
+ actual = Buffer.from(hkdfSync(
+ digest,
+ DATA,
+ SALT,
+ INFO,
+ KEY_LEN,
+ )).toString("hex");
+ } catch {
+ actual = null;
+ }
+ assertEquals(actual, hkdf);
+ },
+ });
+ }
+});