Commit 9f8e5704 authored by Thomas Roessler's avatar Thomas Roessler

Add the pgp_ignore_subkeys option. Unset it to get the traditional

listing with all the subkeys.  (Experimental, may introduce new bugs.)
parent ad088ee2
......@@ -153,7 +153,7 @@ static pgp_key_t *parse_pub_line (char *buf, int *is_subkey, pgp_key_t *k)
else
return NULL;
if (!is_uid)
if (!(is_uid || (*is_subkey && option (OPTPGPIGNORESUB))))
k = safe_calloc (sizeof (pgp_key_t), 1);
break;
......@@ -194,6 +194,7 @@ static pgp_key_t *parse_pub_line (char *buf, int *is_subkey, pgp_key_t *k)
dprint (2, (debugfile, "key len: %s\n", p));
if (!(*is_subkey && option (OPTPGPIGNORESUB)))
k->keylen = atoi (p); /* fixme: add validation checks */
break;
}
......@@ -202,8 +203,12 @@ static pgp_key_t *parse_pub_line (char *buf, int *is_subkey, pgp_key_t *k)
dprint (2, (debugfile, "pubkey algorithm: %s\n", p));
if (!(*is_subkey && option (OPTPGPIGNORESUB)))
{
k->numalg = atoi (p);
k->algorithm = pgp_pkalgbytype (atoi (p));
}
k->flags |= pgp_get_abilities (atoi (p));
break;
}
......@@ -212,7 +217,7 @@ static pgp_key_t *parse_pub_line (char *buf, int *is_subkey, pgp_key_t *k)
dprint (2, (debugfile, "key id: %s\n", p));
/* We really should do a check here */
k->keyid = safe_strdup (p);
mutt_str_replace (&k->keyid, p);
break;
}
......@@ -333,7 +338,6 @@ pgp_key_t *pgp_get_candidates (pgp_ring_t keyring, LIST * hints)
mutt_wait_filter (thepid);
close (devnull);
return db;
}
......@@ -1067,6 +1067,13 @@ struct option_t MuttVars[] = {
** \fIpgp-menu\fP, when encryption is not required or signing is
** requested as well.
*/
{ "pgp_ignore_subkeys", DT_BOOL, R_NONE, OPTPGPIGNORESUB, 1},
/*
** .pp
** Setting this variable will cause Mutt to ignore OpenPGP subkeys. Instead,
** the principal key will inherit the subkeys' capabilities. Unset this
** if you want to play interesting key selection games.
*/
{ "pgp_entry_format", DT_STR, R_NONE, UL &PgpEntryFormat, UL "%4n %t%f %4l/0x%k %-4a %2c %u" },
/*
** .pp
......
......@@ -375,6 +375,7 @@ enum
#ifdef HAVE_PGP
OPTPGPAUTOSIGN,
OPTPGPAUTOENCRYPT,
OPTPGPIGNORESUB,
OPTPGPLONGIDS,
OPTPGPREPLYENCRYPT,
OPTPGPREPLYSIGN,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment