See ChangeLog: Sat Sep 18 12:16:08 CEST 1999 Werner Koch
[gnupg.git] / g10 / filter.h
index f0448f1..02e4e2e 100644 (file)
 #ifndef G10_FILTER_H
 #define G10_FILTER_H
 
+#include <gcrypt.h>
+
 #include "types.h"
-#include "cipher.h"
 
 typedef struct {
-    MD_HANDLE md;      /* catch all */
+    GCRY_MD_HD md;     /* catch all */
+    GCRY_MD_HD md2;    /* if we want to calculate an alternate hash */
     size_t maxbuf_size;
 } md_filter_context_t;
 
@@ -43,6 +45,7 @@ typedef struct {
     int faked;             /* we are faking a literal data packet */
     int truncated;         /* number of truncated lines */
     int qp_detected;
+    int pgp2mode;
 
     byte *buffer;          /* malloced buffer */
     unsigned buffer_size;   /* and size of this buffer */
@@ -55,7 +58,7 @@ typedef struct {
 
     int status;            /* an internal state flag */
     int any_data;          /* any valid armored data seen */
-    unsigned empty;        /* empty line counter USED??? */
+    int pending_lf;        /* used together with faked */
 } armor_filter_context_t;
 
 
@@ -67,23 +70,31 @@ typedef struct {
     byte *outbuf;
     unsigned outbufsize;
     int algo;   /* compress algo */
+    int algo1hack;
 } compress_filter_context_t;
 
 
 typedef struct {
     DEK *dek;
     u32 datalen;
-    CIPHER_HANDLE cipher_hd;
+    GCRY_CIPHER_HD cipher_hd;
     int header;
+    GCRY_MD_HD mdc_hash;
 } cipher_filter_context_t;
 
 
 
 typedef struct {
-    int eof;
-    size_t idx;
-    size_t len;
-    byte buf[256];
+    byte *buffer;          /* malloced buffer */
+    unsigned buffer_size;   /* and size of this buffer */
+    unsigned buffer_len;    /* used length of the buffer */
+    unsigned buffer_pos;    /* read position */
+    int truncated;         /* number of truncated lines */
+    int not_dash_escaped;
+    int escape_from;
+    GCRY_MD_HD md;
+    int pending_lf;
+    int pending_esc;
 } text_filter_context_t;
 
 
@@ -109,6 +120,8 @@ int cipher_filter( void *opaque, int control,
 /*-- textfilter.c --*/
 int text_filter( void *opaque, int control,
                 IOBUF chain, byte *buf, size_t *ret_len);
+int copy_clearsig_text( IOBUF out, IOBUF inp, GCRY_MD_HD md,
+                         int escape_dash, int escape_from, int pgp2mode );