summaryrefslogtreecommitdiff
path: root/ext/node/polyfills/internal/crypto/diffiehellman.ts
diff options
context:
space:
mode:
authorSatya Rohith <me@satyarohith.com>2024-03-18 13:20:10 +0530
committerGitHub <noreply@github.com>2024-03-18 13:20:10 +0530
commitbecdad531f2b56684133b3b7ea25169c7102f765 (patch)
treee03e3e411fdc888ccd2200bab9aa9721b34c92dc /ext/node/polyfills/internal/crypto/diffiehellman.ts
parent9c5ddf7c69f0d3ddaa93b194f0020944569e0e3e (diff)
fix(ext/node): support public key point encoding in ECDH.generateKeys() (#22976)
Towards https://github.com/denoland/deno/issues/22921 Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
Diffstat (limited to 'ext/node/polyfills/internal/crypto/diffiehellman.ts')
-rw-r--r--ext/node/polyfills/internal/crypto/diffiehellman.ts8
1 files changed, 7 insertions, 1 deletions
diff --git a/ext/node/polyfills/internal/crypto/diffiehellman.ts b/ext/node/polyfills/internal/crypto/diffiehellman.ts
index 4b105e575..da7907734 100644
--- a/ext/node/polyfills/internal/crypto/diffiehellman.ts
+++ b/ext/node/polyfills/internal/crypto/diffiehellman.ts
@@ -1236,12 +1236,18 @@ export class ECDH {
generateKeys(encoding: BinaryToTextEncoding, format?: ECDHKeyFormat): string;
generateKeys(
encoding?: BinaryToTextEncoding,
- _format?: ECDHKeyFormat,
+ format: ECDHKeyFormat = "uncompressed",
): Buffer | string {
+ this.#pubbuf = Buffer.alloc(
+ format.trim() == "compressed"
+ ? this.#curve.publicKeySizeCompressed
+ : this.#curve.publicKeySize,
+ );
op_node_ecdh_generate_keys(
this.#curve.name,
this.#pubbuf,
this.#privbuf,
+ format,
);
if (encoding !== undefined) {