aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/tls/tls_handshake_hash.cpp
diff options
context:
space:
mode:
authorRenĂ© Korthaus <[email protected]>2016-07-04 14:21:40 +0200
committerRenĂ© Korthaus <[email protected]>2016-07-04 17:40:06 +0200
commit1fc4b37302c0b595153bfa96dab9d765d027839a (patch)
treef9e1d30145799821022e03ef3801b20555b8d90d /src/lib/tls/tls_handshake_hash.cpp
parent696a8319d1f0652a301b6340bf4f0229090139f4 (diff)
Various fixes with bsi module policy
Diffstat (limited to 'src/lib/tls/tls_handshake_hash.cpp')
-rw-r--r--src/lib/tls/tls_handshake_hash.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/lib/tls/tls_handshake_hash.cpp b/src/lib/tls/tls_handshake_hash.cpp
index 00b8d744c..4f78bebbc 100644
--- a/src/lib/tls/tls_handshake_hash.cpp
+++ b/src/lib/tls/tls_handshake_hash.cpp
@@ -21,14 +21,19 @@ secure_vector<byte> Handshake_Hash::final(Protocol_Version version,
{
auto choose_hash = [=]() {
if(!version.supports_ciphersuite_specific_prf())
- return "Parallel(MD5,SHA-160)";;
+ return "Parallel(MD5,SHA-160)";
if(mac_algo == "MD5" || mac_algo == "SHA-1")
return "SHA-256";
return mac_algo.c_str();
};
- std::unique_ptr<HashFunction> hash(HashFunction::create(choose_hash()));
+ const std::string hash_algo = choose_hash();
+ std::unique_ptr<HashFunction> hash(HashFunction::create(hash_algo));
+ if(!hash)
+ {
+ throw Algorithm_Not_Found(hash_algo);
+ }
hash->update(m_data);
return hash->final();
}