⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 par_hash.cpp

📁 含有多种公开密钥算法、多种块加密、多种数据流加密、多种HASH函数、多种CheckSum校验、多种MAC校验等几十种加密算法的程序
💻 CPP
字号:
/************************************************** Parallel Source File                           ** (C) 1999-2002 The Botan Project                **************************************************/#include <botan/par_hash.h>#include <botan/lookup.h>namespace Botan {namespace {u32bit sum_of_hash_lengths(const std::vector<std::string>& names)   {   u32bit sum = 0;   for(u32bit j = 0; j != names.size(); j++)      sum += output_length_of(names[j]);   return sum;   }}/************************************************** Update the hash                                **************************************************/void Parallel::add_data(const byte input[], u32bit length)   {   for(u32bit j = 0; j != hashes.size(); j++)      hashes[j]->update(input, length);   }/************************************************** Finalize the hash                              **************************************************/void Parallel::final_result(byte hash[])   {   u32bit offset = 0;   for(u32bit j = 0; j != hashes.size(); j++)      {      hashes[j]->final(hash + offset);      offset += hashes[j]->OUTPUT_LENGTH;      }   }/************************************************** Return the name of this type                   **************************************************/std::string Parallel::name() const   {   std::string hash_names;   for(u32bit j = 0; j != hashes.size(); j++)      {      if(j)         hash_names += ',';      hash_names += hashes[j]->name();      }   return "Parallel(" + hash_names + ")";   }/************************************************** Return a clone of this object                  **************************************************/HashFunction* Parallel::clone() const   {   std::vector<std::string> names;   for(u32bit j = 0; j != hashes.size(); j++)      names.push_back(hashes[j]->name());   return new Parallel(names);   }/************************************************** Clear memory of sensitive data                 **************************************************/void Parallel::clear() throw()   {   for(u32bit j = 0; j != hashes.size(); j++)      hashes[j]->clear();   }/************************************************** Parallel Constructor                           **************************************************/Parallel::Parallel(const std::vector<std::string>& names) :   HashFunction(sum_of_hash_lengths(names))   {   for(u32bit j = 0; j != names.size(); j++)      hashes.push_back(get_hash(names[j]));   }/************************************************** Parallel Desstructor                           **************************************************/Parallel::~Parallel()   {   for(u32bit j = 0; j != hashes.size(); j++)      delete hashes[j];   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -