diff options
author | Werner Koch <[email protected]> | 2024-06-03 16:52:06 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2024-06-03 16:52:06 +0000 |
commit | ed118e2ed521d82c1be7765a0a19d5b4f19afe10 (patch) | |
tree | 61c2a3b3cdff0907f6b1546a6b74ba5f1bcf660d /g10/gpg.c | |
parent | common: New function tokenize_to_strlist. (diff) | |
download | gnupg-ed118e2ed521d82c1be7765a0a19d5b4f19afe10.tar.gz gnupg-ed118e2ed521d82c1be7765a0a19d5b4f19afe10.zip |
gpg: New option --default-new-key-adsk.
* 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
Diffstat (limited to 'g10/gpg.c')
-rw-r--r-- | g10/gpg.c | 16 |
1 files changed, 14 insertions, 2 deletions
@@ -435,6 +435,7 @@ enum cmd_and_opt_values oTOFUDefaultPolicy, oTOFUDBFormat, oDefaultNewKeyAlgo, + oDefaultNewKeyADSK, oWeakDigest, oUnwrap, oOnlySignTextIDs, @@ -650,6 +651,7 @@ static gpgrt_opt_t 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", "@"), @@ -2372,6 +2374,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; @@ -3778,6 +3781,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; @@ -4291,8 +4304,7 @@ main (int argc, char **argv) && (ALWAYS_ADD_KEYRINGS || (cmd != aDeArmor && cmd != aEnArmor && cmd != aGPGConfTest))) { - gpg_error_t tmperr = 0; - + tmperr = 0; if (!nrings || default_keyring > 0) /* Add default ring. */ tmperr = keydb_add_resource ("pubring" EXTSEP_S GPGEXT_GPG, KEYDB_RESOURCE_FLAG_DEFAULT); |