mirror of
git://git.gnupg.org/gnupg.git
synced 2025-03-28 22:49:59 +01:00
* trustdb.c (validate_keys): Mask the ownertrust when building the list of
fully valid keys so that disabled keys are still counted in the web of trust. (get_ownertrust_with_min): Do the same for the minimum ownertrust calculation. * parse-packet.c (dump_sig_subpkt): Show the notation names for not-human-readable notations. Fix cosmetic off-by-one length counter. * options.skel: Add explantion and commented-out "no-mangle-dos-filenames". * mainproc.c (proc_encrypted): Make string translatable. * keyserver.c (keyserver_spawn): Quote ':', '%', and any 8-bit characters in the uid strings sent to the keyserver helper. * keyring.c (keyring_rebuild_cache): Lock the keyring while rebuilding the signature caches to prevent another gpg from tampering with the temporary copy. * keygen.c (keygen_set_std_prefs): Include AES192 and AES256 in default prefs. * keyedit.c (show_prefs): Make strings translatable. * keydb.c: Double the maximum number of keyrings to 40. * gpgv.c (main): Fix bug #113 - gpgv should accept the --ignore-time-conflict option. * g10.c (main): --openpgp disables --pgpX. Double the amount of secure memory to 32k (keys are getting bigger these days). * Makefile.am: Makefile.am: Use @CAPLIBS@ to link in -lcap if we are using capabilities.
This commit is contained in:
parent
cb2167a306
commit
909f6a0637
@ -1,3 +1,43 @@
|
|||||||
|
2003-03-04 David Shaw <dshaw@jabberwocky.com>
|
||||||
|
|
||||||
|
* trustdb.c (validate_keys): Mask the ownertrust when building the
|
||||||
|
list of fully valid keys so that disabled keys are still counted
|
||||||
|
in the web of trust.
|
||||||
|
(get_ownertrust_with_min): Do the same for the minimum ownertrust
|
||||||
|
calculation.
|
||||||
|
|
||||||
|
* parse-packet.c (dump_sig_subpkt): Show the notation names for
|
||||||
|
not-human-readable notations. Fix cosmetic off-by-one length
|
||||||
|
counter.
|
||||||
|
|
||||||
|
* options.skel: Add explantion and commented-out
|
||||||
|
"no-mangle-dos-filenames".
|
||||||
|
|
||||||
|
* mainproc.c (proc_encrypted): Make string translatable.
|
||||||
|
|
||||||
|
* keyserver.c (keyserver_spawn): Quote ':', '%', and any 8-bit
|
||||||
|
characters in the uid strings sent to the keyserver helper.
|
||||||
|
|
||||||
|
* keyring.c (keyring_rebuild_cache): Lock the keyring while
|
||||||
|
rebuilding the signature caches to prevent another gpg from
|
||||||
|
tampering with the temporary copy.
|
||||||
|
|
||||||
|
* keygen.c (keygen_set_std_prefs): Include AES192 and AES256 in
|
||||||
|
default prefs.
|
||||||
|
|
||||||
|
* keyedit.c (show_prefs): Make strings translatable.
|
||||||
|
|
||||||
|
* keydb.c: Double the maximum number of keyrings to 40.
|
||||||
|
|
||||||
|
* gpgv.c (main): Fix bug #113 - gpgv should accept the
|
||||||
|
--ignore-time-conflict option.
|
||||||
|
|
||||||
|
* g10.c (main): --openpgp disables --pgpX. Double the amount of
|
||||||
|
secure memory to 32k (keys are getting bigger these days).
|
||||||
|
|
||||||
|
* Makefile.am: Makefile.am: Use @CAPLIBS@ to link in -lcap if we
|
||||||
|
are using capabilities.
|
||||||
|
|
||||||
2003-02-26 David Shaw <dshaw@jabberwocky.com>
|
2003-02-26 David Shaw <dshaw@jabberwocky.com>
|
||||||
|
|
||||||
* keyserver.c (keyserver_spawn): Include various pieces of
|
* keyserver.c (keyserver_spawn): Include various pieces of
|
||||||
|
@ -25,7 +25,7 @@ EXTRA_DIST = options.skel
|
|||||||
LDFLAGS = @LDFLAGS@
|
LDFLAGS = @LDFLAGS@
|
||||||
libexecdir = @libexecdir@/@PACKAGE@
|
libexecdir = @libexecdir@/@PACKAGE@
|
||||||
CFLAGS = @CFLAGS@ -DGNUPG_LIBEXECDIR="\"$(libexecdir)\""
|
CFLAGS = @CFLAGS@ -DGNUPG_LIBEXECDIR="\"$(libexecdir)\""
|
||||||
needed_libs = ../cipher/libcipher.a ../mpi/libmpi.a ../util/libutil.a
|
needed_libs = ../cipher/libcipher.a ../mpi/libmpi.a ../util/libutil.a @CAPLIBS@
|
||||||
|
|
||||||
#noinst_PROGRAMS = gpgd
|
#noinst_PROGRAMS = gpgd
|
||||||
bin_PROGRAMS = gpg gpgv
|
bin_PROGRAMS = gpg gpgv
|
||||||
|
@ -1240,7 +1240,7 @@ main( int argc, char **argv )
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
/* initialize the secure memory. */
|
/* initialize the secure memory. */
|
||||||
secmem_init( 16384 );
|
secmem_init( 32768 );
|
||||||
maybe_setuid = 0;
|
maybe_setuid = 0;
|
||||||
/* Okay, we are now working under our real uid */
|
/* Okay, we are now working under our real uid */
|
||||||
|
|
||||||
@ -1538,6 +1538,10 @@ main( int argc, char **argv )
|
|||||||
opt.s2k_mode = 3; /* iterated+salted */
|
opt.s2k_mode = 3; /* iterated+salted */
|
||||||
opt.s2k_digest_algo = DIGEST_ALGO_SHA1;
|
opt.s2k_digest_algo = DIGEST_ALGO_SHA1;
|
||||||
opt.s2k_cipher_algo = CIPHER_ALGO_3DES;
|
opt.s2k_cipher_algo = CIPHER_ALGO_3DES;
|
||||||
|
opt.pgp2 = 0;
|
||||||
|
opt.pgp6 = 0;
|
||||||
|
opt.pgp7 = 0;
|
||||||
|
opt.pgp8 = 0;
|
||||||
break;
|
break;
|
||||||
case oPGP2: opt.pgp2 = 1; break;
|
case oPGP2: opt.pgp2 = 1; break;
|
||||||
case oNoPGP2: opt.pgp2 = 0; break;
|
case oNoPGP2: opt.pgp2 = 0; break;
|
||||||
|
@ -179,6 +179,7 @@ main( int argc, char **argv )
|
|||||||
case oStatusFD: set_status_fd( pargs.r.ret_int ); break;
|
case oStatusFD: set_status_fd( pargs.r.ret_int ); break;
|
||||||
case oLoggerFD: log_set_logfile( NULL, pargs.r.ret_int ); break;
|
case oLoggerFD: log_set_logfile( NULL, pargs.r.ret_int ); break;
|
||||||
case oHomedir: opt.homedir = pargs.r.ret_str; break;
|
case oHomedir: opt.homedir = pargs.r.ret_str; break;
|
||||||
|
case oIgnoreTimeConflict: opt.ignore_time_conflict = 1; break;
|
||||||
default : pargs.err = 2; break;
|
default : pargs.err = 2; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,7 @@ typedef enum {
|
|||||||
KEYDB_RESOURCE_TYPE_NONE = 0,
|
KEYDB_RESOURCE_TYPE_NONE = 0,
|
||||||
KEYDB_RESOURCE_TYPE_KEYRING
|
KEYDB_RESOURCE_TYPE_KEYRING
|
||||||
} KeydbResourceType;
|
} KeydbResourceType;
|
||||||
#define MAX_KEYDB_RESOURCES 20
|
#define MAX_KEYDB_RESOURCES 40
|
||||||
|
|
||||||
struct resource_item {
|
struct resource_item {
|
||||||
KeydbResourceType type;
|
KeydbResourceType type;
|
||||||
|
@ -1624,7 +1624,8 @@ show_prefs (PKT_user_id *uid, int verbose)
|
|||||||
|
|
||||||
if (verbose) {
|
if (verbose) {
|
||||||
int any, des_seen=0, sha1_seen=0, uncomp_seen=0;
|
int any, des_seen=0, sha1_seen=0, uncomp_seen=0;
|
||||||
tty_printf (" Cipher: ");
|
tty_printf (" ");
|
||||||
|
tty_printf (_("Cipher: "));
|
||||||
for(i=any=0; prefs[i].type; i++ ) {
|
for(i=any=0; prefs[i].type; i++ ) {
|
||||||
if( prefs[i].type == PREFTYPE_SYM ) {
|
if( prefs[i].type == PREFTYPE_SYM ) {
|
||||||
const char *s = cipher_algo_to_string (prefs[i].value);
|
const char *s = cipher_algo_to_string (prefs[i].value);
|
||||||
@ -1646,7 +1647,8 @@ show_prefs (PKT_user_id *uid, int verbose)
|
|||||||
tty_printf (", ");
|
tty_printf (", ");
|
||||||
tty_printf ("%s",cipher_algo_to_string(CIPHER_ALGO_3DES));
|
tty_printf ("%s",cipher_algo_to_string(CIPHER_ALGO_3DES));
|
||||||
}
|
}
|
||||||
tty_printf ("\n Hash: ");
|
tty_printf ("\n ");
|
||||||
|
tty_printf (_("Digest: "));
|
||||||
for(i=any=0; prefs[i].type; i++ ) {
|
for(i=any=0; prefs[i].type; i++ ) {
|
||||||
if( prefs[i].type == PREFTYPE_HASH ) {
|
if( prefs[i].type == PREFTYPE_HASH ) {
|
||||||
const char *s = digest_algo_to_string (prefs[i].value);
|
const char *s = digest_algo_to_string (prefs[i].value);
|
||||||
@ -1668,7 +1670,8 @@ show_prefs (PKT_user_id *uid, int verbose)
|
|||||||
tty_printf (", ");
|
tty_printf (", ");
|
||||||
tty_printf ("%s",digest_algo_to_string(DIGEST_ALGO_SHA1));
|
tty_printf ("%s",digest_algo_to_string(DIGEST_ALGO_SHA1));
|
||||||
}
|
}
|
||||||
tty_printf ("\n Compression: ");
|
tty_printf ("\n ");
|
||||||
|
tty_printf (_("Compression: "));
|
||||||
for(i=any=0; prefs[i].type; i++ ) {
|
for(i=any=0; prefs[i].type; i++ ) {
|
||||||
if( prefs[i].type == PREFTYPE_ZIP ) {
|
if( prefs[i].type == PREFTYPE_ZIP ) {
|
||||||
const char *s=compress_algo_to_string(prefs[i].value);
|
const char *s=compress_algo_to_string(prefs[i].value);
|
||||||
@ -1696,7 +1699,8 @@ show_prefs (PKT_user_id *uid, int verbose)
|
|||||||
}
|
}
|
||||||
if(uid->mdc_feature || !uid->ks_modify)
|
if(uid->mdc_feature || !uid->ks_modify)
|
||||||
{
|
{
|
||||||
tty_printf ("\n Features: ");
|
tty_printf ("\n ");
|
||||||
|
tty_printf (_("Features: "));
|
||||||
any=0;
|
any=0;
|
||||||
if(uid->mdc_feature)
|
if(uid->mdc_feature)
|
||||||
{
|
{
|
||||||
@ -1707,7 +1711,7 @@ show_prefs (PKT_user_id *uid, int verbose)
|
|||||||
{
|
{
|
||||||
if(any)
|
if(any)
|
||||||
tty_printf (", ");
|
tty_printf (", ");
|
||||||
tty_printf ("Keyserver no-modify");
|
tty_printf (_("Keyserver no-modify"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
tty_printf("\n");
|
tty_printf("\n");
|
||||||
|
@ -213,7 +213,7 @@ set_one_pref (int val, int type, const char *item, byte *buf, int *nbuf)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef USE_AES
|
#ifdef USE_AES
|
||||||
#define AES "S7 "
|
#define AES "S9 S8 S7 "
|
||||||
#else
|
#else
|
||||||
#define AES ""
|
#define AES ""
|
||||||
#endif
|
#endif
|
||||||
|
@ -1326,6 +1326,10 @@ keyring_rebuild_cache (void *token)
|
|||||||
memset (&desc, 0, sizeof desc);
|
memset (&desc, 0, sizeof desc);
|
||||||
desc.mode = KEYDB_SEARCH_MODE_FIRST;
|
desc.mode = KEYDB_SEARCH_MODE_FIRST;
|
||||||
|
|
||||||
|
rc=keyring_lock (hd, 1);
|
||||||
|
if(rc)
|
||||||
|
goto leave;
|
||||||
|
|
||||||
while ( !(rc = keyring_search (hd, &desc, 1, NULL)) )
|
while ( !(rc = keyring_search (hd, &desc, 1, NULL)) )
|
||||||
{
|
{
|
||||||
desc.mode = KEYDB_SEARCH_MODE_NEXT;
|
desc.mode = KEYDB_SEARCH_MODE_NEXT;
|
||||||
@ -1420,6 +1424,7 @@ keyring_rebuild_cache (void *token)
|
|||||||
m_free (tmpfilename);
|
m_free (tmpfilename);
|
||||||
m_free (bakfilename);
|
m_free (bakfilename);
|
||||||
release_kbnode (keyblock);
|
release_kbnode (keyblock);
|
||||||
|
keyring_lock (hd, 0);
|
||||||
keyring_release (hd);
|
keyring_release (hd);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
@ -862,12 +862,26 @@ keyserver_spawn(int action,STRLIST list,
|
|||||||
case PKT_USER_ID:
|
case PKT_USER_ID:
|
||||||
{
|
{
|
||||||
PKT_user_id *uid=node->pkt->pkt.user_id;
|
PKT_user_id *uid=node->pkt->pkt.user_id;
|
||||||
|
int r;
|
||||||
|
|
||||||
if(uid->attrib_data)
|
if(uid->attrib_data)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
fprintf(spawn->tochild,"uid:%s:%u:%u:",
|
fprintf(spawn->tochild,"uid:");
|
||||||
uid->name,uid->created,uid->expiredate);
|
|
||||||
|
/* Quote ':', '%', and any 8-bit
|
||||||
|
characters */
|
||||||
|
for(r=0;r<uid->len;r++)
|
||||||
|
{
|
||||||
|
if(uid->name[r]==':' || uid->name[r]=='%'
|
||||||
|
|| uid->name[r]&0x80)
|
||||||
|
fprintf(spawn->tochild,"%%%02X",uid->name[r]);
|
||||||
|
else
|
||||||
|
fprintf(spawn->tochild,"%c",uid->name[r]);
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf(spawn->tochild,":%u:%u:",
|
||||||
|
uid->created,uid->expiredate);
|
||||||
|
|
||||||
if(uid->is_revoked)
|
if(uid->is_revoked)
|
||||||
fprintf(spawn->tochild,"r");
|
fprintf(spawn->tochild,"r");
|
||||||
|
@ -505,7 +505,7 @@ proc_encrypted( CTX c, PACKET *pkt )
|
|||||||
if( pkt->pkt.encrypted->mdc_method && !result )
|
if( pkt->pkt.encrypted->mdc_method && !result )
|
||||||
write_status( STATUS_GOODMDC );
|
write_status( STATUS_GOODMDC );
|
||||||
else if(!opt.no_mdc_warn)
|
else if(!opt.no_mdc_warn)
|
||||||
log_info ("WARNING: message was not integrity protected\n");
|
log_info (_("WARNING: message was not integrity protected\n"));
|
||||||
}
|
}
|
||||||
else if( result == G10ERR_BAD_SIGN ) {
|
else if( result == G10ERR_BAD_SIGN ) {
|
||||||
log_error(_("WARNING: encrypted message has been manipulated!\n"));
|
log_error(_("WARNING: encrypted message has been manipulated!\n"));
|
||||||
|
@ -56,7 +56,7 @@
|
|||||||
# If you do not use the Latin-1 (ISO-8859-1) charset, you should tell
|
# If you do not use the Latin-1 (ISO-8859-1) charset, you should tell
|
||||||
# GnuPG which is the native character set. Please check the man page
|
# GnuPG which is the native character set. Please check the man page
|
||||||
# for supported character sets. This character set is only used for
|
# for supported character sets. This character set is only used for
|
||||||
# Meta data and not for the actual message which does not undergo any
|
# metadata and not for the actual message which does not undergo any
|
||||||
# translation. Note that future version of GnuPG will change to UTF-8
|
# translation. Note that future version of GnuPG will change to UTF-8
|
||||||
# as default character set.
|
# as default character set.
|
||||||
|
|
||||||
@ -74,6 +74,11 @@
|
|||||||
|
|
||||||
#group mynames = paige 0x12345678 joe patti
|
#group mynames = paige 0x12345678 joe patti
|
||||||
|
|
||||||
|
# Some old Windows platforms require 8.3 filenames. If your system
|
||||||
|
# can handle long filenames, uncomment this.
|
||||||
|
|
||||||
|
#no-mangle-dos-filenames
|
||||||
|
|
||||||
# Lock the file only once for the lifetime of a process. If you do
|
# Lock the file only once for the lifetime of a process. If you do
|
||||||
# not define this, the lock will be obtained and released every time
|
# not define this, the lock will be obtained and released every time
|
||||||
# it is needed - normally this is not needed.
|
# it is needed - normally this is not needed.
|
||||||
@ -168,7 +173,8 @@
|
|||||||
# generating and then cleaning up a secure temp file.
|
# generating and then cleaning up a secure temp file.
|
||||||
#
|
#
|
||||||
# The default program is "xloadimage -fork -quiet -title 'KeyID 0x%k' stdin"
|
# The default program is "xloadimage -fork -quiet -title 'KeyID 0x%k' stdin"
|
||||||
# On Mac OS X and Windows, the default is to use your regular image viewer.
|
# On Mac OS X and Windows, the default is to use your regular JPEG image
|
||||||
|
# viewer.
|
||||||
#
|
#
|
||||||
# Some other viewers:
|
# Some other viewers:
|
||||||
# photo-viewer "qiv %i"
|
# photo-viewer "qiv %i"
|
||||||
@ -181,13 +187,12 @@
|
|||||||
# Use your MIME handler to view photos:
|
# Use your MIME handler to view photos:
|
||||||
# photo-viewer "metamail -q -d -b -c %T -s 'KeyID 0x%k' -f GnuPG"
|
# photo-viewer "metamail -q -d -b -c %T -s 'KeyID 0x%k' -f GnuPG"
|
||||||
|
|
||||||
|
|
||||||
# Passphrase agent
|
# Passphrase agent
|
||||||
#
|
#
|
||||||
# We support the old experimental passphrase agent protocol as well
|
# We support the old experimental passphrase agent protocol as well as
|
||||||
# as the new Assuan based one (currently available in the "newpg" package
|
# the new Assuan based one (currently available in the "newpg" package
|
||||||
# at ftp.gnupg.org/gcrypt/alpha/aegypten/). To make use of the agent, you have
|
# at ftp.gnupg.org/gcrypt/alpha/aegypten/). To make use of the agent,
|
||||||
# to run an agent as daemon and use the option
|
# you have to run an agent as daemon and use the option
|
||||||
#
|
#
|
||||||
# use-agent
|
# use-agent
|
||||||
#
|
#
|
||||||
|
@ -752,12 +752,12 @@ dump_sig_subpkt( int hashed, int type, int critical,
|
|||||||
type, (unsigned)length );
|
type, (unsigned)length );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
buffer++;
|
||||||
|
length--;
|
||||||
|
|
||||||
printf("\t%s%ssubpkt %d len %u (", /*)*/
|
printf("\t%s%ssubpkt %d len %u (", /*)*/
|
||||||
critical ? "critical ":"",
|
critical ? "critical ":"",
|
||||||
hashed ? "hashed ":"", type, (unsigned)length );
|
hashed ? "hashed ":"", type, (unsigned)length );
|
||||||
buffer++;
|
|
||||||
length--;
|
|
||||||
if( length > buflen ) {
|
if( length > buflen ) {
|
||||||
printf("too short: buffer is only %u)\n", (unsigned)buflen );
|
printf("too short: buffer is only %u)\n", (unsigned)buflen );
|
||||||
return;
|
return;
|
||||||
@ -823,8 +823,6 @@ dump_sig_subpkt( int hashed, int type, int critical,
|
|||||||
fputs("notation: ", stdout );
|
fputs("notation: ", stdout );
|
||||||
if( length < 8 )
|
if( length < 8 )
|
||||||
p = "[too short]";
|
p = "[too short]";
|
||||||
else if( !(*buffer & 0x80) )
|
|
||||||
p = "[not human readable]";
|
|
||||||
else {
|
else {
|
||||||
const byte *s = buffer;
|
const byte *s = buffer;
|
||||||
size_t n1, n2;
|
size_t n1, n2;
|
||||||
@ -837,7 +835,11 @@ dump_sig_subpkt( int hashed, int type, int critical,
|
|||||||
else {
|
else {
|
||||||
print_string( stdout, s, n1, ')' );
|
print_string( stdout, s, n1, ')' );
|
||||||
putc( '=', stdout );
|
putc( '=', stdout );
|
||||||
print_string( stdout, s+n1, n2, ')' );
|
|
||||||
|
if( *buffer & 0x80 )
|
||||||
|
print_string( stdout, s+n1, n2, ')' );
|
||||||
|
else
|
||||||
|
p = "[not human readable]";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -638,7 +638,7 @@ get_ownertrust_with_min (PKT_public_key *pk)
|
|||||||
{
|
{
|
||||||
unsigned int otrust,otrust_min;
|
unsigned int otrust,otrust_min;
|
||||||
|
|
||||||
otrust = get_ownertrust (pk);
|
otrust = (get_ownertrust (pk) & TRUST_MASK);
|
||||||
otrust_min = get_min_ownertrust (pk);
|
otrust_min = get_min_ownertrust (pk);
|
||||||
if(otrust<otrust_min)
|
if(otrust<otrust_min)
|
||||||
{
|
{
|
||||||
@ -2004,7 +2004,8 @@ validate_keys (int interactive)
|
|||||||
k->kid[0]=kid[0];
|
k->kid[0]=kid[0];
|
||||||
k->kid[1]=kid[1];
|
k->kid[1]=kid[1];
|
||||||
k->ownertrust =
|
k->ownertrust =
|
||||||
get_ownertrust (kar->keyblock->pkt->pkt.public_key);
|
(get_ownertrust (kar->keyblock->pkt->pkt.public_key)
|
||||||
|
& TRUST_MASK);
|
||||||
k->min_ownertrust =
|
k->min_ownertrust =
|
||||||
get_min_ownertrust(kar->keyblock->pkt->pkt.public_key);
|
get_min_ownertrust(kar->keyblock->pkt->pkt.public_key);
|
||||||
k->trust_depth=
|
k->trust_depth=
|
||||||
@ -2056,5 +2057,6 @@ validate_keys (int interactive)
|
|||||||
do_sync ();
|
do_sync ();
|
||||||
pending_check_trustdb = 0;
|
pending_check_trustdb = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user