aboutsummaryrefslogtreecommitdiffstats
path: root/sm
diff options
context:
space:
mode:
Diffstat (limited to 'sm')
-rw-r--r--sm/ChangeLog4
-rw-r--r--sm/call-agent.c10
2 files changed, 8 insertions, 6 deletions
diff --git a/sm/ChangeLog b/sm/ChangeLog
index 4cf1f6703..a88b07919 100644
--- a/sm/ChangeLog
+++ b/sm/ChangeLog
@@ -1,3 +1,7 @@
+2009-07-30 Werner Koch <[email protected]>
+
+ * call-agent.c (learn_cb): Do not store as ephemeral.
+
2009-07-29 Marcus Brinkmann <[email protected]>
* keylist.c (print_capabilities): Print a trailing colon.
diff --git a/sm/call-agent.c b/sm/call-agent.c
index 47e45aba3..190931f42 100644
--- a/sm/call-agent.c
+++ b/sm/call-agent.c
@@ -875,13 +875,11 @@ learn_cb (void *opaque, const void *buffer, size_t length)
return 0;
}
+ /* We do not store a certifciate with missing issuers as ephemeral
+ because we can assume that the --learn-card command has been used
+ on purpose. */
rc = gpgsm_basic_cert_check (parm->ctrl, cert);
- if (gpg_err_code (rc) == GPG_ERR_MISSING_CERT)
- { /* For later use we store it in the ephemeral database. */
- log_info ("issuer certificate missing - storing as ephemeral\n");
- keydb_store_cert (cert, 1, NULL);
- }
- else if (rc)
+ if (rc && gpg_err_code (rc) != GPG_ERR_MISSING_CERT)
log_error ("invalid certificate: %s\n", gpg_strerror (rc));
else
{