diff options
author | lloyd <[email protected]> | 2010-04-23 12:53:06 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2010-04-23 12:53:06 +0000 |
commit | 70787ef941d709680d3fc0862c807ac6af4fdc61 (patch) | |
tree | 3f329b6caaf876bb9d52132d56d74effe41c63e8 | |
parent | 5285c91f975c319078f6de7ad4568ce7f925bd6b (diff) |
Check to make sure the user didn't provide two of the same has for
Comb4P. If you do this, the first N bytes are all zero, which could
expose some problems, especially if the caller truncates or is relying
on Comb4P acting like a random function.
-rw-r--r-- | src/hash/comb4p/comb4p.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/hash/comb4p/comb4p.cpp b/src/hash/comb4p/comb4p.cpp index 1afc5c8e7..6ae36b9d3 100644 --- a/src/hash/comb4p/comb4p.cpp +++ b/src/hash/comb4p/comb4p.cpp @@ -52,6 +52,9 @@ Comb4P::Comb4P(HashFunction* h1, HashFunction* h2) : comb4p_block_size(h1, h2)), hash1(h1), hash2(h2) { + if(hash1->name() == hash2->name()) + throw std::invalid_argument("Comb4P: Must use two distinct hashes"); + if(hash1->OUTPUT_LENGTH != hash2->OUTPUT_LENGTH) throw std::invalid_argument("Comb4P: Incompatible hashes " + hash1->name() + " and " + |