GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — crypto: fix DiffieHellman argument validation · nodejs/node@46ece20

File tree

Expand file treeCollapse file tree
Open diff view settings
Filter options
  • lib/internal/crypto
    • diffiehellman.js
  • test/parallel
    • test-crypto-dh.js
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎lib/internal/crypto/diffiehellman.js‎

Copy file name to clipboardExpand all lines: lib/internal/crypto/diffiehellman.js
+11-3Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,20 @@ function DiffieHellman(sizeOrKey, keyEncoding, generator, genEncoding) {
7575
if (typeof sizeOrKey !== 'number')
7676
sizeOrKey = toBuf(sizeOrKey, keyEncoding);
7777

78-
if (!generator)
78+
if (!generator) {
7979
generator = DH_GENERATOR;
80-
else if (typeof generator === 'number')
80+
} else if (typeof generator === 'number') {
8181
validateInt32(generator, 'generator');
82-
else
82+
} else if (generator !== true) {
8383
generator = toBuf(generator, genEncoding);
84+
} else {
85+
throw new ERR_INVALID_ARG_TYPE(
86+
'generator',
87+
['number', 'string', 'ArrayBuffer', 'Buffer', 'TypedArray', 'DataView'],
88+
generator
89+
);
90+
}
91+
8492

8593
this[kHandle] = new _DiffieHellman(sizeOrKey, generator);
8694
ObjectDefineProperty(this, 'verifyError', {
Collapse file

‎test/parallel/test-crypto-dh.js‎

Copy file name to clipboardExpand all lines: test/parallel/test-crypto-dh.js
+6Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -471,3 +471,9 @@ assert.throws(
471471
'crypto.getDiffieHellman(\'modp1\').setPublicKey(\'\') ' +
472472
'failed to throw the expected error.'
473473
);
474+
assert.throws(
475+
() => crypto.createDiffieHellman('', true),
476+
{
477+
code: 'ERR_INVALID_ARG_TYPE'
478+
}
479+
);

0 commit comments

Comments
0 (0)
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.