/* * TLS Handshake Hash * (C) 2004-2006,2011,2012 Jack Lloyd * * Botan is released under the Simplified BSD License (see license.txt) */ #include #include #include #include namespace Botan { namespace TLS { /** * Return a TLS Handshake Hash */ secure_vector Handshake_Hash::final(Protocol_Version version, const std::string& mac_algo) const { std::unique_ptr hash; if(version.supports_ciphersuite_specific_prf()) { if(mac_algo == "MD5" || mac_algo == "SHA-1") hash.reset(make_a("SHA-256")); else hash.reset(make_a(mac_algo)); } else hash.reset(make_a("Parallel(MD5,SHA-160)")); hash->update(data); return hash->final(); } } }