/* * TLS Handshake Hash * (C) 2004-2006,2011 Jack Lloyd * * Released under the terms of the Botan license */ #ifndef BOTAN_TLS_HANDSHAKE_HASH_H__ #define BOTAN_TLS_HANDSHAKE_HASH_H__ #include #include #include namespace Botan { namespace TLS { using namespace Botan; /** * TLS Handshake Hash */ class Handshake_Hash { public: void update(const byte in[], size_t length) { data += std::make_pair(in, length); } void update(const MemoryRegion& in) { data += in; } void update(byte in) { data.push_back(in); } void update(Handshake_Type handshake_type, const MemoryRegion& handshake_msg); SecureVector final(Protocol_Version version, const std::string& mac_algo); SecureVector final_ssl3(const MemoryRegion& master_secret); const SecureVector& get_contents() const { return data; } private: SecureVector data; }; } } #endif