* pkclist.c (algo_available): PGP 8 can use the SHA-256 hash.

* sign.c (sign_file, clearsign_file, sign_symencrypt_file): Remove unused
code.
This commit is contained in:
David Shaw 2003-04-04 22:48:24 +00:00
parent d2548b3f60
commit 5eba95854c
3 changed files with 29 additions and 21 deletions

View File

@ -1,3 +1,10 @@
2003-04-04 David Shaw <dshaw@jabberwocky.com>
* pkclist.c (algo_available): PGP 8 can use the SHA-256 hash.
* sign.c (sign_file, clearsign_file, sign_symencrypt_file): Remove
unused code.
2003-03-24 David Shaw <dshaw@jabberwocky.com> 2003-03-24 David Shaw <dshaw@jabberwocky.com>
* keydb.h: Err on the side of making an unknown signature a SIG * keydb.h: Err on the side of making an unknown signature a SIG

View File

@ -1107,18 +1107,18 @@ build_pk_list( STRLIST rcpts, PK_LIST *ret_pk_list, unsigned use )
CAST5 (3), all hashes except MD5 (1), SHA1 (2), and RIPEMD160 (3), CAST5 (3), all hashes except MD5 (1), SHA1 (2), and RIPEMD160 (3),
and all compressions except none (0) and ZIP (1). pgp7 and pgp8 and all compressions except none (0) and ZIP (1). pgp7 and pgp8
mode expands the cipher list to include AES128 (7), AES192 (8), mode expands the cipher list to include AES128 (7), AES192 (8),
AES256 (9), and TWOFISH (10). For a true PGP key all of this is AES256 (9), and TWOFISH (10). pgp8 adds the SHA-256 hash (8). For
unneeded as they are the only items present in the preferences a true PGP key all of this is unneeded as they are the only items
subpacket, but checking here covers the weird case of encrypting to present in the preferences subpacket, but checking here covers the
a key that had preferences from a different implementation which weird case of encrypting to a key that had preferences from a
was then used with PGP. I am not completely comfortable with this different implementation which was then used with PGP. I am not
as the right thing to do, as it slightly alters the list of what completely comfortable with this as the right thing to do, as it
the user is supposedly requesting. It is not against the RFC slightly alters the list of what the user is supposedly requesting.
however, as the preference chosen will never be one that the user It is not against the RFC however, as the preference chosen will
didn't specify somewhere ("The implementation may use any mechanism never be one that the user didn't specify somewhere ("The
to pick an algorithm in the intersection"), and PGP has no implementation may use any mechanism to pick an algorithm in the
mechanism to fix such a broken preference list, so I'm including intersection"), and PGP has no mechanism to fix such a broken
it. -dms */ preference list, so I'm including it. -dms */
static int static int
algo_available( int preftype, int algo, void *hint ) algo_available( int preftype, int algo, void *hint )
@ -1143,8 +1143,10 @@ algo_available( int preftype, int algo, void *hint )
if(bits && (bits != md_digest_length(algo))) if(bits && (bits != md_digest_length(algo)))
return 0; return 0;
if( (opt.pgp6 || opt.pgp7 || opt.pgp8 ) if( (opt.pgp6 || opt.pgp7) && (algo != 1 && algo != 2 && algo != 3) )
&& ( algo != 1 && algo != 2 && algo != 3) ) return 0;
if( opt.pgp8 && (algo != 1 && algo != 2 && algo != 3 && algo != 8))
return 0; return 0;
return algo && !check_digest_algo( algo ); return algo && !check_digest_algo( algo );

View File

@ -639,7 +639,7 @@ sign_file( STRLIST filenames, int detached, STRLIST locusr,
SK_LIST sk_list = NULL; SK_LIST sk_list = NULL;
SK_LIST sk_rover = NULL; SK_LIST sk_rover = NULL;
int multifile = 0; int multifile = 0;
u32 timestamp=0,duration=0; u32 duration=0;
memset( &afx, 0, sizeof afx); memset( &afx, 0, sizeof afx);
memset( &zfx, 0, sizeof zfx); memset( &zfx, 0, sizeof zfx);
@ -852,7 +852,7 @@ sign_file( STRLIST filenames, int detached, STRLIST locusr,
/* write the signatures */ /* write the signatures */
rc = write_signature_packets (sk_list, out, mfx.md, rc = write_signature_packets (sk_list, out, mfx.md,
opt.textmode && !outfile? 0x01 : 0x00, opt.textmode && !outfile? 0x01 : 0x00,
timestamp, duration, detached ? 'D':'S'); 0, duration, detached ? 'D':'S');
if( rc ) if( rc )
goto leave; goto leave;
@ -890,7 +890,7 @@ clearsign_file( const char *fname, STRLIST locusr, const char *outfile )
SK_LIST sk_rover = NULL; SK_LIST sk_rover = NULL;
int old_style = opt.rfc1991; int old_style = opt.rfc1991;
int only_md5 = 0; int only_md5 = 0;
u32 timestamp=0,duration=0; u32 duration=0;
memset( &afx, 0, sizeof afx); memset( &afx, 0, sizeof afx);
init_packet( &pkt ); init_packet( &pkt );
@ -991,8 +991,7 @@ clearsign_file( const char *fname, STRLIST locusr, const char *outfile )
iobuf_push_filter( out, armor_filter, &afx ); iobuf_push_filter( out, armor_filter, &afx );
/* write the signatures */ /* write the signatures */
rc = write_signature_packets (sk_list, out, textmd, 0x01, rc=write_signature_packets (sk_list, out, textmd, 0x01, 0, duration, 'C');
timestamp, duration, 'C');
if( rc ) if( rc )
goto leave; goto leave;
@ -1026,7 +1025,7 @@ sign_symencrypt_file (const char *fname, STRLIST locusr)
SK_LIST sk_list = NULL; SK_LIST sk_list = NULL;
SK_LIST sk_rover = NULL; SK_LIST sk_rover = NULL;
int algo; int algo;
u32 timestamp=0,duration=0; u32 duration=0;
memset( &afx, 0, sizeof afx); memset( &afx, 0, sizeof afx);
memset( &zfx, 0, sizeof zfx); memset( &zfx, 0, sizeof zfx);
@ -1132,7 +1131,7 @@ sign_symencrypt_file (const char *fname, STRLIST locusr)
/*(current filters: zip - encrypt - armor)*/ /*(current filters: zip - encrypt - armor)*/
rc = write_signature_packets (sk_list, out, mfx.md, rc = write_signature_packets (sk_list, out, mfx.md,
opt.textmode? 0x01 : 0x00, opt.textmode? 0x01 : 0x00,
timestamp, duration, 'S'); 0, duration, 'S');
if( rc ) if( rc )
goto leave; goto leave;