Index: pgputil.c
===================================================================
RCS file: /afs/net.mit.edu/project/pks/.cvsroot/pks/pgputil.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -c -r1.11 -r1.12
*** pgputil.c	1999/05/26 03:35:28	1.11
--- pgputil.c	2000/05/20 06:13:43	1.12
***************
*** 1,4 ****
! const char rcsid_pgputil_c[] = "$Id: pgputil.c,v 1.11 1999/05/26 03:35:28 marc Exp $";
  
  /* 
   * Copyright (c) 1996, 1997, 1998, 1999, Marc Horowitz.  All rights reserved.
--- 1,4 ----
! const char rcsid_pgputil_c[] = "$Id: pgputil.c,v 1.12 2000/05/20 06:13:43 marc Exp $";
  
  /* 
   * Copyright (c) 1996, 1997, 1998, 1999, Marc Horowitz.  All rights reserved.
***************
*** 352,357 ****
--- 352,359 ----
        if (!decode_num(data, 1, &mdtype))
           return(0);
  
+       keyid->size = 0;
+ 
        if (!decode_subpacket(data, sig_time, keyid))
           return(0);
  
***************
*** 360,365 ****
--- 362,380 ----
  
        if (!decode_bytestr(data, 2, &cksum))
           return(0);
+ 
+       /* This is probably an x.509 signature.  Fill in a bogus keyid
+ 	 until I have a better way of dealing with this.  keyid is
+ 	 normally a pointer into another dynamically allocated bit of
+ 	 data, so making it a pointer to static data will work
+ 	 fine. */
+       if (keyid->size == 0) {
+ 	 static unsigned char boguskeyid[8] = { 0xff, 0xff, 0xff, 0xff, 
+ 					       0xff, 0xff, 0xff, 0xff };
+ 	 keyid->data = boguskeyid;
+ 	 keyid->size = sizeof(boguskeyid);
+ 	 keyid->offset = 0;
+       }
  
        switch (pkctype) {
        case 1: /*RSA: 1*MPI*/