mirror of
https://github.com/clearml/dropbear
synced 2025-01-31 02:46:58 +00:00
Fix dropbearconvert ecdsa parsing error typo
Simplify handling for different key types
This commit is contained in:
parent
cb9a00951f
commit
6ac92cf606
58
keyimport.c
58
keyimport.c
@ -601,51 +601,35 @@ static sign_key *openssh_read(const char *filename, const char * UNUSED(passphra
|
|||||||
/* discard checkkey2 */
|
/* discard checkkey2 */
|
||||||
buf_getint(blobbuf);
|
buf_getint(blobbuf);
|
||||||
|
|
||||||
if (type != DROPBEAR_SIGNKEY_NONE) {
|
errmsg = "Unsupported OpenSSH key type";
|
||||||
retkey->type = type;
|
retkey->type = type;
|
||||||
|
ret = DROPBEAR_FAILURE;
|
||||||
|
/* Parse private key part */
|
||||||
#if DROPBEAR_RSA
|
#if DROPBEAR_RSA
|
||||||
if (type == DROPBEAR_SIGNKEY_RSA) {
|
if (type == DROPBEAR_SIGNKEY_RSA) {
|
||||||
if (buf_get_rsa_priv_ossh(blobbuf, retkey)
|
errmsg = "Error parsing OpenSSH RSA key";
|
||||||
== DROPBEAR_SUCCESS) {
|
ret = buf_get_rsa_priv_ossh(blobbuf, retkey);
|
||||||
errmsg = NULL;
|
}
|
||||||
retval = retkey;
|
|
||||||
goto error;
|
|
||||||
} else {
|
|
||||||
errmsg = "Error parsing OpenSSH RSA key";
|
|
||||||
goto ossh_error;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
#if DROPBEAR_ED25519
|
#if DROPBEAR_ED25519
|
||||||
if (type == DROPBEAR_SIGNKEY_ED25519) {
|
if (type == DROPBEAR_SIGNKEY_ED25519) {
|
||||||
if (buf_get_ed25519_priv_ossh(blobbuf, retkey)
|
errmsg = "Error parsing OpenSSH ed25519 key";
|
||||||
== DROPBEAR_SUCCESS) {
|
ret = buf_get_ed25519_priv_ossh(blobbuf, retkey);
|
||||||
errmsg = NULL;
|
}
|
||||||
retval = retkey;
|
|
||||||
goto error;
|
|
||||||
} else {
|
|
||||||
errmsg = "Error parsing OpenSSH ed25519 key";
|
|
||||||
goto ossh_error;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
#if DROPBEAR_ECDSA
|
#if DROPBEAR_ECDSA
|
||||||
if (signkey_is_ecdsa(type)) {
|
if (signkey_is_ecdsa(type)) {
|
||||||
if (buf_get_ecdsa_priv_ossh(blobbuf, retkey)
|
errmsg = "Error parsing OpenSSH ecdsa key";
|
||||||
== DROPBEAR_SUCCESS) {
|
ret = buf_get_ecdsa_priv_ossh(blobbuf, retkey);
|
||||||
errmsg = NULL;
|
}
|
||||||
retval = retkey;
|
|
||||||
goto error;
|
|
||||||
} else {
|
|
||||||
errmsg = "Error parsing OpenSSH ed25519 key";
|
|
||||||
goto ossh_error;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
if (ret == DROPBEAR_SUCCESS) {
|
||||||
|
errmsg = NULL;
|
||||||
|
retval = retkey;
|
||||||
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
errmsg = "Unsupported OpenSSH key type";
|
ossh_error:
|
||||||
ossh_error:
|
|
||||||
sign_key_free(retkey);
|
sign_key_free(retkey);
|
||||||
retkey = NULL;
|
retkey = NULL;
|
||||||
goto error;
|
goto error;
|
||||||
|
Loading…
Reference in New Issue
Block a user