8#include <botan/internal/tls_messages.h>
9#include <botan/internal/tls_reader.h>
10#include <botan/pubkey.h>
13#include <botan/loadstor.h>
26 std::string padding =
"";
30 padding =
"EMSA3(TLS.Digest.0)";
33 padding =
"EMSA1(SHA-1)";
38 " is invalid/unknown for TLS signatures");
40 PK_Signer signer(*priv_key, padding, format);
64void Certificate_Verify::deserialize(
const MemoryRegion<byte>& buf)
66 TLS_Data_Reader reader(buf);
67 signature = reader.get_range<
byte>(2, 0, 65535);
80 std::string padding =
"";
83 if(key->algo_name() ==
"RSA")
84 padding =
"EMSA3(TLS.Digest.0)";
85 else if(key->algo_name() ==
"DSA")
87 padding =
"EMSA1(SHA-1)";
92 " is invalid/unknown for TLS signatures");
bool verify(const X509_Certificate &, HandshakeHash &)
Certificate_Verify(RandomNumberGenerator &rng, Record_Writer &, HandshakeHash &, const Private_Key *)
SecureVector< byte > final()
void send(Record_Writer &, HandshakeHash &) const
SecureVector< byte > sign_message(const byte in[], size_t length, RandomNumberGenerator &rng)
bool verify_message(const byte msg[], size_t msg_length, const byte sig[], size_t sig_length)
virtual std::string algo_name() const =0
Public_Key * subject_public_key() const
byte get_byte(size_t byte_num, T input)
std::invalid_argument Invalid_Argument