mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
* armor.c (parse_hash_header, armor_filter): Accept the new SHAs in the
armor Hash: header. * g10.c (print_hex): Print long hash strings a little neater. (print_mds): Add the new SHAs to the hash list.
This commit is contained in:
parent
cef8bbd91f
commit
f523e53d4e
3 changed files with 51 additions and 19 deletions
24
g10/armor.c
24
g10/armor.c
|
@ -252,6 +252,12 @@ parse_hash_header( const char *line )
|
|||
found |= 8;
|
||||
else if( !strncmp( s, "TIGER", s2-s ) ) /* used by old versions */
|
||||
found |= 8;
|
||||
else if( !strncmp( s, "SHA256", s2-s ) )
|
||||
found |= 16;
|
||||
else if( !strncmp( s, "SHA384", s2-s ) )
|
||||
found |= 32;
|
||||
else if( !strncmp( s, "SHA512", s2-s ) )
|
||||
found |= 64;
|
||||
else
|
||||
return 0;
|
||||
for(; *s2 && (*s2==' ' || *s2 == '\t'); s2++ )
|
||||
|
@ -858,7 +864,7 @@ armor_filter( void *opaque, int control,
|
|||
rc = -1;
|
||||
}
|
||||
else if( afx->faked ) {
|
||||
unsigned int hashes = afx->hashes;
|
||||
unsigned int hashes = afx->hashes;
|
||||
const byte *sesmark;
|
||||
size_t sesmarklen;
|
||||
|
||||
|
@ -869,7 +875,7 @@ armor_filter( void *opaque, int control,
|
|||
/* the buffer is at least 15+n*15 bytes long, so it
|
||||
* is easy to construct the packets */
|
||||
|
||||
hashes &= 1|2|4|8;
|
||||
hashes &= 1|2|4|8|16|32|64;
|
||||
if( !hashes ) {
|
||||
hashes |= 4; /* default to MD 5 */
|
||||
/* This is non-ideal since PGP 5-8 have the same
|
||||
|
@ -885,14 +891,20 @@ armor_filter( void *opaque, int control,
|
|||
memcpy(buf+n, sesmark, sesmarklen ); n+= sesmarklen;
|
||||
buf[n++] = CTRLPKT_CLEARSIGN_START;
|
||||
buf[n++] = afx->not_dash_escaped? 0:1; /* sigclass */
|
||||
if( hashes & 1 )
|
||||
if( hashes & 1 )
|
||||
buf[n++] = DIGEST_ALGO_RMD160;
|
||||
if( hashes & 2 )
|
||||
if( hashes & 2 )
|
||||
buf[n++] = DIGEST_ALGO_SHA1;
|
||||
if( hashes & 4 )
|
||||
if( hashes & 4 )
|
||||
buf[n++] = DIGEST_ALGO_MD5;
|
||||
if( hashes & 8 )
|
||||
if( hashes & 8 )
|
||||
buf[n++] = DIGEST_ALGO_TIGER;
|
||||
if( hashes & 16 )
|
||||
buf[n++] = DIGEST_ALGO_SHA256;
|
||||
if( hashes & 32 )
|
||||
buf[n++] = DIGEST_ALGO_SHA384;
|
||||
if( hashes & 64 )
|
||||
buf[n++] = DIGEST_ALGO_SHA512;
|
||||
buf[1] = n - 2;
|
||||
|
||||
/* followed by a plaintext packet */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue