mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-03 22:56:33 +02:00
gpg: New option --default-new-key-algo.
* common/openpgp-oid.c (openpgp_is_curve_supported): Add optional arg R_ALGO and change all callers. * common/util.h (GPG_ERR_UNKNOWN_FLAG): New error code. * g10/options.h (struct opt): Add field DEF_NEW_KEY_ALGO. * g10/gpg.c (oDefaultNewKeyAlgo): New enum. (opts): New option "--default-new-key-algo". (main): Set the option. * g10/keygen.c: Remove DEFAULT_STD_ FUTURE_STD_ constants and replace them by ... (DEFAULT_STD_KEY_PARAM, FUTURE_STD_KEY_PARAM): new string constants. (get_keysize_range): Remove arg R_DEF and return that value instead. Change all callers. (gen_rsa): Use get_keysize_range instead of the removed DEFAULT_STD_KEYSIZE. (parse_key_parameter_part): New function. (parse_key_parameter_string): New function. (quick_generate_keypair): Refactor using parse_key_parameter_string. (generate_keypair): Ditto. (parse_algo_usage_expire): Ditto. -- This new option is intended to be used in the forthcoming --set-profile command of gpgconf. It allows to provide a gpg configuration with custom defaults for a new key using the simple commands which use the default algorithm set. Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
cd532bb7b8
commit
ce29272e24
9 changed files with 424 additions and 138 deletions
|
@ -411,17 +411,21 @@ openpgp_enum_curves (int *iterp)
|
|||
}
|
||||
|
||||
|
||||
/* Return the Libgcrypt name for for the gpg curve NAME if supported.
|
||||
* If R_ALGO is not NULL the required OpenPGP public key algo or 0 is
|
||||
* stored at that address. NULL is returned if the curev is not
|
||||
* supported. */
|
||||
/* Return the Libgcrypt name for the gpg curve NAME if supported. If
|
||||
* R_ALGO is not NULL the required OpenPGP public key algo or 0 is
|
||||
* stored at that address. If R_NBITS is not NULL the nominal bitsize
|
||||
* of the curves is stored there. NULL is returned if the curve is
|
||||
* not supported. */
|
||||
const char *
|
||||
openpgp_is_curve_supported (const char *name, int *r_algo)
|
||||
openpgp_is_curve_supported (const char *name, int *r_algo,
|
||||
unsigned int *r_nbits)
|
||||
{
|
||||
int idx;
|
||||
|
||||
if (r_algo)
|
||||
*r_algo = 0;
|
||||
if (r_nbits)
|
||||
*r_nbits = 0;
|
||||
for (idx = 0; idx < DIM (oidtable) && oidtable[idx].name; idx++)
|
||||
{
|
||||
if ((!strcmp (name, oidtable[idx].name)
|
||||
|
@ -430,6 +434,8 @@ openpgp_is_curve_supported (const char *name, int *r_algo)
|
|||
{
|
||||
if (r_algo)
|
||||
*r_algo = oidtable[idx].pubkey_algo;
|
||||
if (r_nbits)
|
||||
*r_nbits = oidtable[idx].nbits;
|
||||
return oidtable[idx].name;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue