Fix for sanitize string. Added SHA224

This commit is contained in:
Werner Koch 2006-04-28 14:32:13 +00:00
parent 00ffc478de
commit c61489acbf
5 changed files with 26 additions and 7 deletions

5
TODO
View File

@ -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.

View File

@ -1,3 +1,7 @@
2006-04-28 Werner Koch <wk@g10code.com>
* cipher.h (DIGEST_ALGO_SHA224): Define it.
2006-04-18 Werner Koch <wk@g10code.com>
* keyserver.h, i18n.h, http.h, cipher.h: Updated to gpg 1.4.3.

View File

@ -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

View File

@ -1,3 +1,10 @@
2006-04-28 Werner Koch <wk@g10code.com>
* 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 <wk@g10code.com>
* stringhelp.c (make_basename): New arg INPUTPATH for future

View File

@ -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