Branch data Line data Source code
1 : : // Copyright (c) 2022 The Bitcoin Core developers 2 : : // Distributed under the MIT software license, see the accompanying 3 : : // file COPYING or http://www.opensource.org/licenses/mit-license.php. 4 : : 5 : : #include <kernel/context.h> 6 : : 7 : : #include <crypto/sha256.h> 8 : : #include <key.h> 9 : : #include <logging.h> 10 : : #include <pubkey.h> 11 : : #include <random.h> 12 : : 13 : : #include <string> 14 : : 15 : : 16 : : namespace kernel { 17 : : Context* g_context; 18 : : 19 : 1 : Context::Context() 20 : : { 21 [ + - ]: 1 : assert(!g_context); 22 : 1 : g_context = this; 23 [ + - ]: 1 : std::string sha256_algo = SHA256AutoDetect(); 24 [ + - + - : 1 : LogPrintf("Using the '%s' SHA256 implementation\n", sha256_algo); - + ] 25 [ + - ]: 1 : RandomInit(); 26 [ + - ]: 1 : ECC_Start(); 27 : 1 : } 28 : : 29 : 1 : Context::~Context() 30 : : { 31 [ + - ]: 1 : ECC_Stop(); 32 [ + - ]: 1 : assert(g_context); 33 : 1 : g_context = nullptr; 34 : 1 : } 35 : : 36 : : } // namespace kernel