diff options
Diffstat (limited to 'sm')
-rw-r--r-- | sm/ChangeLog | 11 | ||||
-rw-r--r-- | sm/call-agent.c | 88 | ||||
-rw-r--r-- | sm/call-dirmngr.c | 6 | ||||
-rw-r--r-- | sm/certchain.c | 10 | ||||
-rw-r--r-- | sm/certcheck.c | 52 | ||||
-rw-r--r-- | sm/certdump.c | 2 | ||||
-rw-r--r-- | sm/certlist.c | 2 | ||||
-rw-r--r-- | sm/certreqgen.c | 26 | ||||
-rw-r--r-- | sm/decrypt.c | 44 | ||||
-rw-r--r-- | sm/delete.c | 10 | ||||
-rw-r--r-- | sm/encrypt.c | 42 | ||||
-rw-r--r-- | sm/export.c | 10 | ||||
-rw-r--r-- | sm/fingerprint.c | 16 | ||||
-rw-r--r-- | sm/gpgsm.c | 6 | ||||
-rw-r--r-- | sm/gpgsm.h | 6 | ||||
-rw-r--r-- | sm/import.c | 2 | ||||
-rw-r--r-- | sm/keydb.c | 8 | ||||
-rw-r--r-- | sm/keylist.c | 9 | ||||
-rw-r--r-- | sm/server.c | 11 | ||||
-rw-r--r-- | sm/sign.c | 36 | ||||
-rw-r--r-- | sm/verify.c | 50 |
21 files changed, 204 insertions, 243 deletions
diff --git a/sm/ChangeLog b/sm/ChangeLog index e0ba197d9..20b02a194 100644 --- a/sm/ChangeLog +++ b/sm/ChangeLog @@ -1,3 +1,14 @@ +2003-06-24 Werner Koch <[email protected]> + + * server.c (gpgsm_status_with_err_code): New. + * verify.c (gpgsm_verify): Use it here instead of the old + tokenizing version. + + * verify.c (strtimestamp): Renamed to strtimestamp_r + + Adjusted for changes in the libgcrypt API. Some more fixes for the + libgpg-error stuff. + 2003-06-04 Werner Koch <[email protected]> * call-agent.c (init_membuf,put_membuf,get_membuf): Removed. diff --git a/sm/call-agent.c b/sm/call-agent.c index 31d9ba71c..4d26e3450 100644 --- a/sm/call-agent.c +++ b/sm/call-agent.c @@ -26,15 +26,17 @@ #include <unistd.h> #include <time.h> #include <assert.h> -#include <gcrypt.h> #ifdef HAVE_LOCALE_H #include <locale.h> #endif -#include <assuan.h> #include "gpgsm.h" +#include <gcrypt.h> +#include <assuan.h> #include "i18n.h" #include "keydb.h" /* fixme: Move this to import.c */ +#include "../common/membuf.h" + static ASSUAN_CONTEXT agent_ctx = NULL; static int force_pipe_server = 0; @@ -54,77 +56,9 @@ struct genkey_parm_s { struct learn_parm_s { int error; ASSUAN_CONTEXT ctx; - struct membuf *data; + membuf_t *data; }; -struct membuf { - size_t len; - size_t size; - char *buf; - int out_of_core; -}; - - - -/* A simple implemnation of a dynamic buffer. Use init_membuf() to - create a buffer, put_membuf to append bytes and get_membuf to - release and return the buffer. Allocation errors are detected but - only returned at the final get_membuf(), this helps not to clutter - the code with out of core checks. */ - -static void -init_membuf (struct membuf *mb, int initiallen) -{ - mb->len = 0; - mb->size = initiallen; - mb->out_of_core = 0; - mb->buf = xtrymalloc (initiallen); - if (!mb->buf) - mb->out_of_core = 1; -} - -static void -put_membuf (struct membuf *mb, const void *buf, size_t len) -{ - if (mb->out_of_core) - return; - - if (mb->len + len >= mb->size) - { - char *p; - - mb->size += len + 1024; - p = xtryrealloc (mb->buf, mb->size); - if (!p) - { - mb->out_of_core = 1; - return; - } - mb->buf = p; - } - memcpy (mb->buf + mb->len, buf, len); - mb->len += len; -} - -static void * -get_membuf (struct membuf *mb, size_t *len) -{ - char *p; - - if (mb->out_of_core) - { - xfree (mb->buf); - mb->buf = NULL; - return NULL; - } - - p = mb->buf; - *len = mb->len; - mb->buf = NULL; - mb->out_of_core = 1; /* don't allow a reuse */ - return p; -} - /* Try to connect to the agent via socket or fork it off and work by @@ -354,7 +288,7 @@ start_agent (void) static AssuanError membuf_data_cb (void *opaque, const void *buffer, size_t length) { - struct membuf *data = opaque; + membuf_t *data = opaque; if (buffer) put_membuf (data, buffer, length); @@ -373,7 +307,7 @@ gpgsm_agent_pksign (const char *keygrip, { int rc, i; char *p, line[ASSUAN_LINELENGTH]; - struct membuf data; + membuf_t data; size_t len; *r_buf = NULL; @@ -448,7 +382,7 @@ gpgsm_agent_pkdecrypt (const char *keygrip, { int rc; char line[ASSUAN_LINELENGTH]; - struct membuf data; + membuf_t data; struct cipher_parm_s cipher_parm; size_t n, len; char *buf, *endp; @@ -534,7 +468,7 @@ gpgsm_agent_genkey (KsbaConstSexp keyparms, KsbaSexp *r_pubkey) { int rc; struct genkey_parm_s gk_parm; - struct membuf data; + membuf_t data; size_t len; char *buf; @@ -710,7 +644,7 @@ learn_cb (void *opaque, const void *buffer, size_t length) keydb_store_cert (cert, 1, NULL); } else if (rc) - log_error ("invalid certificate: %s\n", gnupg_strerror (rc)); + log_error ("invalid certificate: %s\n", gpg_strerror (rc)); else { int existed; @@ -735,7 +669,7 @@ gpgsm_agent_learn () { int rc; struct learn_parm_s learn_parm; - struct membuf data; + membuf_t data; size_t len; rc = start_agent (); diff --git a/sm/call-dirmngr.c b/sm/call-dirmngr.c index 611240771..b182b246c 100644 --- a/sm/call-dirmngr.c +++ b/sm/call-dirmngr.c @@ -28,10 +28,10 @@ #include <assert.h> #include <ctype.h> +#include "gpgsm.h" #include <gcrypt.h> #include <assuan.h> -#include "gpgsm.h" #include "i18n.h" struct membuf { @@ -263,7 +263,7 @@ inq_certificate (void *opaque, const char *line) err = gpgsm_find_cert (line, &cert); if (err) { - log_error ("certificate not found: %s\n", gnupg_strerror (err)); + log_error ("certificate not found: %s\n", gpg_strerror (err)); rc = ASSUAN_Inquire_Error; } else @@ -533,7 +533,7 @@ run_command_inq_cb (void *opaque, const char *line) err = gpgsm_find_cert (line, &cert); if (err) { - log_error ("certificate not found: %s\n", gnupg_strerror (err)); + log_error ("certificate not found: %s\n", gpg_strerror (err)); rc = ASSUAN_Inquire_Error; } else diff --git a/sm/certchain.c b/sm/certchain.c index 2a2582dac..6323c725e 100644 --- a/sm/certchain.c +++ b/sm/certchain.c @@ -27,10 +27,10 @@ #include <time.h> #include <assert.h> +#include "gpgsm.h" #include <gcrypt.h> #include <ksba.h> -#include "gpgsm.h" #include "keydb.h" #include "i18n.h" @@ -302,7 +302,7 @@ find_up (KEYDB_HANDLE kh, KsbaCert cert, const char *issuer) log_info (_("number of issuers matching: %d\n"), count); if (rc) { - log_error ("external key lookup failed: %s\n", gnupg_strerror (rc)); + log_error ("external key lookup failed: %s\n", gpg_strerror (rc)); rc = -1; } else if (!count) @@ -585,7 +585,7 @@ gpgsm_validate_chain (CTRL ctrl, KsbaCert cert, time_t *r_exptime) else { log_error (_("checking the trust list failed: %s\n"), - gnupg_strerror (rc)); + gpg_strerror (rc)); } break; /* okay, a self-signed certicate is an end-point */ @@ -655,8 +655,10 @@ gpgsm_validate_chain (CTRL ctrl, KsbaCert cert, time_t *r_exptime) rc = gpgsm_cert_use_cert_p (issuer_cert); if (rc) { + char numbuf[50]; + sprintf (numbuf, "%d", rc); gpgsm_status2 (ctrl, STATUS_ERROR, "certcert.issuer.keyusage", - gnupg_error_token (rc), NULL); + numbuf, NULL); rc = 0; } diff --git a/sm/certcheck.c b/sm/certcheck.c index 93c0becc5..b83783813 100644 --- a/sm/certcheck.c +++ b/sm/certcheck.c @@ -27,17 +27,17 @@ #include <time.h> #include <assert.h> +#include "gpgsm.h" #include <gcrypt.h> #include <ksba.h> -#include "gpgsm.h" #include "keydb.h" #include "i18n.h" static int -do_encode_md (GCRY_MD_HD md, int algo, unsigned int nbits, - GCRY_MPI *r_val) +do_encode_md (gcry_md_hd_t md, int algo, unsigned int nbits, + gcry_mpi_t *r_val) { int nframe = (nbits+7) / 8; byte *frame; @@ -104,12 +104,12 @@ int gpgsm_check_cert_sig (KsbaCert issuer_cert, KsbaCert cert) { const char *algoid; - GCRY_MD_HD md; + gcry_md_hd_t md; int rc, algo; - GCRY_MPI frame; + gcry_mpi_t frame; KsbaSexp p; size_t n; - GCRY_SEXP s_sig, s_hash, s_pkey; + gcry_sexp_t s_sig, s_hash, s_pkey; algo = gcry_md_map_name ( (algoid=ksba_cert_get_digest_algo (cert))); if (!algo) @@ -117,11 +117,11 @@ gpgsm_check_cert_sig (KsbaCert issuer_cert, KsbaCert cert) log_error ("unknown hash algorithm `%s'\n", algoid? algoid:"?"); return gpg_error (GPG_ERR_GENERAL); } - md = gcry_md_open (algo, 0); - if (!md) + rc = gcry_md_open (&md, algo, 0); + if (rc) { - log_error ("md_open failed: %s\n", gcry_strerror (-1)); - return gpg_error (GPG_ERR_GENERAL); + log_error ("md_open failed: %s\n", gpg_strerror (rc)); + return rc; } if (DBG_HASHING) gcry_md_start_debug (md, "hash.cert"); @@ -157,9 +157,9 @@ gpgsm_check_cert_sig (KsbaCert issuer_cert, KsbaCert cert) ksba_free (p); if (rc) { - log_error ("gcry_sexp_scan failed: %s\n", gcry_strerror (rc)); + log_error ("gcry_sexp_scan failed: %s\n", gpg_strerror (rc)); gcry_md_close (md); - return map_gcry_err (rc); + return rc; } p = ksba_cert_get_public_key (issuer_cert); @@ -176,10 +176,10 @@ gpgsm_check_cert_sig (KsbaCert issuer_cert, KsbaCert cert) ksba_free (p); if (rc) { - log_error ("gcry_sexp_scan failed: %s\n", gcry_strerror (rc)); + log_error ("gcry_sexp_scan failed: %s\n", gpg_strerror (rc)); gcry_md_close (md); gcry_sexp_release (s_sig); - return map_gcry_err (rc); + return rc; } rc = do_encode_md (md, algo, gcry_pk_get_nbits (s_pkey), &frame); @@ -199,24 +199,24 @@ gpgsm_check_cert_sig (KsbaCert issuer_cert, KsbaCert cert) rc = gcry_pk_verify (s_sig, s_hash, s_pkey); if (DBG_CRYPTO) - log_debug ("gcry_pk_verify: %s\n", gcry_strerror (rc)); + log_debug ("gcry_pk_verify: %s\n", gpg_strerror (rc)); gcry_md_close (md); gcry_sexp_release (s_sig); gcry_sexp_release (s_hash); gcry_sexp_release (s_pkey); - return map_gcry_err (rc); + return rc; } int gpgsm_check_cms_signature (KsbaCert cert, KsbaConstSexp sigval, - GCRY_MD_HD md, int algo) + gcry_md_hd_t md, int algo) { int rc; KsbaSexp p; - GCRY_MPI frame; - GCRY_SEXP s_sig, s_hash, s_pkey; + gcry_mpi_t frame; + gcry_sexp_t s_sig, s_hash, s_pkey; size_t n; n = gcry_sexp_canon_len (sigval, 0, NULL, NULL); @@ -228,8 +228,8 @@ gpgsm_check_cms_signature (KsbaCert cert, KsbaConstSexp sigval, rc = gcry_sexp_sscan (&s_sig, NULL, sigval, n); if (rc) { - log_error ("gcry_sexp_scan failed: %s\n", gcry_strerror (rc)); - return map_gcry_err (rc); + log_error ("gcry_sexp_scan failed: %s\n", gpg_strerror (rc)); + return rc; } p = ksba_cert_get_public_key (cert); @@ -248,9 +248,9 @@ gpgsm_check_cms_signature (KsbaCert cert, KsbaConstSexp sigval, ksba_free (p); if (rc) { - log_error ("gcry_sexp_scan failed: %s\n", gcry_strerror (rc)); + log_error ("gcry_sexp_scan failed: %s\n", gpg_strerror (rc)); gcry_sexp_release (s_sig); - return map_gcry_err (rc); + return rc; } @@ -268,17 +268,17 @@ gpgsm_check_cms_signature (KsbaCert cert, KsbaConstSexp sigval, rc = gcry_pk_verify (s_sig, s_hash, s_pkey); if (DBG_CRYPTO) - log_debug ("gcry_pk_verify: %s\n", gcry_strerror (rc)); + log_debug ("gcry_pk_verify: %s\n", gpg_strerror (rc)); gcry_sexp_release (s_sig); gcry_sexp_release (s_hash); gcry_sexp_release (s_pkey); - return map_gcry_err (rc); + return rc; } int -gpgsm_create_cms_signature (KsbaCert cert, GCRY_MD_HD md, int mdalgo, +gpgsm_create_cms_signature (KsbaCert cert, gcry_md_hd_t md, int mdalgo, char **r_sigval) { int rc; diff --git a/sm/certdump.c b/sm/certdump.c index 9afb1154d..703e07186 100644 --- a/sm/certdump.c +++ b/sm/certdump.c @@ -27,10 +27,10 @@ #include <time.h> #include <assert.h> +#include "gpgsm.h" #include <gcrypt.h> #include <ksba.h> -#include "gpgsm.h" #include "keydb.h" #include "i18n.h" diff --git a/sm/certlist.c b/sm/certlist.c index 7224625a2..eedc99025 100644 --- a/sm/certlist.c +++ b/sm/certlist.c @@ -27,10 +27,10 @@ #include <time.h> #include <assert.h> +#include "gpgsm.h" #include <gcrypt.h> #include <ksba.h> -#include "gpgsm.h" #include "keydb.h" #include "i18n.h" diff --git a/sm/certreqgen.c b/sm/certreqgen.c index 716cfcdeb..0dd4fdde9 100644 --- a/sm/certreqgen.c +++ b/sm/certreqgen.c @@ -96,10 +96,10 @@ EOF #include <time.h> #include <assert.h> +#include "gpgsm.h" #include <gcrypt.h> #include <ksba.h> -#include "gpgsm.h" #include "keydb.h" #include "i18n.h" @@ -489,7 +489,7 @@ proc_parameters (struct para_data_s *para, struct reqgen_ctrl_s *outctrl) { r = get_parameter (para, pKEYTYPE); log_error ("line %d: key generation failed: %s\n", - r->lnr, gnupg_strerror (rc)); + r->lnr, gpg_strerror (rc)); return rc; } @@ -508,7 +508,7 @@ create_request (struct para_data_s *para, KsbaConstSexp public, { KsbaCertreq cr; KsbaError err; - GCRY_MD_HD md; + gcry_md_hd_t md; KsbaStopReason stopreason; int rc = 0; const char *s; @@ -517,11 +517,10 @@ create_request (struct para_data_s *para, KsbaConstSexp public, if (!cr) return gpg_error (GPG_ERR_ENOMEM); - md = gcry_md_open (GCRY_MD_SHA1, 0); - if (!md) + rc = gcry_md_open (&md, GCRY_MD_SHA1, 0); + if (rc) { - log_error ("md_open failed: %s\n", gcry_strerror (-1)); - rc = map_gcry_err (gcry_errno ()); + log_error ("md_open failed: %s\n", gpg_strerror (rc)); goto leave; } if (DBG_HASHING) @@ -585,7 +584,7 @@ create_request (struct para_data_s *para, KsbaConstSexp public, } if (stopreason == KSBA_SR_NEED_SIG) { - GCRY_SEXP s_pkey; + gcry_sexp_t s_pkey; size_t n; unsigned char grip[20], hexgrip[41]; char *sigval; @@ -601,8 +600,7 @@ create_request (struct para_data_s *para, KsbaConstSexp public, rc = gcry_sexp_sscan (&s_pkey, NULL, public, n); if (rc) { - log_error ("gcry_sexp_scan failed: %s\n", gcry_strerror (rc)); - rc = map_gcry_err (rc); + log_error ("gcry_sexp_scan failed: %s\n", gpg_strerror (rc)); goto leave; } if ( !gcry_pk_get_keygrip (s_pkey, grip) ) @@ -623,7 +621,7 @@ create_request (struct para_data_s *para, KsbaConstSexp public, &sigval, &siglen); if (rc) { - log_error ("signing failed: %s\n", gnupg_strerror (rc)); + log_error ("signing failed: %s\n", gpg_strerror (rc)); goto leave; } @@ -671,7 +669,7 @@ gpgsm_genkey (CTRL ctrl, int in_fd, FILE *out_fp) rc = gpgsm_create_writer (&b64writer, ctrl, out_fp, &writer); if (rc) { - log_error ("can't create writer: %s\n", gnupg_strerror (rc)); + log_error ("can't create writer: %s\n", gpg_strerror (rc)); goto leave; } @@ -679,14 +677,14 @@ gpgsm_genkey (CTRL ctrl, int in_fd, FILE *out_fp) if (rc) { log_error ("error creating certificate request: %s\n", - gnupg_strerror (rc)); + gpg_strerror (rc)); goto leave; } rc = gpgsm_finish_writer (b64writer); if (rc) { - log_error ("write failed: %s\n", gnupg_strerror (rc)); + log_error ("write failed: %s\n", gpg_strerror (rc)); goto leave; } diff --git a/sm/decrypt.c b/sm/decrypt.c index 04682f777..17483aa49 100644 --- a/sm/decrypt.c +++ b/sm/decrypt.c @@ -27,10 +27,10 @@ #include <time.h> #include <assert.h> +#include "gpgsm.h" #include <gcrypt.h> #include <ksba.h> -#include "gpgsm.h" #include "keydb.h" #include "i18n.h" @@ -38,7 +38,7 @@ struct decrypt_filter_parm_s { int algo; int mode; int blklen; - GCRY_CIPHER_HD hd; + gcry_cipher_hd_t hd; char iv[16]; size_t ivlen; int any_data; /* dod we push anything through the filter at all? */ @@ -65,7 +65,7 @@ prepare_decryption (const char *hexkeygrip, KsbaConstSexp enc_val, &seskey, &seskeylen); if (rc) { - log_error ("error decrypting session key: %s\n", gnupg_strerror (rc)); + log_error ("error decrypting session key: %s\n", gpg_strerror (rc)); goto leave; } @@ -113,17 +113,15 @@ prepare_decryption (const char *hexkeygrip, KsbaConstSexp enc_val, if (DBG_CRYPTO) log_printhex ("session key:", seskey+n, seskeylen-n); - parm->hd = gcry_cipher_open (parm->algo, parm->mode, 0); - if (!parm->hd) + rc = gcry_cipher_open (&parm->hd, parm->algo, parm->mode, 0); + if (rc) { - rc = gcry_errno (); - log_error ("error creating decryptor: %s\n", gcry_strerror (rc)); - rc = map_gcry_err (rc); + log_error ("error creating decryptor: %s\n", gpg_strerror (rc)); goto leave; } rc = gcry_cipher_setkey (parm->hd, seskey+n, seskeylen-n); - if (rc == GCRYERR_WEAK_KEY) + if (gpg_err_code (rc) == GPG_ERR_WEAK_KEY) { log_info (_("WARNING: message was encrypted with " "a weak key in the symmetric cipher.\n")); @@ -131,8 +129,7 @@ prepare_decryption (const char *hexkeygrip, KsbaConstSexp enc_val, } if (rc) { - log_error("key setup failed: %s\n", gcry_strerror(rc) ); - rc = map_gcry_err (rc); + log_error("key setup failed: %s\n", gpg_strerror(rc) ); goto leave; } @@ -277,14 +274,14 @@ gpgsm_decrypt (CTRL ctrl, int in_fd, FILE *out_fp) rc = gpgsm_create_reader (&b64reader, ctrl, in_fp, &reader); if (rc) { - log_error ("can't create reader: %s\n", gnupg_strerror (rc)); + log_error ("can't create reader: %s\n", gpg_strerror (rc)); goto leave; } rc = gpgsm_create_writer (&b64writer, ctrl, out_fp, &writer); if (rc) { - log_error ("can't create writer: %s\n", gnupg_strerror (rc)); + log_error ("can't create writer: %s\n", gpg_strerror (rc)); goto leave; } @@ -334,8 +331,13 @@ gpgsm_decrypt (CTRL ctrl, int in_fd, FILE *out_fp) else if (!algoid) log_info (_("(this does not seem to be an encrypted" " message)\n")); - gpgsm_status2 (ctrl, STATUS_ERROR, "decrypt.algorithm", - gnupg_error_token (rc), algoid?algoid:"?", NULL); + { + char numbuf[50]; + sprintf (numbuf, "%d", rc); + gpgsm_status2 (ctrl, STATUS_ERROR, "decrypt.algorithm", + numbuf, algoid?algoid:"?", NULL); + } + goto leave; } dfparm.algo = algo; @@ -383,14 +385,14 @@ gpgsm_decrypt (CTRL ctrl, int in_fd, FILE *out_fp) if (rc) { log_error ("failed to find the certificate: %s\n", - gnupg_strerror(rc)); + gpg_strerror(rc)); goto oops; } rc = keydb_get_cert (kh, &cert); if (rc) { - log_error ("failed to get cert: %s\n", gnupg_strerror (rc)); + log_error ("failed to get cert: %s\n", gpg_strerror (rc)); goto oops; } /* Just in case there is a problem with the own @@ -399,8 +401,10 @@ gpgsm_decrypt (CTRL ctrl, int in_fd, FILE *out_fp) rc = gpgsm_cert_use_decrypt_p (cert); if (rc) { + char numbuf[50]; + sprintf (numbuf, "%d", rc); gpgsm_status2 (ctrl, STATUS_ERROR, "decrypt.keyusage", - gnupg_error_token (rc), NULL); + numbuf, NULL); rc = 0; } @@ -424,7 +428,7 @@ gpgsm_decrypt (CTRL ctrl, int in_fd, FILE *out_fp) if (rc) { log_debug ("decrypting session key failed: %s\n", - gnupg_strerror (rc)); + gpg_strerror (rc)); } else { /* setup the bulk decrypter */ @@ -479,7 +483,7 @@ gpgsm_decrypt (CTRL ctrl, int in_fd, FILE *out_fp) rc = gpgsm_finish_writer (b64writer); if (rc) { - log_error ("write failed: %s\n", gnupg_strerror (rc)); + log_error ("write failed: %s\n", gpg_strerror (rc)); goto leave; } gpgsm_status (ctrl, STATUS_DECRYPTION_OKAY, NULL); diff --git a/sm/delete.c b/sm/delete.c index 5ec5b1ad5..53eff864c 100644 --- a/sm/delete.c +++ b/sm/delete.c @@ -27,10 +27,10 @@ #include <time.h> #include <assert.h> +#include "gpgsm.h" #include <gcrypt.h> #include <ksba.h> -#include "gpgsm.h" #include "keydb.h" #include "i18n.h" @@ -49,7 +49,7 @@ delete_one (CTRL ctrl, const char *username) if (rc) { log_error (_("certificate `%s' not found: %s\n"), - username, gnupg_strerror (rc)); + username, gpg_strerror (rc)); gpgsm_status2 (ctrl, STATUS_DELETE_PROBLEM, "1", NULL); goto leave; } @@ -100,7 +100,7 @@ delete_one (CTRL ctrl, const char *username) if (rc == -1) rc = gpg_error (GPG_ERR_NO_PUBKEY); log_error (_("certificate `%s' not found: %s\n"), - username, gnupg_strerror (rc)); + username, gpg_strerror (rc)); gpgsm_status2 (ctrl, STATUS_DELETE_PROBLEM, "3", NULL); goto leave; } @@ -113,7 +113,7 @@ delete_one (CTRL ctrl, const char *username) if (rc) { log_error ("problem re-searching certificate: %s\n", - gnupg_strerror (rc)); + gpg_strerror (rc)); goto leave; } @@ -156,7 +156,7 @@ gpgsm_delete (CTRL ctrl, STRLIST names) if (rc) { log_error (_("deleting certificate \"%s\" failed: %s\n"), - names->d, gnupg_strerror (rc) ); + names->d, gpg_strerror (rc) ); return rc; } } diff --git a/sm/encrypt.c b/sm/encrypt.c index 3713a7d15..dfc905454 100644 --- a/sm/encrypt.c +++ b/sm/encrypt.c @@ -27,10 +27,10 @@ #include <time.h> #include <assert.h> +#include "gpgsm.h" #include <gcrypt.h> #include <ksba.h> -#include "gpgsm.h" #include "keydb.h" #include "i18n.h" @@ -38,7 +38,7 @@ struct dek_s { const char *algoid; int algo; - GCRY_CIPHER_HD chd; + gcry_cipher_hd_t chd; char key[32]; int keylen; char iv[32]; @@ -89,37 +89,37 @@ init_dek (DEK dek) return gpg_error (GPG_ERR_UNSUPPORTED_ALGORITHM); } - dek->chd = gcry_cipher_open (dek->algo, mode, GCRY_CIPHER_SECURE); - if (!dek->chd) + rc = gcry_cipher_open (&dek->chd, dek->algo, mode, GCRY_CIPHER_SECURE); + if (rc) { - log_error ("failed to create cipher context: %s\n", gcry_strerror (-1)); - return gpg_error (GPG_ERR_GENERAL); + log_error ("failed to create cipher context: %s\n", gpg_strerror (rc)); + return rc; } for (i=0; i < 8; i++) { gcry_randomize (dek->key, dek->keylen, GCRY_STRONG_RANDOM ); rc = gcry_cipher_setkey (dek->chd, dek->key, dek->keylen); - if (rc != GCRYERR_WEAK_KEY) + if (gpg_err_code (rc) != GPG_ERR_WEAK_KEY) break; log_info(_("weak key created - retrying\n") ); } if (rc) { - log_error ("failed to set the key: %s\n", gcry_strerror (rc)); + log_error ("failed to set the key: %s\n", gpg_strerror (rc)); gcry_cipher_close (dek->chd); dek->chd = NULL; - return map_gcry_err (rc); + return rc; } gcry_randomize (dek->iv, dek->ivlen, GCRY_STRONG_RANDOM); rc = gcry_cipher_setiv (dek->chd, dek->iv, dek->ivlen); if (rc) { - log_error ("failed to set the IV: %s\n", gcry_strerror (rc)); + log_error ("failed to set the IV: %s\n", gpg_strerror (rc)); gcry_cipher_close (dek->chd); dek->chd = NULL; - return map_gcry_err (rc); + return rc; } return 0; @@ -129,14 +129,14 @@ init_dek (DEK dek) /* Encode the session key. NBITS is the number of bits which should be used for packing the session key. returns: An mpi with the session key (caller must free) */ -static GCRY_MPI +static gcry_mpi_t encode_session_key (DEK dek, unsigned int nbits) { int nframe = (nbits+7) / 8; byte *p; byte *frame; int i,n; - MPI a; + gcry_mpi_t a; if (dek->keylen + 7 > nframe || !nframe) log_bug ("can't encode a %d bit key in a %d bits frame\n", @@ -206,7 +206,7 @@ encode_session_key (DEK dek, unsigned int nbits) static int encrypt_dek (const DEK dek, KsbaCert cert, char **encval) { - GCRY_SEXP s_ciph, s_data, s_pkey; + gcry_sexp_t s_ciph, s_data, s_pkey; int rc; KsbaSexp buf; size_t len; @@ -230,14 +230,14 @@ encrypt_dek (const DEK dek, KsbaCert cert, char **encval) xfree (buf); buf = NULL; if (rc) { - log_error ("gcry_sexp_scan failed: %s\n", gcry_strerror (rc)); - return map_gcry_err (rc); + log_error ("gcry_sexp_scan failed: %s\n", gpg_strerror (rc)); + return rc; } /* put the encoded cleartext into a simple list */ { /* fixme: actually the pkcs-1 encoding should go into libgcrypt */ - GCRY_MPI data = encode_session_key (dek, gcry_pk_get_nbits (s_pkey)); + gcry_mpi_t data = encode_session_key (dek, gcry_pk_get_nbits (s_pkey)); if (!data) { gcry_mpi_release (data); @@ -404,7 +404,7 @@ gpgsm_encrypt (CTRL ctrl, CERTLIST recplist, int data_fd, FILE *out_fp) rc = gpgsm_create_writer (&b64writer, ctrl, out_fp, &writer); if (rc) { - log_error ("can't create writer: %s\n", gnupg_strerror (rc)); + log_error ("can't create writer: %s\n", gpg_strerror (rc)); goto leave; } @@ -449,7 +449,7 @@ gpgsm_encrypt (CTRL ctrl, CERTLIST recplist, int data_fd, FILE *out_fp) if (rc) { log_error ("failed to create the session key: %s\n", - gnupg_strerror (rc)); + gpg_strerror (rc)); goto leave; } @@ -482,7 +482,7 @@ gpgsm_encrypt (CTRL ctrl, CERTLIST recplist, int data_fd, FILE *out_fp) if (rc) { log_error ("encryption failed for recipient no. %d: %s\n", - recpno, gnupg_strerror (rc)); + recpno, gpg_strerror (rc)); goto leave; } @@ -532,7 +532,7 @@ gpgsm_encrypt (CTRL ctrl, CERTLIST recplist, int data_fd, FILE *out_fp) rc = gpgsm_finish_writer (b64writer); if (rc) { - log_error ("write failed: %s\n", gnupg_strerror (rc)); + log_error ("write failed: %s\n", gpg_strerror (rc)); goto leave; } log_info ("encrypted data created\n"); diff --git a/sm/export.c b/sm/export.c index d4b05816f..93a55debc 100644 --- a/sm/export.c +++ b/sm/export.c @@ -27,10 +27,10 @@ #include <time.h> #include <assert.h> +#include "gpgsm.h" #include <gcrypt.h> #include <ksba.h> -#include "gpgsm.h" #include "keydb.h" static void print_short_info (KsbaCert cert, FILE *fp); @@ -85,7 +85,7 @@ gpgsm_export (CTRL ctrl, STRLIST names, FILE *fp) if (rc) { log_error ("key `%s' not found: %s\n", - sl->d, gnupg_strerror (rc)); + sl->d, gpg_strerror (rc)); rc = 0; } else @@ -121,7 +121,7 @@ gpgsm_export (CTRL ctrl, STRLIST names, FILE *fp) rc = keydb_get_cert (hd, &cert); if (rc) { - log_error ("keydb_get_cert failed: %s\n", gnupg_strerror (rc)); + log_error ("keydb_get_cert failed: %s\n", gpg_strerror (rc)); goto leave; } @@ -147,7 +147,7 @@ gpgsm_export (CTRL ctrl, STRLIST names, FILE *fp) rc = gpgsm_create_writer (&b64writer, ctrl, fp, &writer); if (rc) { - log_error ("can't create writer: %s\n", gnupg_strerror (rc)); + log_error ("can't create writer: %s\n", gpg_strerror (rc)); goto leave; } } @@ -176,7 +176,7 @@ gpgsm_export (CTRL ctrl, STRLIST names, FILE *fp) cert = NULL; } if (rc && rc != -1) - log_error ("keydb_search failed: %s\n", gnupg_strerror (rc)); + log_error ("keydb_search failed: %s\n", gpg_strerror (rc)); else if (b64writer) { rc = gpgsm_finish_writer (b64writer); diff --git a/sm/fingerprint.c b/sm/fingerprint.c index 6e458cf76..028c08aab 100644 --- a/sm/fingerprint.c +++ b/sm/fingerprint.c @@ -27,10 +27,10 @@ #include <time.h> #include <assert.h> -#include <gcrypt.h> -#include <ksba.h> #include "gpgsm.h" +#include <gcrypt.h> +#include <ksba.h> /* Return the fingerprint of the certificate (we can't put this into libksba because we need libgcrypt support). The caller must @@ -45,7 +45,7 @@ char * gpgsm_get_fingerprint (KsbaCert cert, int algo, char *array, int *r_len) { - GCRY_MD_HD md; + gcry_md_hd_t md; int rc, len; if (!algo) @@ -59,10 +59,10 @@ gpgsm_get_fingerprint (KsbaCert cert, int algo, char *array, int *r_len) if (r_len) *r_len = len; - md = gcry_md_open (algo, 0); - if (!md) + rc = gcry_md_open (&md, algo, 0); + if (rc) { - log_error ("md_open failed: %s\n", gcry_strerror (-1)); + log_error ("md_open failed: %s\n", gpg_strerror (rc)); memset (array, 0xff, len); /* better return an invalid fpr than NULL */ return array; } @@ -143,7 +143,7 @@ gpgsm_get_short_fingerprint (KsbaCert cert) char * gpgsm_get_keygrip (KsbaCert cert, char *array) { - GCRY_SEXP s_pkey; + gcry_sexp_t s_pkey; int rc; KsbaSexp p; size_t n; @@ -164,7 +164,7 @@ gpgsm_get_keygrip (KsbaCert cert, char *array) xfree (p); if (rc) { - log_error ("gcry_sexp_scan failed: %s\n", gcry_strerror (rc)); + log_error ("gcry_sexp_scan failed: %s\n", gpg_strerror (rc)); return NULL; } array = gcry_pk_get_keygrip (s_pkey, array); diff --git a/sm/gpgsm.c b/sm/gpgsm.c index 8aebb1c1d..5157874a3 100644 --- a/sm/gpgsm.c +++ b/sm/gpgsm.c @@ -27,10 +27,10 @@ #include <unistd.h> #include <fcntl.h> +#include "gpgsm.h" #include <gcrypt.h> #include <assuan.h> /* malloc hooks */ -#include "gpgsm.h" #include "../kbx/keybox.h" /* malloc hooks */ #include "i18n.h" #include "keydb.h" @@ -1095,7 +1095,7 @@ main ( int argc, char **argv) if (rc) { log_error (_("can't sign using `%s': %s\n"), - sl->d, gnupg_strerror (rc)); + sl->d, gpg_strerror (rc)); gpgsm_status2 (&ctrl, STATUS_INV_RECP, gpg_err_code (rc) == -1? "1": gpg_err_code (rc) == GPG_ERR_NO_PUBKEY? "1": @@ -1117,7 +1117,7 @@ main ( int argc, char **argv) if (rc) { log_error (_("can't encrypt to `%s': %s\n"), - sl->d, gnupg_strerror (rc)); + sl->d, gpg_strerror (rc)); gpgsm_status2 (&ctrl, STATUS_INV_RECP, gpg_err_code (rc) == -1? "1": gpg_err_code (rc) == GPG_ERR_NO_PUBKEY? "1": diff --git a/sm/gpgsm.h b/sm/gpgsm.h index 72abccac9..f996d578c 100644 --- a/sm/gpgsm.h +++ b/sm/gpgsm.h @@ -152,6 +152,8 @@ void gpgsm_init_default_ctrl (struct server_control_s *ctrl); void gpgsm_server (void); void gpgsm_status (CTRL ctrl, int no, const char *text); void gpgsm_status2 (CTRL ctrl, int no, ...); +void gpgsm_status_with_err_code (CTRL ctrl, int no, const char *text, + gpg_err_code_t ec); /*-- fingerprint --*/ char *gpgsm_get_fingerprint (KsbaCert cert, int algo, char *array, int *r_len); @@ -188,9 +190,9 @@ void gpgsm_dump_string (const char *string); /*-- certcheck.c --*/ int gpgsm_check_cert_sig (KsbaCert issuer_cert, KsbaCert cert); int gpgsm_check_cms_signature (KsbaCert cert, KsbaConstSexp sigval, - GCRY_MD_HD md, int hash_algo); + gcry_md_hd_t md, int hash_algo); /* fixme: move create functions to another file */ -int gpgsm_create_cms_signature (KsbaCert cert, GCRY_MD_HD md, int mdalgo, +int gpgsm_create_cms_signature (KsbaCert cert, gcry_md_hd_t md, int mdalgo, char **r_sigval); diff --git a/sm/import.c b/sm/import.c index 12788ea46..17dc3d66c 100644 --- a/sm/import.c +++ b/sm/import.c @@ -27,10 +27,10 @@ #include <time.h> #include <assert.h> +#include "gpgsm.h" #include <gcrypt.h> #include <ksba.h> -#include "gpgsm.h" #include "keydb.h" #include "i18n.h" diff --git a/sm/keydb.c b/sm/keydb.c index 7f8117d71..fe6556549 100644 --- a/sm/keydb.c +++ b/sm/keydb.c @@ -231,7 +231,7 @@ keydb_add_resource (const char *url, int force, int secret) leave: if (rc) - log_error ("keyblock resource `%s': %s\n", filename, gnupg_strerror(rc)); + log_error ("keyblock resource `%s': %s\n", filename, gpg_strerror(rc)); else if (secret) any_secret = 1; else @@ -1255,14 +1255,14 @@ keydb_store_cert (KsbaCert cert, int ephemeral, int *existed) return 0; /* okay */ } log_error (_("problem looking for existing certificate: %s\n"), - gnupg_strerror (rc)); + gpg_strerror (rc)); return rc; } rc = keydb_locate_writable (kh, 0); if (rc) { - log_error (_("error finding writable keyDB: %s\n"), gnupg_strerror (rc)); + log_error (_("error finding writable keyDB: %s\n"), gpg_strerror (rc)); keydb_release (kh); return rc; } @@ -1270,7 +1270,7 @@ keydb_store_cert (KsbaCert cert, int ephemeral, int *existed) rc = keydb_insert_cert (kh, cert); if (rc) { - log_error (_("error storing certificate: %s\n"), gnupg_strerror (rc)); + log_error (_("error storing certificate: %s\n"), gpg_strerror (rc)); keydb_release (kh); return rc; } diff --git a/sm/keylist.c b/sm/keylist.c index 46a4e3806..634bda292 100644 --- a/sm/keylist.c +++ b/sm/keylist.c @@ -1,5 +1,5 @@ /* keylist.c - * Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc. + * Copyright (C) 1998, 1999, 2000, 2001, 2003 Free Software Foundation, Inc. * * This file is part of GnuPG. * @@ -27,10 +27,11 @@ #include <time.h> #include <assert.h> +#include "gpgsm.h" + #include <gcrypt.h> #include <ksba.h> -#include "gpgsm.h" #include "keydb.h" #include "i18n.h" @@ -460,7 +461,7 @@ list_internal_keys (CTRL ctrl, STRLIST names, FILE *fp, unsigned int mode) if (rc) { log_error ("key `%s' not found: %s\n", - sl->d, gnupg_strerror (rc)); + sl->d, gpg_strerror (rc)); rc = 0; } else @@ -535,7 +536,7 @@ list_internal_keys (CTRL ctrl, STRLIST names, FILE *fp, unsigned int mode) cert = NULL; } if (rc && rc != -1) - log_error ("keydb_search failed: %s\n", gnupg_strerror (rc)); + log_error ("keydb_search failed: %s\n", gpg_strerror (rc)); leave: ksba_cert_release (cert); diff --git a/sm/server.c b/sm/server.c index 60f553bee..dda150964 100644 --- a/sm/server.c +++ b/sm/server.c @@ -991,7 +991,18 @@ gpgsm_status (CTRL ctrl, int no, const char *text) gpgsm_status2 (ctrl, no, text, NULL); } +void +gpgsm_status_with_err_code (CTRL ctrl, int no, const char *text, + gpg_err_code_t ec) +{ + char buf[30]; + sprintf (buf, "%u", (unsigned int)ec); + if (text) + gpgsm_status2 (ctrl, no, text, buf, NULL); + else + gpgsm_status2 (ctrl, no, buf, NULL); +} #if 0 /* @@ -27,16 +27,16 @@ #include <time.h> #include <assert.h> +#include "gpgsm.h" #include <gcrypt.h> #include <ksba.h> -#include "gpgsm.h" #include "keydb.h" #include "i18n.h" static void -hash_data (int fd, GCRY_MD_HD md) +hash_data (int fd, gcry_md_hd_t md) { FILE *fp; char buffer[4096]; @@ -61,7 +61,7 @@ hash_data (int fd, GCRY_MD_HD md) } static int -hash_and_copy_data (int fd, GCRY_MD_HD md, KsbaWriter writer) +hash_and_copy_data (int fd, gcry_md_hd_t md, KsbaWriter writer) { KsbaError err; FILE *fp; @@ -203,7 +203,7 @@ get_default_signer (void) rc = keydb_classify_name (opt.local_user, &desc); if (rc) { - log_error ("failed to find default signer: %s\n", gnupg_strerror (rc)); + log_error ("failed to find default signer: %s\n", gpg_strerror (rc)); return NULL; } @@ -302,7 +302,7 @@ gpgsm_sign (CTRL ctrl, CERTLIST signerlist, KsbaCMS cms = NULL; KsbaStopReason stopreason; KEYDB_HANDLE kh = NULL; - GCRY_MD_HD data_md = NULL; + gcry_md_hd_t data_md = NULL; int signer; const char *algoid; int algo; @@ -322,7 +322,7 @@ gpgsm_sign (CTRL ctrl, CERTLIST signerlist, rc = gpgsm_create_writer (&b64writer, ctrl, out_fp, &writer); if (rc) { - log_error ("can't create writer: %s\n", gnupg_strerror (rc)); + log_error ("can't create writer: %s\n", gpg_strerror (rc)); goto leave; } @@ -394,7 +394,7 @@ gpgsm_sign (CTRL ctrl, CERTLIST signerlist, if (rc) { log_error ("failed to store list of certificates: %s\n", - gnupg_strerror(rc)); + gpg_strerror(rc)); goto leave; } /* Set the hash algorithm we are going to use */ @@ -409,11 +409,10 @@ gpgsm_sign (CTRL ctrl, CERTLIST signerlist, } /* Prepare hashing (actually we are figuring out what we have set above)*/ - data_md = gcry_md_open (0, 0); - if (!data_md) + rc = gcry_md_open (&data_md, 0, 0); + if (rc) { - rc = map_gcry_err (gcry_errno()); - log_error ("md_open failed: %s\n", gcry_strerror (-1)); + log_error ("md_open failed: %s\n", gpg_strerror (rc)); goto leave; } if (DBG_HASHING) @@ -524,18 +523,17 @@ gpgsm_sign (CTRL ctrl, CERTLIST signerlist, } else if (stopreason == KSBA_SR_NEED_SIG) { /* calculate the signature for all signers */ - GCRY_MD_HD md; + gcry_md_hd_t md; algo = GCRY_MD_SHA1; - md = gcry_md_open (algo, 0); - if (DBG_HASHING) - gcry_md_start_debug (md, "sign.attr"); - - if (!md) + rc = gcry_md_open (&md, algo, 0); + if (rc) { - log_error ("md_open failed: %s\n", gcry_strerror (-1)); + log_error ("md_open failed: %s\n", gpg_strerror (rc)); goto leave; } + if (DBG_HASHING) + gcry_md_start_debug (md, "sign.attr"); ksba_cms_set_hash_function (cms, HASH_FNC, md); for (cl=signerlist,signer=0; cl; cl = cl->next, signer++) { @@ -605,7 +603,7 @@ gpgsm_sign (CTRL ctrl, CERTLIST signerlist, rc = gpgsm_finish_writer (b64writer); if (rc) { - log_error ("write failed: %s\n", gnupg_strerror (rc)); + log_error ("write failed: %s\n", gpg_strerror (rc)); goto leave; } diff --git a/sm/verify.c b/sm/verify.c index 569af8b84..6dd4f4e5b 100644 --- a/sm/verify.c +++ b/sm/verify.c @@ -27,16 +27,15 @@ #include <time.h> #include <assert.h> +#include "gpgsm.h" #include <gcrypt.h> #include <ksba.h> -#include "gpgsm.h" #include "keydb.h" #include "i18n.h" -/* fixme: Move this to jnlib */ static char * -strtimestamp (time_t atime) +strtimestamp_r (time_t atime) { char *buffer = xmalloc (15); @@ -59,7 +58,7 @@ strtimestamp (time_t atime) /* Hash the data for a detached signature */ static void -hash_data (int fd, GCRY_MD_HD md) +hash_data (int fd, gcry_md_hd_t md) { FILE *fp; char buffer[4096]; @@ -102,7 +101,7 @@ gpgsm_verify (CTRL ctrl, int in_fd, int data_fd, FILE *out_fp) KsbaStopReason stopreason; KsbaCert cert; KEYDB_HANDLE kh; - GCRY_MD_HD data_md = NULL; + gcry_md_hd_t data_md = NULL; int signer; const char *algoid; int algo; @@ -130,7 +129,7 @@ gpgsm_verify (CTRL ctrl, int in_fd, int data_fd, FILE *out_fp) rc = gpgsm_create_reader (&b64reader, ctrl, fp, &reader); if (rc) { - log_error ("can't create reader: %s\n", gnupg_strerror (rc)); + log_error ("can't create reader: %s\n", gpg_strerror (rc)); goto leave; } @@ -139,7 +138,7 @@ gpgsm_verify (CTRL ctrl, int in_fd, int data_fd, FILE *out_fp) rc = gpgsm_create_writer (&b64writer, ctrl, out_fp, &writer); if (rc) { - log_error ("can't create writer: %s\n", gnupg_strerror (rc)); + log_error ("can't create writer: %s\n", gpg_strerror (rc)); goto leave; } } @@ -160,11 +159,10 @@ gpgsm_verify (CTRL ctrl, int in_fd, int data_fd, FILE *out_fp) goto leave; } - data_md = gcry_md_open (0, 0); - if (!data_md) + rc = gcry_md_open (&data_md, 0, 0); + if (rc) { - rc = map_gcry_err (gcry_errno()); - log_error ("md_open failed: %s\n", gcry_strerror (-1)); + log_error ("md_open failed: %s\n", gpg_strerror (rc)); goto leave; } if (DBG_HASHING) @@ -225,7 +223,7 @@ gpgsm_verify (CTRL ctrl, int in_fd, int data_fd, FILE *out_fp) rc = gpgsm_finish_writer (b64writer); if (rc) { - log_error ("write failed: %s\n", gnupg_strerror (rc)); + log_error ("write failed: %s\n", gpg_strerror (rc)); goto leave; } } @@ -364,7 +362,7 @@ gpgsm_verify (CTRL ctrl, int in_fd, int data_fd, FILE *out_fp) } else log_error ("failed to find the certificate: %s\n", - gnupg_strerror(rc)); + gpg_strerror(rc)); { char numbuf[50]; sprintf (numbuf, "%d", rc); @@ -380,7 +378,7 @@ gpgsm_verify (CTRL ctrl, int in_fd, int data_fd, FILE *out_fp) rc = keydb_get_cert (kh, &cert); if (rc) { - log_error ("failed to get cert: %s\n", gnupg_strerror (rc)); + log_error ("failed to get cert: %s\n", gpg_strerror (rc)); goto next_signer; } @@ -395,7 +393,7 @@ gpgsm_verify (CTRL ctrl, int in_fd, int data_fd, FILE *out_fp) if (msgdigest) { /* Signed attributes are available. */ - GCRY_MD_HD md; + gcry_md_hd_t md; unsigned char *s; /* check that the message digest in the signed attributes @@ -415,10 +413,10 @@ gpgsm_verify (CTRL ctrl, int in_fd, int data_fd, FILE *out_fp) goto next_signer; } - md = gcry_md_open (algo, 0); - if (!md) + rc = gcry_md_open (&md, algo, 0); + if (rc) { - log_error ("md_open failed: %s\n", gcry_strerror (-1)); + log_error ("md_open failed: %s\n", gpg_strerror (rc)); goto next_signer; } if (DBG_HASHING) @@ -445,7 +443,7 @@ gpgsm_verify (CTRL ctrl, int in_fd, int data_fd, FILE *out_fp) { char *fpr; - log_error ("invalid signature: %s\n", gnupg_strerror (rc)); + log_error ("invalid signature: %s\n", gpg_strerror (rc)); fpr = gpgsm_get_fingerprint_hexstring (cert, GCRY_MD_SHA1); gpgsm_status (ctrl, STATUS_BADSIG, fpr); xfree (fpr); @@ -454,8 +452,8 @@ gpgsm_verify (CTRL ctrl, int in_fd, int data_fd, FILE *out_fp) rc = gpgsm_cert_use_verify_p (cert); /*(this displays an info message)*/ if (rc) { - gpgsm_status2 (ctrl, STATUS_ERROR, "verify.keyusage", - gnupg_error_token (rc), NULL); + gpgsm_status_with_err_code (ctrl, STATUS_ERROR, "verify.keyusage", + gpg_err_code (rc)); rc = 0; } @@ -474,7 +472,7 @@ gpgsm_verify (CTRL ctrl, int in_fd, int data_fd, FILE *out_fp) char *buf, *fpr, *tstr; fpr = gpgsm_get_fingerprint_hexstring (cert, GCRY_MD_SHA1); - tstr = strtimestamp (sigtime); + tstr = strtimestamp_r (sigtime); buf = xmalloc ( strlen(fpr) + strlen (tstr) + 120); sprintf (buf, "%s %s %lu %lu", fpr, tstr, (unsigned long)sigtime, (unsigned long)keyexptime ); @@ -486,14 +484,16 @@ gpgsm_verify (CTRL ctrl, int in_fd, int data_fd, FILE *out_fp) if (rc) /* of validate_chain */ { - log_error ("invalid certification chain: %s\n", gnupg_strerror (rc)); + log_error ("invalid certification chain: %s\n", gpg_strerror (rc)); if (gpg_err_code (rc) == GPG_ERR_BAD_CERT_CHAIN || gpg_err_code (rc) == GPG_ERR_BAD_CERT || gpg_err_code (rc) == GPG_ERR_BAD_CA_CERT || gpg_err_code (rc) == GPG_ERR_CERT_REVOKED) - gpgsm_status (ctrl, STATUS_TRUST_NEVER, gnupg_error_token (rc)); + gpgsm_status_with_err_code (ctrl, STATUS_TRUST_NEVER, NULL, + gpg_err_code (rc)); else - gpgsm_status (ctrl, STATUS_TRUST_UNDEFINED, gnupg_error_token (rc)); + gpgsm_status_with_err_code (ctrl, STATUS_TRUST_UNDEFINED, NULL, + gpg_err_code (rc)); goto next_signer; } |