mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
gpg: Add shortcut for setting key capabilities.
* g10/keygen.c (ask_key_flags): Add shortcut '='. * doc/help.txt (gpg.keygen.flags): New.
This commit is contained in:
parent
20c6da50d4
commit
7ff4ea2160
15
doc/help.txt
15
doc/help.txt
@ -134,6 +134,21 @@ Please consult your security expert first.
|
|||||||
.
|
.
|
||||||
|
|
||||||
|
|
||||||
|
.gpg.keygen.flags
|
||||||
|
Toggle the capabilities of the key.
|
||||||
|
|
||||||
|
It is only possible to toggle those capabilities which are possible
|
||||||
|
for the selected algorithm.
|
||||||
|
|
||||||
|
To quickly set the capabilities all at once it is possible to enter a
|
||||||
|
'=' as first character followed by a list of letters indicating the
|
||||||
|
capability to set: 's' for signing, 'e' for encryption, and 'a' for
|
||||||
|
authentication. Invalid letters and impossible capabilities are
|
||||||
|
ignored. This submenu is immediately closed after using this
|
||||||
|
shortcut.
|
||||||
|
.
|
||||||
|
|
||||||
|
|
||||||
.gpg.keygen.size
|
.gpg.keygen.size
|
||||||
Enter the size of the key.
|
Enter the size of the key.
|
||||||
|
|
||||||
|
18
g10/keygen.c
18
g10/keygen.c
@ -1655,6 +1655,7 @@ ask_key_flags(int algo,int subkey)
|
|||||||
*/
|
*/
|
||||||
const char *togglers=_("SsEeAaQq");
|
const char *togglers=_("SsEeAaQq");
|
||||||
char *answer=NULL;
|
char *answer=NULL;
|
||||||
|
const char *s;
|
||||||
unsigned int current=0;
|
unsigned int current=0;
|
||||||
unsigned int possible=openpgp_pk_algo_usage(algo);
|
unsigned int possible=openpgp_pk_algo_usage(algo);
|
||||||
|
|
||||||
@ -1701,7 +1702,22 @@ ask_key_flags(int algo,int subkey)
|
|||||||
answer = cpr_get("keygen.flags",_("Your selection? "));
|
answer = cpr_get("keygen.flags",_("Your selection? "));
|
||||||
cpr_kill_prompt();
|
cpr_kill_prompt();
|
||||||
|
|
||||||
if(strlen(answer)>1)
|
if (*answer == '=')
|
||||||
|
{
|
||||||
|
/* Hack to allow direct entry of the capabilities. */
|
||||||
|
current = 0;
|
||||||
|
for (s=answer+1; *s; s++)
|
||||||
|
{
|
||||||
|
if ((*s == 's' || *s == 'S') && (possible&PUBKEY_USAGE_SIG))
|
||||||
|
current |= PUBKEY_USAGE_SIG;
|
||||||
|
else if ((*s == 'e' || *s == 'E') && (possible&PUBKEY_USAGE_ENC))
|
||||||
|
current |= PUBKEY_USAGE_ENC;
|
||||||
|
else if ((*s == 'a' || *s == 'A') && (possible&PUBKEY_USAGE_AUTH))
|
||||||
|
current |= PUBKEY_USAGE_AUTH;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (strlen(answer)>1)
|
||||||
tty_printf(_("Invalid selection.\n"));
|
tty_printf(_("Invalid selection.\n"));
|
||||||
else if(*answer=='\0' || *answer==togglers[6] || *answer==togglers[7])
|
else if(*answer=='\0' || *answer==togglers[6] || *answer==togglers[7])
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user