I believe clearsig works
authorWerner Koch <wk@gnupg.org>
Thu, 5 Feb 1998 08:54:39 +0000 (08:54 +0000)
committerWerner Koch <wk@gnupg.org>
Thu, 5 Feb 1998 08:54:39 +0000 (08:54 +0000)
g10/armor.c
g10/sign.c

index dbe3406..e397346 100644 (file)
@@ -72,6 +72,7 @@ typedef enum {
     fhdrCHECKDashEscaped3,
     fhdrREADClearsigNext,
     fhdrENDClearsig,
+    fhdrENDClearsigHelp,
     fhdrTESTSpaces,
     fhdrTEXT,
     fhdrERROR,
@@ -291,7 +292,7 @@ find_header( fhdr_state_t state, byte *buf, size_t *r_buflen,
                    state = fhdrCHECKDashEscaped3;
            }
            else {
-               /* fixme: we should check wether this linee continues
+               /* fixme: we should check wether this line continues
                 *   it is poosible that we have only read ws until here
                 *   and more stuff is to come */
                state = fhdrEOF;
@@ -565,6 +566,12 @@ fake_packet( armor_filter_context_t *afx, IOBUF a,
            }
            continue;
        }
+       if( state == fhdrENDClearsigHelp ) {
+           state = fhdrENDClearsig;
+           afx->faked = 0;
+           rc = -1;
+           continue;
+       }
        if( afx->helpidx < afx->helplen ) { /* flush the last buffer */
            n = afx->helplen;
            for(nn=afx->helpidx; len < size && nn < n ; nn++ )
@@ -598,9 +605,11 @@ fake_packet( armor_filter_context_t *afx, IOBUF a,
            break;
 
          case fhdrENDClearsig:
+           log_debug("endclearsig: emplines=%u n=%u\n", emplines, n );
+           assert( emplines );
+           emplines--; /* don't count the last one */
+           state = fhdrENDClearsigHelp;
            afx->helplen = n;
-           afx->faked = 0;
-           rc = -1;
            break;
 
          default: BUG();
index d06b919..010c6bc 100644 (file)
@@ -376,7 +376,7 @@ clearsign_file( const char *fname, STRLIST locusr, const char *outfile )
     if( rc )
        goto leave;
 
-    iobuf_writestr(out, "\n\n" );
+    iobuf_writestr(out, "\n" );
     afx.what = 2;
     iobuf_push_filter( out, armor_filter, &afx );