Page MenuHome GnuPG

gpgmeProject
ActivePublic

Milestones

Details

Description

GnuPG Made Easy (GPGME) is a C language library that allows to add support for cryptography to a program. It is designed to make access to public key crypto engines like GnuPG or GpgSM easier for applications. GPGME provides a high-level crypto API for encryption, decryption, signing, signature verification and key management.

GPGME comes with language bindings for Common Lisp, C++, QT, Python2 and Python 3.

GPGME uses GnuPG and GpgSM as its backends to support OpenPGP and the Cryptographic Message Syntax (CMS).

Recent Activity

Fri, Nov 28

ebo moved T7759: Kleopatra: Notepad encryption with S/MIME fails from QA to Done on the gnupg26 board.
Fri, Nov 28, 2:13 PM · gnupg26, gpgme, kleopatra, gpd5x
ebo moved T7759: Kleopatra: Notepad encryption with S/MIME fails from WIP to Done on the gpd5x board.

I would say this is done.

Fri, Nov 28, 2:12 PM · gnupg26, gpgme, kleopatra, gpd5x

Wed, Nov 26

gniibe closed T7056: GPGme 1.23.2 has Undefined symbols: "strcasecmp(char const*, char const*)" on Mac OS X 10.4.11, PPC Tiger as Wontfix.

Here is my analysis.

Wed, Nov 26, 2:09 AM · gpgme, MacOS, Bug Report

Tue, Nov 25

gniibe closed T7694: GPGME: gpgme_io_spawn issues, a subtask of T7660: GPGME invocation by cri-o hangs on gpgme_op_verify, as Resolved.
Tue, Nov 25, 5:16 AM · golang, gpgme, Bug Report
gniibe closed T7694: GPGME: gpgme_io_spawn issues as Resolved.
Tue, Nov 25, 5:16 AM · gpgme, Bug Report

Mon, Nov 24

werner triaged T7933: Linking error with GPGMEPP on MacOS Tahoe 26.01/GCC 15.2 as Normal priority.
Mon, Nov 24, 6:01 PM · C++, gpgme, Bug Report
timegrid added a comment to T7759: Kleopatra: Notepad encryption with S/MIME fails.

Yes, sorry, a typo, I corrected it.

Mon, Nov 24, 9:30 AM · gnupg26, gpgme, kleopatra, gpd5x
ikloecker added a comment to T7759: Kleopatra: Notepad encryption with S/MIME fails.

Forgot to note: Setting S/MIME debug level in kleopatra via GnuPG System will write the right key to gpg.conf (if I understood it right, this was also a problem)

Mon, Nov 24, 9:14 AM · gnupg26, gpgme, kleopatra, gpd5x

Fri, Nov 21

timegrid moved T7883: Kleopatra: Unexpected comma separated keygrip for kyber certs from WIP to Done on the gpd5x board.

Looks good to me on gpg4win-5.0.0-beta413 @ win11.
The error message in debugview is gone.

Fri, Nov 21, 1:55 PM · gpgme, gpd5x, kleopatra
timegrid added a comment to T7759: Kleopatra: Notepad encryption with S/MIME fails.

Forgot to note: Setting S/MIME debug level in kleopatra via GnuPG System will write the right key to gpg.conf (if I understood it right, this was also a problem)

Fri, Nov 21, 12:07 PM · gnupg26, gpgme, kleopatra, gpd5x
timegrid added a comment to T7759: Kleopatra: Notepad encryption with S/MIME fails.

I think last time I didn't test the actual problem.

Fri, Nov 21, 11:12 AM · gnupg26, gpgme, kleopatra, gpd5x

Wed, Nov 19

werner added projects to T7933: Linking error with GPGMEPP on MacOS Tahoe 26.01/GCC 15.2: gpgme, C++.
Wed, Nov 19, 5:51 PM · C++, gpgme, Bug Report

Mon, Nov 17

ebo moved T6805: GpgOL: RSA 2048 Key generated in VSD from Backlog to Done on the gpgol board.
Mon, Nov 17, 9:03 AM · gpgme, vsd32 (vsd-3.2.0), gpgol, Restricted Project

Fri, Nov 14

pmgdeb added a comment to T7919: gpgme: Treat empty DISPLAY variable as unset or error out.

Great, thanks!

Fri, Nov 14, 1:42 PM · gpgme, Bug Report
werner changed the status of T7919: gpgme: Treat empty DISPLAY variable as unset or error out from Open to Testing.
Fri, Nov 14, 1:26 PM · gpgme, Bug Report
werner triaged T7919: gpgme: Treat empty DISPLAY variable as unset or error out as Normal priority.
Fri, Nov 14, 1:19 PM · gpgme, Bug Report
werner added a project to T7919: gpgme: Treat empty DISPLAY variable as unset or error out: gpgme.

I considered to make the --display argument optional but that still leads to the error. Thus better do not set or send it at all. I did this now for all gpgme engines.

Fri, Nov 14, 1:19 PM · gpgme, Bug Report
werner moved T7759: Kleopatra: Notepad encryption with S/MIME fails from Done to WIP on the gpd5x board.
Fri, Nov 14, 12:47 PM · gnupg26, gpgme, kleopatra, gpd5x

Oct 29 2025

ikloecker changed the status of T7883: Kleopatra: Unexpected comma separated keygrip for kyber certs from Open to Testing.

The API documentation of gpgme has been improved. And Kleopatra no longer tries to read the private key files of subkeys using combined algorithms (like Kyber+some curve) because (as of now) such keys are not stored on any smart cards (that are supported by GnuPG).

Oct 29 2025, 3:57 PM · gpgme, gpd5x, kleopatra

Oct 28 2025

ikloecker claimed T7883: Kleopatra: Unexpected comma separated keygrip for kyber certs.
Oct 28 2025, 1:22 PM · gpgme, gpd5x, kleopatra

Oct 8 2025

gniibe closed T7696: POSIX: spawn fixes, a subtask of T7660: GPGME invocation by cri-o hangs on gpgme_op_verify, as Resolved.
Oct 8 2025, 9:05 AM · golang, gpgme, Bug Report

Oct 6 2025

gniibe closed T7541: libassuan AC_DEFINE_UNQUOTED m4 fix needs propagating to pinentry and gnupg2 as Resolved.
Oct 6 2025, 2:05 AM · gpgme, gnupg, pinentry

Oct 1 2025

werner updated the task description for T7817: Release GPGME 2.0.1.
Oct 1 2025, 4:01 PM · Release Info, gpgme

Sep 23 2025

werner updated the task description for T7673: Release GPGME 2.0.0.
Sep 23 2025, 12:00 PM · Release Info, gpgme
werner triaged T7817: Release GPGME 2.0.1 as Normal priority.
Sep 23 2025, 11:58 AM · Release Info, gpgme

Sep 8 2025

timegrid moved T7759: Kleopatra: Notepad encryption with S/MIME fails from QA to Done on the gpd5x board.

Looks good to me on gpg4win-5.0.0-beta369 @ win10.
Can't reproduce it anymore, message is S/MIME decrypted instantly:

Sep 8 2025, 3:43 PM · gnupg26, gpgme, kleopatra, gpd5x

Sep 5 2025

werner moved T7759: Kleopatra: Notepad encryption with S/MIME fails from Backlog to QA on the gpd5x board.
Sep 5 2025, 2:39 PM · gnupg26, gpgme, kleopatra, gpd5x
werner changed the status of T7759: Kleopatra: Notepad encryption with S/MIME fails from Open to Testing.

Uses gpgme-2.0.0 with the above mentioned patches. I have seen no problems in my quick tests.

Sep 5 2025, 2:38 PM · gnupg26, gpgme, kleopatra, gpd5x

Sep 1 2025

gniibe added a comment to T7759: Kleopatra: Notepad encryption with S/MIME fails.

I fixed the problem (which I identified above) in gniibe/t7759 branch. There might be other causes/problems for the particular symptom, so, I don't know the fix resolves the symptom or not, though. Anyhow, I believe that this is an improvement.

Sep 1 2025, 4:16 AM · gnupg26, gpgme, kleopatra, gpd5x

Aug 27 2025

werner moved T7759: Kleopatra: Notepad encryption with S/MIME fails from Backlog to WIP on the gnupg26 board.
Aug 27 2025, 10:34 AM · gnupg26, gpgme, kleopatra, gpd5x
gniibe added a comment to T7759: Kleopatra: Notepad encryption with S/MIME fails.

Similar situation could happen with gpgsm + gpg-agent, when gpg-agent is invoked by gpgsm.
(1) No gpg-agent.
(2) In gpgme, by engine-gpgsm, gpgsm is invoked with --logger.
(3) In gpgsm_keylist, it makes sure gpg-agent is available by GETINFO agent-check, using gpgsm_assuan_simple_command.
(4) In the server side, it tries to connect gpg-agent, invokes gpg-agent, and connect to the agent again.
(5) On Windows, it may takes time to invoke gpg-agent. And it may try to connect multiple times. Each trial may generate debug messages.
(6) When it takes too much time, the debug messages are too much. It may fill the pipe.
(7) And it blocks at log_string in my_libassuan_log_handler.
(8) ... it hangs.

Aug 27 2025, 6:53 AM · gnupg26, gpgme, kleopatra, gpd5x
gniibe added a comment to T7759: Kleopatra: Notepad encryption with S/MIME fails.

Hypothetical scenario (gpgsm --server + dirmngr):
(0) It may hang when much debug messages are generated by libassuan to the pipe of --logger (diag_cb).
(1) In gpgme, by engine-gpgsm, gpgsm is invoked with --logger.
(2) If it's the case of standard gpgme interactions which uses gpgsm_io_event, no problem. Because the data on diag_cb is consumed well.
(3) In case of gpgsm_encrypt (or other commands), it uses gpgsm_assuan_simple_command which does not consume the data on diag_cb pipe at all.
(4) In particular, in set_recipients, gpgsm_assuan_simple_command is called by the number of recipients times.
(5) IIUC, in the server side, to handle RECIPIENT command, dirmngr is used by the call chain of:

  • cmd_recipient
  • gpgsm_add_to_certlist
  • gpgsm_validate_chain...
  • gpgsm_dirmngr_isvalid

(6) In gpgsm_dirmngr_isvalid function, libassuan is used as client side, it generates debug messages.
(7) When there are many recipients, the debug message may be big enough to fill the pipe.
(8) When pipe is filled, it blocks at log_string in my_libassuan_log_handler, waiting the data in pipe is consumed.
(9) ... it hangs.

Aug 27 2025, 5:12 AM · gnupg26, gpgme, kleopatra, gpd5x

Aug 13 2025

ebo updated the task description for T7755: Kleopatra: Show error if a certification did not succeed, even if the cause is crash of background process.
Aug 13 2025, 2:40 PM · gnupg, gpgme, gpd5x, kleopatra
ebo triaged T7755: Kleopatra: Show error if a certification did not succeed, even if the cause is crash of background process as Low priority.

We decided that gpg should emit a status message for success, too.
gpgme should then look for that status message instead of only absence of error.

Aug 13 2025, 2:35 PM · gnupg, gpgme, gpd5x, kleopatra
ebo closed T6694: Random numbers from gpgme as Resolved.
Aug 13 2025, 11:14 AM · gpd5x, gpgpass, gpgme, Feature Request
werner added a comment to T7759: Kleopatra: Notepad encryption with S/MIME fails.

A quick check with passing ASSUAN_PIPE_CONNECT_DETACHED does not changed anything.

Aug 13 2025, 9:54 AM · gnupg26, gpgme, kleopatra, gpd5x

Aug 12 2025

werner added a comment to T7759: Kleopatra: Notepad encryption with S/MIME fails.

I wonder whether rA3bccb33ccd9028ff505d9979fd6c8a37393b892d which changes Assuan's waitpid function for Windows is well aligned with the my_waitpid in gpgme's assuan-support.c (which does nothing). gpgme creates a detached process in most cases but for gpgsm assuan_pipe_connect is used without the ASSUAN_PIPE_CONNECT_DETACHED flag.

Aug 12 2025, 11:12 AM · gnupg26, gpgme, kleopatra, gpd5x
werner added a comment to T7759: Kleopatra: Notepad encryption with S/MIME fails.

Another data point is that the faulty versions use libassuan 3 with a slightly changed API. May one of the follwing chnages cause the problem?

Aug 12 2025, 10:51 AM · gnupg26, gpgme, kleopatra, gpd5x

Aug 11 2025

ebo added a comment to T7759: Kleopatra: Notepad encryption with S/MIME fails.

Although in VSD 3.2.2 we get no warning when configuring S/MIME debugging wrong we then get a nice message "Configuration error" when trying to encrypt with S/MIME, instead of gpgsm hanging without any message at all:

Aug 11 2025, 5:23 PM · gnupg26, gpgme, kleopatra, gpd5x

Aug 8 2025

ebo added a comment to T7759: Kleopatra: Notepad encryption with S/MIME fails.

The issue also occurs in VSD-3.3.2 and 4win-4.4.1 but not in VSD 3.1.26

Aug 8 2025, 2:20 PM · gnupg26, gpgme, kleopatra, gpd5x
werner triaged T7759: Kleopatra: Notepad encryption with S/MIME fails as High priority.
Aug 8 2025, 6:33 AM · gnupg26, gpgme, kleopatra, gpd5x

Jul 12 2025

alexk added a comment to T7660: GPGME invocation by cri-o hangs on gpgme_op_verify.

I created a Go test program that runs several Go routines, each of which verifies a byte array loaded from a file in advance. Each go-routine is spawned with a configurable delay in milliseconds. I tested it with 100 iterations, which resulted in at least 50 parallel processes. Each verification process uses its own context, as Crio does. I didn't encounter any errors.

Here is my repository with a README containing more information: https://git.sr.ht/~kulbartsch/gpgmego-verify-load-test

Jul 12 2025, 12:27 PM · golang, gpgme, Bug Report

Jun 30 2025

timegrid moved T6694: Random numbers from gpgme from Backlog to Done on the gpd5x board.

Ingo tested this and it worked.

Jun 30 2025, 11:02 AM · gpd5x, gpgpass, gpgme, Feature Request

Jun 26 2025

gniibe changed the status of T7696: POSIX: spawn fixes, a subtask of T7660: GPGME invocation by cri-o hangs on gpgme_op_verify, from Open to Testing.
Jun 26 2025, 6:49 AM · golang, gpgme, Bug Report

Jun 23 2025

gniibe changed the status of T7694: GPGME: gpgme_io_spawn issues from Open to Testing.

Done by: rM8caa7cc517eb: Use sysconf as a fallback mechanism in the initialization.

Jun 23 2025, 7:17 AM · gpgme, Bug Report
gniibe changed the status of T7694: GPGME: gpgme_io_spawn issues, a subtask of T7660: GPGME invocation by cri-o hangs on gpgme_op_verify, from Open to Testing.
Jun 23 2025, 7:17 AM · golang, gpgme, Bug Report

Jun 20 2025

gniibe added a comment to T7694: GPGME: gpgme_io_spawn issues.

OK. I'll add a code for setting the fallback value in _gpgme_io_subsystem_init and use it from get_max_fds.

Jun 20 2025, 10:35 AM · gpgme, Bug Report
werner added a comment to T7694: GPGME: gpgme_io_spawn issues.

iirc we introduced sysconf (_SC_OPEN_MAX) for non-linux platforms and that fixed real world problems. What about getting this value at module initialization time and keep on using it as a fallback?

Jun 20 2025, 10:13 AM · gpgme, Bug Report
gniibe updated the task description for T7694: GPGME: gpgme_io_spawn issues.
Jun 20 2025, 2:28 AM · gpgme, Bug Report
gniibe added a comment to T7660: GPGME invocation by cri-o hangs on gpgme_op_verify.

For issues of get_max_fds, I created a sub task, although it seems not the direct cause of this particular problem.

Jun 20 2025, 2:13 AM · golang, gpgme, Bug Report