aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine-gpg.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2026-04-23 14:29:53 +0200
committerWerner Koch <[email protected]>2026-04-23 14:29:53 +0200
commit63f18298d3f5c5f7551301b1e183890c503c644a (patch)
tree6f66b01d41bc7679272ac673e551cfef10d7357c /src/engine-gpg.c
parentindent: Align a debug output. (diff)
downloadgpgme-63f18298d3f5c5f7551301b1e183890c503c644a.tar.gz
gpgme-63f18298d3f5c5f7551301b1e183890c503c644a.zip
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.
Diffstat (limited to 'src/engine-gpg.c')
-rw-r--r--src/engine-gpg.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/engine-gpg.c b/src/engine-gpg.c
index b43740bd..8c4e38bf 100644
--- a/src/engine-gpg.c
+++ b/src/engine-gpg.c
@@ -1974,9 +1974,17 @@ gpg_decrypt (void *engine,
err = add_arg (gpg, "--unwrap");
}
- if (!err && (flags & GPGME_DECRYPT_LISTONLY))
+ if (!err && (flags & GPGME_DECRYPT_LISTONLY)
+ && !(flags & GPGME_DECRYPT_SESSION_HASH))
err = add_arg (gpg, "--list-only");
+ if (!err && (flags & GPGME_DECRYPT_SESSION_HASH)
+ && have_gpg_version (gpg, "2.5.19"))
+ err = add_arg (gpg,
+ (flags & GPGME_DECRYPT_LISTONLY)? "--show-only-session-hash"
+ /* */ : "--show-session-hash");
+
+
if (!err && export_session_key)
err = add_gpg_arg (gpg, "--show-session-key");