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/ * gpg/
** issue a NO_SECKEY xxxx if a -u key was not found. ** 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> 2006-04-18 Werner Koch <wk@g10code.com>
* keyserver.h, i18n.h, http.h, cipher.h: Updated to gpg 1.4.3. * 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_SHA256 /* 8 */ GCRY_MD_SHA256
#define DIGEST_ALGO_SHA384 /* 9 */ GCRY_MD_SHA384 #define DIGEST_ALGO_SHA384 /* 9 */ GCRY_MD_SHA384
#define DIGEST_ALGO_SHA512 /* 10 */ GCRY_MD_SHA512 #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_NONE 0
#define COMPRESS_ALGO_ZIP 1 #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> 2006-04-20 Werner Koch <wk@g10code.com>
* stringhelp.c (make_basename): New arg INPUTPATH for future * stringhelp.c (make_basename): New arg INPUTPATH for future

View File

@ -1,6 +1,6 @@
/* stringhelp.c - standard string helper functions /* stringhelp.c - standard string helper functions
* Copyright (C) 1998, 1999, 2000, 2001, 2003, * Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005,
* 2004, 2005 Free Software Foundation, Inc. * 2006 Free Software Foundation, Inc.
* *
* This file is part of GnuPG. * This file is part of GnuPG.
* *
@ -367,7 +367,7 @@ print_sanitized_buffer (FILE *fp, const void *buffer, size_t length,
else else
{ {
fprintf (fp, "x%02x", *p); fprintf (fp, "x%02x", *p);
count += 2; count += 3;
} }
} }
else else
@ -428,7 +428,7 @@ sanitize_buffer (const void *p_arg, size_t n, int delim)
const unsigned char *save_p; const unsigned char *save_p;
char *buffer, *d; char *buffer, *d;
/* first count length */ /* First count length. */
for (save_n = n, save_p = p, buflen=1 ; n; n--, p++ ) for (save_n = n, save_p = p, buflen=1 ; n; n--, p++ )
{ {
if ( *p < 0x20 || *p == 0x7f || *p == delim || (delim && *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 ) || *p=='\v' || *p=='\b' || !*p )
buflen += 2; buflen += 2;
else else
buflen += 4; buflen += 5;
} }
else else
buflen++; buflen++;
} }
p = save_p; p = save_p;
n = save_n; n = save_n;
/* and now make the string */ /* And now make the string */
d = buffer = jnlib_xmalloc( buflen ); d = buffer = jnlib_xmalloc( buflen );
for ( ; n; n--, p++ ) for ( ; n; n--, p++ )
{ {
@ -464,7 +464,7 @@ sanitize_buffer (const void *p_arg, size_t n, int delim)
*d++ = '0'; *d++ = '0';
else { else {
sprintf(d, "x%02x", *p ); sprintf(d, "x%02x", *p );
d += 2; d += 3;
} }
} }
else else