Skip to content

Commit c795083

Browse files
tniessenUlisesGascon
authored andcommitted
crypto: remove default encoding from Hash/Hmac
getDefaultEncoding() always returns 'buffer' in Node.js 20. It requires some careful justification but the default encoding can be eliminated from hash.js entirely. The reasoning is almost identical with that in #49145 so I won't repeat it here. Refs: #47182 PR-URL: #49167 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com>
1 parent de103a4 commit c795083

1 file changed

Lines changed: 7 additions & 10 deletions

File tree

‎lib/internal/crypto/hash.js‎

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ const {
1414
}=internalBinding('crypto');
1515

1616
const{
17-
getDefaultEncoding,
1817
getStringOption,
1918
jobPromise,
2019
normalizeHashName,
@@ -95,8 +94,6 @@ Hash.prototype._flush = function _flush(callback) {
9594
};
9695

9796
Hash.prototype.update=functionupdate(data,encoding){
98-
encoding=encoding||getDefaultEncoding();
99-
10097
conststate=this[kState];
10198
if(state[kFinalized])
10299
thrownewERR_CRYPTO_HASH_FINALIZED();
@@ -118,10 +115,9 @@ Hash.prototype.digest = function digest(outputEncoding) {
118115
conststate=this[kState];
119116
if(state[kFinalized])
120117
thrownewERR_CRYPTO_HASH_FINALIZED();
121-
outputEncoding=outputEncoding||getDefaultEncoding();
122118

123-
// Explicit conversion for backward compatibility.
124-
constret=this[kHandle].digest(`${outputEncoding}`);
119+
// Explicit conversion of truthy values for backward compatibility.
120+
constret=this[kHandle].digest(outputEncoding&&`${outputEncoding}`);
125121
state[kFinalized]=true;
126122
returnret;
127123
};
@@ -147,15 +143,16 @@ Hmac.prototype.update = Hash.prototype.update;
147143

148144
Hmac.prototype.digest=functiondigest(outputEncoding){
149145
conststate=this[kState];
150-
outputEncoding=outputEncoding||getDefaultEncoding();
151146

152147
if(state[kFinalized]){
153148
constbuf=Buffer.from('');
154-
returnoutputEncoding==='buffer' ? buf : buf.toString(outputEncoding);
149+
if(outputEncoding&&outputEncoding!=='buffer')
150+
returnbuf.toString(outputEncoding);
151+
returnbuf;
155152
}
156153

157-
// Explicit conversion for backward compatibility.
158-
constret=this[kHandle].digest(`${outputEncoding}`);
154+
// Explicit conversion of truthy values for backward compatibility.
155+
constret=this[kHandle].digest(outputEncoding&&`${outputEncoding}`);
159156
state[kFinalized]=true;
160157
returnret;
161158
};

0 commit comments

Comments
 (0)