#include "cipher.h"
typedef struct {
+ MD_HANDLE *md; /* catch all */
MD5HANDLE md5; /* if !NULL create md5 */
RMDHANDLE rmd160; /* if !NULL create rmd160 */
size_t maxbuf_size;
} md_filter_context_t;
+typedef struct {
+ int status;
+ int what;
+ byte radbuf[4];
+ int idx, idx2;
+ u32 crc;
+ int inp_checked; /* set if inp has been checked */
+ int inp_bypass; /* set if the input is not armored */
+ int inp_eof;
+} armor_filter_context_t;
+
+
+typedef struct {
+ int status;
+ void *opaque; /* (used for z_stream) */
+ byte *inbuf;
+ unsigned inbufsize;
+ byte *outbuf;
+ unsigned outbufsize;
+} compress_filter_context_t;
+
+
+typedef struct {
+ DEK *dek;
+ u32 datalen;
+ BLOWFISH_context *bf_ctx;
+ int header;
+} cipher_filter_context_t;
+
+
/*-- mdfilter.c --*/
int md_filter( void *opaque, int control, IOBUF a, byte *buf, size_t *ret_len);
+void free_md_filter_context( md_filter_context_t *mfx );
+
+/*-- armor.c --*/
+int armor_filter( void *opaque, int control,
+ IOBUF chain, byte *buf, size_t *ret_len);
+
+/*-- compress.c --*/
+int compress_filter( void *opaque, int control,
+ IOBUF chain, byte *buf, size_t *ret_len);
+
+/*-- cipher.c --*/
+int cipher_filter( void *opaque, int control,
+ IOBUF chain, byte *buf, size_t *ret_len);
+
+
#endif /*G10_FILTER_H*/