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/checks.h> 6 : : 7 : : #include <key.h> 8 : : #include <random.h> 9 : : #include <util/time.h> 10 : : #include <util/translation.h> 11 : : 12 : : #include <memory> 13 : : 14 : : namespace kernel { 15 : : 16 : 0 : util::Result<void> SanityChecks(const Context&) 17 : : { 18 [ # # ]: 0 : if (!ECC_InitSanityCheck()) { 19 [ # # ][ # # ]: 0 : return util::Error{Untranslated("Elliptic curve cryptography sanity check failure. Aborting.")}; [ # # ] 20 : : } 21 : : 22 [ # # ]: 0 : if (!Random_SanityCheck()) { 23 [ # # ][ # # ]: 0 : return util::Error{Untranslated("OS cryptographic RNG sanity check failure. Aborting.")}; [ # # ] 24 : : } 25 : : 26 [ # # ]: 0 : if (!ChronoSanityCheck()) { 27 [ # # ][ # # ]: 0 : return util::Error{Untranslated("Clock epoch mismatch. Aborting.")}; [ # # ] 28 : : } 29 : : 30 : 0 : return {}; 31 : 0 : } 32 : : 33 : : }