35 const uint8_t* contents,
42 contents, contents_size, sig, sig_size, md_type);
52 std::span<const uint8_t> contents,
53 std::span<const uint8_t> sig,
57 contents.data(), contents.size(), sig.data(), sig.size(), md_type);
70 const uint8_t* contents,
78 contents, contents_size, sig, sig_size, md_type, hash_bytes);
88 const std::vector<uint8_t>& contents,
89 const std::vector<uint8_t>& signature,
108 const std::vector<uint8_t>& contents,
109 const std::vector<uint8_t>& signature,
137 return public_key->verify_hash(hash, hash_size, sig, sig_size, md_type);
147 const std::vector<uint8_t>& hash,
148 const std::vector<uint8_t>& signature,
152 hash.data(), hash.size(), signature.data(), signature.size(), md_type);
161 template <
size_t SIZE>
163 const std::array<uint8_t, SIZE>& hash,
164 const std::vector<uint8_t>& signature,
168 hash.data(), hash.size(), signature.data(), signature.size(), md_type);
195 const std::vector<const Pem*>& trusted_certs,
196 const std::vector<const Pem*>& chain = {},
197 bool ignore_time =
false) = 0;
211 const std::chrono::system_clock::time_point& now)
const = 0;
215 const std::chrono::system_clock::time_point& now)
const = 0;
222 const std::optional<std::string>& kid = std::nullopt)
const
259 const std::vector<uint8_t>& der);
virtual double remaining_percentage(const std::chrono::system_clock::time_point &now) const =0
virtual bool verify_hash(const uint8_t *hash, size_t hash_size, const uint8_t *sig, size_t sig_size, MDType md_type=MDType::NONE)
Definition verifier.h:130
virtual bool verify(std::span< const uint8_t > contents, std::span< const uint8_t > sig, MDType md_type=MDType::NONE) const
Definition verifier.h:51
virtual ~Verifier()
Definition verifier.h:21
virtual Pem public_key_pem() const
Definition verifier.h:174
virtual bool verify(const std::vector< uint8_t > &contents, const std::vector< uint8_t > &signature, MDType md_type=MDType::NONE) const
Definition verifier.h:87
bool verify_hash(const std::array< uint8_t, SIZE > &hash, const std::vector< uint8_t > &signature, MDType md_type=MDType::NONE)
Definition verifier.h:162
virtual std::string subject() const =0
virtual bool verify_certificate(const std::vector< const Pem * > &trusted_certs, const std::vector< const Pem * > &chain={}, bool ignore_time=false)=0
virtual bool verify_hash(const std::vector< uint8_t > &hash, const std::vector< uint8_t > &signature, MDType md_type=MDType::NONE)
Definition verifier.h:146
virtual JsonWebKeyECPublic public_key_jwk(const std::optional< std::string > &kid=std::nullopt) const
Definition verifier.h:221
Verifier()
Definition verifier.h:20
virtual bool is_self_signed() const =0
virtual bool verify(const uint8_t *contents, size_t contents_size, const uint8_t *sig, size_t sig_size, MDType md_type, HashBytes &hash_bytes) const
Definition verifier.h:69
virtual std::vector< uint8_t > public_key_der() const
Definition verifier.h:182
virtual std::vector< uint8_t > cert_der()=0
virtual bool verify(const uint8_t *contents, size_t contents_size, const uint8_t *sig, size_t sig_size, MDType md_type=MDType::NONE) const
Definition verifier.h:34
virtual bool verify(const std::vector< uint8_t > &contents, const std::vector< uint8_t > &signature, MDType md_type, HashBytes &hash_bytes) const
Definition verifier.h:107
std::shared_ptr< PublicKey > public_key
Definition verifier.h:17
virtual std::pair< std::string, std::string > validity_period() const =0
virtual size_t remaining_seconds(const std::chrono::system_clock::time_point &now) const =0
virtual std::string serial_number() const =0
ccf::crypto::Pem cert_der_to_pem(const std::vector< uint8_t > &der)
Definition verifier.cpp:33
VerifierUniquePtr make_unique_verifier(const std::vector< uint8_t > &cert)
Definition verifier.cpp:13
std::unique_ptr< Verifier > VerifierUniquePtr
Definition verifier.h:229
ccf::crypto::Pem public_key_pem_from_cert(const std::vector< uint8_t > &der)
Definition verifier.cpp:48
std::vector< uint8_t > HashBytes
Definition hash_bytes.h:10
MDType
Definition md_type.h:10
std::shared_ptr< Verifier > VerifierPtr
Definition verifier.h:228
VerifierPtr make_verifier(const std::vector< uint8_t > &cert)
Definition verifier.cpp:18
std::string get_subject_name(const Pem &cert)
Definition verifier.cpp:53
std::vector< uint8_t > public_key_der_from_cert(const std::vector< uint8_t > &der)
Definition verifier.cpp:43
std::vector< uint8_t > cert_pem_to_der(const Pem &pem)
Definition verifier.cpp:38