pk_filts.cpp

来自「含有多种公开密钥算法、多种块加密、多种数据流加密、多种HASH函数、多种Chec」· C++ 代码 · 共 100 行

CPP
100
字号
/************************************************** PK Filters Source File                         ** (C) 1999-2002 The Botan Project                **************************************************/#include <botan/pk_filts.h>namespace Botan {/************************************************** Append to the buffer                           **************************************************/void PK_Encryptor_Filter::write(const byte input[], u32bit length)   {   buffer.append(input, length);   }/************************************************** Encrypt the message                            **************************************************/void PK_Encryptor_Filter::end_msg()   {   SecureVector<byte> encrypted = cipher->encrypt(buffer, buffer.size());   send(encrypted, encrypted.size());   buffer.destroy();   }/************************************************** Append to the buffer                           **************************************************/void PK_Decryptor_Filter::write(const byte input[], u32bit length)   {   buffer.append(input, length);   }/************************************************** Decrypt the message                            **************************************************/void PK_Decryptor_Filter::end_msg()   {   SecureVector<byte> decrypted = cipher->decrypt(buffer, buffer.size());   send(decrypted, decrypted.size());   buffer.destroy();   }/************************************************** Add more data                                  **************************************************/void PK_Signer_Filter::write(const byte input[], u32bit length)   {   signer->update(input, length);   }/************************************************** Sign the message                               **************************************************/void PK_Signer_Filter::end_msg()   {   SecureVector<byte> signature = signer->signature();   send(signature, signature.size());   }/************************************************** Add more data                                  **************************************************/void PK_Verifier_Filter::write(const byte input[], u32bit length)   {   verifier->update(input, length);   }/************************************************** Verify the message                             **************************************************/void PK_Verifier_Filter::end_msg()   {   if(signature.size() == 0)      throw Exception("PK_Verifier_Filter: No signature to check against");   bool is_valid = verifier->valid_signature(signature, signature.size());   send((is_valid ? 1 : 0));   }/************************************************** Set the signature to check                     **************************************************/void PK_Verifier_Filter::set_signature(const byte sig[], u32bit length)   {   signature.set(sig, length);   }/************************************************** PK_Verifier_Filter Constructor                 **************************************************/PK_Verifier_Filter::PK_Verifier_Filter(PK_Verifier* v, const byte sig[],                                       u32bit length) :   verifier(v), signature(sig, length)   {   }}

⌨️ 快捷键说明

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