2003-08-20 Timo Schulz <twoaday@freakmail.de>
authorTimo Schulz <twoaday@freakmail.de>
Wed, 20 Aug 2003 20:20:59 +0000 (20:20 +0000)
committerTimo Schulz <twoaday@freakmail.de>
Wed, 20 Aug 2003 20:20:59 +0000 (20:20 +0000)
        * pksign.c (do_encode_md): Allocate enough space. Cast md
        byte to unsigned char to prevent sign extension.

agent/ChangeLog
agent/pksign.c

index 0c78578..39e93f8 100644 (file)
@@ -1,6 +1,11 @@
+2003-08-20  Timo Schulz  <twoaday@freakmail.de>
+
+       * pksign.c (do_encode_md): Allocate enough space. Cast md
+       byte to unsigned char to prevent sign extension.
+       
 2003-08-14  Timo Schulz  <twoaday@freakmail.de>
 
-       * pksign.c: do_encode_md: Due to the fact pkcs#1 padding
+       * pksign.c (do_encode_md): Due to the fact pkcs#1 padding
        is now in Libgcrypt, use the new interface.
        
 2003-07-31  Werner Koch  <wk@gnupg.org>
index 3022e79..200b6a2 100644 (file)
@@ -39,7 +39,7 @@ do_encode_md (const byte * md, size_t mdlen, int algo, gcry_sexp_t * r_hash)
   char * p, tmp[16];
   int i, rc;
 
-  p = xmalloc (64+mdlen);
+  p = xmalloc (64 + 2 * mdlen);
   s = gcry_md_algo_name (algo);
   if (s && strlen (s) < 16)
     {
@@ -50,7 +50,7 @@ do_encode_md (const byte * md, size_t mdlen, int algo, gcry_sexp_t * r_hash)
   sprintf (p, "(data\n (flags pkcs1)\n (hash %s #", tmp);
   for (i=0; i < mdlen; i++)
     {
-      sprintf (tmp, "%02x", md[i]);
+      sprintf (tmp, "%02x", (byte)md[i]);
       strcat (p, tmp);   
     }
   strcat (p, "#))\n");