* keygen.c (ask_algo): Add a choose-your-own-capabilities option for DSA.
authorDavid Shaw <dshaw@jabberwocky.com>
Thu, 9 Dec 2004 15:49:47 +0000 (15:49 +0000)
committerDavid Shaw <dshaw@jabberwocky.com>
Thu, 9 Dec 2004 15:49:47 +0000 (15:49 +0000)
g10/ChangeLog
g10/keygen.c

index 123cec9..e0d19d7 100644 (file)
@@ -1,3 +1,8 @@
+2004-12-09  David Shaw  <dshaw@jabberwocky.com>
+
+       * keygen.c (ask_algo): Add a choose-your-own-capabilities option
+       for DSA.
+
 2004-12-07  David Shaw  <dshaw@jabberwocky.com>
 
        * keygen.c (ask_keysize): Change strings to always use %u instead
index 2be6364..de57f23 100644 (file)
@@ -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 (opt.expert)
+      tty_printf(  _("   (%d) DSA (set your own capabilities)\n"), 3 );
     if( addmode )
-       tty_printf(    _("   (%d) Elgamal (encrypt only)\n"), 3 );
-    tty_printf(    _("   (%d) RSA (sign only)\n"), 4 );
+       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"), 5 );
+        tty_printf(_("   (%d) RSA (encrypt only)\n"), 6 );
     if (opt.expert)
-      tty_printf(    _("   (%d) RSA (set your own capabilities)\n"), 6 );
+      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;