kernel: SanityChecks: Return an error struct

This reduces libbitcoinkernel's coupling with ui_interface and
translation.
This commit is contained in:
Carl Dong
2022-05-25 18:02:54 -04:00
parent 265d6393bf
commit d87784ac87
4 changed files with 31 additions and 12 deletions

View File

@@ -5,29 +5,26 @@
#include <kernel/checks.h>
#include <key.h>
#include <node/ui_interface.h>
#include <random.h>
#include <util/time.h>
#include <util/translation.h>
#include <memory>
namespace kernel {
bool SanityChecks(const Context&) {
std::optional<SanityCheckError> SanityChecks(const Context&)
{
if (!ECC_InitSanityCheck()) {
return InitError(Untranslated("Elliptic curve cryptography sanity check failure. Aborting."));
return SanityCheckError::ERROR_ECC;
}
if (!Random_SanityCheck()) {
return InitError(Untranslated("OS cryptographic RNG sanity check failure. Aborting."));
return SanityCheckError::ERROR_RANDOM;
}
if (!ChronoSanityCheck()) {
return InitError(Untranslated("Clock epoch mismatch. Aborting."));
return SanityCheckError::ERROR_CHRONO;
}
return true;
return std::nullopt;
}
}