diff options
author | lloyd <[email protected]> | 2010-10-13 03:25:16 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2010-10-13 03:25:16 +0000 |
commit | ba142ed2eaa21445d49cbbc8ae3b3d4dc625b9d7 (patch) | |
tree | be1a9fa07d0ea26fd7713bb52205f7a3bcc3e907 /src/hash/par_hash/par_hash.cpp | |
parent | 406d4f8556d41083bfa551e7a777b0cb02925b6c (diff) | |
parent | 5913bf42b4c32e43d0db11bf9299130f3b0b62a4 (diff) |
propagate from branch 'net.randombit.botan' (head 2898d79f992f27a328a3e41d34b46eb1052da0de)
to branch 'net.randombit.botan.c++0x' (head 6cba76268fd69a73195760c021b7f881b8a6552c)
Diffstat (limited to 'src/hash/par_hash/par_hash.cpp')
-rw-r--r-- | src/hash/par_hash/par_hash.cpp | 43 |
1 files changed, 24 insertions, 19 deletions
diff --git a/src/hash/par_hash/par_hash.cpp b/src/hash/par_hash/par_hash.cpp index aef5f8247..17b7e6b41 100644 --- a/src/hash/par_hash/par_hash.cpp +++ b/src/hash/par_hash/par_hash.cpp @@ -1,6 +1,6 @@ /* * Parallel -* (C) 1999-2007 Jack Lloyd +* (C) 1999-2009 Jack Lloyd * * Distributed under the terms of the Botan license */ @@ -18,8 +18,8 @@ size_t sum_of_hash_lengths(const std::vector<HashFunction*>& hashes) { size_t sum = 0; - for(size_t i = 0; i != hashes.size(); ++i) - sum += hashes[i]->output_length(); + for(auto hash = hashes.begin(); hash != hashes.end(); ++hash) + sum += (*hash)->OUTPUT_LENGTH; return sum; } @@ -31,20 +31,21 @@ size_t sum_of_hash_lengths(const std::vector<HashFunction*>& hashes) */ void Parallel::add_data(const byte input[], size_t length) { - for(size_t i = 0; i != hashes.size(); ++i) - hashes[i]->update(input, length); + for(auto hash = hashes.begin(); hash != hashes.end(); ++hash) + (*hash)->update(input, length); } /* * Finalize the hash */ -void Parallel::final_result(byte hash[]) +void Parallel::final_result(byte out[]) { - size_t offset = 0; - for(size_t i = 0; i != hashes.size(); ++i) + u32bit offset = 0; + + for(auto hash = hashes.begin(); hash != hashes.end(); ++hash) { - hashes[i]->final(hash + offset); - offset += hashes[i]->output_length(); + (*hash)->final(out + offset); + offset += (*hash)->OUTPUT_LENGTH; } } @@ -54,12 +55,14 @@ void Parallel::final_result(byte hash[]) std::string Parallel::name() const { std::string hash_names; - for(size_t i = 0; i != hashes.size(); ++i) + + for(auto hash = hashes.begin(); hash != hashes.end(); ++hash) { - if(i) + if(hash != hashes.begin()) hash_names += ','; - hash_names += hashes[i]->name(); + hash_names += (*hash)->name(); } + return "Parallel(" + hash_names + ")"; } @@ -69,8 +72,10 @@ std::string Parallel::name() const HashFunction* Parallel::clone() const { std::vector<HashFunction*> hash_copies; - for(size_t i = 0; i != hashes.size(); ++i) - hash_copies.push_back(hashes[i]->clone()); + + for(auto hash = hashes.begin(); hash != hashes.end(); ++hash) + hash_copies.push_back((*hash)->clone()); + return new Parallel(hash_copies); } @@ -79,8 +84,8 @@ HashFunction* Parallel::clone() const */ void Parallel::clear() { - for(size_t i = 0; i != hashes.size(); ++i) - hashes[i]->clear(); + for(auto hash = hashes.begin(); hash != hashes.end(); ++hash) + (*hash)->clear(); } /* @@ -96,8 +101,8 @@ Parallel::Parallel(const std::vector<HashFunction*>& hash_in) : */ Parallel::~Parallel() { - for(size_t i = 0; i != hashes.size(); ++i) - delete hashes[i]; + for(auto hash = hashes.begin(); hash != hashes.end(); ++hash) + delete (*hash); } } |