📄 pk_filts.cpp
字号:
/************************************************** 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -