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

📄 buf_filt.cpp

📁 含有多种公开密钥算法、多种块加密、多种数据流加密、多种HASH函数、多种CheckSum校验、多种MAC校验等几十种加密算法的程序
💻 CPP
字号:
/************************************************** Buffering Filter Source File                   ** (C) 1999-2002 The Botan Project                **************************************************/#include <botan/buf_filt.h>namespace Botan {/************************************************** BlockingFilter Constructor                    **************************************************/Buffering_Filter::Buffering_Filter(u32bit b, u32bit i) : INITIAL_BLOCK_SIZE(i),                                                         BLOCK_SIZE(b)   {   initial_block_pos = block_pos = 0;   initial.create(INITIAL_BLOCK_SIZE);   block.create(BLOCK_SIZE);   }/************************************************** Reset the Blocking Filter                     **************************************************/void Buffering_Filter::end_msg()   {   if(initial_block_pos != INITIAL_BLOCK_SIZE)      throw Exception("Buffering_Filter: Not enough data for first block");   final_block(block, block_pos);   initial_block_pos = block_pos = 0;   initial.clear();   block.clear();   }/************************************************** Block input                                   **************************************************/void Buffering_Filter::write(const byte input[], u32bit length)   {   if(initial_block_pos != INITIAL_BLOCK_SIZE)      {      u32bit copied = std::min(INITIAL_BLOCK_SIZE - initial_block_pos, length);      initial.copy(initial_block_pos, input, copied);      input += copied;      length -= copied;      initial_block_pos += copied;      if(initial_block_pos == INITIAL_BLOCK_SIZE)         initial_block(initial);      }   block.copy(block_pos, input, length);   if(block_pos + length >= BLOCK_SIZE)      {      main_block(block);      input += (BLOCK_SIZE - block_pos);      length -= (BLOCK_SIZE - block_pos);      while(length >= BLOCK_SIZE)         {         main_block(input);         input += BLOCK_SIZE;         length -= BLOCK_SIZE;         }      block.copy(input, length);      block_pos = 0;      }   block_pos += length;   }}

⌨️ 快捷键说明

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