diff options
author | Daniel Kahn Gillmor <[email protected]> | 2018-06-12 04:41:59 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2018-06-12 06:19:19 +0000 |
commit | 2ddfb5bef920919443309ece9fa2930282bbce85 (patch) | |
tree | 37566c24d63909a8032718a8dd918713e5912ea3 | |
parent | doc: Include release info from 2.2.8 (diff) | |
download | gnupg-2ddfb5bef920919443309ece9fa2930282bbce85.tar.gz gnupg-2ddfb5bef920919443309ece9fa2930282bbce85.zip |
gpg: Add new usage option for drop-subkey filters.
* g10/import.c (impex_filter_getval): Add new "usage" property for
drop-subkey filter.
--
For example, this permits extraction of only encryption-capable
subkeys like so:
gpg --export-filter 'drop-subkey=usage !~ e' --export $FPR
GnuPG-Bug-id: 4019
Signed-off-by: Daniel Kahn Gillmor <[email protected]>
-rw-r--r-- | doc/gpg.texi | 5 | ||||
-rw-r--r-- | g10/import.c | 10 |
2 files changed, 15 insertions, 0 deletions
diff --git a/doc/gpg.texi b/doc/gpg.texi index 5f114c519..4cfd00079 100644 --- a/doc/gpg.texi +++ b/doc/gpg.texi @@ -2428,6 +2428,11 @@ The available properties are: Boolean indicating whether a key or subkey is a secret one. (drop-subkey) + @item usage + A string indicating the usage flags for the subkey, from the + sequence ``ecsa?''. For example, a subkey capable of just signing + and authentication would be an exact match for ``sa''. (drop-subkey) + @item sig_created @itemx sig_created_d The first is the timestamp a signature packet was created. The diff --git a/g10/import.c b/g10/import.c index 1a98e2aa1..28039977b 100644 --- a/g10/import.c +++ b/g10/import.c @@ -1314,6 +1314,16 @@ impex_filter_getval (void *cookie, const char *propname) { result = pk_is_disabled (pk)? "1":"0"; } + else if (!strcmp (propname, "usage")) + { + snprintf (numbuf, sizeof numbuf, "%s%s%s%s%s", + (pk->pubkey_usage & PUBKEY_USAGE_ENC)?"e":"", + (pk->pubkey_usage & PUBKEY_USAGE_SIG)?"s":"", + (pk->pubkey_usage & PUBKEY_USAGE_CERT)?"c":"", + (pk->pubkey_usage & PUBKEY_USAGE_AUTH)?"a":"", + (pk->pubkey_usage & PUBKEY_USAGE_UNKNOWN)?"?":""); + result = numbuf; + } else result = NULL; } |