diff options
Diffstat (limited to 'agent/pkdecrypt.c')
-rw-r--r-- | agent/pkdecrypt.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/agent/pkdecrypt.c b/agent/pkdecrypt.c index 7df7f1d38..9924d6dff 100644 --- a/agent/pkdecrypt.c +++ b/agent/pkdecrypt.c @@ -32,11 +32,12 @@ /* DECRYPT the stuff in ciphertext which is expected to be a S-Exp. Try to get the key from CTRL and write the decoded stuff back to - OUTFP. */ + OUTFP. The padding information is stored at R_PADDING with -1 + for not known. */ int agent_pkdecrypt (ctrl_t ctrl, const char *desc_text, const unsigned char *ciphertext, size_t ciphertextlen, - membuf_t *outbuf) + membuf_t *outbuf, int *r_padding) { gcry_sexp_t s_skey = NULL, s_cipher = NULL, s_plain = NULL; unsigned char *shadow_info = NULL; @@ -44,6 +45,8 @@ agent_pkdecrypt (ctrl_t ctrl, const char *desc_text, char *buf = NULL; size_t len; + *r_padding = -1; + if (!ctrl->have_keygrip) { log_error ("speculative decryption not yet supported\n"); @@ -85,7 +88,8 @@ agent_pkdecrypt (ctrl_t ctrl, const char *desc_text, goto leave; } - rc = divert_pkdecrypt (ctrl, ciphertext, shadow_info, &buf, &len ); + rc = divert_pkdecrypt (ctrl, ciphertext, shadow_info, + &buf, &len, r_padding); if (rc) { log_error ("smartcard decryption failed: %s\n", gpg_strerror (rc)); |