8 #include <botan/tls_messages.h>
9 #include <botan/tls_extensions.h>
10 #include <botan/internal/tls_reader.h>
11 #include <botan/internal/tls_handshake_io.h>
12 #include <botan/internal/tls_handshake_state.h>
29 std::pair<std::string, Signature_Format> format =
32 PK_Signer signer(*priv_key, rng, format.first, format.second);
53 m_signature = reader.
get_range<uint8_t>(2, 0, 65535);
59 std::vector<uint8_t> Certificate_Verify::serialize()
const
61 std::vector<uint8_t> buf;
63 if(!m_hash_algo.empty() && !m_sig_algo.empty())
69 const uint16_t sig_len =
static_cast<uint16_t
>(m_signature.size());
82 const Policy& policy)
const
88 std::pair<std::string, Signature_Format> format =
92 PK_Verifier verifier(*key, format.first, format.second);
94 const bool signature_valid =
97 #if defined(BOTAN_UNSAFE_FUZZER_MODE)
100 return signature_valid;
virtual std::vector< uint8_t > send(const Handshake_Message &msg)=0
const std::vector< uint8_t > & get_contents() const
static uint8_t sig_algo_code(const std::string &name)
std::pair< std::string, Signature_Format > parse_sig_format(const Public_Key &key, const std::string &hash_algo, const std::string &sig_algo, bool for_client_auth, const Policy &policy) const
Certificate_Verify(Handshake_IO &io, Handshake_State &state, const Policy &policy, RandomNumberGenerator &rng, const Private_Key *key)
bool verify_message(const uint8_t msg[], size_t msg_length, const uint8_t sig[], size_t sig_length)
std::vector< uint8_t > sign_message(const uint8_t in[], size_t length, RandomNumberGenerator &rng)
static uint8_t hash_algo_code(const std::string &name)
#define BOTAN_ASSERT_NONNULL(ptr)
std::vector< T > get_range(size_t len_bytes, size_t min_elems, size_t max_elems)
void update(const uint8_t in[], size_t length)
static std::string sig_algo_name(uint8_t code)
virtual void check_peer_key_acceptable(const Public_Key &public_key) const
bool verify(const X509_Certificate &cert, const Handshake_State &state, const Policy &policy) const
uint8_t get_byte(size_t byte_num, T input)
Public_Key * subject_public_key() const
std::pair< std::string, Signature_Format > choose_sig_format(const Private_Key &key, std::string &hash_algo, std::string &sig_algo, bool for_client_auth, const Policy &policy) const
bool supports_negotiable_signature_algorithms() const
static std::string hash_algo_name(uint8_t code)