diff --git a/src/Volume/Hash.cpp b/src/Volume/Hash.cpp index ed95b741..aeece9ab 100644 --- a/src/Volume/Hash.cpp +++ b/src/Volume/Hash.cpp @@ -30,6 +30,7 @@ namespace VeraCrypt l.push_back (shared_ptr (new Blake2s ())); l.push_back (shared_ptr (new Whirlpool ())); l.push_back (shared_ptr (new Streebog ())); + l.push_back (shared_ptr (new Blake2b ())); #endif return l; } diff --git a/src/Volume/Pkcs5Kdf.cpp b/src/Volume/Pkcs5Kdf.cpp index ad589aae..8134ad20 100644 --- a/src/Volume/Pkcs5Kdf.cpp +++ b/src/Volume/Pkcs5Kdf.cpp @@ -62,11 +62,11 @@ namespace VeraCrypt shared_ptr Pkcs5Kdf::GetAlgorithm (const Hash &hash) { + // Match the KDF whose underlying hash is the requested one. Argon2 + // (whose underlying hash is BLAKE2b-512) is included, so a BLAKE2b-512 + // hash maps to the Argon2 KDF. foreach (shared_ptr kdf, GetAvailableAlgorithms()) { - if (kdf->IsArgon2()) - continue; - if (typeid (*kdf->GetHash()) == typeid (hash)) return kdf; }