aboutsummaryrefslogtreecommitdiffstats
path: root/g10/pubkey-enc.c
diff options
context:
space:
mode:
Diffstat (limited to 'g10/pubkey-enc.c')
-rw-r--r--g10/pubkey-enc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/g10/pubkey-enc.c b/g10/pubkey-enc.c
index d31e3be33..d08cd7c12 100644
--- a/g10/pubkey-enc.c
+++ b/g10/pubkey-enc.c
@@ -46,6 +46,14 @@ is_algo_in_prefs ( KBNODE keyblock, preftype_t type, int algo )
KBNODE k;
for (k=keyblock; k; k=k->next) {
+ /* Fake IDEA preference for v3 keys with v3 selfsigs */
+ if (k->pkt->pkttype == PKT_PUBLIC_KEY &&
+ k->pkt->pkt.public_key->version < 4 &&
+ k->pkt->pkt.public_key->selfsigversion < 4 &&
+ type==PREFTYPE_SYM &&
+ algo==CIPHER_ALGO_IDEA)
+ return 1;
+
if (k->pkt->pkttype == PKT_USER_ID) {
PKT_user_id *uid = k->pkt->pkt.user_id;
prefitem_t *prefs = uid->prefs;