diff options
author | Satya Rohith <me@satyarohith.com> | 2024-03-18 13:20:10 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-18 13:20:10 +0530 |
commit | becdad531f2b56684133b3b7ea25169c7102f765 (patch) | |
tree | e03e3e411fdc888ccd2200bab9aa9721b34c92dc /ext/node/polyfills/internal/crypto/diffiehellman.ts | |
parent | 9c5ddf7c69f0d3ddaa93b194f0020944569e0e3e (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.ts | 8 |
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) { |