diff options
author | Ingo Klöcker <[email protected]> | 2024-05-15 08:39:26 +0000 |
---|---|---|
committer | Ingo Klöcker <[email protected]> | 2024-05-21 14:38:59 +0000 |
commit | f2575b6313aeb23d867682856f7842704786349e (patch) | |
tree | 86ea028b3f2380cc8fd2c1a0cfe4d7fe4037b970 /src | |
parent | core: Add information about revocation keys to keys (diff) | |
download | gpgme-f2575b6313aeb23d867682856f7842704786349e.tar.gz gpgme-f2575b6313aeb23d867682856f7842704786349e.zip |
json: Add information about revocation keys to key list result
* src/gpgme-json.c (revocation_key_to_json): New.
(key_to_json): Add list of revocation keys.
* tests/json/Makefile.am (pubring-stamp): Import new pub key.
* tests/json/key-with-revokers.asc: New.
* tests/json/t-json.c (tests): Add "t-keylist-revokers".
* tests/json/t-keylist-revokers.in.json,
tests/json/t-keylist-revokers.in.json: New.
--
GnuPG-bug-id: 7118
Diffstat (limited to 'src')
-rw-r--r-- | src/gpgme-json.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/gpgme-json.c b/src/gpgme-json.c index 3d18eee2..c88973a8 100644 --- a/src/gpgme-json.c +++ b/src/gpgme-json.c @@ -1024,6 +1024,24 @@ subkey_to_json (gpgme_subkey_t sub) return result; } +/* Create a revocation key json object */ +static cjson_t +revocation_key_to_json (gpgme_revocation_key_t revkey) +{ + cjson_t result = xjson_CreateObject (); + + xjson_AddBoolToObject (result, "sensitive", revkey->sensitive); + + xjson_AddStringToObject0 (result, "fingerprint", revkey->fpr); + xjson_AddStringToObject0 (result, "pubkey_algo_name", + gpgme_pubkey_algo_name (revkey->pubkey_algo)); + + xjson_AddNumberToObject (result, "pubkey_algo", revkey->pubkey_algo); + xjson_AddNumberToObject (result, "key_class", revkey->key_class); + + return result; +} + /* Create a key json object */ static cjson_t key_to_json (gpgme_key_t key) @@ -1075,6 +1093,16 @@ key_to_json (gpgme_key_t key) xjson_AddItemToObject (result, "userids", uid_array); } + /* Revocation keys */ + if (key->revocation_keys) + { + gpgme_revocation_key_t revkey; + cjson_t array = xjson_CreateArray (); + for (revkey = key->revocation_keys; revkey; revkey = revkey->next) + cJSON_AddItemToArray (array, revocation_key_to_json (revkey)); + xjson_AddItemToObject (result, "revocation_keys", array); + } + return result; } |