From db5131054366e8c5af1d0eb6b22921ded77a4f43 Mon Sep 17 00:00:00 2001 From: damien Date: Fri, 17 Dec 1999 03:02:47 +0000 Subject: [PATCH] Added key generation progress meter --- rsa.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/rsa.c b/rsa.c index e4827512..54039b38 100644 --- a/rsa.c +++ b/rsa.c @@ -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."); -- 2.45.1