[git] GnuPG - branch, master, updated. gnupg-2.1.0beta3-2-gc6aaf02

by David Shaw cvs at cvs.gnupg.org
Wed Dec 28 23:49:46 CET 2011


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  c6aaf024651c7d55ac9fb77a53c084efb3adc1a9 (commit)
      from  97d1c884e62bba94e42bb5b2bb13cd3880334c31 (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 c6aaf024651c7d55ac9fb77a53c084efb3adc1a9
Author: David Shaw <dshaw at jabberwocky.com>
Date:   Wed Dec 28 16:41:31 2011 -0500

    Use the longest key ID available when talking to a HKP server.
    
    This is issue 1340.  Now that PKSD is dead, and SKS supports long key
    IDs, this is safe to do.  Patch from Daniel Kahn Gillmor
    <dkg at fifthhorseman.net>.

diff --git a/keyserver/gpgkeys_hkp.c b/keyserver/gpgkeys_hkp.c
index d43a61a..ac7039d 100644
--- a/keyserver/gpgkeys_hkp.c
+++ b/keyserver/gpgkeys_hkp.c
@@ -241,9 +241,10 @@ static int
 get_key(char *getkey)
 {
   CURLcode res;
-  char request[MAX_URL+60];
+  char request[MAX_URL+92];
   char *offset;
   struct curl_writer_ctx ctx;
+  size_t keylen;
 
   memset(&ctx,0,sizeof(ctx));
 
@@ -269,14 +270,19 @@ get_key(char *getkey)
   strcat(request,port);
   strcat(request,opt->path);
   /* request is MAX_URL+55 bytes long - MAX_URL covers the whole URL,
-     including any supplied path.  The 60 overcovers this /pks/... etc
-     string plus the 8 bytes of key id */
+     including any supplied path.  The 92 overcovers this /pks/... etc
+     string plus the 8, 16, or 40 bytes of key id/fingerprint */
   append_path(request,"/pks/lookup?op=get&options=mr&search=0x");
 
-  /* fingerprint or long key id.  Take the last 8 characters and treat
-     it like a short key id */
-  if(strlen(getkey)>8)
-    offset=&getkey[strlen(getkey)-8];
+  /* send only fingerprint, long key id, or short keyid.  see:
+     https://tools.ietf.org/html/draft-shaw-openpgp-hkp-00#section-3.1.1.1 */
+  keylen = strlen(getkey);
+  if(keylen >= 40)
+    offset=&getkey[keylen-40];
+  else if(keylen >= 16)
+    offset=&getkey[keylen-16];
+  else if(keylen >= 8)
+    offset=&getkey[keylen-8];
   else
     offset=getkey;
 

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

Summary of changes:
 keyserver/gpgkeys_hkp.c |   20 +++++++++++++-------
 1 files changed, 13 insertions(+), 7 deletions(-)


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




More information about the Gnupg-commits mailing list