19 "X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER",
20 "X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION",
21 "X509_V_ERR_KEYUSAGE_NO_CRL_SIGN",
22 "X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION",
23 "X509_V_ERR_INVALID_NON_CA",
24 "X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED",
25 "X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE",
26 "X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED",
27 "X509_V_ERR_INVALID_EXTENSION",
28 "X509_V_ERR_INVALID_POLICY_EXTENSION",
29 "X509_V_ERR_NO_EXPLICIT_POLICY",
30 "X509_V_ERR_DIFFERENT_CRL_SCOPE",
31 "X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE",
32 "X509_V_ERR_UNNESTED_RESOURCE",
33 "X509_V_ERR_PERMITTED_VIOLATION",
34 "X509_V_ERR_EXCLUDED_VIOLATION",
35 "X509_V_ERR_SUBTREE_MINMAX",
36 "X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE",
37 "X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX",
38 "X509_V_ERR_UNSUPPORTED_NAME_SYNTAX",
39 "X509_V_ERR_CRL_PATH_VALIDATION_ERROR",
40 "X509_V_ERR_PATH_LOOP",
41 "X509_V_ERR_SUITE_B_INVALID_VERSION",
42 "X509_V_ERR_SUITE_B_INVALID_ALGORITHM",
43 "X509_V_ERR_SUITE_B_INVALID_CURVE",
44 "X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM",
45 "X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED",
46 "X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256",
47 "X509_V_ERR_HOSTNAME_MISMATCH",
48 "X509_V_ERR_EMAIL_MISMATCH",
49 "X509_V_ERR_IP_ADDRESS_MISMATCH",
50 "X509_V_ERR_DANE_NO_MATCH",
51 "X509_V_ERR_EE_KEY_TOO_SMALL",
52 "X509_V_ERR_CA_KEY_TOO_SMALL",
53 "X509_V_ERR_CA_MD_TOO_WEAK",
54 "X509_V_ERR_INVALID_CALL",
55 "X509_V_ERR_STORE_LOOKUP",
56 "X509_V_ERR_NO_VALID_SCTS",
57 "X509_V_ERR_PROXY_SUBJECT_NAME_VIOLATION",
58 "X509_V_ERR_OCSP_VERIFY_NEEDED",
59 "X509_V_ERR_OCSP_VERIFY_FAILED",
60 "X509_V_ERR_OCSP_CERT_UNKNOWN",
73 X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN,
74 X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE,
75 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT,
76 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY,
77 X509_V_ERR_CERT_UNTRUSTED, SSL_ERROR_NONE
116 if (ssl_error != SSL_ERROR_NONE) {
117 errors.emplace(ssl_error);
122 const long int value = strtol(name,
nullptr, 0);
125 errors.emplace(value);
128 fatalf(
"Too small or too big TLS error code '%s'", name);
137 assert(it->second[0] != SSL_ERROR_NONE);
138 for (
int i = 0; it->second[i] != SSL_ERROR_NONE; ++i) {
139 errors.emplace(it->second[i]);
144 fatalf(
"Unknown TLS error name '%s'", name);
161 if (
const auto detail = ErrorDetailsManager::GetInstance().findDefaultDetail(value))
162 return detail->descr;
void fatalf(const char *fmt,...)
int ErrorCode
Squid-defined error code (<0), an error code returned by X.509 API, or zero.
std::unordered_set< Security::ErrorCode > Errors
bool ErrorIsOptional(const char *name)
Security::ErrorCode GetErrorCode(const char *name)
The Security::ErrorCode code of the error described by "name".
bool ParseErrorString(const char *name, Security::Errors &)
std::optional< SBuf > GetErrorDescr(Security::ErrorCode)
@ SQUID_X509_V_ERR_DOMAIN_MISMATCH
SslErrorShortcuts TheSslErrorShortcuts
static const Security::ErrorCode notYetValid[]
static const Security::ErrorCode domainMismatch[]
static const Security::ErrorCode hasExpired[]
static const char * OptionalSslErrors[]
std::map< std::string, const Security::ErrorCode * > SslErrorShortcuts
static const Security::ErrorCode certSelfSigned[]
static const Security::ErrorCode certUntrusted[]
static void loadSslErrorShortcutsMap()
static SslErrorAlias TheSslErrorShortcutsArray[]
const Security::ErrorCode * errors