mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-03 22:56:33 +02:00
gpg: New option --default-new-key-adsk and "addadsk" for edit-key.
* g10/free-packet.c (copy_public_key): Factor some code out to ...
(copy_public_key_basics): new.
* keygen.c (keygen_add_key_flags_and_expire): Rewrite and make public.
* g10/keyedit.c (enum cmdids): Add cmdADDADSK.
(keyedit_menu): Add command "addadsk".
(menu_addadsk): New.
* g10/options.h (opt): Add field def_new_key_adsks.
* g10/gpg.c (oDefaultNewKeyADSK): New.
(opts): Add --default-new-key-adsk.
(main): Parse option.
* g10/keyedit.c (menu_addadsk): Factor some code out to ...
(append_adsk_to_key): new. Add compliance check.
* g10/keygen.c (pADSK): New.
(para_data_s): Add adsk to the union.
(release_parameter_list): Free the adsk.
(prepare_adsk): New.
(get_parameter_adsk): New.
(get_parameter_revkey): Remove unneeded arg key and change callers.
(proc_parameter_file): Prepare adsk parameter from the configured
fingerprints.
(do_generate_keypair): Create adsk.
--
GnuPG-bug-id: 6882
(cherry picked from commit ed118e2ed5
)
and modified to adjust to other code changes
This commit is contained in:
parent
7eb39815bd
commit
eafe175320
12 changed files with 495 additions and 55 deletions
13
g10/gpg.c
13
g10/gpg.c
|
@ -422,6 +422,7 @@ enum cmd_and_opt_values
|
|||
oTOFUDefaultPolicy,
|
||||
oTOFUDBFormat,
|
||||
oDefaultNewKeyAlgo,
|
||||
oDefaultNewKeyADSK,
|
||||
oWeakDigest,
|
||||
oUnwrap,
|
||||
oOnlySignTextIDs,
|
||||
|
@ -627,6 +628,7 @@ static ARGPARSE_OPTS opts[] = {
|
|||
ARGPARSE_s_n (oPGP7, "pgp7", "@"),
|
||||
ARGPARSE_s_n (oPGP8, "pgp8", "@"),
|
||||
ARGPARSE_s_s (oDefaultNewKeyAlgo, "default-new-key-algo", "@"),
|
||||
ARGPARSE_s_s (oDefaultNewKeyADSK, "default-new-key-adsk", "@"),
|
||||
ARGPARSE_p_u (oMinRSALength, "min-rsa-length", "@"),
|
||||
#ifndef NO_TRUST_MODELS
|
||||
ARGPARSE_s_n (oAlwaysTrust, "always-trust", "@"),
|
||||
|
@ -2309,6 +2311,7 @@ main (int argc, char **argv)
|
|||
const char *fname;
|
||||
char *username;
|
||||
int may_coredump;
|
||||
gpg_error_t tmperr;
|
||||
strlist_t sl;
|
||||
strlist_t remusr = NULL;
|
||||
strlist_t locusr = NULL;
|
||||
|
@ -3648,6 +3651,16 @@ main (int argc, char **argv)
|
|||
opt.def_new_key_algo = pargs.r.ret_str;
|
||||
break;
|
||||
|
||||
case oDefaultNewKeyADSK:
|
||||
if (!strcmp (pargs.r.ret_str, "clear"))
|
||||
FREE_STRLIST (opt.def_new_key_adsks);
|
||||
else if (!tokenize_to_strlist (&opt.def_new_key_adsks,
|
||||
pargs.r.ret_str, " \t,")
|
||||
&& (tmperr = gpg_err_code_from_syserror()) != GPG_ERR_ENOENT)
|
||||
log_info (_("error parsing value for option '%s': %s\n"),
|
||||
"--default-new-key-algo", gpg_strerror (tmperr));
|
||||
break;
|
||||
|
||||
case oUseOnlyOpenPGPCard:
|
||||
opt.flags.use_only_openpgp_card = 1;
|
||||
break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue