common: Add ECC_Context RAII wrapper for ECC_Start/ECC_Stop

This commit is contained in:
Ryan Ofsky 2024-05-07 08:52:55 -04:00 committed by TheCharlatan
parent 6f1d906438
commit 538fedde1d
No known key found for this signature in database
GPG key ID: 9B79B45691DB4173
2 changed files with 24 additions and 0 deletions

View file

@ -457,3 +457,13 @@ void ECC_Stop() {
secp256k1_context_destroy(ctx);
}
}
ECC_Context::ECC_Context()
{
ECC_Start();
}
ECC_Context::~ECC_Context()
{
ECC_Stop();
}

View file

@ -245,4 +245,18 @@ void ECC_Stop();
/** Check that required EC support is available at runtime. */
bool ECC_InitSanityCheck();
/**
* RAII class initializing and deinitializing global state for elliptic curve support.
* Only one instance may be initialized at a time.
*
* In the future global ECC state could be removed, and this class could contain
* state and be passed as an argument to ECC key functions.
*/
class ECC_Context
{
public:
ECC_Context();
~ECC_Context();
};
#endif // BITCOIN_KEY_H