Skip to content

Commit a241deb

Browse files
committed
crypto: Pass encodings for Hmac digest
1 parent c1e8c8d commit a241deb

2 files changed

Lines changed: 9 additions & 6 deletions

File tree

lib/crypto.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -213,10 +213,7 @@ Hash.prototype.update = function(data, encoding) {
213213

214214
Hash.prototype.digest = function(outputEncoding) {
215215
outputEncoding = outputEncoding || exports.DEFAULT_ENCODING;
216-
var ret = this._binding.digest(outputEncoding);
217-
if (outputEncoding !== 'buffer' && Buffer.isBuffer(ret))
218-
ret = ret.toString(outputEncoding);
219-
return ret;
216+
return this._binding.digest(outputEncoding);
220217
};
221218

222219

src/node_crypto.cc

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2761,6 +2761,11 @@ class Hmac : public ObjectWrap {
27612761

27622762
HandleScope scope;
27632763

2764+
enum encoding encoding = BUFFER;
2765+
if (args.Length() >= 1) {
2766+
encoding = ParseEncoding(args[0]->ToString(), BUFFER);
2767+
}
2768+
27642769
unsigned char* md_value = NULL;
27652770
unsigned int md_len = 0;
27662771
Local<Value> outString;
@@ -2771,9 +2776,10 @@ class Hmac : public ObjectWrap {
27712776
md_len = 0;
27722777
}
27732778

2774-
outString = Encode(md_value, md_len, BUFFER);
2779+
outString = StringBytes::Encode(
2780+
reinterpret_cast<const char*>(md_value), md_len, encoding);
27752781

2776-
delete [] md_value;
2782+
delete[] md_value;
27772783
return scope.Close(outString);
27782784
}
27792785

0 commit comments

Comments
 (0)