aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Ignore TRUST_ status lines if no NEWSIG was seenIngo Klöcker2026-07-091-2/+7
| | | | | | | | | | | | | * src/verify.c (_gpgme_verify_status_handler): Don't return error if TRUST_* status line is seen before NEWSIG status line has been seen. -- Since recently, in de-vs compliance mode, gpgsm emits TRUST_ status lines during decryption if the validation of the encryption certificate fails. Consequently, it's not an error if a TRUST_ status line is seen without having seen a NEWSIG status line before. GnuPG-bug-id: 8333
* w32: Fix typo which broke the buildIngo Klöcker2026-06-291-1/+1
| | | | | | | * src/w32-io.c (_gpgme_io_spawn): Replace bogus #else with #endif. -- Fixes-commit: df6c94f136e5411aabeb3000403f402f2a25092b
* Release 2.1.1gpgme-2.1.1Werner Koch2026-06-252-2/+2
|
* w32: Use gpgrt_w32_set_errno if gpgrt is new enough.Werner Koch2026-06-251-10/+17
| | | | | | * src/w32-io.c (_gpgme_io_spawn): Add mapping from Windows error number. (_gpgme_io_select): Ditto.
* Trace result of gpgme_op_export.Ingo Klöcker2026-06-221-1/+1
| | | | | * src/export.c (gpgme_op_export): Trace the returned error. --
* Let gpgme_op_export also return operational errors.Werner Koch2026-06-221-1/+16
| | | | | | | | | | | | * src/export.c (gpgme_op_export): On success check and return operational errors. -- This has been part of gpgme_op_export_ext but was obviously forgotten to add also to the old function. GnuPG-bug-id: 8287
* json:w32: Add CRLF handling for armored output.NIIBE Yutaka2026-05-211-1/+53
| | | | | | | | | | * src/json-core.c (make_data_object): Remove CR for CRLF when it's armored output. -- GnuPG-bug-id: 8263 Signed-off-by: NIIBE Yutaka <[email protected]>
* m4: Deprecate AM_PATH_GPGME_GLIB macro.NIIBE Yutaka2026-05-201-2/+3
| | | | | | | | | * src/gpgme.m4 (AM_PATH_GPGME_GLIB): Deprecated. -- GnuPG-bug-id: 7126 Signed-off-by: NIIBE Yutaka <[email protected]>
* w32:io: Serialize the access to ctx->* between reader/writer and io.NIIBE Yutaka2026-05-191-30/+40
| | | | | | | | | | * src/w32-io.c (reader, writer): Protect shared access to ctx->* correctly, by using the internal buffer. -- GnuPG-bug-id: 8264 Signed-off-by: NIIBE Yutaka <[email protected]>
* io:w32:spawn_sans_helper: Fix inherit of HANDLES to child process.NIIBE Yutaka2026-05-181-7/+7
| | | | | | | | | | | * src/w32-io.c (_gpgme_io_spawn_sans_helper): Inherit HANDLES correctly, even when an argument is not modified. -- Fixes-commit: 64f80903ec9bc8897f9b2dcebb7068c02ff9ae07 GnuPG-bug-id: 7127 Signed-off-by: NIIBE Yutaka <[email protected]>
* Support setting attributes for CMS signatures.Werner Koch2026-05-173-1/+49
| | | | | | | | | | | | | | * 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.
* engine:gpgconf: Increase the buffer size.NIIBE Yutaka2026-05-151-1/+1
| | | | | | | | * src/engine-gpgconf.c (gpgconf_read): Update to 2048. -- Signed-off-by: NIIBE Yutaka <[email protected]>
* w32: Add cast for assuan_fd_t.NIIBE Yutaka2026-05-144-15/+17
| | | | | | | | | | | | * 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 <[email protected]>
* Make GPGME_DECRYPT_SESSION_HASH also work for gnupg 2.2.55Werner Koch2026-05-111-1/+10
| | | | | * src/engine-gpg.c (have_usable_session_hash): New. (gpg_decrypt): Use here.
* New decryption flag GPGME_DECRYPT_SESSION_HASH.Werner Koch2026-04-234-2/+24
| | | | | | | | | | | | | | * 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.
* indent: Align a debug output.Werner Koch2026-04-231-2/+2
| | | | * src/dirinfo.c (get_gpgconf_item): Add blanks to a string.
* Add flag fields is_de_vs and beta_compliance to encryption resultsIngo Klöcker2026-04-213-1/+18
| | | | | | | | | | | | | | | | | | | * 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
* gpgsm: Read all pending lines before waiting for more dataIngo Klöcker2026-03-241-68/+74
| | | | | | | | | | | | | | | | | * 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<LF> ERR 50331746 Not trusted <GpgSM><LF> gpgsm_assuan_simple_command read the first line and then waited forever for more data sent by gpgsm. GnuPG-bug-id: 8187
* Fix passphrase cancel handling.NIIBE Yutaka2026-03-181-3/+11
| | | | | | | | | | | | | * src/passphrase.c (op_data_t): Add "canceled" field. (_gpgme_passphrase_status_handler): Mark "canceled" when it sees GPGME_STATUS_CANCELED_BY_USER. Reset at GPGME_STATUS_PINENTRY_LAUNCHED. Return GPG_ERR_CANCELED when "canceled" is marked at GPGME_STATUS_EOF. -- GnuPG-bug-id: 8172 Signed-off-by: NIIBE Yutaka <[email protected]>
* Handle the case when pinentry is invoked multiple times.NIIBE Yutaka2026-03-101-0/+5
| | | | | | | | | | * src/passphrase.c (_gpgme_passphrase_status_handler): Reset no_passphrase and bad_passphrase field. -- GnuPG-bug-id: 7339 Signed-off-by: NIIBE Yutaka <[email protected]>
* Don't cap ISO dates beyond year 2037 on WindowsIngo Klöcker2026-02-051-0/+2
| | | | | | | | | | | * src/conversion.c (_gpgme_parse_timestamp): On Windows, disable hack for 32-bit time_t. -- On Windows, SystemTimeToFileTime is used for converting the timestamp to seconds since epoch and this API doesn't have a year 2038 problem. GnuPG-bug-id: 8088
* Fix build with libassuan 2.Collin Funk2026-01-281-0/+1
| | | | | | | | | | * src/assuan-support.c: Include util.h for the assuan_pid_t definition. -- Fixes-commit: 77b9e1de7d7614e8e7eb79f507a1de292efb30a7 Signed-off-by: Collin Funk <[email protected]>
* Allow setting export filters when exporting keysIngo Klöcker2026-01-148-14/+45
| | | | | | | | | | | | | | | | | | | | | | * 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
* w32:spawn: Support the case without no helper.NIIBE Yutaka2026-01-091-37/+239
| | | | | | | | | | * src/w32-io.c (_gpgme_io_spawn_sans_helper): New. (_gpgme_io_spawn): Use _gpgme_io_spawn_sans_helper. -- GnuPG-bug-id: 7127 Signed-off-by: NIIBE Yutaka <[email protected]>
* w32: Use SetHandleInformation for _gpgme_io_pipe.NIIBE Yutaka2026-01-081-35/+9
| | | | | | | | | * src/w32-io.c (_gpgme_io_pipe): Create a pipe with bInheritHandle = TRUE, and then clear an end by SetHandleInformation. -- Signed-off-by: NIIBE Yutaka <[email protected]>
* w32: Fix for process handle.NIIBE Yutaka2026-01-082-5/+17
| | | | | | | | | | * src/assuan-support.c (my_waitpid): Call __assuan_waitpid for libassuan 3. * src/w32-io.c (_gpgme_io_spawn): Use process handle for libassuan 3. -- Signed-off-by: NIIBE Yutaka <[email protected]>
* w32: Fix debug print on 64-bit machine.NIIBE Yutaka2025-12-241-17/+19
| | | | | | | | | | | * src/w32-io.c (release_hddesc): Cast SOCKET to (void *) and use %p. (reader, create_reader, destroy_reader, writer): Likewise. (create_writer, find_writer): Likewise. (_gpgme_io_socket): Likewise. Add "z" modifier for NFDS. -- Signed-off-by: NIIBE Yutaka <[email protected]>
* w32: Fix spawn for 64-bit machine.NIIBE Yutaka2025-12-236-23/+31
| | | | | | | | | | | | | | | | | | | | | | * src/priv-io.h (struct spawn_fd_item_s): Use HANDLE for peer_name field. * src/dirinfo.c (read_gpgconf_dirs): Use ASSUAN_INVALID_FD for default value for peer_name field of CFD. * src/engine-gpgconf.c (gpgconf_read, gpgconf_write) (gpgconf_query_swdb): Likewise. * src/version.c (_gpgme_get_program_version): Likewise. * src/w32-io.c (handle_to_fd): Remove. (_gpgme_io_spawn): Assign HD to the peer_name field. Use %p for printing the value of peer_name field. * src/gpgme-w32spawn.c (my_spawn): Use peer_name field with no cast. Use %p for printing the value of peer_name field. Remove wrong CloseHandle calls. (translate_get_from_file): Use HANDLE type for the TO variable. Use strtoull on 64-bit machine. Use ASSUAN_INVALID_FD. -- Signed-off-by: NIIBE Yutaka <[email protected]>
* Fix a regression wrt the auto-key-locate option.NIIBE Yutaka2025-12-221-1/+1
| | | | | | | | | | * src/keylist.c (gpgme_get_key): Don't call gpgme_set_ctx_flag when it's "". -- Fixes-commit: 964bc14ccfba84b050c20dc5035414438b10bd74 Signed-off-by: NIIBE Yutaka <[email protected]>
* Fix function prototypes to match ones in libassuan.NIIBE Yutaka2025-12-151-2/+20
| | | | | | | | | | | * src/assuan-support.c (my_read, my_write): Use ssize_t. (my_socket, my_connect): Use int instead of assuan_fd_t for older libassuan. * tests/gpg/t-encrypt-large.c (read_cb, write_cb): Use gpgme_ssize_t. -- Signed-off-by: NIIBE Yutaka <[email protected]>
* Fix build with libassuan 2.NIIBE Yutaka2025-12-151-0/+4
| | | | | | | | * src/util.h (assuan_pid_t): Typedef if not available. -- Signed-off-by: NIIBE Yutaka <[email protected]>
* Fix portability for the use of the assuan types.NIIBE Yutaka2025-12-1111-16/+17
| | | | | | | | | | | | | | | | | | | * src/assuan-support.c (my_spawn, my_waitpid): Use assuan_pid_t. (my_socket, my_connect): Use assuan_fd_t. * src/engine-gpg.c (start): Remove unused PID. * src/engine-spawn.c (engspawn_start): Likewise. * src/gpgme-w32spawn.c: Add util.h for assuan types. * src/version.c: Likewise. * src/wait-user.c: Likewise. * src/posix-io.c (_gpgme_io_spawn): Use assuan_pid_t. * src/priv-io.h (_gpgme_io_spawn): Likewise. * src/w32-io.c (_gpgme_io_spawn): Likewise. * src/wait-private.c: Include util.h earlier. -- GnuPG-bug-id: 7968 Signed-off-by: NIIBE Yutaka <[email protected]>
* w32: Add a cast for GetProcAddress, add AM_CFLAGS for w32spawn.NIIBE Yutaka2025-12-112-2/+2
| | | | | | | | | | | | * src/Makefile.am (gpgme_w32spawn_CFLAGS): Add AM_CFLAGS. * src/gpgme-w32spawn.c (my_spawn): GetProcAddress returns an address for the symbol. The correctness should be checked by human when writing the code (not by the function prototype). -- GnuPG-bug-id: 7968 Signed-off-by: NIIBE Yutaka <[email protected]>
* Avoid K&R-style function definition.NIIBE Yutaka2025-12-051-3/+1
| | | | | | | | * src/stpcpy.c (__stpcpy): Supply function prototype. -- Signed-off-by: NIIBE Yutaka <[email protected]>
* Treat empty DISPLAY envvar as unset.Werner Koch2025-11-145-5/+16
| | | | | | | | | | | | | * 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
* gpgme_get_key: respect caller's ctx configurationGiacomo Tesio2025-11-101-0/+5
|
* doc: Clarify that keygrip lists multiple keygrips for combined algosIngo Klöcker2025-10-291-1/+2
| | | | | | | | | * 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
* Improve tracing for engine-gpgsmWerner Koch2025-10-271-5/+29
| | | | | * src/engine-gpgsm.c (gpgsm_assuan_simple_command): More tracing calls.
* Slight changes to comments and trace output.Werner Koch2025-10-143-3/+4
| | | | --
* Adjust configure and gpgme.m4 for test(1) -a changesWerner Koch2025-09-231-1/+1
| | | | | | | -- See GnuPG-bug-id: 7807
* gpgsm: Extend gpgsm_assuan_simple_command to consule diag output.gniibe/t7759NIIBE Yutaka2025-08-291-0/+35
| | | | | | | | | | * src/engine-gpgsm.c (gpgsm_assuan_simple_command): Take care about diag output. -- GnuPG-bug-id: 7759 Signed-off-by: NIIBE Yutaka <[email protected]>
* gpgsm: Introduce two phase interactions to consume diag output.NIIBE Yutaka2025-08-291-24/+89
| | | | | | | | | | | | | | | * 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 <[email protected]>
* w32: gpgme-w32spawn now appends to the debug log if enabled.Werner Koch2025-08-081-1/+6
| | | | --
* Make it easier to maintain gpgme.h by using forward declarations.Werner Koch2025-07-181-21/+55
| | | | | | | | | * 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.
* Rename an internal function for clarityWerner Koch2025-07-163-3/+3
| | | | | * src/key.c (_gpgme_key_add_sig): Rename to ... (_gpgme_key_add_uid_sig): this.
* Fix an uninitialized variable.Collin Funk via Gnupg-devel2025-07-051-1/+1
| | | | | | | | | | * src/engine-gpg.c (gpg_getdirect): Initialize ERR to zero to satisfy the loop condition. -- Fixes-commit: 0a64c7d0c6d0463cf2e06b3a01ef5be4d879bcf0 Signed-off-by: Collin Funk <[email protected]>
* Remove duplicate character passed to strchr.Collin Funk via Gnupg-devel2025-07-031-1/+1
| | | | | | * src/keylist.c (parse_sec_field15): Remove duplicate '0' character. Signed-off-by: Collin Funk <[email protected]>
* Use sysconf as a fallback mechanism in the initialization.NIIBE Yutaka2025-06-231-1/+29
| | | | | | | | | | | | * src/posix-io.c (max_fds_fallback): New. [_SC_OPEN_MAX] (_gpgme_io_subsystem_init): Set max_fds_fallback. (get_max_fds): Use max_fds_fallback. -- GnuPG-bug-id: 7694 Fixes-commit: e8e5434cc4f5cc3c322659792cc1850a5c5b26b8 Signed-off-by: NIIBE Yutaka <[email protected]>
* Fix debug output of posix-io.c.NIIBE Yutaka2025-06-231-2/+3
| | | | | | | | | * src/posix-io.c (_gpgme_io_select_poll): Emit the file descriptor information just like _gpgme_io_select_select. -- Signed-off-by: NIIBE Yutaka <[email protected]>
* posix: Clean up get_max_fds implementation.NIIBE Yutaka2025-06-201-17/+11
| | | | | | | | | | | | | * src/posix-io.c (get_max_fds): Return type is int. Ifdef-out TRACE. Remove call to sysconf. Use long for R and POS. Use aligned buffer for struct linux_dirent64. -- GnuPG-bug-id: 7694 Signed-off-by: NIIBE Yutaka <[email protected]>