<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gpgme/src/engine-gpg.c, branch gpgme-1.17.1</title>
<subtitle>GnuPG Made Easy.</subtitle>
<id>http://git.bktus.com/gpgfrontend/gpgme/atom?h=gpgme-1.17.1</id>
<link rel='self' href='http://git.bktus.com/gpgfrontend/gpgme/atom?h=gpgme-1.17.1'/>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/'/>
<updated>2022-02-03T14:56:30Z</updated>
<entry>
<title>core: New function gpgme_op_receive_keys</title>
<updated>2022-02-03T14:56:30Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2022-01-31T14:59:55Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=3c2cff74b535422532e1256ee8177fa9c03eaf18'/>
<id>urn:sha1:3c2cff74b535422532e1256ee8177fa9c03eaf18</id>
<content type='text'>
* src/gpgme.h.in (gpgme_op_receive_keys_start, gpgme_op_receive_keys):
New.
* src/gpgme.def, src/libgpgme.vers: Add them.
* src/engine-backend.h (struct engine_ops): Add arg keyids to field
'import'.
* src/engine.h, src/engine.c (_gpgme_engine_op_import): Add arg keyids.
* src/engine.c (_gpgme_engine_op_import): Forward new arg keyids.
* src/import.c: (_gpgme_op_import_start, _gpgme_op_import_keys_start):
Pass NULL to new arg of _gpgme_op_import_start.
(_gpgme_op_receive_keys_start, gpgme_op_receive_keys_start,
gpgme_op_receive_keys): New.
* src/engine-gpg.c (gpg_import): Add arg keyids. Extend check for
valid arguments. Build command line if keyids are given.
* src/engine-gpgsm.c (gpgsm_import): Add arg keyids. Return error if
keyids is not NULL.

tests/run-receive-keys.c: New.
tests/Makefile.am (noinst_PROGRAMS): Add new test runner.
--

The new function allows importing keys given by their key ids or
fingerprints from a keyserver (like gpg's --recv-keys command).

GnuPG-bug-id: 5808
</content>
</entry>
<entry>
<title>core: New export mode to export secret subkeys.</title>
<updated>2022-01-04T08:23:40Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2022-01-03T15:25:40Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=0e19c4879193ed7fa61ad5d488f237b2b5b5d1d7'/>
<id>urn:sha1:0e19c4879193ed7fa61ad5d488f237b2b5b5d1d7</id>
<content type='text'>
* src/gpgme.h.in (GPGME_EXPORT_MODE_SECRET_SUBKEY): New.
* src/export.c (check_mode): Allow new mode and check for invalid
combinations.
(export_keys_start): Return error if new mode flag is set.
* src/engine-gpg.c (export_common): Implement.
* src/gpgme-tool.c (cmd_export): New option --secret-subkey.
* tests/run-export.c (main): New option --secret-subkey.
--

This adds support for exporting secret subkeys (via gpg's
--export-secret-subkeys) to gpgme_op_export[_ext][_start].
The flag is not supported by gpgme_op_export_keys[_start] because
there is no way to specify which subkey(s) to export with these
functions.

GnuPG-bug-id: 5757
</content>
</entry>
<entry>
<title>core: Allow setting import filters when importing keys</title>
<updated>2021-12-14T14:44:37Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2021-12-14T14:44:37Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=d35d44efaf72f90ee4f92af8382c4bcb9982da3f'/>
<id>urn:sha1:d35d44efaf72f90ee4f92af8382c4bcb9982da3f</id>
<content type='text'>
* src/context.h (struct gpgme_context): New field import_filter.
* src/engine-backend.h (struct engine_ops): Add arg import_filter to
field 'import'.
* src/engine-gpg.c (gpg_import): Add arg import_filter and pass option
--import-filter with argument value to gpg. Adjust all callers.
* src/engine-gpgsm.c (gpgsm_import): Add dummy arg import_filter.
* src/gpgme.c (gpgme_release): Free 'import_filter'.
(gpgme_set_ctx_flag, gpgme_get_ctx_flag): New flag "import-filter".

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

This makes the --import-filter option available in the GPGME API for
key imports.

GnuPG-bug-id: 5739
</content>
</entry>
<entry>
<title>core: Set --key-origin option only if supported by gpg</title>
<updated>2021-12-14T13:41:23Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2021-12-14T13:41:23Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=fd680254dae58a6bf6fb83688bf7c849257688a4'/>
<id>urn:sha1:fd680254dae58a6bf6fb83688bf7c849257688a4</id>
<content type='text'>
* src/engine-gpg.c (gpg_import): Do not pass --key-origin option to
gpg if gpg is too old.
--

GnuPG-bug-id: 5733
</content>
</entry>
<entry>
<title>core: Allow specifiying a key origin when importing keys</title>
<updated>2021-12-13T15:52:23Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2021-12-13T15:52:23Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=60880adafa93e1a1e8e9fecf03c14d56bbd55345'/>
<id>urn:sha1:60880adafa93e1a1e8e9fecf03c14d56bbd55345</id>
<content type='text'>
* src/context.h (struct gpgme_context): New field key_origin.
* src/engine-backend.h (struct engine_ops): Add arg key_origin to
field 'import'.
* src/engine-gpg.c (gpg_import): Add arg key_origin and pass option
--key-origin with argument value to gpg. Adjust all callers.
* src/engine-gpgsm.c (gpgsm_import): Add dummy arg key_origin.
* src/gpgme.c (gpgme_release): Free 'key_origin'.
(gpgme_set_ctx_flag, gpgme_get_ctx_flag): New flag "key-origin".

* tests/run-import.c (main): Add option --key-origin.
* tests/gpg/t-import.c (main): Set and verify key origin.
--

This makes the --key-origin option available in the GPGME API for
key imports.

GnuPG-bug-id: 5733
</content>
</entry>
<entry>
<title>core: Use flexible array member if compiler has support.</title>
<updated>2021-08-13T05:52:03Z</updated>
<author>
<name>NIIBE Yutaka</name>
<email>gniibe@fsij.org</email>
</author>
<published>2021-08-13T05:52:03Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=3c1c98a43413e429459ca7d3615659f8149534b8'/>
<id>urn:sha1:3c1c98a43413e429459ca7d3615659f8149534b8</id>
<content type='text'>
* configure.ac (AC_C_FLEXIBLE_ARRAY_MEMBER): Add.
* src/engine-gpg.c (struct arg_and_data_s): Use FLEXIBLE_ARRAY_MEMBER.
(_add_arg): Use offsetof instead of sizeof.
(add_data): Likewise.

--

Before this fix, GCC 11 warns (with its bound checking feature).

Signed-off-by: NIIBE Yutaka &lt;gniibe@fsij.org&gt;
</content>
</entry>
<entry>
<title>core: Allow specifying an expiration date for key signatures</title>
<updated>2021-06-22T14:35:03Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2021-06-22T14:23:26Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=34d9defc42bacfaf2bb1ce70b2c3f0fdf0a106c3'/>
<id>urn:sha1:34d9defc42bacfaf2bb1ce70b2c3f0fdf0a106c3</id>
<content type='text'>
* src/context.h (struct gpgme_context): Add 'cert_expire'.
* src/engine-gpg.c (append_args_from_cert_expire): New.
(gpg_edit): Set option according to the new flag.
* src/gpgme.c (gpgme_release): Free 'cert_expire'.
(gpgme_set_ctx_flag, gpgme_get_ctx_flag): Add "cert-expire".

* tests/gpg/Makefile.am (c_tests): Add new test.
(gpg.conf): Write "allow-weak-key-signatures" to gpg.conf.
* tests/gpg/t-edit-sign.c: New.
--

The new context flag "cert-expire" allows setting the expiration date
for key signatures created with gpgme_op_interact.

GnuPG-bug-id: 5336, 5505
</content>
</entry>
<entry>
<title>core: New flag GPGME_KEYSIGN_FORCE.</title>
<updated>2021-03-11T10:49:07Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2021-03-11T10:49:07Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=0821e2b1495e8944a5a1b5ba20ad5f403dde0dd0'/>
<id>urn:sha1:0821e2b1495e8944a5a1b5ba20ad5f403dde0dd0</id>
<content type='text'>
* src/gpgme.h.in (GPGME_KEYSIGN_FORCE): New.
* src/engine-gpg.c (gpg_keysign): Implement.

* tests/run-keysign.c (show_usage): Add option --force
--

GnuPG-bug-id: 4584
</content>
</entry>
<entry>
<title>core: Remove experimental feature GPGME_EXPORT_MODE_NOUID.</title>
<updated>2021-02-01T15:48:30Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2021-02-01T15:47:46Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=c8fd8870b3bf089f99156448b7d1e59c1150f994'/>
<id>urn:sha1:c8fd8870b3bf089f99156448b7d1e59c1150f994</id>
<content type='text'>
* src/export.c (export_start): Remove GPGME_EXPORT_MODE_NOUID check.
* src/engine-gpg.c (export_common): Ditto.
--

Note that this constant was never announed and used only for internal
tests.  It made it into some release only by accident.

The constants is kept in gpgme.h to not break any code but it is
non-fucntionals.  We do not consider this an ABI break.

GnuPG-bug-id: 5284
</content>
</entry>
<entry>
<title>core: Make listing of signatures work if only secret keys are listed</title>
<updated>2021-01-05T16:44:16Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2021-01-05T16:17:35Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=5137d7fc214d0d9dcb947ccdc32fa87979f9a6d0'/>
<id>urn:sha1:5137d7fc214d0d9dcb947ccdc32fa87979f9a6d0</id>
<content type='text'>
* src/engine-gpg.c (gpg_keylist_build_options): Add "--with-sig-check"
argument if signatures shall be listed.
* tests/gpg/t-keylist-secret-sig.c: New.
* tests/gpg/Makefile.am (c_tests): Add new test.
--

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