1
1

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 <jjelen@redhat.com>
Reviewed-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
Этот коммит содержится в:
Jakub Jelen 2019-06-19 16:26:24 +02:00
родитель 23c837f4d0
Коммит d627cba476

Просмотреть файл

@ -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 */