diff options
author | Werner Koch <[email protected]> | 2002-01-29 10:05:05 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2002-01-29 10:05:05 +0000 |
commit | 2d1d9d928c652f4d9fcab2d9d020c6225c16ee2c (patch) | |
tree | 9d6ced2631cee69c3f8e2dae8396c78ab3fc3a00 /agent/findkey.c | |
parent | * certreqgen.c (create_request): Store the email address in the req. (diff) | |
download | gnupg-2d1d9d928c652f4d9fcab2d9d020c6225c16ee2c.tar.gz gnupg-2d1d9d928c652f4d9fcab2d9d020c6225c16ee2c.zip |
* findkey.c (agent_key_available): New.
* command.c (cmd_havekey): New.
(register_commands): And register new command.
Diffstat (limited to 'agent/findkey.c')
-rw-r--r-- | agent/findkey.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/agent/findkey.c b/agent/findkey.c index 84af44f43..50f832be6 100644 --- a/agent/findkey.c +++ b/agent/findkey.c @@ -55,9 +55,8 @@ unprotect (GCRY_SEXP s_skey) - - -/* Return the secret key as an S-Exp after locating it using the grip. Returns NULL if key is not available. */ +/* Return the secret key as an S-Exp after locating it using the grip. + Returns NULL if key is not available. */ GCRY_SEXP agent_key_from_file (const unsigned char *grip) { @@ -125,5 +124,24 @@ agent_key_from_file (const unsigned char *grip) return s_skey; } +/* Return the secret key as an S-Exp after locating it using the grip. + Returns NULL if key is not available. 0 = key is available */ +int +agent_key_available (const unsigned char *grip) +{ + int i; + char *fname; + char hexgrip[41]; + + for (i=0; i < 20; i++) + sprintf (hexgrip+2*i, "%02X", grip[i]); + hexgrip[40] = 0; + + fname = make_filename (opt.homedir, "private-keys-v1.d", hexgrip, NULL ); + i = !access (fname, R_OK)? 0 : -1; + xfree (fname); + return i; +} + |