[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
pki_private_key_from_base64: key flags issue
[Thread Prev] | [Thread Next]
- Subject: pki_private_key_from_base64: key flags issue
- From: Artyom Poptsov <poptsov.artyom@xxxxxxxxx>
- Reply-to: libssh@xxxxxxxxxx
- Date: Sun, 24 Aug 2014 12:18:55 +0400
- To: libssh@xxxxxxxxxx
Hello, I found that `pki_private_key_from_base64' procedure returns a key with both private and public flag set. It makes it impossible to determine whether the key is public or private with `ssh_key_is_private' and `ssh_key_is_public' predicates because they both return 1 (true) for the key. The issue was found in libssh 0.6.3 and as far as I can see it persists in the latest commits in the repository. Is it done intentionally? If it is not, then it should be fixed. I prepared a patch that fixes that issue, please find the patch attached. That's my first patch for libssh, so any comments and suggestions will be very appreciated. Thanks, - Artyom -- Artyom V. Poptsov <poptsov.artyom@xxxxxxxxx> Home page: http://poptsov-artyom.narod.ru/
From 5fdb4061ffb45e332cf2314676fcf10735542208 Mon Sep 17 00:00:00 2001 From: "Artyom V. Poptsov" <poptsov.artyom@xxxxxxxxx> Date: Sun, 24 Aug 2014 11:56:56 +0400 Subject: [PATCH] pki_crypto: Fix 'pki_private_key_from_base64' key flags Don't set the SSH_KEY_FLAG_PUBLIC flag for a private key in 'pki_private_key_from_base64' so 'ssh_key_is_public' predicate will return 0 (false) for the key. Signed-off-by: Artyom V. Poptsov <poptsov.artyom@xxxxxxxxx> --- src/pki_crypto.c | 2 +- src/pki_gcrypt.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pki_crypto.c b/src/pki_crypto.c index 425e535..b73289d 100644 --- a/src/pki_crypto.c +++ b/src/pki_crypto.c @@ -772,7 +772,7 @@ ssh_key pki_private_key_from_base64(const char *b64_key, key->type = type; key->type_c = ssh_key_type_to_char(type); - key->flags = SSH_KEY_FLAG_PRIVATE | SSH_KEY_FLAG_PUBLIC; + key->flags = SSH_KEY_FLAG_PRIVATE; key->dsa = dsa; key->rsa = rsa; key->ecdsa = ecdsa; diff --git a/src/pki_gcrypt.c b/src/pki_gcrypt.c index fff5237..9f70579 100644 --- a/src/pki_gcrypt.c +++ b/src/pki_gcrypt.c @@ -679,7 +679,7 @@ ssh_key pki_private_key_from_base64(const char *b64_key, key->type = type; key->type_c = ssh_key_type_to_char(type); - key->flags = SSH_KEY_FLAG_PRIVATE | SSH_KEY_FLAG_PUBLIC; + key->flags = SSH_KEY_FLAG_PRIVATE; key->dsa = dsa; key->rsa = rsa; -- 1.8.5.5
Re: pki_private_key_from_base64: key flags issue | Andreas Schneider <asn@xxxxxxxxxxxxxx> |