summaryrefslogtreecommitdiff
path: root/src/node_crypto.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/node_crypto.cc')
-rw-r--r--src/node_crypto.cc15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/node_crypto.cc b/src/node_crypto.cc
index 70da2e310e..f1c7d1796a 100644
--- a/src/node_crypto.cc
+++ b/src/node_crypto.cc
@@ -4317,8 +4317,9 @@ void CipherBase::Update(const FunctionCallbackInfo<Value>& args) {
// Only copy the data if we have to, because it's a string
if (args[0]->IsString()) {
StringBytes::InlineDecoder decoder;
- if (!decoder.Decode(env, args[0].As<String>(), args[1], UTF8)
- .FromMaybe(false))
+ enum encoding enc = ParseEncoding(env->isolate(), args[1], UTF8);
+
+ if (decoder.Decode(env, args[0].As<String>(), enc).IsNothing())
return;
r = cipher->Update(decoder.out(), decoder.size(), &out);
} else {
@@ -4501,8 +4502,9 @@ void Hmac::HmacUpdate(const FunctionCallbackInfo<Value>& args) {
bool r = false;
if (args[0]->IsString()) {
StringBytes::InlineDecoder decoder;
- if (decoder.Decode(env, args[0].As<String>(), args[1], UTF8)
- .FromMaybe(false)) {
+ enum encoding enc = ParseEncoding(env->isolate(), args[1], UTF8);
+
+ if (!decoder.Decode(env, args[0].As<String>(), enc).IsNothing()) {
r = hmac->HmacUpdate(decoder.out(), decoder.size());
}
} else {
@@ -4626,8 +4628,9 @@ void Hash::HashUpdate(const FunctionCallbackInfo<Value>& args) {
bool r = true;
if (args[0]->IsString()) {
StringBytes::InlineDecoder decoder;
- if (!decoder.Decode(env, args[0].As<String>(), args[1], UTF8)
- .FromMaybe(false)) {
+ enum encoding enc = ParseEncoding(env->isolate(), args[1], UTF8);
+
+ if (decoder.Decode(env, args[0].As<String>(), enc).IsNothing()) {
args.GetReturnValue().Set(false);
return;
}