34     case ValidationError::Code::NO_ERROR:
 
   35       return os << 
"No error";
 
   36     case ValidationError::Code::INVALID_SIGNATURE:
 
   37       return os << 
"Invalid signature";
 
   38     case ValidationError::Code::NO_SIGNATURE:
 
   39       return os << 
"Missing signature";
 
   40     case ValidationError::Code::CANNOT_RETRIEVE_CERT:
 
   41       return os << 
"Cannot retrieve certificate";
 
   42     case ValidationError::Code::EXPIRED_CERT:
 
   43       return os << 
"Certificate expired";
 
   44     case ValidationError::Code::LOOP_DETECTED:
 
   45       return os << 
"Loop detected in certification chain";
 
   46     case ValidationError::Code::MALFORMED_CERT:
 
   47       return os << 
"Malformed certificate";
 
   48     case ValidationError::Code::EXCEEDED_DEPTH_LIMIT:
 
   49       return os << 
"Exceeded validation depth limit";
 
   50     case ValidationError::Code::INVALID_KEY_LOCATOR:
 
   51       return os << 
"Key locator violates validation policy";
 
   52     case ValidationError::Code::POLICY_ERROR:
 
   53       return os << 
"Validation policy error";
 
   54     case ValidationError::Code::IMPLEMENTATION_ERROR:
 
   55       return os << 
"Internal implementation error";
 
   56     case ValidationError::Code::USER_MIN:
 
   59   if (code >= ValidationError::Code::USER_MIN) {
 
   63     return os << 
"Unrecognized error code " << 
to_underlying(code);
 
   70   os << static_cast<ValidationError::Code>(error.
getCode());
 
   72     os << 
" (" << error.
getInfo() << 
")";
 
Validation error code and optional detailed error message.
 
const std::string & getInfo() const
 
Code
Known validation error codes.
 
std::ostream & operator<<(std::ostream &os, const AdditionalDescription &desc)
 
constexpr std::underlying_type_t< T > to_underlying(T val) noexcept