* keylist.c (email_kludge): Reworked.

* certdump.c (gpgsm_print_serial, gpgsm_dump_serial): Cast printf
arg to unsigned.
* call-dirmngr.c (gpgsm_dirmngr_run_command): Ditto
This commit is contained in:
Werner Koch 2005-07-20 15:05:05 +00:00
parent 8889f4a2ee
commit 68191d0c93
11 changed files with 62 additions and 15 deletions

3
THANKS
View File

@ -1,7 +1,8 @@
Alexander Belopolsky belopolsky at mac.com Alexander Belopolsky belopolsky at mac.com
Andrew J. Schorr aschorr at telemetry-investments.com Andrew J. Schorr aschorr at telemetry-investments.com
Kazu Yamamoto kazu@iij.ad.jp Charly Avital shavital at mac.com
Kazu Yamamoto kazu at iij.ad.jp
Michael Nottebrock michaelnottebrock at gmx.net Michael Nottebrock michaelnottebrock at gmx.net
Ray Link rlink at pitt.edu Ray Link rlink at pitt.edu
Richard Lefebvre rick at cerca.umontreal.ca Richard Lefebvre rick at cerca.umontreal.ca

2
TODO
View File

@ -103,3 +103,5 @@ might want to have an agent context for each service request
* sm/
** --include-certs seems to be a dummy option.

View File

@ -1,3 +1,16 @@
2005-07-05 Werner Koch <wk@g10code.com>
* app-openpgp.c (do_readkey): Return a mallcoed copy of the key as
required by the description. Thanks to Moritz for tracking this
problem down.
2005-06-21 Werner Koch <wk@g10code.com>
* scdaemon.c (main): ifdef call to ccid_set_debug_level.
* apdu.c (reset_pcsc_reader, open_pcsc_reader): Cast size_t to
ulong for printf.
2005-06-06 Werner Koch <wk@g10code.com> 2005-06-06 Werner Koch <wk@g10code.com>
* scdaemon.c (main): New option --debug-allow-core-dump. * scdaemon.c (main): New option --debug-allow-core-dump.

View File

@ -809,7 +809,8 @@ reset_pcsc_reader (int slot)
len -= 4; /* Already read the error code. */ len -= 4; /* Already read the error code. */
if (len > DIM (slotp->atr)) if (len > DIM (slotp->atr))
{ {
log_error ("PC/SC returned a too large ATR (len=%x)\n", len); log_error ("PC/SC returned a too large ATR (len=%lx)\n",
(unsigned long)len);
sw = SW_HOST_GENERAL_ERROR; sw = SW_HOST_GENERAL_ERROR;
goto command_failed; goto command_failed;
} }
@ -1425,7 +1426,8 @@ open_pcsc_reader (const char *portstr)
len -= 4; /* Already read the error code. */ len -= 4; /* Already read the error code. */
if (len > DIM (slotp->atr)) if (len > DIM (slotp->atr))
{ {
log_error ("PC/SC returned a too large ATR (len=%x)\n", len); log_error ("PC/SC returned a too large ATR (len=%lx)\n",
(unsigned long)len);
goto command_failed; goto command_failed;
} }
err = (msgbuf[5] << 24) | (msgbuf[6] << 16) | (msgbuf[7] << 8 ) | msgbuf[8]; err = (msgbuf[5] << 24) | (msgbuf[6] << 16) | (msgbuf[7] << 8 ) | msgbuf[8];

View File

@ -1230,8 +1230,15 @@ do_readkey (app_t app, const char *keyid, unsigned char **pk, size_t *pklen)
buf = app->app_local->pk[keyno-1].key; buf = app->app_local->pk[keyno-1].key;
if (!buf) if (!buf)
return gpg_error (GPG_ERR_NO_PUBKEY); return gpg_error (GPG_ERR_NO_PUBKEY);
*pk = buf;
*pklen = app->app_local->pk[keyno-1].keylen;; *pklen = app->app_local->pk[keyno-1].keylen;;
*pk = xtrymalloc (*pklen);
if (!*pk)
{
err = gpg_error_from_errno (errno);
*pklen = 0;
return err;
}
memcpy (*pk, buf, *pklen);
return 0; return 0;
#else #else
return gpg_error (GPG_ERR_NOT_IMPLEMENTED); return gpg_error (GPG_ERR_NOT_IMPLEMENTED);

View File

@ -456,7 +456,9 @@ main (int argc, char **argv )
allow_coredump = 1; allow_coredump = 1;
break; break;
case oDebugCCIDDriver: case oDebugCCIDDriver:
#ifdef HAVE_LIBUSB
ccid_set_debug_level (ccid_set_debug_level (-1)+1); ccid_set_debug_level (ccid_set_debug_level (-1)+1);
#endif /*HAVE_LIBUSB*/
break; break;
case oDebugDisableTicker: ticker_disabled = 1; break; case oDebugDisableTicker: ticker_disabled = 1; break;

View File

@ -1,3 +1,11 @@
2005-07-20 Werner Koch <wk@g10code.com>
* keylist.c (email_kludge): Reworked.
* certdump.c (gpgsm_print_serial, gpgsm_dump_serial): Cast printf
arg to unsigned.
* call-dirmngr.c (gpgsm_dirmngr_run_command): Ditto
2005-07-19 Werner Koch <wk@g10code.com> 2005-07-19 Werner Koch <wk@g10code.com>
* fingerprint.c (gpgsm_get_certid): Cast printf arg to unsigned. * fingerprint.c (gpgsm_get_certid): Cast printf arg to unsigned.

View File

@ -827,7 +827,7 @@ gpgsm_dirmngr_run_command (CTRL ctrl, const char *command,
*p++ = '+'; *p++ = '+';
else if (!isprint (*s) || *s == '+') else if (!isprint (*s) || *s == '+')
{ {
sprintf (p, "%%%02X", *s); sprintf (p, "%%%02X", *(const unsigned char *)s);
p += 3; p += 3;
} }
else else

View File

@ -70,7 +70,7 @@ gpgsm_print_serial (FILE *fp, ksba_const_sexp_t sn)
else else
{ {
for (p++; n; n--, p++) for (p++; n; n--, p++)
fprintf (fp, "%02X", *p); fprintf (fp, "%02X", *(const unsigned char*)p);
} }
} }
} }
@ -98,7 +98,7 @@ gpgsm_dump_serial (ksba_const_sexp_t sn)
else else
{ {
for (p++; n; n--, p++) for (p++; n; n--, p++)
log_printf ("%02X", *p); log_printf ("%02X", *(const unsigned char *)p);
} }
} }
} }

View File

@ -251,30 +251,42 @@ print_time (gnupg_isotime_t t, FILE *fp)
} }
/* return an allocated string with the email address extracted from a /* Return an allocated string with the email address extracted from a
DN */ DN */
static char * static char *
email_kludge (const char *name) email_kludge (const char *name)
{ {
const char *p; const char *p, *string;
unsigned char *buf; unsigned char *buf;
int n; int n;
if (strncmp (name, "1.2.840.113549.1.9.1=#", 22)) string = name;
return NULL; for (;;)
{
p = strstr (string, "1.2.840.113549.1.9.1=#");
if (!p)
return NULL;
if (p == name || (p > string+1 && p[-1] == ',' && p[-2] != '\\'))
{
name = p + 22;
break;
}
string = p + 22;
}
/* This looks pretty much like an email address in the subject's DN /* This looks pretty much like an email address in the subject's DN
we use this to add an additional user ID entry. This way, we use this to add an additional user ID entry. This way,
openSSL generated keys get a nicer and usable listing */ openSSL generated keys get a nicer and usable listing */
name += 22;
for (n=0, p=name; hexdigitp (p) && hexdigitp (p+1); p +=2, n++) for (n=0, p=name; hexdigitp (p) && hexdigitp (p+1); p +=2, n++)
; ;
if (*p != '#' || !n) if (!n)
return NULL; return NULL;
buf = xtrymalloc (n+3); buf = xtrymalloc (n+3);
if (!buf) if (!buf)
return NULL; /* oops, out of core */ return NULL; /* oops, out of core */
*buf = '<'; *buf = '<';
for (n=1, p=name; *p != '#'; p +=2, n++) for (n=1, p=name; hexdigitp (p); p +=2, n++)
buf[n] = xtoi_2 (p); buf[n] = xtoi_2 (p);
buf[n++] = '>'; buf[n++] = '>';
buf[n] = 0; buf[n] = 0;

View File

@ -1109,7 +1109,7 @@ write_status_text_and_buffer ( int no, const char *string,
if (s != buffer) if (s != buffer)
fwrite (buffer, s-buffer, 1, statusfp ); fwrite (buffer, s-buffer, 1, statusfp );
if ( esc ) { if ( esc ) {
fprintf (statusfp, "%%%02X", *(const byte*)s ); fprintf (statusfp, "%%%02X", *(const unsigned char*)s );
s++; n--; s++; n--;
} }
buffer = s; buffer = s;