aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2006-04-28 14:32:13 +0000
committerWerner Koch <[email protected]>2006-04-28 14:32:13 +0000
commitc61489acbfe3fba0c7fa548161cde50554d623ff (patch)
treedd9218a14755ac4650178c7d7c2cedcbed08e905
parentMerged recent changes from 1.4 (diff)
downloadgnupg-c61489acbfe3fba0c7fa548161cde50554d623ff.tar.gz
gnupg-c61489acbfe3fba0c7fa548161cde50554d623ff.zip
Fix for sanitize string. Added SHA224
Diffstat (limited to '')
-rw-r--r--TODO5
-rw-r--r--include/ChangeLog4
-rw-r--r--include/cipher.h3
-rw-r--r--jnlib/ChangeLog7
-rw-r--r--jnlib/stringhelp.c14
5 files changed, 26 insertions, 7 deletions
diff --git a/TODO b/TODO
index 3e4d21dc6..af3a42605 100644
--- a/TODO
+++ b/TODO
@@ -106,3 +106,8 @@ might want to have an agent context for each service request
* gpg/
** issue a NO_SECKEY xxxx if a -u key was not found.
+** Replace DIGEST_ALGO_SHA224
+ We can't do that right now because it is only defined by newer
+ versions of libgcrypt. Changes this if we require libgcrypt 1.3
+ anyway.
+
diff --git a/include/ChangeLog b/include/ChangeLog
index 0211bd618..3fd3fe48c 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,7 @@
+2006-04-28 Werner Koch <[email protected]>
+
+ * cipher.h (DIGEST_ALGO_SHA224): Define it.
+
2006-04-18 Werner Koch <[email protected]>
* keyserver.h, i18n.h, http.h, cipher.h: Updated to gpg 1.4.3.
diff --git a/include/cipher.h b/include/cipher.h
index 681386c36..d8b15cf9a 100644
--- a/include/cipher.h
+++ b/include/cipher.h
@@ -68,6 +68,9 @@
#define DIGEST_ALGO_SHA256 /* 8 */ GCRY_MD_SHA256
#define DIGEST_ALGO_SHA384 /* 9 */ GCRY_MD_SHA384
#define DIGEST_ALGO_SHA512 /* 10 */ GCRY_MD_SHA512
+/* SHA224 is as of now only defined in the libgcrypt SVN; thus we
+ can't use that macro. */
+#define DIGEST_ALGO_SHA224 /* 11 */ 11 /* GCRY_MD_SHA224 */
#define COMPRESS_ALGO_NONE 0
#define COMPRESS_ALGO_ZIP 1
diff --git a/jnlib/ChangeLog b/jnlib/ChangeLog
index 8816068b0..f3074c6af 100644
--- a/jnlib/ChangeLog
+++ b/jnlib/ChangeLog
@@ -1,3 +1,10 @@
+2006-04-28 Werner Koch <[email protected]>
+
+ * stringhelp.c (print_sanitized_buffer): Fix bug where the count
+ got wrong for the \xNN representation.
+ (sanitize_buffer): Fix bug where some control characters lose part
+ of their \xNN representation.
+
2006-04-20 Werner Koch <[email protected]>
* stringhelp.c (make_basename): New arg INPUTPATH for future
diff --git a/jnlib/stringhelp.c b/jnlib/stringhelp.c
index e999170dd..d5a2c29b6 100644
--- a/jnlib/stringhelp.c
+++ b/jnlib/stringhelp.c
@@ -1,6 +1,6 @@
/* stringhelp.c - standard string helper functions
- * Copyright (C) 1998, 1999, 2000, 2001, 2003,
- * 2004, 2005 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+ * 2006 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -367,7 +367,7 @@ print_sanitized_buffer (FILE *fp, const void *buffer, size_t length,
else
{
fprintf (fp, "x%02x", *p);
- count += 2;
+ count += 3;
}
}
else
@@ -428,7 +428,7 @@ sanitize_buffer (const void *p_arg, size_t n, int delim)
const unsigned char *save_p;
char *buffer, *d;
- /* first count length */
+ /* First count length. */
for (save_n = n, save_p = p, buflen=1 ; n; n--, p++ )
{
if ( *p < 0x20 || *p == 0x7f || *p == delim || (delim && *p=='\\'))
@@ -437,14 +437,14 @@ sanitize_buffer (const void *p_arg, size_t n, int delim)
|| *p=='\v' || *p=='\b' || !*p )
buflen += 2;
else
- buflen += 4;
+ buflen += 5;
}
else
buflen++;
}
p = save_p;
n = save_n;
- /* and now make the string */
+ /* And now make the string */
d = buffer = jnlib_xmalloc( buflen );
for ( ; n; n--, p++ )
{
@@ -464,7 +464,7 @@ sanitize_buffer (const void *p_arg, size_t n, int delim)
*d++ = '0';
else {
sprintf(d, "x%02x", *p );
- d += 2;
+ d += 3;
}
}
else