[git] GPGME - branch, master, updated. gpgme-1.11.1-128-g263dadb

by Andre Heinecke cvs at cvs.gnupg.org
Tue Aug 21 14:39:03 CEST 2018


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GnuPG Made Easy".

The branch, master has been updated
       via  263dadb04aed4f973248b32c52af6ca59bcb7c1f (commit)
      from  8103eeba809b6e7156d861783309574b93909169 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 263dadb04aed4f973248b32c52af6ca59bcb7c1f
Author: Andre Heinecke <aheinecke at intevation.de>
Date:   Tue Aug 21 14:36:42 2018 +0200

    json: Add proper decrypt_result_t handling
    
    * src/gpgme-json.c (recipient_to_json, decrypt_result_to_json):
    New.
    (op_decrypt, hlp_decrypt): Update.
    
    --
    The op_decrypt as one of the first operations did not yet
    match the current 1 <> 1 mapping of gpgme types to json
    dictonaries.
    
    info and dec_info are bad names but used for compatibility reasons.

diff --git a/src/gpgme-json.c b/src/gpgme-json.c
index 99c6652..d636ddb 100644
--- a/src/gpgme-json.c
+++ b/src/gpgme-json.c
@@ -1154,6 +1154,55 @@ verify_result_to_json (gpgme_verify_result_t verify_result)
   return result;
 }
 
+/* Create a recipient json object */
+static cjson_t
+recipient_to_json (gpgme_recipient_t recp)
+{
+  cjson_t result = xjson_CreateObject ();
+
+  xjson_AddStringToObject0 (result, "keyid", recp->keyid);
+  xjson_AddStringToObject0 (result, "pubkey_algo_name",
+                            gpgme_pubkey_algo_name (recp->pubkey_algo));
+  xjson_AddStringToObject0 (result, "status_string",
+                            gpgme_strerror (recp->status));
+
+  xjson_AddNumberToObject (result, "status_code", recp->status);
+
+  return result;
+}
+
+
+/* Create a JSON object from a gpgme_decrypt result */
+static cjson_t
+decrypt_result_to_json (gpgme_decrypt_result_t decrypt_result)
+{
+  cjson_t result = xjson_CreateObject ();
+
+  xjson_AddStringToObject0 (result, "file_name", decrypt_result->file_name);
+  xjson_AddStringToObject0 (result, "symkey_algo",
+                            decrypt_result->symkey_algo);
+
+  xjson_AddBoolToObject (result, "wrong_key_usage",
+                         decrypt_result->wrong_key_usage);
+  xjson_AddBoolToObject (result, "is_de_vs",
+                         decrypt_result->is_de_vs);
+  xjson_AddBoolToObject (result, "is_mime", decrypt_result->is_mime);
+  xjson_AddBoolToObject (result, "legacy_cipher_nomdc",
+                         decrypt_result->legacy_cipher_nomdc);
+
+  if (decrypt_result->recipients)
+    {
+      cjson_t array = xjson_CreateArray ();
+      gpgme_recipient_t recp;
+
+      for (recp = decrypt_result->recipients; recp; recp = recp->next)
+        cJSON_AddItemToArray (array, recipient_to_json (recp));
+      xjson_AddItemToObject (result, "recipients", array);
+    }
+
+  return result;
+}
+
 
 /* Create a JSON object from an engine_info */
 static cjson_t
@@ -1737,13 +1786,34 @@ static const char hlp_decrypt[] =
   "base64:        Input data is base64 encoded.\n"
   "\n"
   "Response on success:\n"
-  "type:   \"plaintext\"\n"
-  "data:   The decrypted data.  This may be base64 encoded.\n"
-  "base64: Boolean indicating whether data is base64 encoded.\n"
-  "mime:   A Boolean indicating whether the data is a MIME object.\n"
-  "info:   An object with verification information. (gpgme_verify_result_t)\n"
-  " file_name: Optional string of the plaintext file name.\n"
-  " is_mime:    Boolean that is true if the messages claims it is MIME.\n"
+  "type:     \"plaintext\"\n"
+  "data:     The decrypted data.  This may be base64 encoded.\n"
+  "base64:   Boolean indicating whether data is base64 encoded.\n"
+  "mime:     deprecated - use dec_info is_mime instead\n"
+  "dec_info: An object with decryption information. (gpgme_decrypt_result_t)\n"
+  " Boolean values:\n"
+  "  wrong_key_usage:     Key should not have been used for encryption.\n"
+  "  is_de_vs:            Message was encrypted in compliance to the de-vs\n"
+  "                       mode.\n"
+  "  is_mime:             Message claims that the content is a MIME Message.\n"
+  "  legacy_cipher_nomdc: The message was made by a legacy algorithm\n"
+  "                       without integrity protection.\n"
+  " String values:\n"
+  "  file_name:   The filename contained in the decrypt result.\n"
+  "  symkey_algo: A string with the symmetric encryption algorithm and\n"
+  "               mode using the format \"<algo>.<mode>\".\n"
+  " Array values:\n"
+  "  recipients:  The list of recipients (gpgme_recipient_t).\n"
+  "   String values:\n"
+  "    keyid:            The keyid of the recipient.\n"
+  "    pubkey_algo_name: gpgme_pubkey_algo_name of used algo.\n"
+  "    status_string:    The status code as localized gpg-error string\n"
+  "   Number values:\n"
+  "    status_code:      The status as a number. (gpg_error_t)\n"
+  "info:     Optional an object with verification information.\n"
+  "          (gpgme_verify_result_t)\n"
+  " file_name: The filename contained in the verify result.\n"
+  " is_mime:   The is_mime info contained in the verify result.\n"
   " signatures: Array of signatures\n"
   "  summary: Object containing summary information.\n"
   "   Boolean values: (Check gpgme_sigsum_t doc for meaning)\n"
@@ -1831,6 +1901,9 @@ op_decrypt (cjson_t request, cjson_t result)
   if (decrypt_result->is_mime)
     xjson_AddBoolToObject (result, "mime", 1);
 
+  xjson_AddItemToObject (result, "dec_info",
+                         decrypt_result_to_json (decrypt_result));
+
   verify_result = gpgme_op_verify_result (ctx);
   if (verify_result && verify_result->signatures)
     {

-----------------------------------------------------------------------

Summary of changes:
 src/gpgme-json.c | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 80 insertions(+), 7 deletions(-)


hooks/post-receive
-- 
GnuPG Made Easy
http://git.gnupg.org




More information about the Gnupg-commits mailing list