summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDivy Srivastava <dj.srivastava23@gmail.com>2024-08-23 09:36:28 -0700
committerGitHub <noreply@github.com>2024-08-23 22:06:28 +0530
commitd9a7b30d1fa93dc742c9a3ee0fe8666be7ce1c0f (patch)
treef84a25cb776c870fd1e33a88e6df38615e717007 /tests
parentd54d29662f30c0fa5e1f048fdce4835e51248682 (diff)
fix(ext/node): import JWK octet key pairs (#25180)
Ref https://github.com/denoland/deno/issues/24129 `kty: "okp"` is defined in [rfc8037](https://www.rfc-editor.org/rfc/rfc8037.html)
Diffstat (limited to 'tests')
-rw-r--r--tests/unit_node/crypto/crypto_key_test.ts58
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/unit_node/crypto/crypto_key_test.ts b/tests/unit_node/crypto/crypto_key_test.ts
index 6365119e2..6c2c9f851 100644
--- a/tests/unit_node/crypto/crypto_key_test.ts
+++ b/tests/unit_node/crypto/crypto_key_test.ts
@@ -439,3 +439,61 @@ Deno.test("create private key with invalid utf-8 string", function () {
"not valid utf8",
);
});
+
+Deno.test("Ed25519 jwk public key #1", function () {
+ const key = {
+ "kty": "OKP",
+ "crv": "Ed25519",
+ "d": "nWGxne_9WmC6hEr0kuwsxERJxWl7MmkZcDusAxyuf2A",
+ "x": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo",
+ };
+ const keyObject = createPublicKey({ key, format: "jwk" });
+
+ assertEquals(keyObject.type, "public");
+ const spkiActual = keyObject.export({ type: "spki", format: "pem" });
+
+ const spkiExpected = `-----BEGIN PUBLIC KEY-----
+MCowBQYDK2VwAyEA11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo=
+-----END PUBLIC KEY-----
+`;
+
+ assertEquals(spkiActual, spkiExpected);
+});
+
+Deno.test("Ed25519 jwk public key #2", function () {
+ const key = {
+ "kty": "OKP",
+ "crv": "Ed25519",
+ "x": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo",
+ };
+
+ const keyObject = createPublicKey({ key, format: "jwk" });
+ assertEquals(keyObject.type, "public");
+
+ const spki = keyObject.export({ type: "spki", format: "pem" });
+ const spkiExpected = `-----BEGIN PUBLIC KEY-----
+MCowBQYDK2VwAyEA11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo=
+-----END PUBLIC KEY-----
+`;
+ assertEquals(spki, spkiExpected);
+});
+
+Deno.test("Ed25519 jwk private key", function () {
+ const key = {
+ "kty": "OKP",
+ "crv": "Ed25519",
+ "d": "nWGxne_9WmC6hEr0kuwsxERJxWl7MmkZcDusAxyuf2A",
+ "x": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo",
+ };
+
+ const keyObject = createPrivateKey({ key, format: "jwk" });
+ assertEquals(keyObject.type, "private");
+
+ const pkcs8Actual = keyObject.export({ type: "pkcs8", format: "pem" });
+ const pkcs8Expected = `-----BEGIN PRIVATE KEY-----
+MC4CAQAwBQYDK2VwBCIEIJ1hsZ3v/VpguoRK9JLsLMREScVpezJpGXA7rAMcrn9g
+-----END PRIVATE KEY-----
+`;
+
+ assertEquals(pkcs8Actual, pkcs8Expected);
+});