diff options
author | lloyd <[email protected]> | 2010-03-01 17:24:26 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2010-03-01 17:24:26 +0000 |
commit | af752a4fb655723d6bda88278d258d893c9dac5e (patch) | |
tree | 0724959477eab74b7305258f690de1a93b4bde82 /src/constructs/passhash | |
parent | 4daa551d9f75fa1233fb1e94fcddcf1833f9ce74 (diff) |
passhash9: Ensure that choose_pbkdf_prf returns a PRF if possible
Diffstat (limited to 'src/constructs/passhash')
-rw-r--r-- | src/constructs/passhash/passhash9.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/constructs/passhash/passhash9.cpp b/src/constructs/passhash/passhash9.cpp index 9e5ff3257..b869e2812 100644 --- a/src/constructs/passhash/passhash9.cpp +++ b/src/constructs/passhash/passhash9.cpp @@ -37,8 +37,14 @@ MessageAuthenticationCode* get_pbkdf_prf(byte alg_id) std::pair<byte, MessageAuthenticationCode*> choose_pbkdf_prf() { - byte alg_id = 0; - return std::make_pair(alg_id, get_pbkdf_prf(alg_id)); + for(byte alg_id = 0; alg_id != 255; ++alg_id) + { + MessageAuthenticationCode* prf = get_pbkdf_prf(alg_id); + if(prf) + return std::make_pair(alg_id, prf); + } + + throw Internal_Error("Passhash9: No PRF available"); } } |