aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2023-06-09 14:16:56 +0000
committerWerner Koch <[email protected]>2023-06-09 14:16:56 +0000
commitc68dd22872375ab02223e2900ffa3bfe99e8b841 (patch)
treec3569c5544942ce07b95b36242ca50f3de90d9ec
parentdirmngr: Extend the AD_QUERY command. (diff)
downloadgnupg-c68dd22872375ab02223e2900ffa3bfe99e8b841.tar.gz
gnupg-c68dd22872375ab02223e2900ffa3bfe99e8b841.zip
gpg: Add --list-filter properties key_expires and key_expires_d.
* g10/import.c (impex_filter_getval): Support new filter properties. -- Here is how to list all subkeys expiring in the year 2061: gpg --list-keys --list-filter 'select= sub/key_expires_d -gt 2061-01-01 \ && sub/key_expires_d -lt 2061-12-31' To list all primary key expirations, use the "pub/" prefix and to list all expiration dates use no prefix. GnuPG-bug-id: 6509
-rw-r--r--doc/gpg.texi6
-rw-r--r--g10/import.c14
2 files changed, 20 insertions, 0 deletions
diff --git a/doc/gpg.texi b/doc/gpg.texi
index 6b584a913..61f047cc7 100644
--- a/doc/gpg.texi
+++ b/doc/gpg.texi
@@ -2671,6 +2671,12 @@ The available properties are:
created. The second is the same but given as an ISO string,
e.g. "2016-08-17". (drop-subkey)
+ @item key_expires
+ @itemx key_expires_d
+ The expiration time of a public key or subkey or 0 if it does not
+ expire. The second is the same but given as an ISO date string or
+ an empty string e.g. "2038-01-19".
+
@item fpr
The hexified fingerprint of the current subkey or primary key.
(drop-subkey)
diff --git a/g10/import.c b/g10/import.c
index 987fef3cd..d84a083cc 100644
--- a/g10/import.c
+++ b/g10/import.c
@@ -1564,6 +1564,20 @@ impex_filter_getval (void *cookie, const char *propname)
{
result = dateonlystr_from_pk (pk);
}
+ else if (!strcmp (propname, "key_expires"))
+ {
+ snprintf (numbuf, sizeof numbuf, "%lu", (ulong)pk->expiredate);
+ result = numbuf;
+ }
+ else if (!strcmp (propname, "key_expires_d"))
+ {
+ static char exdatestr[MK_DATESTR_SIZE];
+
+ if (pk->expiredate)
+ result = mk_datestr (exdatestr, sizeof exdatestr, pk->expiredate);
+ else
+ result = "";
+ }
else if (!strcmp (propname, "expired"))
{
result = pk->has_expired? "1":"0";