<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gpgme/src/gpgme.h.in, branch gpgme-2.2.0</title>
<subtitle>GnuPG Made Easy.</subtitle>
<id>http://git.bktus.com/gpgfrontend/gpgme/atom?h=gpgme-2.2.0</id>
<link rel='self' href='http://git.bktus.com/gpgfrontend/gpgme/atom?h=gpgme-2.2.0'/>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/'/>
<updated>2026-08-03T13:55:35Z</updated>
<entry>
<title>Provide serial number and issuer of unknown S/MIME signing certificates</title>
<updated>2026-08-03T13:55:35Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2026-08-03T13:55:35Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=7ba3ef8e40518ec109b6e0551ac3cc076c95b53f'/>
<id>urn:sha1:7ba3ef8e40518ec109b6e0551ac3cc076c95b53f</id>
<content type='text'>
* src/gpgme.h.in (_gpgme_signature): Add fields issuer_serial and
issuer_name.
* src/verify.c (release_op_data): Free new fields.
(parse_no_pubkey): New.
(_gpgme_verify_status_handler): Handle NO_PUBKEY status code.

* tests/run-verify.c (print_result): Print issuer_serial and
issuer_name.
--

GnuPG-bug-id: 8369
</content>
</entry>
<entry>
<title>Handle new SIGINFO status line</title>
<updated>2026-07-30T13:35:44Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2026-07-30T13:35:44Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=31eb884e8f102ed3cf1220ccdd77e6e1931a9a7b'/>
<id>urn:sha1:31eb884e8f102ed3cf1220ccdd77e6e1931a9a7b</id>
<content type='text'>
* src/gpgme.h.in (gpgme_status_code_t): Add status code for SIGINFO.
* src/status-table.c (status_table): Add "SIGINFO".
* src/verify.c (parse_sig_info): New.
(_gpgme_verify_status_handler): Handle SIGINFO status line.
--

GnuPG-bug-id: 8368
</content>
</entry>
<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>
</feed>
