Added key generation progress meter

This commit is contained in:
Damien Miller 1999-12-17 14:02:47 +11:00
parent 8f9d5073d8
commit fdb5f13c5b
1 changed files with 20 additions and 2 deletions

22
rsa.c
View File

@ -35,7 +35,7 @@
*/
#include "includes.h"
RCSID("$Id: rsa.c,v 1.5 1999/11/25 00:54:59 damien Exp $");
RCSID("$Id: rsa.c,v 1.6 1999/12/17 03:02:47 damien Exp $");
#include "rsa.h"
#include "ssh.h"
@ -55,6 +55,21 @@ rsa_alive()
return (1);
}
/*
* Key generation progress meter callback
*/
void
keygen_progress(int p, int n, void *arg)
{
const char progress_chars[] = ".o+O?";
if ((p < 0) || (p > (sizeof(progress_chars) - 2)))
p = 4;
printf("%c", progress_chars[p]);
fflush(stdout);
}
/*
* Generates RSA public and private keys. This initializes the data
* structures; they should be freed with rsa_clear_private_key and
@ -69,8 +84,11 @@ rsa_generate_key(RSA *prv, RSA *pub, unsigned int bits)
if (rsa_verbose) {
printf("Generating RSA keys: ");
fflush(stdout);
key = RSA_generate_key(bits, 35, keygen_progress, NULL);
printf("\n");
} else {
key = RSA_generate_key(bits, 35, NULL, NULL);
}
key = RSA_generate_key(bits, 35, NULL, NULL);
if (key == NULL)
fatal("rsa_generate_key: key generation failed.");