From 53ae3604570fbd9ce2a6771ef9bd4fd897e24993 Mon Sep 17 00:00:00 2001 From: David Shaw Date: Thu, 9 Dec 2004 15:49:47 +0000 Subject: [PATCH] * keygen.c (ask_algo): Add a choose-your-own-capabilities option for DSA. --- g10/ChangeLog | 5 +++++ g10/keygen.c | 27 +++++++++++++++++---------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/g10/ChangeLog b/g10/ChangeLog index 123cec9ea..e0d19d79a 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -1,3 +1,8 @@ +2004-12-09 David Shaw + + * keygen.c (ask_algo): Add a choose-your-own-capabilities option + for DSA. + 2004-12-07 David Shaw * keygen.c (ask_keysize): Change strings to always use %u instead diff --git a/g10/keygen.c b/g10/keygen.c index 2be6364be..de57f23e4 100644 --- a/g10/keygen.c +++ b/g10/keygen.c @@ -1349,13 +1349,15 @@ ask_algo (int addmode, unsigned int *r_usage) if( !addmode ) tty_printf(_(" (%d) DSA and Elgamal (default)\n"), 1 ); tty_printf( _(" (%d) DSA (sign only)\n"), 2 ); - if( addmode ) - tty_printf( _(" (%d) Elgamal (encrypt only)\n"), 3 ); - tty_printf( _(" (%d) RSA (sign only)\n"), 4 ); - if (addmode) - tty_printf( _(" (%d) RSA (encrypt only)\n"), 5 ); if (opt.expert) - tty_printf( _(" (%d) RSA (set your own capabilities)\n"), 6 ); + tty_printf( _(" (%d) DSA (set your own capabilities)\n"), 3 ); + if( addmode ) + tty_printf(_(" (%d) Elgamal (encrypt only)\n"), 4 ); + tty_printf( _(" (%d) RSA (sign only)\n"), 5 ); + if (addmode) + tty_printf(_(" (%d) RSA (encrypt only)\n"), 6 ); + if (opt.expert) + tty_printf( _(" (%d) RSA (set your own capabilities)\n"), 7 ); for(;;) { answer = cpr_get("keygen.algo",_("Your selection? ")); @@ -1366,26 +1368,31 @@ ask_algo (int addmode, unsigned int *r_usage) algo = 0; /* create both keys */ break; } - else if( algo == 6 && opt.expert ) { + else if( algo == 7 && opt.expert ) { algo = PUBKEY_ALGO_RSA; *r_usage=ask_key_flags(algo); break; } - else if( algo == 5 && addmode ) { + else if( algo == 6 && addmode ) { algo = PUBKEY_ALGO_RSA; *r_usage = PUBKEY_USAGE_ENC; break; } - else if( algo == 4 ) { + else if( algo == 5 ) { algo = PUBKEY_ALGO_RSA; *r_usage = PUBKEY_USAGE_SIG; break; } - else if( algo == 3 && addmode ) { + else if( algo == 4 && addmode ) { algo = PUBKEY_ALGO_ELGAMAL_E; *r_usage = PUBKEY_USAGE_ENC; break; } + else if( algo == 3 && opt.expert ) { + algo = PUBKEY_ALGO_DSA; + *r_usage=ask_key_flags(algo); + break; + } else if( algo == 2 ) { algo = PUBKEY_ALGO_DSA; *r_usage = PUBKEY_USAGE_SIG;