aboutsummaryrefslogtreecommitdiffstats
path: root/g10
diff options
context:
space:
mode:
Diffstat (limited to 'g10')
-rw-r--r--g10/ChangeLog5
-rw-r--r--g10/g10.c3
-rw-r--r--g10/options.h1
-rw-r--r--g10/pubkey-enc.c2
4 files changed, 10 insertions, 1 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog
index c383e9029..95c4f146c 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,3 +1,8 @@
+Tue Aug 1 20:06:23 CEST 2000 Werner Koch <[email protected]>
+
+ * g10.c: New opttion --try-all-secrets on suggestion from Matthias Urlichs.
+ * pubkey-enc.c (get_session_key): Quite easy to implement here.
+
Thu Jul 27 17:33:04 CEST 2000 Werner Koch <[email protected]>
* g10.c: New option --merge-only. Suggested by Brendan O'Dea.
diff --git a/g10/g10.c b/g10/g10.c
index 65b48f426..49bd67ffc 100644
--- a/g10/g10.c
+++ b/g10/g10.c
@@ -193,6 +193,7 @@ enum cmd_and_opt_values { aNull = 0,
oNoRandomSeedFile,
oNoAutoKeyRetrieve,
oMergeOnly,
+ oTryAllSecrets,
oEmu3DESS2KBug, /* will be removed in 1.1 */
oEmuMDEncodeBug,
aTest };
@@ -378,6 +379,7 @@ static ARGPARSE_OPTS opts[] = {
{ oNoRandomSeedFile, "no-random-seed-file", 0, "@" },
{ oNoAutoKeyRetrieve, "no-auto-key-retrieve", 0, "@" },
{ oMergeOnly, "merge-only", 0, "@" },
+ { oTryAllSecrets, "try-all-secrets", 0, "@" },
{ oEmu3DESS2KBug, "emulate-3des-s2k-bug", 0, "@"},
{ oEmuMDEncodeBug, "emulate-md-encode-bug", 0, "@"},
{0} };
@@ -931,6 +933,7 @@ main( int argc, char **argv )
opt.override_session_key = pargs.r.ret_str;
break;
case oMergeOnly: opt.merge_only = 1; break;
+ case oTryAllSecrets: opt.try_all_secrets = 1; break;
default : pargs.err = configfp? 1:2; break;
}
diff --git a/g10/options.h b/g10/options.h
index 265c50c61..95881092a 100644
--- a/g10/options.h
+++ b/g10/options.h
@@ -94,6 +94,7 @@ struct {
const char *override_session_key;
int show_session_key;
int merge_only;
+ int try_all_secrets;
} opt;
diff --git a/g10/pubkey-enc.c b/g10/pubkey-enc.c
index b1a9c8ec4..97c73bbc7 100644
--- a/g10/pubkey-enc.c
+++ b/g10/pubkey-enc.c
@@ -54,7 +54,7 @@ get_session_key( PKT_pubkey_enc *k, DEK *dek )
if( rc )
goto leave;
- if( k->keyid[0] || k->keyid[1] ) {
+ if( (k->keyid[0] || k->keyid[1]) && !opt.try_all_secrets ) {
sk = m_alloc_clear( sizeof *sk );
sk->pubkey_algo = k->pubkey_algo; /* we want a pubkey with this algo*/
if( !(rc = get_seckey( sk, k->keyid )) )