aboutsummaryrefslogtreecommitdiffstats
path: root/g10/cardglue.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2003-10-09 15:08:12 +0000
committerWerner Koch <[email protected]>2003-10-09 15:08:12 +0000
commitf633ef17dc34d0ab103e57c78121f11982fd75e4 (patch)
treea3a5f28f447c993dddc531be71d1ed4e74986974 /g10/cardglue.c
parent* cardglue.c (pin_cb): Detect whether an admin or regular PIN is (diff)
downloadgnupg-f633ef17dc34d0ab103e57c78121f11982fd75e4.tar.gz
gnupg-f633ef17dc34d0ab103e57c78121f11982fd75e4.zip
* ccid-driver.c (ccid_transceive): Add T=1 chaining for sending.
* sign.c (do_sign) [!ENABLE_CARD_SUPPORT]: Return an error for card keys. * cardglue.c (agent_scd_pkdecrypt): Implemented. * pubkey-enc.c (get_it) [ENABLE_CARD_SUPPORT]: Divert decryption to card
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. */