1
/*************************************************
2
* PK Filters Header File *
3
* (C) 1999-2007 The Botan Project *
4
*************************************************/
6
#ifndef BOTAN_PK_FILTERS_H__
7
#define BOTAN_PK_FILTERS_H__
9
#include <botan/filter.h>
10
#include <botan/pubkey.h>
14
/*************************************************
15
* PK_Encryptor Filter *
16
*************************************************/
17
class PK_Encryptor_Filter : public Filter
20
void write(const byte[], u32bit);
22
PK_Encryptor_Filter(PK_Encryptor* c) : cipher(c) {}
23
~PK_Encryptor_Filter() { delete cipher; }
26
SecureVector<byte> buffer;
29
/*************************************************
30
* PK_Decryptor Filter *
31
*************************************************/
32
class PK_Decryptor_Filter : public Filter
35
void write(const byte[], u32bit);
37
PK_Decryptor_Filter(PK_Decryptor* c) : cipher(c) {}
38
~PK_Decryptor_Filter() { delete cipher; }
41
SecureVector<byte> buffer;
44
/*************************************************
46
*************************************************/
47
class PK_Signer_Filter : public Filter
50
void write(const byte[], u32bit);
52
PK_Signer_Filter(PK_Signer* s) : signer(s) {}
53
~PK_Signer_Filter() { delete signer; }
58
/*************************************************
59
* PK_Verifier Filter *
60
*************************************************/
61
class PK_Verifier_Filter : public Filter
64
void write(const byte[], u32bit);
67
void set_signature(const byte[], u32bit);
68
void set_signature(const MemoryRegion<byte>&);
70
PK_Verifier_Filter(PK_Verifier* v) : verifier(v) {}
71
PK_Verifier_Filter(PK_Verifier*, const byte[], u32bit);
72
PK_Verifier_Filter(PK_Verifier*, const MemoryRegion<byte>&);
73
~PK_Verifier_Filter() { delete verifier; }
75
PK_Verifier* verifier;
76
SecureVector<byte> signature;