checks.cpp
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 util::Result<void> SanityChecks(const Context&) 17 { 18 if (!ECC_InitSanityCheck()) { 19 return util::Error{Untranslated("Elliptic curve cryptography sanity check failure. Aborting.")}; 20 } 21 22 if (!Random_SanityCheck()) { 23 return util::Error{Untranslated("OS cryptographic RNG sanity check failure. Aborting.")}; 24 } 25 26 if (!ChronoSanityCheck()) { 27 return util::Error{Untranslated("Clock epoch mismatch. Aborting.")}; 28 } 29 30 return {}; 31 } 32 33 }