Skip to content

Commit 7354479

Browse files
eladkishontargos
authored andcommitted
crypto: fix DiffieHellman generator validation
PR-URL: #38311 Fixes: #38302 Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Benjamin Gruenbaum <[email protected]> Reviewed-By: Minwoo Jung <[email protected]> Reviewed-By: Darshan Sen <[email protected]>
1 parent 5b393d9 commit 7354479

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

lib/internal/crypto/diffiehellman.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -122,9 +122,9 @@ function DiffieHellman(sizeOrKey, keyEncoding, generator, genEncoding) {
122122
generator = DH_GENERATOR;
123123
} else if (typeof generator === 'number') {
124124
validateInt32(generator, 'generator');
125-
} else if (generator !== true) {
125+
} else if (typeof generator === 'string') {
126126
generator = toBuf(generator, genEncoding);
127-
} else {
127+
} else if (!isArrayBufferView(generator) && !isAnyArrayBuffer(generator)) {
128128
throw new ERR_INVALID_ARG_TYPE(
129129
'generator',
130130
['number', 'string', 'ArrayBuffer', 'Buffer', 'TypedArray', 'DataView'],

test/parallel/test-crypto-dh.js

+4
Original file line numberDiff line numberDiff line change
@@ -495,3 +495,7 @@ assert.throws(
495495
code: 'ERR_INVALID_ARG_TYPE'
496496
}
497497
);
498+
[true, Symbol(), {}, () => {}, []].forEach((generator) => assert.throws(
499+
() => crypto.createDiffieHellman('', 'base64', generator),
500+
{ code: 'ERR_INVALID_ARG_TYPE' }
501+
));

0 commit comments

Comments
 (0)