@@ -3553,22 +3553,20 @@ static MallocedBuffer<unsigned char> Node_SignFinal(EVPMDPointer&& mdctx,
3553
3553
return MallocedBuffer<unsigned char >();
3554
3554
}
3555
3555
3556
- std::pair<SignBase::Error, MallocedBuffer< unsigned char >> Sign::SignFinal (
3556
+ Sign::SignResult Sign::SignFinal (
3557
3557
const char * key_pem,
3558
3558
int key_pem_len,
3559
3559
const char * passphrase,
3560
3560
int padding,
3561
3561
int salt_len) {
3562
- MallocedBuffer<unsigned char > buffer;
3563
-
3564
3562
if (!mdctx_)
3565
- return std::make_pair (kSignNotInitialised , std::move (buffer) );
3563
+ return SignResult (kSignNotInitialised );
3566
3564
3567
3565
EVPMDPointer mdctx = std::move (mdctx_);
3568
3566
3569
3567
BIOPointer bp (BIO_new_mem_buf (const_cast <char *>(key_pem), key_pem_len));
3570
3568
if (!bp)
3571
- return std::make_pair (kSignPrivateKey , std::move (buffer) );
3569
+ return SignResult (kSignPrivateKey );
3572
3570
3573
3571
EVPKeyPointer pkey (PEM_read_bio_PrivateKey (bp.get (),
3574
3572
nullptr ,
@@ -3579,7 +3577,7 @@ std::pair<SignBase::Error, MallocedBuffer<unsigned char>> Sign::SignFinal(
3579
3577
// without `pkey` being set to nullptr;
3580
3578
// cf. the test of `test_bad_rsa_privkey.pem` for an example.
3581
3579
if (!pkey || 0 != ERR_peek_error ())
3582
- return std::make_pair (kSignPrivateKey , std::move (buffer) );
3580
+ return SignResult (kSignPrivateKey );
3583
3581
3584
3582
#ifdef NODE_FIPS_MODE
3585
3583
/* Validate DSA2 parameters from FIPS 186-4 */
@@ -3603,9 +3601,10 @@ std::pair<SignBase::Error, MallocedBuffer<unsigned char>> Sign::SignFinal(
3603
3601
}
3604
3602
#endif // NODE_FIPS_MODE
3605
3603
3606
- buffer = Node_SignFinal (std::move (mdctx), pkey, padding, salt_len);
3604
+ MallocedBuffer<unsigned char > buffer =
3605
+ Node_SignFinal (std::move (mdctx), pkey, padding, salt_len);
3607
3606
Error error = buffer.is_empty () ? kSignPrivateKey : kSignOk ;
3608
- return std::make_pair (error, std::move (buffer));
3607
+ return SignResult (error, std::move (buffer));
3609
3608
}
3610
3609
3611
3610
@@ -3630,18 +3629,18 @@ void Sign::SignFinal(const FunctionCallbackInfo<Value>& args) {
3630
3629
3631
3630
ClearErrorOnReturn clear_error_on_return;
3632
3631
3633
- std::pair<Error, MallocedBuffer< unsigned char >> ret = sign->SignFinal (
3632
+ SignResult ret = sign->SignFinal (
3634
3633
buf,
3635
3634
buf_len,
3636
3635
len >= 2 && !args[1 ]->IsNull () ? *passphrase : nullptr ,
3637
3636
padding,
3638
3637
salt_len);
3639
3638
3640
- if (std::get<Error>( ret) != kSignOk )
3641
- return sign->CheckThrow (std::get<Error>( ret) );
3639
+ if (ret. error != kSignOk )
3640
+ return sign->CheckThrow (ret. error );
3642
3641
3643
3642
MallocedBuffer<unsigned char > sig =
3644
- std::move (std::get<MallocedBuffer< unsigned char >>( ret) );
3643
+ std::move (ret. signature );
3645
3644
3646
3645
Local<Object> rc =
3647
3646
Buffer::New (env, reinterpret_cast <char *>(sig.release ()), sig.size )
0 commit comments