<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gpgme/src/engine-gpgsm.c, 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-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>w32: Add cast for assuan_fd_t.</title>
<updated>2026-05-14T02:49:20Z</updated>
<author>
<name>NIIBE Yutaka</name>
<email>gniibe@fsij.org</email>
</author>
<published>2026-05-14T02:49:20Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=11eaae97fa79bfcbced89a8fbf76092eb35dfa4f'/>
<id>urn:sha1:11eaae97fa79bfcbced89a8fbf76092eb35dfa4f</id>
<content type='text'>
* src/assuan-support.c (my_pipe, my_close, my_read, my_write, my_spawn)
(my_socketpair, my_connect): Cast assuan_fd_t between int.
* src/engine-assuan.c (start): Likewise.
* src/engine-g13.c (start): Likewise.
* src/engine-gpgsm.c (gpgsm_new, prepare): Likewise.

--

Signed-off-by: NIIBE Yutaka &lt;gniibe@fsij.org&gt;
</content>
</entry>
<entry>
<title>gpgsm: Read all pending lines before waiting for more data</title>
<updated>2026-03-24T14:56:39Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2026-03-24T14:56:39Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=775e1eb923fa0f2f66363d5329acfebc13c864b3'/>
<id>urn:sha1:775e1eb923fa0f2f66363d5329acfebc13c864b3</id>
<content type='text'>
* src/engine-gpgsm.c (gpgsm_assuan_simple_command): Add a loop to read
all pending lines.
--

This fixes the problem that gpgme waited indefinitely for the completion
of the "simple command" if the reply consisted of more than one line.
For example, if an invalid recipient is sent to gpgsm then gpgsm
replies something like
  S INV_RECP 10 798413A50E4C66292914361E8358AC45668F412A&lt;LF&gt;
  ERR 50331746 Not trusted &lt;GpgSM&gt;&lt;LF&gt;
gpgsm_assuan_simple_command read the first line and then waited forever
for more data sent by gpgsm.

GnuPG-bug-id: 8187
</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>Treat empty DISPLAY envvar as unset.</title>
<updated>2025-11-14T12:20:52Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2025-11-14T12:20:52Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=94fa3c2b25a1979bb838c7d9f9f74375072f4efe'/>
<id>urn:sha1:94fa3c2b25a1979bb838c7d9f9f74375072f4efe</id>
<content type='text'>
* src/engine-gpg.c (gpg_new): Do not pass option --display if DISPLAY
is set to the empty string.
* src/engine-gpgsm.c (gpgsm_new): Likewiese for sending the display
option.
* src/engine-g13.c (g13_new): Ditto.
* src/engine-assuan.c (llass_new): Ditto.
* src/engine-uiserver.c (uiserver_new): Ditto.
--

GnuPG-bug-id: 7919
</content>
</entry>
<entry>
<title>Improve tracing for engine-gpgsm</title>
<updated>2025-10-27T13:23:01Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2025-10-27T13:21:49Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=eba8776a3f590d964430e515a030145236c0da33'/>
<id>urn:sha1:eba8776a3f590d964430e515a030145236c0da33</id>
<content type='text'>
* src/engine-gpgsm.c (gpgsm_assuan_simple_command): More tracing
calls.
</content>
</entry>
<entry>
<title>gpgsm: Extend gpgsm_assuan_simple_command to consule diag output.</title>
<updated>2025-08-29T05:49:42Z</updated>
<author>
<name>NIIBE Yutaka</name>
<email>gniibe@fsij.org</email>
</author>
<published>2025-08-29T05:49:42Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=cff9df67d34fa21fc8f3ba47300e1671c4526629'/>
<id>urn:sha1:cff9df67d34fa21fc8f3ba47300e1671c4526629</id>
<content type='text'>
* src/engine-gpgsm.c (gpgsm_assuan_simple_command): Take care about
diag output.

--

GnuPG-bug-id: 7759
Signed-off-by: NIIBE Yutaka &lt;gniibe@fsij.org&gt;
</content>
</entry>
<entry>
<title>gpgsm: Introduce two phase interactions to consume diag output.</title>
<updated>2025-08-29T00:28:06Z</updated>
<author>
<name>NIIBE Yutaka</name>
<email>gniibe@fsij.org</email>
</author>
<published>2025-08-29T00:28:06Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=52bde50b879c2b9318c87eb9f377bed6557366e2'/>
<id>urn:sha1:52bde50b879c2b9318c87eb9f377bed6557366e2</id>
<content type='text'>
* src/engine-gpgsm.c (prepare): Move the first part from...
(start): ... here.
(gpgsm_decrypt, gpgsm_delete, gpgsm_encrypt)
(gpgsm_export, gpgsm_export_ext, gpgsm_genkey)
(gpgsm_import, gpgsm_keylist, gpgsm_keylist_ext)
(gpgsm_sign, gpgsm_verify, gpgsm_getauditlog)
(gpgsm_passwd): Follow the change.

--

GnuPG-bug-id: 7759
Signed-off-by: NIIBE Yutaka &lt;gniibe@fsij.org&gt;
</content>
</entry>
<entry>
<title>Add API gpgme_op_random_bytes.</title>
<updated>2025-02-26T13:11:20Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2025-02-26T12:09:05Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=0a64c7d0c6d0463cf2e06b3a01ef5be4d879bcf0'/>
<id>urn:sha1:0a64c7d0c6d0463cf2e06b3a01ef5be4d879bcf0</id>
<content type='text'>
* src/genrandom.c: New.
* src/Makefile.am: Add new file.
* src/engine-backend.h (struct engine_ops): Add func ptr getdirect.
Adjust all engine_ops.
* src/engine-gpg.c (gpg_getdirect): New.
(_gpgme_engine_ops_gpg): Connect new handler.
* src/gpgme.h.in (gpgme_random_mode_t): New.
(GPGME_RANDOM_MODE_NORMAL): New.
(GPGME_RANDOM_MODE_ZBASE32): New.
(gpgme_op_random_bytes): New public function
* src/libgpgme.vers: Add function.
* src/gpgme.def: Add function.

* tests/run-genrandom.c: New.
* tests/Makefile.am: Add new file.
--

This is a first take on this the mode parameter allows to extend the
function if ever needed.  Due to the gpg calling and fd setup overhead
this function is not yet very fast but its purpose is to get
"approved" random bytes.  We might eventually extend it to keep a
small internal cache of random numbers and get for example 128 random
bytes directly from gpg and deliver only the few required.

GnuPG-bug-id: 6694
</content>
</entry>
<entry>
<title>core: New function gpgme_op_setownertrust</title>
<updated>2024-08-06T10:43:28Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2024-08-05T15:14:01Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=d804a7a4bc871f38f6cdc2cd63af3ef004580437'/>
<id>urn:sha1:d804a7a4bc871f38f6cdc2cd63af3ef004580437</id>
<content type='text'>
* src/Makefile.am (main_sources): Add new file.
* src/context.h (ctx_op_data_id_t): Add OPDATA_SETOWNERTRUST.
* src/engine.c, src/engine.h (_gpgme_engine_op_setownertrust): New.
* src/engine-backend.h (engine_ops): Add 'setownertrust' and adjust all
engine initializers.
* src/engine-gpg.c (gpg_setownertrust): New.
(_gpgme_engine_ops_gpg): Set setownertrust to gpg_setownertrust.
* src/gpgme.h.in (gpgme_op_setownertrust_start, gpgme_op_setownertrust):
New.
* src/gpgme.def, src/libgpgme.vers: Add new functions.
* src/setownertrust.c: New.

* doc/gpgme.texi: Document new functions.

* tests/Makefile.am (noinst_PROGRAMS): Add new test program.
* tests/run-setownertrust.c: New.

* tests/gpg/Makefile.am (c_tests): Add new file. (LDADD): Add
@GPG_ERROR_LIBS@.
* tests/gpg/t-setownertrust.c: New.
* tests/gpg/t-support.h (have_gpg_version): New.

--

This extends GPGME to support the --quick-set-ownertrust command added
by GnuPG 2.4.6. This allows changing the owner trust of keys and
enabling/disabling keys without using the editinteractor interface.

GnuPG-bug-id: 7239
</content>
</entry>
</feed>
