aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--g10/gpgv.c8
-rw-r--r--g10/keylist.c8
-rw-r--r--g10/tdbio.c18
-rw-r--r--g10/tdbio.h3
-rw-r--r--g10/trustdb.c10
-rw-r--r--g10/trustdb.h5
6 files changed, 34 insertions, 18 deletions
diff --git a/g10/gpgv.c b/g10/gpgv.c
index 8ca675289..b62ab8224 100644
--- a/g10/gpgv.c
+++ b/g10/gpgv.c
@@ -1,6 +1,6 @@
/* gpgv.c - The GnuPG signature verify utility
- * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005,
- * 2006, 2008 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005, 2006,
+ * 2008, 2009, 2012 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -237,7 +237,8 @@ check_signatures_trust( PKT_signature *sig )
void
read_trust_options(byte *trust_model, ulong *created, ulong *nextcheck,
- byte *marginals, byte *completes, byte *cert_depth)
+ byte *marginals, byte *completes, byte *cert_depth,
+ byte *min_cert_level)
{
(void)trust_model;
(void)created;
@@ -245,6 +246,7 @@ read_trust_options(byte *trust_model, ulong *created, ulong *nextcheck,
(void)marginals;
(void)completes;
(void)cert_depth;
+ (void)min_cert_level;
}
/* Stub:
diff --git a/g10/keylist.c b/g10/keylist.c
index f6b8cffb2..cd868bfee 100644
--- a/g10/keylist.c
+++ b/g10/keylist.c
@@ -1,6 +1,6 @@
/* keylist.c - Print information about OpenPGP keys
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
- * 2008, 2010 Free Software Foundation, Inc.
+ * 2008, 2010, 2012 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -67,10 +67,10 @@ public_key_list (ctrl_t ctrl, strlist_t list, int locate_mode)
if (opt.with_colons)
{
byte trust_model, marginals, completes, cert_depth;
- ulong created, nextcheck;
+ ulong created, nextcheck, min_cert_level;
read_trust_options (&trust_model, &created, &nextcheck,
- &marginals, &completes, &cert_depth);
+ &marginals, &completes, &cert_depth, &min_cert_level);
es_fprintf (es_stdout, "tru:");
@@ -86,6 +86,8 @@ public_key_list (ctrl_t ctrl, strlist_t list, int locate_mode)
es_fprintf (es_stdout, "c");
if (cert_depth != opt.max_cert_depth)
es_fprintf (es_stdout, "d");
+ if (min_cert_level != opt.min_cert_level)
+ es_fprintf (es_stdout, "l");
}
es_fprintf (es_stdout, ":%d:%lu:%lu", trust_model, created, nextcheck);
diff --git a/g10/tdbio.c b/g10/tdbio.c
index 1ab11f2e7..ef05cf2a8 100644
--- a/g10/tdbio.c
+++ b/g10/tdbio.c
@@ -1,5 +1,5 @@
-/* tdbio.c - trust databse I/O operations
- * Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+/* tdbio.c - trust database I/O operations
+ * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2012 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -445,6 +445,7 @@ tdbio_update_version_record (void)
rec.r.ver.completes = opt.completes_needed;
rec.r.ver.cert_depth = opt.max_cert_depth;
rec.r.ver.trust_model = opt.trust_model;
+ rec.r.ver.min_cert_level = opt.min_cert_level;
rc=tdbio_write_record(&rec);
}
@@ -467,6 +468,7 @@ create_version_record (void)
rec.r.ver.trust_model = opt.trust_model;
else
rec.r.ver.trust_model = TM_PGP;
+ rec.r.ver.min_cert_level = opt.min_cert_level;
rec.rectype = RECTYPE_VER;
rec.recnum = 0;
rc = tdbio_write_record( &rec );
@@ -713,7 +715,8 @@ tdbio_db_matches_options()
yes_no = vr.r.ver.marginals == opt.marginals_needed
&& vr.r.ver.completes == opt.completes_needed
&& vr.r.ver.cert_depth == opt.max_cert_depth
- && vr.r.ver.trust_model == opt.trust_model;
+ && vr.r.ver.trust_model == opt.trust_model
+ && vr.r.ver.min_cert_level == opt.min_cert_level;
}
return yes_no;
@@ -1143,13 +1146,14 @@ tdbio_dump_record( TRUSTREC *rec, FILE *fp )
case 0: fprintf(fp, "blank\n");
break;
case RECTYPE_VER: fprintf(fp,
- "version, td=%lu, f=%lu, m/c/d=%d/%d/%d tm=%d nc=%lu (%s)\n",
+ "version, td=%lu, f=%lu, m/c/d=%d/%d/%d tm=%d mcl=%d nc=%lu (%s)\n",
rec->r.ver.trusthashtbl,
rec->r.ver.firstfree,
rec->r.ver.marginals,
rec->r.ver.completes,
rec->r.ver.cert_depth,
rec->r.ver.trust_model,
+ rec->r.ver.min_cert_level,
rec->r.ver.nextcheck,
strtimestamp(rec->r.ver.nextcheck)
);
@@ -1245,7 +1249,8 @@ tdbio_read_record( ulong recnum, TRUSTREC *rec, int expected )
rec->r.ver.completes = *p++;
rec->r.ver.cert_depth = *p++;
rec->r.ver.trust_model = *p++;
- p += 3;
+ rec->r.ver.min_cert_level = *p++;
+ p += 2;
rec->r.ver.created = buftoulong(p); p += 4;
rec->r.ver.nextcheck = buftoulong(p); p += 4;
p += 4;
@@ -1332,7 +1337,8 @@ tdbio_write_record( TRUSTREC *rec )
*p++ = rec->r.ver.completes;
*p++ = rec->r.ver.cert_depth;
*p++ = rec->r.ver.trust_model;
- p += 3;
+ *p++ = rec->r.ver.min_cert_level;
+ p += 2;
ulongtobuf(p, rec->r.ver.created); p += 4;
ulongtobuf(p, rec->r.ver.nextcheck); p += 4;
p += 4;
diff --git a/g10/tdbio.h b/g10/tdbio.h
index c2434faa4..252a393b7 100644
--- a/g10/tdbio.h
+++ b/g10/tdbio.h
@@ -1,5 +1,5 @@
/* tdbio.h - Trust database I/O functions
- * Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2012 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -54,6 +54,7 @@ struct trust_record {
byte completes;
byte cert_depth;
byte trust_model;
+ byte min_cert_level;
ulong created; /* timestamp of trustdb creation */
ulong nextcheck; /* timestamp of next scheduled check */
ulong reserved;
diff --git a/g10/trustdb.c b/g10/trustdb.c
index 006db04f4..63b03c4f7 100644
--- a/g10/trustdb.c
+++ b/g10/trustdb.c
@@ -1,6 +1,6 @@
/* trustdb.c
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
- * 2008 Free Software Foundation, Inc.
+ * 2008, 2012 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -658,7 +658,8 @@ trustdb_check_or_update(void)
void
read_trust_options(byte *trust_model,ulong *created,ulong *nextcheck,
- byte *marginals,byte *completes,byte *cert_depth)
+ byte *marginals,byte *completes,byte *cert_depth,
+ byte *min_cert_level)
{
TRUSTREC opts;
@@ -678,6 +679,8 @@ read_trust_options(byte *trust_model,ulong *created,ulong *nextcheck,
*completes=opts.r.ver.completes;
if(cert_depth)
*cert_depth=opts.r.ver.cert_depth;
+ if(min_cert_level)
+ *min_cert_level=opts.r.ver.min_cert_level;
}
/***********************************************
@@ -1042,7 +1045,8 @@ check_trustdb_stale(void)
did_nextcheck = 1;
scheduled = tdbio_read_nextcheck ();
- if (scheduled && scheduled <= make_timestamp ())
+ if ((scheduled && scheduled <= make_timestamp ())
+ || pending_check_trustdb)
{
if (opt.no_auto_check_trustdb)
{
diff --git a/g10/trustdb.h b/g10/trustdb.h
index e2202f38f..0a9ce335a 100644
--- a/g10/trustdb.h
+++ b/g10/trustdb.h
@@ -1,6 +1,6 @@
/* trustdb.h - Trust database
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
- * 2005 Free Software Foundation, Inc.
+ * 2005, 2012 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -70,7 +70,8 @@ void enum_cert_paths_print( void **context, FILE *fp,
int refresh, ulong selected_lid );
void read_trust_options(byte *trust_model,ulong *created,ulong *nextcheck,
- byte *marginals,byte *completes,byte *cert_depth);
+ byte *marginals,byte *completes,byte *cert_depth,
+ byte *min_cert_level);
unsigned int get_ownertrust (PKT_public_key *pk);
unsigned int get_min_ownertrust (PKT_public_key *pk);