From 98c6970ad1c55d38d7e3d1ba4c97d01dacec281f Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Tue, 27 Jun 2006 14:32:34 +0000 Subject: [PATCH] Various smaller changes --- NEWS | 5 +++++ TODO | 4 ++++ agent/ChangeLog | 11 +++++++++++ agent/command-ssh.c | 18 +++++++----------- agent/gpg-agent.c | 3 ++- configure.ac | 4 ++-- sm/ChangeLog | 5 +++++ sm/certchain.c | 2 ++ sm/certdump.c | 30 ++++++++++++++++++++++++++++++ sm/gpgsm.h | 2 ++ sm/keylist.c | 2 +- 11 files changed, 71 insertions(+), 15 deletions(-) diff --git a/NEWS b/NEWS index b85f1aef6..7fafd44d3 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,8 @@ +Noteworthy changes in version 1.9.22 +------------------------------------------------- + + + Noteworthy changes in version 1.9.21 (2006-06-20) ------------------------------------------------- diff --git a/TODO b/TODO index da3a76e06..0650361c6 100644 --- a/TODO +++ b/TODO @@ -111,6 +111,10 @@ might want to have an agent context for each service request anyway. ** skclist.c:random_is_faked Remove the whole stuff? +** qbits + We pass a new qbit parameter to genkey - implement this in libgcrypt. +** Makefile.am + Remove the no-pointer-sign kludge. * common/ ** ttyio diff --git a/agent/ChangeLog b/agent/ChangeLog index 7c4799d1c..a194e0d2e 100644 --- a/agent/ChangeLog +++ b/agent/ChangeLog @@ -1,3 +1,14 @@ +2006-06-26 Werner Koch + + * gpg-agent.c (handle_signal): Print infor for SIGUSR2 only in + verbose mode. + +2006-06-22 Werner Koch + + * command-ssh.c (make_cstring): Use memcpy instead of strncpy. + (ssh_receive_mpint_list, sexp_key_extract, data_sign): Use + xtrycalloc instead of xtrymalloc followed by memset. + 2006-06-20 Werner Koch * minip12.c (create_final): New arg PW. Add code to calculate the diff --git a/agent/command-ssh.c b/agent/command-ssh.c index 18375a9ae..4e81aa2f2 100644 --- a/agent/command-ssh.c +++ b/agent/command-ssh.c @@ -268,7 +268,7 @@ make_cstring (const char *data, size_t data_n) s = xtrymalloc (data_n + 1); if (s) { - strncpy (s, data, data_n); + memcpy (s, data, data_n); s[data_n] = 0; } @@ -853,14 +853,12 @@ ssh_receive_mpint_list (estream_t stream, int secret, elems_public = key_spec.elems_key_public; elems_public_n = strlen (elems_public); - mpis = xtrymalloc (sizeof (*mpis) * (elems_n + 1)); - if (! mpis) + mpis = xtrycalloc (elems_n + 1, sizeof *mpis ); + if (!mpis) { err = gpg_error_from_errno (errno); goto out; } - - memset (mpis, 0, sizeof (*mpis) * (elems_n + 1)); elem_is_secret = 0; for (i = 0; i < elems_n; i++) @@ -1143,13 +1141,12 @@ sexp_key_extract (gcry_sexp_t sexp, } elems_n = strlen (elems); - mpis_new = xtrymalloc (sizeof (*mpis_new) * (elems_n + 1)); - if (! mpis_new) + mpis_new = xtrycalloc (elems_n + 1, sizeof *mpis_new ); + if (!mpis_new) { err = gpg_error_from_errno (errno); goto out; } - memset (mpis_new, 0, sizeof (*mpis_new) * (elems_n + 1)); value_list = gcry_sexp_find_token (sexp, key_spec.identifier, 0); if (! value_list) @@ -2055,13 +2052,12 @@ data_sign (ctrl_t ctrl, ssh_signature_encoder_t sig_encoder, elems = spec.elems_signature; elems_n = strlen (elems); - mpis = xtrymalloc (sizeof (*mpis) * (elems_n + 1)); - if (! mpis) + mpis = xtrycalloc (elems_n + 1, sizeof *mpis); + if (!mpis) { err = gpg_error_from_errno (errno); goto out; } - memset (mpis, 0, sizeof (*mpis) * (elems_n + 1)); for (i = 0; i < elems_n; i++) { diff --git a/agent/gpg-agent.c b/agent/gpg-agent.c index fc2a2001a..24e0b588b 100644 --- a/agent/gpg-agent.c +++ b/agent/gpg-agent.c @@ -1360,7 +1360,8 @@ handle_signal (int signo) break; case SIGUSR2: - log_info ("SIGUSR2 received - checking smartcard status\n"); + if (opt.verbose) + log_info ("SIGUSR2 received - checking smartcard status\n"); break; case SIGTERM: diff --git a/configure.ac b/configure.ac index eb29111a7..3f536e472 100644 --- a/configure.ac +++ b/configure.ac @@ -26,8 +26,8 @@ min_automake_version="1.9.3" # Remember to change the version number immediately *after* a release. # Set my_issvn to "yes" for non-released code. Remember to run an # "svn up" and "autogen.sh" right before creating a distribution. -m4_define([my_version], [1.9.21]) -m4_define([my_issvn], [no]) +m4_define([my_version], [1.9.22]) +m4_define([my_issvn], [yes]) m4_define([svn_revision], m4_esyscmd([echo -n $((svn info 2>/dev/null \ diff --git a/sm/ChangeLog b/sm/ChangeLog index f191e7512..97fa8cd89 100644 --- a/sm/ChangeLog +++ b/sm/ChangeLog @@ -1,3 +1,8 @@ +2006-06-26 Werner Koch + + * certdump.c (gpgsm_cert_log_name): New. + * certchain.c (is_cert_still_valid): Log the name of the certificate. + 2006-06-20 Werner Koch * gpgsm.c (gpgsm_init_default_ctrl): Take care of the command line diff --git a/sm/certchain.c b/sm/certchain.c index 4a4ac49f6..647adc030 100644 --- a/sm/certchain.c +++ b/sm/certchain.c @@ -597,6 +597,8 @@ is_cert_still_valid (ctrl_t ctrl, int lm, FILE *fp, { /* Fixme: We should change the wording because we may have used OCSP. */ + if (!lm) + gpgsm_cert_log_name (NULL, subject_cert); switch (gpg_err_code (err)) { case GPG_ERR_CERT_REVOKED: diff --git a/sm/certdump.c b/sm/certdump.c index 0d5146abc..2f7c1fd54 100644 --- a/sm/certdump.c +++ b/sm/certdump.c @@ -238,6 +238,36 @@ gpgsm_dump_cert (const char *text, ksba_cert_t cert) } +/* Log the certificate's name in "#SN/ISSUERDN" format along with + TEXT. */ +void +gpgsm_cert_log_name (const char *text, ksba_cert_t cert) +{ + log_info ("%s", text? text:"certificate" ); + if (cert) + { + ksba_sexp_t sn; + char *p; + + p = ksba_cert_get_issuer (cert, 0); + sn = ksba_cert_get_serial (cert); + if (p && sn) + { + log_printf (" #"); + gpgsm_dump_serial (sn); + log_printf ("/"); + gpgsm_dump_string (p); + } + else + log_printf (" [invalid]"); + ksba_free (sn); + xfree (p); + } + log_printf ("\n"); +} + + + /* helper for the rfc2253 string parser */ static const unsigned char * diff --git a/sm/gpgsm.h b/sm/gpgsm.h index b49f34640..0d9bac560 100644 --- a/sm/gpgsm.h +++ b/sm/gpgsm.h @@ -218,6 +218,8 @@ void gpgsm_print_time (FILE *fp, ksba_isotime_t t); void gpgsm_print_name2 (FILE *fp, const char *string, int translate); void gpgsm_print_name (FILE *fp, const char *string); +void gpgsm_cert_log_name (const char *text, ksba_cert_t cert); + void gpgsm_dump_cert (const char *text, ksba_cert_t cert); void gpgsm_dump_serial (ksba_const_sexp_t p); void gpgsm_dump_time (ksba_isotime_t t); diff --git a/sm/keylist.c b/sm/keylist.c index 9baf065d0..c44d62102 100644 --- a/sm/keylist.c +++ b/sm/keylist.c @@ -672,7 +672,7 @@ list_cert_raw (ctrl_t ctrl, KEYDB_HANDLE hd, else fputs ("[?]\n", fp); - fputs (" keyUsage:", fp); + fputs (" keyUsage: ", fp); err = ksba_cert_get_key_usage (cert, &kusage); if (gpg_err_code (err) != GPG_ERR_NO_DATA) {