Skip to content

Commit 7354479

Browse files
eladkishontargos
authored andcommitted
crypto: fix DiffieHellman generator validation
PR-URL: #38311Fixes: #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‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,9 +122,9 @@ function DiffieHellman(sizeOrKey, keyEncoding, generator, genEncoding){
122122
generator=DH_GENERATOR;
123123
}elseif(typeofgenerator==='number'){
124124
validateInt32(generator,'generator');
125-
}elseif(generator!==true){
125+
}elseif(typeofgenerator==='string'){
126126
generator=toBuf(generator,genEncoding);
127-
}else{
127+
}elseif(!isArrayBufferView(generator)&&!isAnyArrayBuffer(generator)){
128128
thrownewERR_INVALID_ARG_TYPE(
129129
'generator',
130130
['number','string','ArrayBuffer','Buffer','TypedArray','DataView'],

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

Lines changed: 4 additions & 0 deletions
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)