diff options
Diffstat (limited to 'g10/sign.c')
-rw-r--r-- | g10/sign.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/g10/sign.c b/g10/sign.c index 8acf1b239..afc1dafc1 100644 --- a/g10/sign.c +++ b/g10/sign.c @@ -411,8 +411,11 @@ sign_file( STRLIST filenames, int detached, STRLIST locusr, md_write( md, sig->hashed_data, n+2 ); n += 6; } - else + else { + md_putc( md, 0 ); /* always hash the length of the subpacket*/ + md_putc( md, 0 ); n = 6; + } /* add some magic */ buf[0] = sig->version; buf[1] = 0xff; @@ -594,8 +597,11 @@ clearsign_file( const char *fname, STRLIST locusr, const char *outfile ) md_write( md, sig->hashed_data, n+2 ); n += 6; } - else + else { + md_putc( md, 0 ); /* always hash the length of the subpacket*/ + md_putc( md, 0 ); n = 6; + } /* add some magic */ buf[0] = sig->version; buf[1] = 0xff; @@ -721,8 +727,11 @@ make_keysig_packet( PKT_signature **ret_sig, PKT_public_key *pk, md_write( md, sig->hashed_data, n+2 ); n += 6; } - else + else { + md_putc( md, 0 ); /* always hash the length of the subpacket*/ + md_putc( md, 0 ); n = 6; + } /* add some magic */ buf[0] = sig->version; buf[1] = 0xff; |