WG: weitere Info zu Umlaut
   
    Werner Koch
     
    wk@gnupg.org
       
    Mon, 10 Jul 2000 16:20:22 +0200
    
    
  
On Mon, 10 Jul 2000, Marschall Peter wrote:
> I don't know, if I am right here.
You are right.  
>  gpg: assuming bad signature due to an unknown critical bit
gpg --list-packets should show this crtitical bit but it didn't, so
the problem is somewhere else.  Fix is easy:
--- g10/parse-packet.c.orig	Mon Jul 10 15:59:57 2000
+++ g10/parse-packet.c	Mon Jul 10 15:57:05 2000
@@ -920,8 +920,12 @@
     int seq = 0;
     int reqseq = start? *start: 0;
 
-    if( !buffer || reqseq == -1 )
-	return NULL;
+    if( !buffer || reqseq == -1 ) {
+	/* return some value different from NULL to indicate that
+	 * there is no crtitical bit we do not understand.  The caller
+	 * will never use the value.  Yes I know, it is an ugly hack */
+	return reqtype == SIGSUBPKT_TEST_CRITICAL? (const byte*)&buffer : NULL;
+    }
     buflen = (*buffer << 8) | buffer[1];
     buffer += 2;
     while( buflen ) {
This bug showed up because CryptoEx put the keyID for the signature
into the hashed data area and therefore there is no unhashed data.  I
don't know why they do it - it has no advantage except for pointing
out this bug.  
Thanks,
  Werner
-- 
Werner Koch				OpenPGP key 621CC013
OpenIT GmbH                             tel +49 211 239577-0
Birkenstr. 12                           email   wk@OpenIT.de
D-40233 Duesseldorf                     http://www.OpenIT.de