<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gpgme/doc, branch gpgme-2.1.0</title>
<subtitle>GnuPG Made Easy.</subtitle>
<id>http://git.bktus.com/gpgfrontend/gpgme/atom?h=gpgme-2.1.0</id>
<link rel='self' href='http://git.bktus.com/gpgfrontend/gpgme/atom?h=gpgme-2.1.0'/>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/'/>
<updated>2026-05-17T10:59:42Z</updated>
<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: Fix argument type of gpgme_set_sender</title>
<updated>2026-04-21T08:26:52Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2026-04-21T08:26:52Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=9d7093cb3375225ab04b851c4059cd39a29ca601'/>
<id>urn:sha1:9d7093cb3375225ab04b851c4059cd39a29ca601</id>
<content type='text'>
--
</content>
</entry>
<entry>
<title>Allow setting export filters when exporting keys</title>
<updated>2026-01-14T15:09:19Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2026-01-14T12:58:49Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=1823e06216f2e9eee302ae1233d635a4a92c03f6'/>
<id>urn:sha1:1823e06216f2e9eee302ae1233d635a4a92c03f6</id>
<content type='text'>
* src/context.h (struct gpgme_context): New field export_filter.
* src/engine-backend.h (struct engine_ops): Add arg export_filter to
field 'export' and field 'export_ext'.
* src/engine-gpg.c (export_common): Add arg export_filter and pass
option --export-filter with argument value to gpg.
(gpg_export, gpg_export_ext): Add arg export_filter and pass it to
export_common. Adjust all callers of the two functions.
* src/engine-gpgsm.c (gpgsm_export, gpgsm_export_ext): Add dummy arg
export_filter.
* src/gpgme.c (gpgme_release): Free 'export_filter'.
(gpgme_set_ctx_flag, gpgme_get_ctx_flag): New flag "export-filter".

* tests/run-export.c (main): Add option --export-filter.
--

This makes the --export-filter option available in the GPGME API for
key exports.

GnuPG-bug-id: 8033
</content>
</entry>
<entry>
<title>doc: Remove duplicate `is_cardkey` from `gpgme_subkey_t`.</title>
<updated>2025-11-13T15:20:17Z</updated>
<author>
<name>Chandler Davis</name>
<email>me@chandlerdavis.cc</email>
</author>
<published>2025-11-13T11:25:42Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=c8845523bfcb0ba91b781c121263330d6c009b86'/>
<id>urn:sha1:c8845523bfcb0ba91b781c121263330d6c009b86</id>
<content type='text'>
--
</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>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>Allow signing using an exactly specified subkey.</title>
<updated>2025-05-05T14:01:10Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2025-05-05T13:52:08Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=bfd320abfeaf0c7a16af3057279c77a45bfa961a'/>
<id>urn:sha1:bfd320abfeaf0c7a16af3057279c77a45bfa961a</id>
<content type='text'>
* src/engine-gpg.c (append_args_from_signers): Detect exactly
specified keys and apped the '!' suffix.
--

Due to the ABI break which removed long long deprecated functions we
can also risk to introduce a slight semantic change in the way signer
keys are specified.  The change is that iff a subkey-fingerprint with
the '!' suffix was used to lookup a signer's key we now use this
specific subkey and not any key gpg considers to be a good signing
subkey.  Most people would have considered the old behaviour anyway as
a bug because it differs from what gpg uses at the command line.

GnuPG-bug-id: 3325
Suggested-by: Benjamin Kibbey
</content>
</entry>
</feed>
