1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-12-22 10:19:57 +01:00

* armor.c (is_armor_tag): New. Detect if an armor header matches

2440bis-21.  (parse_header_line): Call it here, as bis-21 requires
warning the user (but continuing to process the message) when seeing
an unknown header.
This commit is contained in:
David Shaw 2007-07-18 17:08:47 +00:00
parent 66c5c46b95
commit d26739aa5a
2 changed files with 34 additions and 2 deletions

View File

@ -1,3 +1,11 @@
2007-07-18 David Shaw <dshaw@jabberwocky.com>
* armor.c (is_armor_tag): New. Detect if an armor header matches
2440bis-21.
(parse_header_line): Call it here, as bis-21 requires warning the
user (but continuing to process the message) when seeing an
unknown header.
2007-07-09 Werner Koch <wk@g10code.com>
* gpg.c: Better print an extra warning if Camellia has been

View File

@ -1,6 +1,6 @@
/* armor.c - Armor flter
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
* 2006 Free Software Foundation, Inc.
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
* 2007 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@ -314,7 +314,19 @@ parse_hash_header( const char *line )
return found;
}
/* Returns true if this is a valid armor tag as per RFC-2440bis-21. */
static int
is_armor_tag(const char *line)
{
if(strncmp(line,"Version",7)==0
|| strncmp(line,"Comment",7)==0
|| strncmp(line,"MessageID",9)==0
|| strncmp(line,"Hash",4)==0
|| strncmp(line,"Charset",7)==0)
return 1;
return 0;
}
/****************
* Check whether this is a armor line.
@ -424,6 +436,18 @@ parse_header_line( armor_filter_context_t *afx, byte *line, unsigned int len )
putc('\n', stderr);
}
/* Section 6.2: OpenPGP should consider improperly formatted Armor
Headers to be corruption of the ASCII Armor. Unknown keys
should be reported to the user, but OpenPGP should continue to
process the message. */
if(!is_armor_tag(line))
{
log_info(_("unknown armor header: "));
print_string( stderr, line, len, 0 );
putc('\n', stderr);
}
if( afx->in_cleartext ) {
if( (hashes=parse_hash_header( line )) )
afx->hashes |= hashes;