<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gpgme/src/gpgme.h.in, branch gpgme-2.1.1</title>
<subtitle>GnuPG Made Easy.</subtitle>
<id>http://git.bktus.com/gpgfrontend/gpgme/atom?h=gpgme-2.1.1</id>
<link rel='self' href='http://git.bktus.com/gpgfrontend/gpgme/atom?h=gpgme-2.1.1'/>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/'/>
<updated>2026-06-25T14:04:19Z</updated>
<entry>
<title>Release 2.1.1</title>
<updated>2026-06-25T14:04:19Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2026-06-25T13:57:59Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=c68741376b5561f6a9885819c55922cd189a5172'/>
<id>urn:sha1:c68741376b5561f6a9885819c55922cd189a5172</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Support setting attributes for CMS signatures.</title>
<updated>2026-05-17T10:59:42Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2026-05-17T10:59:42Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=8081d34e5f620a614f58617700f9b473392e6478'/>
<id>urn:sha1:8081d34e5f620a614f58617700f9b473392e6478</id>
<content type='text'>
* src/gpgme.h.in (GPGME_SIG_NOTATION_UNPROTECTED): New.
(struct _gpgme_sig_notation): Add field 'unprotected'.
* src/sig-notation.c (sig_notation_set_flags): Set flag.
* src/engine-gpgsm.c (gpgsm_sign): Implement setting of notations.

* tests/run-support.h: Add conversion macros.
* tests/run-sign.c (struct mystringlist_s): New.
(xmalloc): New.
(xstrtokenize): New.
(print_result): Add arg fp and adjust callers.
(main): Add options --binary and --notation.
</content>
</entry>
<entry>
<title>New decryption flag GPGME_DECRYPT_SESSION_HASH.</title>
<updated>2026-04-23T12:29:53Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2026-04-23T12:29:53Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=63f18298d3f5c5f7551301b1e183890c503c644a'/>
<id>urn:sha1:63f18298d3f5c5f7551301b1e183890c503c644a</id>
<content type='text'>
* 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.
</content>
</entry>
<entry>
<title>Add flag fields is_de_vs and beta_compliance to encryption results</title>
<updated>2026-04-21T10:29:16Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2026-04-21T08:46:17Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=2100e1fbdfeb9ecda00787032a8256938a113dde'/>
<id>urn:sha1:2100e1fbdfeb9ecda00787032a8256938a113dde</id>
<content type='text'>
* src/encrypt.c (_gpgme_encrypt_status_handler): Handle the compliance
status line.
* src/gpgme.h.in (struct _gpgme_op_encrypt_result): Add fields is_de_vs
and beta_compliance.
(gpgme_status_code_t): Add status code for the encryption compliance
status line.
* src/status-table.c (status_table): Add encryption compliance status
line.

* tests/run-encrypt.c (print_encrypt_result): Print compliance.
--

This allows checking whether the encrypt operation is in compliance with
the VS-NfD criteria.

GnuPG-bug-id: 6702
</content>
</entry>
<entry>
<title>doc: Clarify that keygrip lists multiple keygrips for combined algos</title>
<updated>2025-10-29T08:22:34Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2025-10-29T08:22:34Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=2360b937cf8f9bc52655e45dccd1885dd4c7ac32'/>
<id>urn:sha1:2360b937cf8f9bc52655e45dccd1885dd4c7ac32</id>
<content type='text'>
* doc/gpgme.texi (section Data type gpgme_subkey_t): Amend documentation
of keygrip member.
* src/gpgme.h.in (_gpgme_subkey): Ditto.
--

GnuPG-bug-id: 7883
</content>
</entry>
<entry>
<title>Make it easier to maintain gpgme.h by using forward declarations.</title>
<updated>2025-07-18T13:28:51Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2025-07-18T13:28:51Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=6a1f72b4702488f5ee4e14ef308876349ac8a005'/>
<id>urn:sha1:6a1f72b4702488f5ee4e14ef308876349ac8a005</id>
<content type='text'>
* src/gpgme.h.in: Use forward declarations for the key objects.
--

We may need to have one forward declaration anyway.  Use them now for
all objects so that the order of definitions doesn't matter and we can
avoid huge diffs due to re-arranging the layout of the header.
</content>
</entry>
<entry>
<title>Add GPGME_CREATE_GROUP flag for gpgme_op_createkey and _createsubkey.</title>
<updated>2025-05-12T12:42:57Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2025-05-12T12:42:57Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=905bd760a99a455af6717b66311fc2197dea1055'/>
<id>urn:sha1:905bd760a99a455af6717b66311fc2197dea1055</id>
<content type='text'>
* src/gpgme.h.in (GPGME_CREATE_GROUP): New.
* src/engine-gpg.c (gpg_add_algo_usage_expire): Pass to engine.
* tests/run-genkey.c (parse_usage_string): Support here too.
</content>
</entry>
<entry>
<title>Change timestamp fields from signed to unsigned long.</title>
<updated>2025-05-05T14:27:34Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2025-05-05T14:27:34Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=f2d40473b522e348d96a70c089d2191d0b978098'/>
<id>urn:sha1:f2d40473b522e348d96a70c089d2191d0b978098</id>
<content type='text'>
* src/gpgme.h.in (struct _gpgme_subkey): Chnage timestamp and expires.
(struct _gpgme_key_sig): Ditto.
(struct _gpgme_new_signature): Ditto.
--

Note that unsigned long has always been used for gpgme_signature_t.
A change to time_t would be a real ABI change and require may users of
gpgme to adjust their code.  The signed/unsigned change is sufficient
and mostly invisible.
</content>
</entry>
<entry>
<title>Mark the subkey used to find a key.</title>
<updated>2025-05-05T13:03:01Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2025-05-05T13:02:52Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=87d6da1188db3c7df899821e4c0d895c61504522'/>
<id>urn:sha1:87d6da1188db3c7df899821e4c0d895c61504522</id>
<content type='text'>
* src/gpgme.h.in (struct _gpgme_subkey): New flag subkey_match.
* src/keylist.c (spacep): New.
(op_data_t): Add field requested_subkey.
(release_op_data): Free it.
(exact_match_pattern): New.
(maybe_setup_for_requested_subkey): New.
(gpgme_op_keylist_start): Call it here.
(gpgme_op_keylist_ext_start): Call it for each pattern until one
found.
(gpgme_op_keylist_next): Set the subkey_match field.
---

This is needed for
GnuPG-bug-id: 3325
</content>
</entry>
<entry>
<title>New decrypt flags GPGME_DECRYPT_LISTONLY.</title>
<updated>2025-03-18T15:22:58Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2025-03-18T15:22:58Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=91a59d2a35540769c055da2341b5face0be6c286'/>
<id>urn:sha1:91a59d2a35540769c055da2341b5face0be6c286</id>
<content type='text'>
* src/gpgme.h.in (GPGME_DECRYPT_LISTONLY): New.
* src/decrypt.c (op_data_t): Add member list_only.
(_gpgme_decrypt_status_handler): Do not return NO_DATA in list_only
mode.
(_gpgme_op_decrypt_init_result): Add arg flags and set the list_only
flag.
(_gpgme_decrypt_start): Pss flags to the init function.
* src/decrypt-verify.c (decrypt_verify_start): Ditto.
* src/engine-gpg.c (gpg_decrypt): Add --list-only if flag is set.

* tests/run-decrypt.c (main): Add option --list-only.
</content>
</entry>
</feed>
