diff options
Diffstat (limited to 'g10/cardglue.c')
-rw-r--r-- | g10/cardglue.c | 15 |
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. */ |