Exit if we don't have keys and -R wasn't specified

This commit is contained in:
Matt Johnston 2013-12-03 20:59:03 +08:00
parent 441facc6e0
commit 9ff337aa3b

View File

@ -452,6 +452,7 @@ static void addhostkey(const char *keyfile) {
void load_all_hostkeys() { void load_all_hostkeys() {
int i; int i;
int disable_unset_keys = 1; int disable_unset_keys = 1;
int any_keys = 0;
svr_opts.hostkey = new_sign_key(); svr_opts.hostkey = new_sign_key();
@ -484,12 +485,20 @@ void load_all_hostkeys() {
if (disable_unset_keys && !svr_opts.hostkey->rsakey) { if (disable_unset_keys && !svr_opts.hostkey->rsakey) {
disablekey(DROPBEAR_SIGNKEY_RSA); disablekey(DROPBEAR_SIGNKEY_RSA);
} }
else
{
any_keys = 1;
}
#endif #endif
#ifdef DROPBEAR_DSS #ifdef DROPBEAR_DSS
if (disable_unset_keys && !svr_opts.hostkey->dsskey) { if (disable_unset_keys && !svr_opts.hostkey->dsskey) {
disablekey(DROPBEAR_SIGNKEY_RSA); disablekey(DROPBEAR_SIGNKEY_RSA);
} }
else
{
any_keys = 1;
}
#endif #endif
@ -499,6 +508,10 @@ void load_all_hostkeys() {
&& !svr_opts.hostkey->ecckey256) { && !svr_opts.hostkey->ecckey256) {
disablekey(DROPBEAR_SIGNKEY_ECDSA_NISTP256); disablekey(DROPBEAR_SIGNKEY_ECDSA_NISTP256);
} }
else
{
any_keys = 1;
}
#endif #endif
#ifdef DROPBEAR_ECC_384 #ifdef DROPBEAR_ECC_384
@ -506,6 +519,10 @@ void load_all_hostkeys() {
&& !svr_opts.hostkey->ecckey384) { && !svr_opts.hostkey->ecckey384) {
disablekey(DROPBEAR_SIGNKEY_ECDSA_NISTP384); disablekey(DROPBEAR_SIGNKEY_ECDSA_NISTP384);
} }
else
{
any_keys = 1;
}
#endif #endif
#ifdef DROPBEAR_ECC_521 #ifdef DROPBEAR_ECC_521
@ -513,7 +530,16 @@ void load_all_hostkeys() {
&& !svr_opts.hostkey->ecckey521) { && !svr_opts.hostkey->ecckey521) {
disablekey(DROPBEAR_SIGNKEY_ECDSA_NISTP521); disablekey(DROPBEAR_SIGNKEY_ECDSA_NISTP521);
} }
else
{
any_keys = 1;
}
#endif #endif
#endif /* DROPBEAR_ECDSA */ #endif /* DROPBEAR_ECDSA */
if (!any_keys)
{
dropbear_exit("No hostkeys available");
}
} }