/ src / kernel / checks.cpp
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  }