aboutsummaryrefslogtreecommitdiffstats
path: root/g10/cardglue.c
diff options
context:
space:
mode:
Diffstat (limited to 'g10/cardglue.c')
-rw-r--r--g10/cardglue.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/g10/cardglue.c b/g10/cardglue.c
index fd7cf8b3d..91637a776 100644
--- a/g10/cardglue.c
+++ b/g10/cardglue.c
@@ -631,10 +631,21 @@ agent_scd_pksign (const char *serialno, int hashalgo,
int
agent_scd_pkdecrypt (const char *serialno,
const unsigned char *indata, size_t indatalen,
- char **r_buf, size_t *r_buflen)
+ unsigned char **r_buf, size_t *r_buflen)
{
- return gpg_error (GPG_ERR_CARD);
+ APP app;
+
+ *r_buf = NULL;
+ *r_buflen = 0;
+ app = current_app? current_app : open_card ();
+ if (!app)
+ return gpg_error (GPG_ERR_CARD);
+
+ return app->fnc.decipher (app, serialno,
+ pin_cb, NULL,
+ indata, indatalen,
+ r_buf, r_buflen);
}
/* Change the PIN of an OpenPGP card or reset the retry counter. */