From 63f18298d3f5c5f7551301b1e183890c503c644a Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Thu, 23 Apr 2026 14:29:53 +0200 Subject: New decryption flag GPGME_DECRYPT_SESSION_HASH. * src/gpgme.h.in (_gpgme_op_decrypt_result): Add field session_hash. (gpgme_decrypt_flags_t): Add flag GPGME_DECRYPT_SESSION_HASH. (gpgme_status_code_t): Add flags GPGME_STATUS_SESSION_HASH. * src/status-table.c (status_table): Add "SESSION_HASH". * src/decrypt.c (release_op_data): Free new field. (_gpgme_decrypt_status_handler): Handle new status code. * src/engine-gpg.c (gpg_decrypt): Implement GPGME_DECRYPT_SESSION_HASH. * tests/run-decrypt.c (print_result): Print session_hash. (main): Add option --show-session-hash. --- src/decrypt.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/decrypt.c') diff --git a/src/decrypt.c b/src/decrypt.c index c6030eef..2fea1e0d 100644 --- a/src/decrypt.c +++ b/src/decrypt.c @@ -89,6 +89,7 @@ release_op_data (void *hook) free (opd->result.unsupported_algorithm); free (opd->result.file_name); free (opd->result.session_key); + free (opd->result.session_hash); free (opd->result.symkey_algo); while (recipient) @@ -480,6 +481,12 @@ _gpgme_decrypt_status_handler (void *priv, gpgme_status_code_t code, opd->result.session_key = strdup(args); break; + case GPGME_STATUS_SESSION_HASH: + if (opd->result.session_hash) + free (opd->result.session_hash); + opd->result.session_hash = strdup (args); + break; + case GPGME_STATUS_NO_SECKEY: { gpgme_recipient_t rec = opd->result.recipients; -- cgit