filters.h
来自「含有多种公开密钥算法、多种块加密、多种数据流加密、多种HASH函数、多种Chec」· C头文件 代码 · 共 72 行
H
72 行
/************************************************** Filters Header File ** (C) 1999-2002 The Botan Project **************************************************/#ifndef BOTAN_FILTERS_H__#define BOTAN_FILTERS_H__#include <botan/key_filt.h>#include <botan/fork.h>#include <botan/chain.h>#include <botan/pk_filts.h>#include <botan/hex.h>#include <botan/base64.h>#include <botan/pipe.h>namespace Botan {/************************************************** Stream Cipher Filter **************************************************/class StreamCipher_Filter : public Keyed_Filter { public: void seek(u32bit position) { cipher->seek(position); } void reset_key(const SymmetricKey& key) { cipher->set_key(key); } void write(const byte[], u32bit); StreamCipher_Filter(const std::string&, const SymmetricKey&); ~StreamCipher_Filter() { delete cipher; } private: StreamCipher* cipher; SecureBuffer<byte, DEFAULT_BUFFERSIZE> buffer; };/************************************************** Hash Filter **************************************************/class Hash_Filter : public Filter { public: void write(const byte input[], u32bit len) { hash->update(input, len); } void end_msg(); Hash_Filter(const std::string&, u32bit = 0); ~Hash_Filter() { delete hash; } private: const u32bit OUTPUT_LENGTH; HashFunction* hash; };/************************************************** MessageAuthenticationCode Filter **************************************************/class MAC_Filter : public Keyed_Filter { public: void reset_key(const SymmetricKey& key) { mac->set_key(key); } void write(const byte input[], u32bit len) { mac->update(input, len); } void end_msg(); MAC_Filter(const std::string&, const SymmetricKey&, u32bit = 0); ~MAC_Filter() { delete mac; } private: const u32bit OUTPUT_LENGTH; MessageAuthenticationCode* mac; };}#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?