1
0
mirror of git://git.gnupg.org/gnupg.git synced 2025-04-17 15:44:34 +02:00

dirmngr: Indicate that serial numbers are hexadecimal.

* dirmngr/misc.c (hexify_data): Add arg with_prefix.  Adjust all
callers.
* dirmngr/crlcache.c (cache_isvalid): Print "0x" in front of the S/N.
--

GnuPG-bug-id: 1147
Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
Werner Koch 2016-01-22 12:54:02 +01:00
parent 77bceb2902
commit 12c665b36c
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
3 changed files with 16 additions and 9 deletions

View File

@ -1345,12 +1345,13 @@ cache_isvalid (ctrl_t ctrl, const char *issuer_hash,
if (n != 16) if (n != 16)
{ {
log_error (_("WARNING: invalid cache record length for S/N ")); log_error (_("WARNING: invalid cache record length for S/N "));
log_printf ("0x");
log_printhex ("", sn, snlen); log_printhex ("", sn, snlen);
} }
else if (opt.verbose) else if (opt.verbose)
{ {
unsigned char record[16]; unsigned char record[16];
char *tmp = hexify_data (sn, snlen); char *tmp = hexify_data (sn, snlen, 1);
if (cdb_read (cdb, record, n, cdb_datapos (cdb))) if (cdb_read (cdb, record, n, cdb_datapos (cdb)))
log_error (_("problem reading cache record for S/N %s: %s\n"), log_error (_("problem reading cache record for S/N %s: %s\n"),
@ -1366,7 +1367,7 @@ cache_isvalid (ctrl_t ctrl, const char *issuer_hash,
{ {
if (opt.verbose) if (opt.verbose)
{ {
char *serialno = hexify_data (sn, snlen); char *serialno = hexify_data (sn, snlen, 1);
log_info (_("S/N %s is valid, it is not listed in the CRL\n"), log_info (_("S/N %s is valid, it is not listed in the CRL\n"),
serialno ); serialno );
xfree (serialno); xfree (serialno);
@ -2095,7 +2096,7 @@ crl_cache_insert (ctrl_t ctrl, const char *url, ksba_reader_t reader)
err = gpg_error (GPG_ERR_CHECKSUM); err = gpg_error (GPG_ERR_CHECKSUM);
goto leave; goto leave;
} }
checksum = hexify_data (md5buf, 16); checksum = hexify_data (md5buf, 16, 0);
} }

View File

@ -59,17 +59,23 @@ hashify_data( const char* data, size_t len )
{ {
unsigned char buf[20]; unsigned char buf[20];
gcry_md_hash_buffer (GCRY_MD_SHA1, buf, data, len); gcry_md_hash_buffer (GCRY_MD_SHA1, buf, data, len);
return hexify_data( buf, 20 ); return hexify_data (buf, 20, 0);
} }
char* char*
hexify_data( const unsigned char* data, size_t len ) hexify_data (const unsigned char* data, size_t len, int with_prefix)
{ {
int i; int i;
char* result = xmalloc( sizeof( char ) * (2*len+1)); char *result = xmalloc (2*len + (with_prefix?2:0) + 1);
char *p;
for( i = 0; i < 2*len; i+=2 ) if (with_prefix)
sprintf( result+i, "%02X", *data++); p = stpcpy (result, "0x");
else
p = result;
for (i = 0; i < 2*len; i+=2 )
snprintf (p+i, 3, "%02X", *data++);
return result; return result;
} }

View File

@ -28,7 +28,7 @@ size_t unhexify (unsigned char *result, const char *string);
char* hashify_data( const char* data, size_t len ); char* hashify_data( const char* data, size_t len );
/* Returns data as a hex string. */ /* Returns data as a hex string. */
char* hexify_data( const unsigned char* data, size_t len ); char* hexify_data (const unsigned char* data, size_t len, int with_prefix);
/* Returns the serial number as a hex string. */ /* Returns the serial number as a hex string. */
char* serial_hex ( ksba_sexp_t serial ); char* serial_hex ( ksba_sexp_t serial );