ndn-cxx: NDN C++ Library 0.9.0-33-g832ea91d
Loading...
Searching...
No Matches
validation-error.hpp
Go to the documentation of this file.
1/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2/*
3 * Copyright (c) 2013-2024 Regents of the University of California.
4 *
5 * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
6 *
7 * ndn-cxx library is free software: you can redistribute it and/or modify it under the
8 * terms of the GNU Lesser General Public License as published by the Free Software
9 * Foundation, either version 3 of the License, or (at your option) any later version.
10 *
11 * ndn-cxx library is distributed in the hope that it will be useful, but WITHOUT ANY
12 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13 * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
14 *
15 * You should have received copies of the GNU General Public License and GNU Lesser
16 * General Public License along with ndn-cxx, e.g., in COPYING.md file. If not, see
17 * <http://www.gnu.org/licenses/>.
18 *
19 * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
20 */
21
22#ifndef NDN_CXX_SECURITY_VALIDATION_ERROR_HPP
23#define NDN_CXX_SECURITY_VALIDATION_ERROR_HPP
24
25#include <cstdint>
26#include <iosfwd>
27#include <string>
28
29namespace ndn::security {
30
35{
36public:
69
74 ValidationError(uint32_t code, const std::string& info = "")
75 : m_code(static_cast<Code>(code))
76 , m_info(info)
77 {
78 }
79
80 Code
81 getCode() const
82 {
83 return m_code;
84 }
85
86 const std::string&
87 getInfo() const
88 {
89 return m_info;
90 }
91
92private:
93 void
94 print(std::ostream& os) const;
95
96 // hidden friend non-member operator, must be defined inline
97 friend std::ostream&
98 operator<<(std::ostream& os, const ValidationError& err)
99 {
100 err.print(os);
101 return os;
102 }
103
104private:
105 Code m_code;
106 std::string m_info;
107};
108
109std::ostream&
110operator<<(std::ostream& os, ValidationError::Code code);
111
112} // namespace ndn::security
113
114#endif // NDN_CXX_SECURITY_VALIDATION_ERROR_HPP
Validation error code and optional detailed error message.
ValidationError(uint32_t code, const std::string &info="")
ValidationError is implicitly constructible from an integer error code and an optional info string.
const std::string & getInfo() const
Code
Known error codes that can be returned by the Validator interface.
@ CANNOT_RETRIEVE_CERT
The certificate cannot be retrieved.
@ INVALID_KEY_LOCATOR
The KeyLocator element is missing or has an invalid format.
@ EXCEEDED_DEPTH_LIMIT
Exceeded validation depth limit.
@ MALFORMED_CERT
The certificate is malformed.
@ EXPIRED_CERT
The certificate expired or is not yet valid.
@ POLICY_ERROR
The packet violates the validation rules enforced by the policy.
@ INVALID_SIGNATURE
Signature verification failed.
@ IMPLEMENTATION_ERROR
Internal implementation error.
@ USER_MIN
Third-party validator implementations can use error codes greater than or equal to this value to indi...
@ LOOP_DETECTED
Loop detected in the certification chain.
@ MALFORMED_SIGNATURE
The signature (e.g., SignatureInfo element) is missing or malformed.
friend std::ostream & operator<<(std::ostream &os, const ValidationError &err)
Contains the ndn-cxx security framework.
std::ostream & operator<<(std::ostream &os, const AdditionalDescription &desc)
SignatureInfo info