42static const char*
const CA_FILES[] = {
43 "/etc/ssl/certs/ca-certificates.crt",
44 "/etc/pki/tls/certs/ca-bundle.crt",
45 "/etc/ssl/ca-bundle.pem",
50static const char*
const CA_DIRS[] = {
53 "/system/etc/security/cacerts",
58 if (name.size() < 10 || name[8] !=
'.')
return false;
59 for (
size_t i = 0; i < 8; i++) {
60 if (!std::isxdigit(
static_cast<unsigned char>(name[i])))
return false;
62 for (
size_t i = 9; i < name.size(); i++) {
63 if (!std::isdigit(
static_cast<unsigned char>(name[i])))
return false;
74inline ca_paths find_ca_paths(
const char* env_file,
const char* env_dir,
const std::string& default_file,
const std::string& default_dir,
75 const std::function<
bool(
const std::string&)>& is_file,
const std::function<
bool(
const std::string&)>& has_certificates) {
77 if ((env_file !=
nullptr && env_file[0] !=
'\0') || (env_dir !=
nullptr && env_dir[0] !=
'\0'))
return paths;
78 if (!default_file.empty() && is_file(default_file))
return paths;
79 if (!default_dir.empty() && has_certificates(default_dir))
return paths;
80 for (
const char* file : CA_FILES) {
86 for (
const char* dir : CA_DIRS) {
87 if (has_certificates(dir)) {
Copyright (c) Libmonero.
Definition monero_c_tls.h:32
ca_paths find_ca_paths(const char *env_file, const char *env_dir, const std::string &default_file, const std::string &default_dir, const std::function< bool(const std::string &)> &is_file, const std::function< bool(const std::string &)> &has_certificates)
Definition monero_c_tls.h:74
bool is_hashed_certificate_name(const std::string &name)
Definition monero_c_tls.h:57
Definition monero_c_tls.h:35
std::string dir
Definition monero_c_tls.h:37
std::string file
Definition monero_c_tls.h:36