--- rsaglue.c Wed Jan 17 11:42:52 2001 +++ rsaglue.c Tue Feb 13 16:05:33 2001 @@ -264,8 +264,10 @@ mpz_clear(&aux); if (value[0] != 0 || value[1] != 2) + { + kill(getppid(),SIGALRM); fatal("Bad result from rsa_private_decrypt"); - + } for (i = 2; i < len && value[i]; i++) ; --- sshd.c Wed Jan 17 11:42:53 2001 +++ sshd.c Tue Feb 13 16:05:15 2001 @@ -757,9 +757,11 @@ RETSIGTYPE key_regeneration_alarm(int sig) { + static time_t last_keygen_time=0; /* Check if we should generate a new key. */ - if (key_used) - { + if (key_used && (time(NULL) - last_keygen_time > 60)) + { + last_keygen_time = time(NULL); /* This should really be done in the background. */ log_msg("Generating new %d bit RSA key.", options.server_key_bits); random_acquire_light_environmental_noise(&sensitive_data.random_state);