diff options
author | Werner Koch <[email protected]> | 2002-03-06 14:16:37 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2002-03-06 14:16:37 +0000 |
commit | 4e637f22851869020929ad541012e23d859fa1a9 (patch) | |
tree | 0d1f66624c4de4f1679c7e14a96e3b387848c4d6 /agent/divert-scd.c | |
parent | * assuan-client.c (_assuan_read_from_server): Detect END. (diff) | |
download | gnupg-4e637f22851869020929ad541012e23d859fa1a9.tar.gz gnupg-4e637f22851869020929ad541012e23d859fa1a9.zip |
sm/
* gpgsm.c: New command --learn-card
* call-agent.c (learn_cb,gpgsm_agent_learn): New.
* gpgsm.c (main): Print error messages for non-implemented commands.
agent/
* learncard.c: New.
* divert-scd.c (ask_for_card): The serial number is binary so
convert it to hex here.
* findkey.c (agent_write_private_key): New.
* genkey.c (store_key): And use it here.
scd/
* pkdecrypt.c (agent_pkdecrypt): Changed the way the diversion is done.
* divert-scd.c (divert_pkdecrypt): Changed interface and
implemented it.
Diffstat (limited to '')
-rw-r--r-- | agent/divert-scd.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/agent/divert-scd.c b/agent/divert-scd.c index 33fd5ce26..9b176a6bd 100644 --- a/agent/divert-scd.c +++ b/agent/divert-scd.c @@ -52,11 +52,11 @@ ask_for_card (const unsigned char *shadow_info, char **r_kid) n = snext (&s); if (!n) return GNUPG_Invalid_Sexp; - want_sn = xtrymalloc (n+1); + want_sn = xtrymalloc (n*2+1); if (!want_sn) return GNUPG_Out_Of_Core; - memcpy (want_sn, s, n); - want_sn[n] = 0; + for (i=0; i < n; i++) + sprintf (want_sn+2*i, "%02X", s[i]); s += n; n = snext (&s); @@ -229,7 +229,7 @@ getpin_cb (void *opaque, const char *info, char *buf, size_t maxbuf) int divert_pksign (const unsigned char *digest, size_t digestlen, int algo, - const char *shadow_info, unsigned char **r_sig) + const unsigned char *shadow_info, unsigned char **r_sig) { int rc; char *kid; @@ -262,7 +262,8 @@ divert_pksign (const unsigned char *digest, size_t digestlen, int algo, key identified by SHADOW_INFO and return the plaintext in an allocated buffer in R_BUF. */ int -divert_pkdecrypt (const unsigned char *cipher, const char *shadow_info, +divert_pkdecrypt (const unsigned char *cipher, + const unsigned char *shadow_info, char **r_buf, size_t *r_len) { int rc; |