@@ -4194,24 +4194,20 @@ void Sign::SignFinal(const FunctionCallbackInfo<Value>& args) {
41944194 unsigned int md_len;
41954195
41964196 unsigned int len = args.Length ();
4197- enum encoding encoding = BUFFER;
4198- if (len >= 2 ) {
4199- encoding = ParseEncoding (env->isolate (), args[1 ], BUFFER);
4200- }
42014197
4202- node::Utf8Value passphrase (env->isolate (), args[2 ]);
4198+ node::Utf8Value passphrase (env->isolate (), args[1 ]);
42034199
42044200 THROW_AND_RETURN_IF_NOT_BUFFER (args[0 ], " Data" );
42054201 size_t buf_len = Buffer::Length (args[0 ]);
42064202 char * buf = Buffer::Data (args[0 ]);
42074203
4208- CHECK (args[3 ]->IsInt32 ());
4209- Maybe<int32_t > maybe_padding = args[3 ]->Int32Value (env->context ());
4204+ CHECK (args[2 ]->IsInt32 ());
4205+ Maybe<int32_t > maybe_padding = args[2 ]->Int32Value (env->context ());
42104206 CHECK (maybe_padding.IsJust ());
42114207 int padding = maybe_padding.ToChecked ();
42124208
4213- CHECK (args[4 ]->IsInt32 ());
4214- Maybe<int32_t > maybe_salt_len = args[4 ]->Int32Value (env->context ());
4209+ CHECK (args[3 ]->IsInt32 ());
4210+ Maybe<int32_t > maybe_salt_len = args[3 ]->Int32Value (env->context ());
42154211 CHECK (maybe_salt_len.IsJust ());
42164212 int salt_len = maybe_salt_len.ToChecked ();
42174213
@@ -4224,7 +4220,7 @@ void Sign::SignFinal(const FunctionCallbackInfo<Value>& args) {
42244220 Error err = sign->SignFinal (
42254221 buf,
42264222 buf_len,
4227- len >= 3 && !args[2 ]->IsNull () ? *passphrase : nullptr ,
4223+ len >= 2 && !args[1 ]->IsNull () ? *passphrase : nullptr ,
42284224 &md_value,
42294225 &md_len,
42304226 padding,
@@ -4236,10 +4232,9 @@ void Sign::SignFinal(const FunctionCallbackInfo<Value>& args) {
42364232 return sign->CheckThrow (err);
42374233 }
42384234
4239- Local<Value> rc = StringBytes::Encode (env->isolate (),
4240- reinterpret_cast <const char *>(md_value),
4241- md_len,
4242- encoding);
4235+ Local<Object> rc = Buffer::Copy (env->isolate (),
4236+ reinterpret_cast <const char *>(md_value),
4237+ md_len).ToLocalChecked ();
42434238 delete[] md_value;
42444239 args.GetReturnValue ().Set (rc);
42454240}
@@ -4442,42 +4437,22 @@ void Verify::VerifyFinal(const FunctionCallbackInfo<Value>& args) {
44424437
44434438 THROW_AND_RETURN_IF_NOT_STRING_OR_BUFFER (args[1 ], " Hash" );
44444439
4445- enum encoding encoding = UTF8;
4446- if (args.Length () >= 3 ) {
4447- encoding = ParseEncoding (env->isolate (), args[2 ], UTF8);
4448- }
4449-
4450- ssize_t hlen = StringBytes::Size (env->isolate (), args[1 ], encoding);
4451-
4452- // only copy if we need to, because it's a string.
4453- char * hbuf;
4454- if (args[1 ]->IsString ()) {
4455- hbuf = new char [hlen];
4456- ssize_t hwritten = StringBytes::Write (env->isolate (),
4457- hbuf,
4458- hlen,
4459- args[1 ],
4460- encoding);
4461- CHECK_EQ (hwritten, hlen);
4462- } else {
4463- hbuf = Buffer::Data (args[1 ]);
4464- }
4440+ char * hbuf = Buffer::Data (args[1 ]);
4441+ ssize_t hlen = Buffer::Length (args[1 ]);
44654442
4466- CHECK (args[3 ]->IsInt32 ());
4467- Maybe<int32_t > maybe_padding = args[3 ]->Int32Value (env->context ());
4443+ CHECK (args[2 ]->IsInt32 ());
4444+ Maybe<int32_t > maybe_padding = args[2 ]->Int32Value (env->context ());
44684445 CHECK (maybe_padding.IsJust ());
44694446 int padding = maybe_padding.ToChecked ();
44704447
4471- CHECK (args[4 ]->IsInt32 ());
4472- Maybe<int32_t > maybe_salt_len = args[4 ]->Int32Value (env->context ());
4448+ CHECK (args[3 ]->IsInt32 ());
4449+ Maybe<int32_t > maybe_salt_len = args[3 ]->Int32Value (env->context ());
44734450 CHECK (maybe_salt_len.IsJust ());
44744451 int salt_len = maybe_salt_len.ToChecked ();
44754452
44764453 bool verify_result;
44774454 Error err = verify->VerifyFinal (kbuf, klen, hbuf, hlen, padding, salt_len,
44784455 &verify_result);
4479- if (args[1 ]->IsString ())
4480- delete[] hbuf;
44814456 if (err != kSignOk )
44824457 return verify->CheckThrow (err);
44834458 args.GetReturnValue ().Set (verify_result);
0 commit comments