mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-03 12:11:33 +01:00
agent: Support unprotected ssh keys.
* agent/command-ssh.c (ssh_key_to_protected_buffer): If the empty passphrase is supplied, do not protect the key. GnuPG-bug-id: 2856 Signed-off-by: Justus Winter <justus@g10code.com>
This commit is contained in:
parent
b49b1a87ac
commit
2739647985
@ -2980,6 +2980,7 @@ ssh_key_extract_comment (gcry_sexp_t key, char **r_comment)
|
||||
|
||||
/* This function converts the key contained in the S-Expression KEY
|
||||
into a buffer, which is protected by the passphrase PASSPHRASE.
|
||||
If PASSPHRASE is the empty passphrase, the key is not protected.
|
||||
Returns usual error code. */
|
||||
static gpg_error_t
|
||||
ssh_key_to_protected_buffer (gcry_sexp_t key, const char *passphrase,
|
||||
@ -3000,7 +3001,17 @@ ssh_key_to_protected_buffer (gcry_sexp_t key, const char *passphrase,
|
||||
gcry_sexp_sprint (key, GCRYSEXP_FMT_CANON, buffer_new, buffer_new_n);
|
||||
/* FIXME: guarantee? */
|
||||
|
||||
err = agent_protect (buffer_new, passphrase, buffer, buffer_n, 0, -1);
|
||||
if (*passphrase)
|
||||
err = agent_protect (buffer_new, passphrase, buffer, buffer_n, 0, -1);
|
||||
else
|
||||
{
|
||||
/* The key derivation function does not support zero length
|
||||
* strings. Store key unprotected if the user wishes so. */
|
||||
*buffer = buffer_new;
|
||||
*buffer_n = buffer_new_n;
|
||||
buffer_new = NULL;
|
||||
err = 0;
|
||||
}
|
||||
|
||||
out:
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user