8 #include <botan/internal/tls_messages.h> 9 #include <botan/internal/tls_reader.h> 10 #include <botan/pubkey.h> 11 #include <botan/rsa.h> 12 #include <botan/dsa.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);
42 signature = signer.sign_message(hash.
final(), rng);
64 void 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");
95 return verifier.verify_message(hash.
final(), signature);
void send(Record_Writer &, HandshakeHash &) const
bool verify(const X509_Certificate &, HandshakeHash &)
virtual std::string algo_name() const =0
std::invalid_argument Invalid_Argument
byte get_byte(size_t byte_num, T input)
Certificate_Verify(RandomNumberGenerator &rng, Record_Writer &, HandshakeHash &, const Private_Key *)
Public_Key * subject_public_key() const
SecureVector< byte > final()