mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
gpg: Change armor Version header to emit only the major version.
* g10/options.h (opt): Rename field no_version to emit_version. * g10/gpg.c (main): Init opt.emit_vesion to 1. Change --emit-version to bump up opt.emit_version. * g10/armor.c (armor_filter): Implement different --emit-version values. -- GnuPG-bug-id: 1572 Signed-off-by: Werner Koch <wk@gnupg.org> (cherry picked from commit e951782e937ce290be0d89d83e84b3daea997587) Resolved conflicts: NEWS g10/armor.c g10/gpg.c
This commit is contained in:
parent
cad8216f9a
commit
b135372176
3
NEWS
3
NEWS
@ -3,6 +3,9 @@ Noteworthy changes in version 1.4.16 (unreleased)
|
|||||||
|
|
||||||
* Do not create a trustdb file if --trust-model=always is used.
|
* Do not create a trustdb file if --trust-model=always is used.
|
||||||
|
|
||||||
|
* Only the major version number is by default included in the armored
|
||||||
|
output.
|
||||||
|
|
||||||
|
|
||||||
Noteworthy changes in version 1.4.15 (2013-10-04)
|
Noteworthy changes in version 1.4.15 (2013-10-04)
|
||||||
-------------------------------------------------
|
-------------------------------------------------
|
||||||
|
@ -2408,8 +2408,12 @@ protected by the signature.
|
|||||||
@item --emit-version
|
@item --emit-version
|
||||||
@itemx --no-emit-version
|
@itemx --no-emit-version
|
||||||
@opindex emit-version
|
@opindex emit-version
|
||||||
Force inclusion of the version string in ASCII armored output.
|
Force inclusion of the version string in ASCII armored output. If
|
||||||
@option{--no-emit-version} disables this option.
|
given once only the name of the program and the major number is
|
||||||
|
emitted (default), given twice the minor is also emitted, given triple
|
||||||
|
the micro is added, and given quad an operating system identification
|
||||||
|
is also emitted. @option{--no-emit-version} disables the version
|
||||||
|
line.
|
||||||
|
|
||||||
@item --sig-notation @code{name=value}
|
@item --sig-notation @code{name=value}
|
||||||
@itemx --cert-notation @code{name=value}
|
@itemx --cert-notation @code{name=value}
|
||||||
|
53
g10/armor.c
53
g10/armor.c
@ -148,11 +148,11 @@ release_armor_context (armor_filter_context_t *afx)
|
|||||||
int
|
int
|
||||||
push_armor_filter (armor_filter_context_t *afx, iobuf_t iobuf)
|
push_armor_filter (armor_filter_context_t *afx, iobuf_t iobuf)
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
if (!afx->refcount)
|
if (!afx->refcount)
|
||||||
return iobuf_push_filter (iobuf, armor_filter, afx);
|
return iobuf_push_filter (iobuf, armor_filter, afx);
|
||||||
|
|
||||||
afx->refcount++;
|
afx->refcount++;
|
||||||
rc = iobuf_push_filter (iobuf, armor_filter, afx);
|
rc = iobuf_push_filter (iobuf, armor_filter, afx);
|
||||||
if (rc)
|
if (rc)
|
||||||
@ -801,7 +801,7 @@ radix64_read( armor_filter_context_t *afx, IOBUF a, size_t *retn,
|
|||||||
goto again;
|
goto again;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!n)
|
if (!n)
|
||||||
onlypad = 1;
|
onlypad = 1;
|
||||||
|
|
||||||
@ -985,7 +985,7 @@ armor_filter( void *opaque, int control,
|
|||||||
/* We need some space for the faked packet. The minmum
|
/* We need some space for the faked packet. The minmum
|
||||||
* required size is the PARTIAL_CHUNK size plus a byte for the
|
* required size is the PARTIAL_CHUNK size plus a byte for the
|
||||||
* length itself */
|
* length itself */
|
||||||
if( size < PARTIAL_CHUNK+1 )
|
if( size < PARTIAL_CHUNK+1 )
|
||||||
BUG(); /* supplied buffer too short */
|
BUG(); /* supplied buffer too short */
|
||||||
|
|
||||||
if( afx->faked )
|
if( afx->faked )
|
||||||
@ -1004,7 +1004,7 @@ armor_filter( void *opaque, int control,
|
|||||||
unsigned int hashes = afx->hashes;
|
unsigned int hashes = afx->hashes;
|
||||||
const byte *sesmark;
|
const byte *sesmark;
|
||||||
size_t sesmarklen;
|
size_t sesmarklen;
|
||||||
|
|
||||||
sesmark = get_session_marker( &sesmarklen );
|
sesmark = get_session_marker( &sesmarklen );
|
||||||
if ( sesmarklen > 20 )
|
if ( sesmarklen > 20 )
|
||||||
BUG();
|
BUG();
|
||||||
@ -1026,7 +1026,7 @@ armor_filter( void *opaque, int control,
|
|||||||
buf[n++] = 0xff; /* new format, type 63, 1 length byte */
|
buf[n++] = 0xff; /* new format, type 63, 1 length byte */
|
||||||
n++; /* see below */
|
n++; /* see below */
|
||||||
memcpy(buf+n, sesmark, sesmarklen ); n+= sesmarklen;
|
memcpy(buf+n, sesmark, sesmarklen ); n+= sesmarklen;
|
||||||
buf[n++] = CTRLPKT_CLEARSIGN_START;
|
buf[n++] = CTRLPKT_CLEARSIGN_START;
|
||||||
buf[n++] = afx->not_dash_escaped? 0:1; /* sigclass */
|
buf[n++] = afx->not_dash_escaped? 0:1; /* sigclass */
|
||||||
if( hashes & 1 )
|
if( hashes & 1 )
|
||||||
buf[n++] = DIGEST_ALGO_RMD160;
|
buf[n++] = DIGEST_ALGO_RMD160;
|
||||||
@ -1080,10 +1080,25 @@ armor_filter( void *opaque, int control,
|
|||||||
iobuf_writestr(a, head_strings[afx->what] );
|
iobuf_writestr(a, head_strings[afx->what] );
|
||||||
iobuf_writestr(a, "-----" );
|
iobuf_writestr(a, "-----" );
|
||||||
iobuf_writestr(a,afx->eol);
|
iobuf_writestr(a,afx->eol);
|
||||||
if( !opt.no_version )
|
if (opt.emit_version)
|
||||||
{
|
{
|
||||||
iobuf_writestr(a, "Version: GnuPG v" VERSION " ("
|
iobuf_writestr (a, "Version: GnuPG v");
|
||||||
PRINTABLE_OS_NAME ")" );
|
for (s=VERSION; *s && *s != '.'; s++)
|
||||||
|
iobuf_writebyte (a, *s);
|
||||||
|
if (opt.emit_version > 1 && *s)
|
||||||
|
{
|
||||||
|
iobuf_writebyte (a, *s++);
|
||||||
|
for (; *s && *s != '.'; s++)
|
||||||
|
iobuf_writebyte (a, *s);
|
||||||
|
if (opt.emit_version > 2)
|
||||||
|
{
|
||||||
|
for (; *s && *s != '-' && !spacep (s); s++)
|
||||||
|
iobuf_writebyte (a, *s);
|
||||||
|
if (opt.emit_version > 3)
|
||||||
|
iobuf_writestr (a, " (" PRINTABLE_OS_NAME ")");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
iobuf_writestr(a,afx->eol);
|
iobuf_writestr(a,afx->eol);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1287,7 +1302,7 @@ make_radix64_string( const byte *data, size_t len )
|
|||||||
|
|
||||||
/***********************************************
|
/***********************************************
|
||||||
* For the pipemode command we can't use the armor filter for various
|
* For the pipemode command we can't use the armor filter for various
|
||||||
* reasons, so we use this new unarmor_pump stuff to remove the armor
|
* reasons, so we use this new unarmor_pump stuff to remove the armor
|
||||||
*/
|
*/
|
||||||
|
|
||||||
enum unarmor_state_e {
|
enum unarmor_state_e {
|
||||||
@ -1295,7 +1310,7 @@ enum unarmor_state_e {
|
|||||||
STA_bypass,
|
STA_bypass,
|
||||||
STA_wait_newline,
|
STA_wait_newline,
|
||||||
STA_wait_dash,
|
STA_wait_dash,
|
||||||
STA_first_dash,
|
STA_first_dash,
|
||||||
STA_compare_header,
|
STA_compare_header,
|
||||||
STA_found_header_wait_newline,
|
STA_found_header_wait_newline,
|
||||||
STA_skip_header_lines,
|
STA_skip_header_lines,
|
||||||
@ -1334,12 +1349,12 @@ unarmor_pump_release (UnarmorPump x)
|
|||||||
xfree (x);
|
xfree (x);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Get the next character from the ascii armor taken from the IOBUF
|
* Get the next character from the ascii armor taken from the IOBUF
|
||||||
* created earlier by unarmor_pump_new().
|
* created earlier by unarmor_pump_new().
|
||||||
* Return: c = Character
|
* Return: c = Character
|
||||||
* 256 = ignore this value
|
* 256 = ignore this value
|
||||||
* -1 = End of current armor
|
* -1 = End of current armor
|
||||||
* -2 = Premature EOF (not used)
|
* -2 = Premature EOF (not used)
|
||||||
* -3 = Invalid armor
|
* -3 = Invalid armor
|
||||||
*/
|
*/
|
||||||
@ -1350,9 +1365,9 @@ unarmor_pump (UnarmorPump x, int c)
|
|||||||
|
|
||||||
switch (x->state) {
|
switch (x->state) {
|
||||||
case STA_init:
|
case STA_init:
|
||||||
{
|
{
|
||||||
byte tmp[1];
|
byte tmp[1];
|
||||||
tmp[0] = c;
|
tmp[0] = c;
|
||||||
if ( is_armored (tmp) )
|
if ( is_armored (tmp) )
|
||||||
x->state = c == '-'? STA_first_dash : STA_wait_newline;
|
x->state = c == '-'? STA_first_dash : STA_wait_newline;
|
||||||
else {
|
else {
|
||||||
@ -1375,10 +1390,10 @@ unarmor_pump (UnarmorPump x, int c)
|
|||||||
x->state = STA_compare_header;
|
x->state = STA_compare_header;
|
||||||
case STA_compare_header:
|
case STA_compare_header:
|
||||||
if ( "-----BEGIN PGP SIGNATURE-----"[++x->pos] == c ) {
|
if ( "-----BEGIN PGP SIGNATURE-----"[++x->pos] == c ) {
|
||||||
if ( x->pos == 28 )
|
if ( x->pos == 28 )
|
||||||
x->state = STA_found_header_wait_newline;
|
x->state = STA_found_header_wait_newline;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
x->state = c == '\n'? STA_wait_dash : STA_wait_newline;
|
x->state = c == '\n'? STA_wait_dash : STA_wait_newline;
|
||||||
break;
|
break;
|
||||||
case STA_found_header_wait_newline:
|
case STA_found_header_wait_newline:
|
||||||
@ -1425,7 +1440,7 @@ unarmor_pump (UnarmorPump x, int c)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(x->pos) {
|
switch(x->pos) {
|
||||||
case 0:
|
case 0:
|
||||||
x->val = c << 2;
|
x->val = c << 2;
|
||||||
@ -1466,7 +1481,7 @@ unarmor_pump (UnarmorPump x, int c)
|
|||||||
x->state = STA_ready; /* not sure whether this is correct */
|
x->state = STA_ready; /* not sure whether this is correct */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(x->pos) {
|
switch(x->pos) {
|
||||||
case 0:
|
case 0:
|
||||||
x->val = c << 2;
|
x->val = c << 2;
|
||||||
|
@ -1908,6 +1908,7 @@ main (int argc, char **argv )
|
|||||||
opt.def_cert_expire="0";
|
opt.def_cert_expire="0";
|
||||||
set_homedir ( default_homedir () );
|
set_homedir ( default_homedir () );
|
||||||
opt.passwd_repeat=1;
|
opt.passwd_repeat=1;
|
||||||
|
opt.emit_version = 1; /* Limit to the major number. */
|
||||||
|
|
||||||
#ifdef ENABLE_CARD_SUPPORT
|
#ifdef ENABLE_CARD_SUPPORT
|
||||||
#if defined(_WIN32) || defined(__CYGWIN__)
|
#if defined(_WIN32) || defined(__CYGWIN__)
|
||||||
@ -2245,8 +2246,8 @@ main (int argc, char **argv )
|
|||||||
case oNoVerbose: g10_opt_verbose = 0;
|
case oNoVerbose: g10_opt_verbose = 0;
|
||||||
opt.verbose = 0; opt.list_sigs=0; break;
|
opt.verbose = 0; opt.list_sigs=0; break;
|
||||||
case oQuickRandom: quick_random_gen(1); break;
|
case oQuickRandom: quick_random_gen(1); break;
|
||||||
case oEmitVersion: opt.no_version=0; break;
|
case oEmitVersion: opt.emit_version++; break;
|
||||||
case oNoEmitVersion: opt.no_version=1; break;
|
case oNoEmitVersion: opt.emit_version=0; break;
|
||||||
case oCompletesNeeded: opt.completes_needed = pargs.r.ret_int; break;
|
case oCompletesNeeded: opt.completes_needed = pargs.r.ret_int; break;
|
||||||
case oMarginalsNeeded: opt.marginals_needed = pargs.r.ret_int; break;
|
case oMarginalsNeeded: opt.marginals_needed = pargs.r.ret_int; break;
|
||||||
case oMaxCertDepth: opt.max_cert_depth = pargs.r.ret_int; break;
|
case oMaxCertDepth: opt.max_cert_depth = pargs.r.ret_int; break;
|
||||||
|
@ -79,7 +79,11 @@ struct
|
|||||||
int def_cert_level;
|
int def_cert_level;
|
||||||
int min_cert_level;
|
int min_cert_level;
|
||||||
int ask_cert_level;
|
int ask_cert_level;
|
||||||
int no_version;
|
int emit_version; /* 0 = none,
|
||||||
|
1 = major only,
|
||||||
|
2 = major and minor,
|
||||||
|
3 = full version,
|
||||||
|
4 = full version plus OS string. */
|
||||||
int marginals_needed;
|
int marginals_needed;
|
||||||
int completes_needed;
|
int completes_needed;
|
||||||
int max_cert_depth;
|
int max_cert_depth;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user