@@ -3562,22 +3562,20 @@ static MallocedBuffer<unsigned char> Node_SignFinal(EVPMDPointer&& mdctx,
3562
3562
return MallocedBuffer<unsigned char >();
3563
3563
}
3564
3564
3565
- std::pair<SignBase::Error, MallocedBuffer< unsigned char >> Sign::SignFinal (
3565
+ Sign::SignResult Sign::SignFinal (
3566
3566
const char * key_pem,
3567
3567
int key_pem_len,
3568
3568
const char * passphrase,
3569
3569
int padding,
3570
3570
int salt_len) {
3571
- MallocedBuffer<unsigned char > buffer;
3572
-
3573
3571
if (!mdctx_)
3574
- return std::make_pair (kSignNotInitialised , std::move (buffer) );
3572
+ return SignResult (kSignNotInitialised );
3575
3573
3576
3574
EVPMDPointer mdctx = std::move (mdctx_);
3577
3575
3578
3576
BIOPointer bp (BIO_new_mem_buf (const_cast <char *>(key_pem), key_pem_len));
3579
3577
if (!bp)
3580
- return std::make_pair (kSignPrivateKey , std::move (buffer) );
3578
+ return SignResult (kSignPrivateKey );
3581
3579
3582
3580
EVPKeyPointer pkey (PEM_read_bio_PrivateKey (bp.get (),
3583
3581
nullptr ,
@@ -3588,7 +3586,7 @@ std::pair<SignBase::Error, MallocedBuffer<unsigned char>> Sign::SignFinal(
3588
3586
// without `pkey` being set to nullptr;
3589
3587
// cf. the test of `test_bad_rsa_privkey.pem` for an example.
3590
3588
if (!pkey || 0 != ERR_peek_error ())
3591
- return std::make_pair (kSignPrivateKey , std::move (buffer) );
3589
+ return SignResult (kSignPrivateKey );
3592
3590
3593
3591
#ifdef NODE_FIPS_MODE
3594
3592
/* Validate DSA2 parameters from FIPS 186-4 */
@@ -3612,9 +3610,10 @@ std::pair<SignBase::Error, MallocedBuffer<unsigned char>> Sign::SignFinal(
3612
3610
}
3613
3611
#endif // NODE_FIPS_MODE
3614
3612
3615
- buffer = Node_SignFinal (std::move (mdctx), pkey, padding, salt_len);
3613
+ MallocedBuffer<unsigned char > buffer =
3614
+ Node_SignFinal (std::move (mdctx), pkey, padding, salt_len);
3616
3615
Error error = buffer.is_empty () ? kSignPrivateKey : kSignOk ;
3617
- return std::make_pair (error, std::move (buffer));
3616
+ return SignResult (error, std::move (buffer));
3618
3617
}
3619
3618
3620
3619
@@ -3639,18 +3638,18 @@ void Sign::SignFinal(const FunctionCallbackInfo<Value>& args) {
3639
3638
3640
3639
ClearErrorOnReturn clear_error_on_return;
3641
3640
3642
- std::pair<Error, MallocedBuffer< unsigned char >> ret = sign->SignFinal (
3641
+ SignResult ret = sign->SignFinal (
3643
3642
buf,
3644
3643
buf_len,
3645
3644
len >= 2 && !args[1 ]->IsNull () ? *passphrase : nullptr ,
3646
3645
padding,
3647
3646
salt_len);
3648
3647
3649
- if (std::get<Error>( ret) != kSignOk )
3650
- return sign->CheckThrow (std::get<Error>( ret) );
3648
+ if (ret. error != kSignOk )
3649
+ return sign->CheckThrow (ret. error );
3651
3650
3652
3651
MallocedBuffer<unsigned char > sig =
3653
- std::move (std::get<MallocedBuffer< unsigned char >>( ret) );
3652
+ std::move (ret. signature );
3654
3653
3655
3654
Local<Object> rc =
3656
3655
Buffer::New (env, reinterpret_cast <char *>(sig.release ()), sig.size )
0 commit comments