[git] GnuPG - branch, master, updated. gnupg-2.1.6-40-g5b7a80b

by Werner Koch cvs at cvs.gnupg.org
Fri Aug 7 15:56:47 CEST 2015


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The GNU Privacy Guard".

The branch, master has been updated
       via  5b7a80b1ab91d2f199065e5dd14e85f42918975d (commit)
      from  a68c5c5c7fe4ec8665e252e5062292f6c7b94fdd (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 5b7a80b1ab91d2f199065e5dd14e85f42918975d
Author: Werner Koch <wk at gnupg.org>
Date:   Fri Aug 7 15:53:56 2015 +0200

    gpg: Allow gpgv to work with a trustedkeys.kbx file.
    
    * g10/keydb.h (KEYDB_RESOURCE_FLAG_GPGVDEF): New.
    * g10/keydb.c (keydb_add_resource): Take care of new flag.
    * g10/gpgv.c (main): Use new flag.
    --
    
    GnuPG-bug-id: 2025
    Signed-off-by: Werner Koch <wk at gnupg.org>

diff --git a/doc/gpgv.texi b/doc/gpgv.texi
index 8d7164a..6bcbc0a 100644
--- a/doc/gpgv.texi
+++ b/doc/gpgv.texi
@@ -67,7 +67,8 @@ no configuration files and only a few options are implemented.
 That does also mean that it does not check for expired or revoked
 keys.
 
-By default a keyring named @file{trustedkeys.gpg} is used.  This
+By default a keyring named @file{trustedkeys.kbx} is used; if that
+does not exist a keyring named @file{trustedkeys.gpg} is used.  The
 default keyring is assumed to be in the home directory of GnuPG,
 either the default home directory or the one set by an option or an
 environment variable.  The option @code{--keyring} may be used to
diff --git a/g10/gpgv.c b/g10/gpgv.c
index 479bb95..412f4be 100644
--- a/g10/gpgv.c
+++ b/g10/gpgv.c
@@ -205,8 +205,9 @@ main( int argc, char **argv )
 
   /* Note: We open all keyrings in read-only mode.  */
   if (!nrings)  /* No keyring given: use default one. */
-    keydb_add_resource ("trustedkeys" EXTSEP_S GPGEXT_GPG,
-                        KEYDB_RESOURCE_FLAG_READONLY);
+    keydb_add_resource ("trustedkeys" EXTSEP_S "kbx",
+                        (KEYDB_RESOURCE_FLAG_READONLY
+                         |KEYDB_RESOURCE_FLAG_GPGVDEF));
   for (sl = nrings; sl; sl = sl->next)
     keydb_add_resource (sl->d, KEYDB_RESOURCE_FLAG_READONLY);
 
diff --git a/g10/keydb.c b/g10/keydb.c
index 3dc9ec7..b31c6a6 100644
--- a/g10/keydb.c
+++ b/g10/keydb.c
@@ -434,6 +434,7 @@ keydb_add_resource (const char *url, unsigned int flags)
   int create;
   int read_only = !!(flags&KEYDB_RESOURCE_FLAG_READONLY);
   int is_default = !!(flags&KEYDB_RESOURCE_FLAG_DEFAULT);
+  int is_gpgvdef = !!(flags&KEYDB_RESOURCE_FLAG_GPGVDEF);
   int rc = 0;
   KeydbResourceType rt = KEYDB_RESOURCE_TYPE_NONE;
   void *token;
@@ -516,6 +517,23 @@ keydb_add_resource (const char *url, unsigned int flags)
                 strcpy (filename+filenamelen-4, ".gpg");
             }
 	}
+      else if (!pass && is_gpgvdef
+               && filenamelen > 4 && !strcmp (filename+filenamelen-4, ".kbx"))
+        {
+          /* Not found but gpgv's default "trustedkeys.kbx" file has
+             been requested.  We did not found it so now check whether
+             a "trustedkeys.gpg" file exists and use that instead.  */
+          KeydbResourceType rttmp;
+
+          strcpy (filename+filenamelen-4, ".gpg");
+          rttmp = rt_from_file (filename, &found, &openpgp_flag);
+          if (found
+              && ((rttmp == KEYDB_RESOURCE_TYPE_KEYBOX && openpgp_flag)
+                  || (rttmp == KEYDB_RESOURCE_TYPE_KEYRING)))
+            rt = rttmp;
+          else /* Restore filename */
+            strcpy (filename+filenamelen-4, ".kbx");
+        }
       else if (!pass
                && is_default && create
                && filenamelen > 4 && !strcmp (filename+filenamelen-4, ".gpg"))
diff --git a/g10/keydb.h b/g10/keydb.h
index 1aa4e0e..b64438c 100644
--- a/g10/keydb.h
+++ b/g10/keydb.h
@@ -130,6 +130,7 @@ union pref_hint
 #define KEYDB_RESOURCE_FLAG_PRIMARY  2  /* The primary resource.  */
 #define KEYDB_RESOURCE_FLAG_DEFAULT  4  /* The default one.  */
 #define KEYDB_RESOURCE_FLAG_READONLY 8  /* Open in read only mode.  */
+#define KEYDB_RESOURCE_FLAG_GPGVDEF 16  /* Default file for gpgv.  */
 
 gpg_error_t keydb_add_resource (const char *url, unsigned int flags);
 void        keydb_dump_stats (void);

-----------------------------------------------------------------------

Summary of changes:
 doc/gpgv.texi |  3 ++-
 g10/gpgv.c    |  5 +++--
 g10/keydb.c   | 18 ++++++++++++++++++
 g10/keydb.h   |  1 +
 4 files changed, 24 insertions(+), 3 deletions(-)


hooks/post-receive
-- 
The GNU Privacy Guard
http://git.gnupg.org




More information about the Gnupg-commits mailing list