aboutsummaryrefslogtreecommitdiffstats
path: root/g10
diff options
context:
space:
mode:
Diffstat (limited to 'g10')
-rw-r--r--g10/gpg.c6
-rw-r--r--g10/keyedit.c9
-rw-r--r--g10/options.h2
3 files changed, 12 insertions, 5 deletions
diff --git a/g10/gpg.c b/g10/gpg.c
index c61f17188..a11ea12f9 100644
--- a/g10/gpg.c
+++ b/g10/gpg.c
@@ -435,6 +435,7 @@ enum cmd_and_opt_values
oIncludeKeyBlock,
oNoIncludeKeyBlock,
oChUid,
+ oForceSignKey,
oNoop
};
@@ -886,7 +887,7 @@ static gpgrt_opt_t opts[] = {
ARGPARSE_s_s (oPassphraseFile, "passphrase-file", "@"),
ARGPARSE_s_i (oPassphraseRepeat,"passphrase-repeat", "@"),
ARGPARSE_s_s (oPinentryMode, "pinentry-mode", "@"),
-
+ ARGPARSE_s_n (oForceSignKey, "force-sign-key", "@"),
ARGPARSE_header (NULL, N_("Other options")),
@@ -2778,6 +2779,9 @@ main (int argc, char **argv)
case oAnswerYes: opt.answer_yes = 1; break;
case oAnswerNo: opt.answer_no = 1; break;
+
+ case oForceSignKey: opt.flags.force_sign_key = 1; break;
+
case oKeyring: append_to_strlist( &nrings, pargs.r.ret_str); break;
case oPrimaryKeyring:
sl = append_to_strlist (&nrings, pargs.r.ret_str);
diff --git a/g10/keyedit.c b/g10/keyedit.c
index c8a127551..d07ec6526 100644
--- a/g10/keyedit.c
+++ b/g10/keyedit.c
@@ -751,10 +751,11 @@ sign_uids (ctrl_t ctrl, estream_t fp,
_("\"%s\" was already signed by key %s\n"),
user, keystr_from_pk (pk));
- if (opt.expert && !quick
- && cpr_get_answer_is_yes ("sign_uid.dupe_okay",
- _("Do you want to sign it "
- "again anyway? (y/N) ")))
+ if (opt.flags.force_sign_key
+ || (opt.expert && !quick
+ && cpr_get_answer_is_yes ("sign_uid.dupe_okay",
+ _("Do you want to sign it "
+ "again anyway? (y/N) "))))
{
/* Don't delete the old sig here since this is
an --expert thing. */
diff --git a/g10/options.h b/g10/options.h
index 61118314e..f502ace61 100644
--- a/g10/options.h
+++ b/g10/options.h
@@ -252,6 +252,8 @@ struct
* another card. */
unsigned int use_only_openpgp_card:1;
unsigned int full_timestrings:1;
+ /* Force signing keys even if a key signature already exists. */
+ unsigned int force_sign_key:1;
} flags;
/* Linked list of ways to find a key if the key isn't on the local