diff options
Diffstat (limited to 'agent/pksign.c')
-rw-r--r-- | agent/pksign.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/agent/pksign.c b/agent/pksign.c index b347608..3b2fcc4 100644 --- a/agent/pksign.c +++ b/agent/pksign.c @@ -285,7 +285,8 @@ agent_pksign_do (ctrl_t ctrl, const char *cache_nonce, cache_mode_t cache_mode, lookup_ttl_t lookup_ttl, const void *overridedata, size_t overridedatalen) { - gcry_sexp_t s_skey = NULL, s_sig = NULL; + gcry_sexp_t s_skey = NULL; + gcry_sexp_t s_sig = NULL; gcry_sexp_t s_hash = NULL; gcry_sexp_t s_pkey = NULL; unsigned char *shadow_info = NULL; @@ -346,10 +347,18 @@ agent_pksign_do (ctrl_t ctrl, const char *cache_nonce, is_ECDSA = 1; } - rc = divert_pksign (ctrl, - data, datalen, - ctrl->digest.algo, - shadow_info, &buf, &len); + { + char *desc2 = NULL; + + if (desc_text) + agent_modify_description (desc_text, NULL, s_skey, &desc2); + + rc = divert_pksign (ctrl, desc2? desc2 : desc_text, + data, datalen, + ctrl->digest.algo, + shadow_info, &buf, &len); + xfree (desc2); + } if (rc) { log_error ("smartcard signing failed: %s\n", gpg_strerror (rc)); |