diff options
author | Werner Koch <[email protected]> | 1999-01-20 18:10:35 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 1999-01-20 18:10:35 +0000 |
commit | 7debff3867c0c087ccae465517aa26e475266427 (patch) | |
tree | bcb1ccedb0ee7711cb28a6add0a16a56cf0d0c34 /g10/sign.c | |
parent | See ChangeLog: Tue Jan 19 19:34:58 CET 1999 Werner Koch (diff) | |
download | gnupg-7debff3867c0c087ccae465517aa26e475266427.tar.gz gnupg-7debff3867c0c087ccae465517aa26e475266427.zip |
See ChangeLog: Wed Jan 20 18:59:49 CET 1999 Werner Koch
Diffstat (limited to 'g10/sign.c')
-rw-r--r-- | g10/sign.c | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/g10/sign.c b/g10/sign.c index e8582f43d..fe13461d6 100644 --- a/g10/sign.c +++ b/g10/sign.c @@ -455,7 +455,7 @@ sign_file( STRLIST filenames, int detached, STRLIST locusr, } - +#if 0 /**************** * Note: We do not calculate the hash over the last CR,LF */ @@ -554,7 +554,7 @@ write_dash_escaped( IOBUF inp, IOBUF out, MD_HANDLE md ) return 0; /* fixme: add error handling */ } - +#endif /**************** * make a clear signature. note that opt.armor is not needed @@ -572,6 +572,7 @@ clearsign_file( const char *fname, STRLIST locusr, const char *outfile ) SK_LIST sk_rover = NULL; int old_style = opt.rfc1991; int only_md5 = 0; + int c; memset( &afx, 0, sizeof afx); memset( &tfx, 0, sizeof tfx); @@ -645,13 +646,23 @@ clearsign_file( const char *fname, STRLIST locusr, const char *outfile ) PKT_secret_key *sk = sk_rover->sk; md_enable(textmd, hash_for(sk->pubkey_algo)); } - /*md_start_debug( textmd, "create" );*/ - if( !opt.not_dash_escaped ) - iobuf_push_filter( inp, text_filter, &tfx ); - rc = write_dash_escaped( inp, out, textmd ); - if( rc ) - goto leave; + md_start_debug( textmd, "sign" ); + tfx.clearsign = 1; + tfx.not_dash_escaped = opt.not_dash_escaped; + tfx.escape_from = opt.escape_from; + tfx.md = textmd; + iobuf_push_filter( inp, text_filter, &tfx ); + /* read input and write it to the output. The textfilter handles + * the calculation of the hash and the dash escaping */ + while( (c=iobuf_get(inp)) != -1 ) { + if( iobuf_put(out, c) == -1 ) { + rc = G10ERR_WRITE_FILE; + goto leave; + } + } + /* fixme: check for read errors */ + /* now write the armor */ afx.what = 2; iobuf_push_filter( out, armor_filter, &afx ); |