26#ifndef ROUTER_SRC_BOOTSTRAP_SRC_KEYRING_HANDLER_H_ 
   27#define ROUTER_SRC_BOOTSTRAP_SRC_KEYRING_HANDLER_H_ 
   43      if (is_service) 
return false;
 
   56    if (config.
has_any(
"metadata_cache")) {
 
   57      const auto &metadata_caches = config.
get(
"metadata_cache");
 
   58      for (
const auto §ion : metadata_caches) {
 
   59        if (section->has(
"router_id")) {
 
   60          std::istringstream iss(section->get(
"router_id"));
 
   70    std::string master_key =
 
   73      throw std::runtime_error(
"Encryption key is too long");
 
   88          "Cannot fetch master key using master key reader:" +
 
Definition: keyring_handler.h:34
 
void init_keyring_using_external_facility(const mysql_harness::Config &config)
Definition: keyring_handler.h:83
 
bool init(mysql_harness::Config &config, const bool is_service)
Definition: keyring_handler.h:36
 
static uint32_t get_router_id(const mysql_harness::Config &config)
Definition: keyring_handler.h:53
 
KeyringInfo & get_ki()
Definition: keyring_handler.h:50
 
void init_keyring_using_prompted_password()
Definition: keyring_handler.h:69
 
void init_keyring_using_master_key_file()
Definition: keyring_handler.h:78
 
KeyringInfo ki_
Definition: keyring_handler.h:96
 
KeyringInfo class encapsulates loading and storing master key using master-key-reader and master-key-...
Definition: keyring_info.h:76
 
void add_router_id_to_env(uint32_t router_id) const
Adds ROUTER_ID variable to environment.
Definition: keyring_info.cc:173
 
bool use_master_key_file() const noexcept
Checks if mysqlrouter.key and keyring files should be used to store master key.
Definition: keyring_info.cc:190
 
const std::string & get_master_key_file() const noexcept
Definition: keyring_info.h:129
 
void init(mysql_harness::Config &config)
Initializes KeyringInfo using data read from Config.
Definition: keyring_info.cc:70
 
bool read_master_key() noexcept
Reads master key using master_key_reader_;.
Definition: keyring_info.cc:86
 
bool use_master_key_external_facility() const noexcept
Checks if master-key-reader/master-key-writer should be used to load/store master key.
Definition: keyring_info.cc:186
 
const std::string & get_master_key_reader() const noexcept
Definition: keyring_info.h:137
 
const std::string & get_master_key() const noexcept
Definition: keyring_info.h:153
 
const std::string & get_keyring_file() const noexcept
Definition: keyring_info.h:123
 
void validate_master_key() const
Checks if master key is correct: it cannot be empty, and cannot be longer than mysql_harness::kMaxKey...
Definition: keyring_info.cc:194
 
MasterKeyReadError class represents error during reading master key using master-key-reader.
Definition: keyring_info.h:55
 
Configuration.
Definition: config_parser.h:253
 
ConstSectionList get(const std::string §ion) const
Get a list of sections having a name.
Definition: config_parser.cc:237
 
bool has_any(std::string_view section) const
Definition: config_parser.cc:230
 
static const int kMaxKeyringKeyLength
Definition: keyring_manager.h:37
 
HARNESS_EXPORT bool init_keyring(const std::string &keyring_file_path, const std::string &master_key_path, bool create_if_needed)
Initialize an instance of a keyring to be used in the application from the contents of a file,...
Definition: keyring_manager.cc:145
 
HARNESS_EXPORT bool init_keyring_with_key(const std::string &keyring_file_path, const std::string &master_key, bool create_if_needed)
Initialize an instance of a keyring to be used in the application from the contents of a file,...
Definition: keyring_manager.cc:186
 
std::string ROUTER_UTILS_EXPORT prompt_password(const std::string &prompt)
Prompts for a password from the console.
Definition: utils.cc:226
 
struct result result
Definition: result.h:34