aboutsummaryrefslogtreecommitdiffstats
path: root/agent/divert-scd.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2002-03-06 14:16:37 +0000
committerWerner Koch <[email protected]>2002-03-06 14:16:37 +0000
commit4e637f22851869020929ad541012e23d859fa1a9 (patch)
tree0d1f66624c4de4f1679c7e14a96e3b387848c4d6 /agent/divert-scd.c
parent* assuan-client.c (_assuan_read_from_server): Detect END. (diff)
downloadgnupg-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.c11
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;