@@ -3572,22 +3572,20 @@ static MallocedBuffer<unsigned char> Node_SignFinal(EVPMDPointer&& mdctx,
3572
3572
return MallocedBuffer<unsigned char >();
3573
3573
}
3574
3574
3575
- std::pair<SignBase::Error, MallocedBuffer< unsigned char >> Sign::SignFinal (
3575
+ Sign::SignResult Sign::SignFinal (
3576
3576
const char * key_pem,
3577
3577
int key_pem_len,
3578
3578
const char * passphrase,
3579
3579
int padding,
3580
3580
int salt_len) {
3581
- MallocedBuffer<unsigned char > buffer;
3582
-
3583
3581
if (!mdctx_)
3584
- return std::make_pair (kSignNotInitialised , std::move (buffer) );
3582
+ return SignResult (kSignNotInitialised );
3585
3583
3586
3584
EVPMDPointer mdctx = std::move (mdctx_);
3587
3585
3588
3586
BIOPointer bp (BIO_new_mem_buf (const_cast <char *>(key_pem), key_pem_len));
3589
3587
if (!bp)
3590
- return std::make_pair (kSignPrivateKey , std::move (buffer) );
3588
+ return SignResult (kSignPrivateKey );
3591
3589
3592
3590
EVPKeyPointer pkey (PEM_read_bio_PrivateKey (bp.get (),
3593
3591
nullptr ,
@@ -3598,7 +3596,7 @@ std::pair<SignBase::Error, MallocedBuffer<unsigned char>> Sign::SignFinal(
3598
3596
// without `pkey` being set to nullptr;
3599
3597
// cf. the test of `test_bad_rsa_privkey.pem` for an example.
3600
3598
if (!pkey || 0 != ERR_peek_error ())
3601
- return std::make_pair (kSignPrivateKey , std::move (buffer) );
3599
+ return SignResult (kSignPrivateKey );
3602
3600
3603
3601
#ifdef NODE_FIPS_MODE
3604
3602
/* Validate DSA2 parameters from FIPS 186-4 */
@@ -3622,9 +3620,10 @@ std::pair<SignBase::Error, MallocedBuffer<unsigned char>> Sign::SignFinal(
3622
3620
}
3623
3621
#endif // NODE_FIPS_MODE
3624
3622
3625
- buffer = Node_SignFinal (std::move (mdctx), pkey, padding, salt_len);
3623
+ MallocedBuffer<unsigned char > buffer =
3624
+ Node_SignFinal (std::move (mdctx), pkey, padding, salt_len);
3626
3625
Error error = buffer.is_empty () ? kSignPrivateKey : kSignOk ;
3627
- return std::make_pair (error, std::move (buffer));
3626
+ return SignResult (error, std::move (buffer));
3628
3627
}
3629
3628
3630
3629
@@ -3649,18 +3648,18 @@ void Sign::SignFinal(const FunctionCallbackInfo<Value>& args) {
3649
3648
3650
3649
ClearErrorOnReturn clear_error_on_return;
3651
3650
3652
- std::pair<Error, MallocedBuffer< unsigned char >> ret = sign->SignFinal (
3651
+ SignResult ret = sign->SignFinal (
3653
3652
buf,
3654
3653
buf_len,
3655
3654
len >= 2 && !args[1 ]->IsNull () ? *passphrase : nullptr ,
3656
3655
padding,
3657
3656
salt_len);
3658
3657
3659
- if (std::get<Error>( ret) != kSignOk )
3660
- return sign->CheckThrow (std::get<Error>( ret) );
3658
+ if (ret. error != kSignOk )
3659
+ return sign->CheckThrow (ret. error );
3661
3660
3662
3661
MallocedBuffer<unsigned char > sig =
3663
- std::move (std::get<MallocedBuffer< unsigned char >>( ret) );
3662
+ std::move (ret. signature );
3664
3663
3665
3664
Local<Object> rc =
3666
3665
Buffer::New (env, reinterpret_cast <char *>(sig.release ()), sig.size )
0 commit comments