From d627cba47610f68afc4df54b683fc73d2b43a67a Mon Sep 17 00:00:00 2001 From: Jakub Jelen Date: Wed, 19 Jun 2019 16:26:24 +0200 Subject: [PATCH] pki: Search for the PEM headers not only on the start of the key file Fixes: T76 for gcrypt and mbedtls backends Signed-off-by: Jakub Jelen Reviewed-by: Anderson Toshiyuki Sasaki --- src/pki.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/pki.c b/src/pki.c index 2a94ade9..a1650ae1 100644 --- a/src/pki.c +++ b/src/pki.c @@ -66,20 +66,20 @@ enum ssh_keytypes_e pki_privatekey_type_from_string(const char *privkey) { - int cmp; + char *start = NULL; - cmp = strncmp(privkey, DSA_HEADER_BEGIN, strlen(DSA_HEADER_BEGIN)); - if (cmp == 0) { + start = strstr(privkey, DSA_HEADER_BEGIN); + if (start != NULL) { return SSH_KEYTYPE_DSS; } - cmp = strncmp(privkey, RSA_HEADER_BEGIN, strlen(RSA_HEADER_BEGIN)); - if (cmp == 0) { + start = strstr(privkey, RSA_HEADER_BEGIN); + if (start != NULL) { return SSH_KEYTYPE_RSA; } - cmp = strncmp(privkey, ECDSA_HEADER_BEGIN, strlen(ECDSA_HEADER_BEGIN)); - if (cmp == 0) { + start = strstr(privkey, ECDSA_HEADER_BEGIN); + if (start != 0) { /* We don't know what the curve is at this point, so we don't actually * know the type. We figure out the actual curve and fix things up in * pki_private_key_from_base64 */