1
0
mirror of git://git.gnupg.org/gnupg.git synced 2025-06-14 18:31:03 +02:00

10841 Commits

Author SHA1 Message Date
Werner Koch
e6463d7fe0
wks: Use templates for the server responses.
* common/helpfile.c (gnupg_get_template): Add arg locale_override and
adjust all callers.
* tools/wks-receive.c (struct receive_ctx_s): Add field ct_language.
(get_language): New.
(new_part): Call it.
(wks_receive): Pass language to the result callback.
* tools/gpg-wks-client.c (short_locale): New.
(main): Get and store the current locale.
(command_create): Fix a glitch for the Posteo hack.  Insert the locale
into the confirmation request.
(send_confirmation_response): Ditto.
* tools/gpg-wks-server.c (struct server_ctx_s): Add field language.
(only_ascii): New.
(struct my_subst_vars_s, my_subst_vars_cb, my_subst_vars): New.
(send_confirmation_request): Use a template.
(send_congratulation_message): Ditto.
(check_and_publish): Pss ctx to send_congratulation_message.
(command_receive_cb): Add arg language.

* doc/wks-utils.txt, doc/wks-utils.de.txt: New.
* doc/Makefile.am (helpfiles): Add them.
--

GnuPG-bug-id: 7381

Note that the subject is not yet translated or templated due to a
missing header encoding function.
2025-06-02 12:42:59 +02:00
Werner Koch
982f45c8c7
gpg-mail-tube: Support templates.
* tools/gpg-mail-tube.c: Include i18n.h.
(main): Call i18n.h
(only_ascii): New.
(mail_tube_encrypt): Use a template or fallback to the old version.

* doc/mail-tube.txt, doc/mail-tube.de.txt: Two standard templates.
* doc/Makefile.am (helpfiles): Add them.
--

GnuPG-bug-id: 7381
2025-05-30 14:55:12 +02:00
Werner Koch
61514f7cd8
tools: Add a quoted-printable encoding function.
* tools/mime-maker.c (mime_maker_qp_encode): New.
* tools/t-mime-maker.c: New.
* tools/Makefile.am (TESTS): New.
(module_tests): Add the first test.
2025-05-30 14:19:03 +02:00
Werner Koch
8d837279bc
common: Improve helpfile.c to provide a generic template API.
* common/util.h (GET_TEMPLATE_CURRENT_LOCALE): New.
(GET_TEMPLATE_SUBST_ENVVARS): New.
(GET_TEMPLATE_CRLF): New.
* common/helpfile.c (findkey_fname): Add arg flags and terminate line
with CRLF if requested.
(findkey_locale): Replace arg only_current_locale by flags and add arg
domain.
(gnupg_get_help_string): Factor all code out to ...
(gnupg_get_template): new.  Add arg domain.  Handle SUBST flags.  Do
not trim tralins spaces with the CRLF flag.

* common/t-helpfile.c (main): Require domain name and add two options.
2025-05-30 14:19:02 +02:00
Werner Koch
ef5fa47ee8
gpgtar: Fix regression exhibited by make check
* tools/gpgtar-extract.c (gpgtar_extract): Do final process_release.
* tools/gpgtar-list.c (gpgtar_list): Ditto.
--

Fixes-commit: 29bc14f56f6430294f225b6744012ab1f5df62e6

Running "make -C tests/openpgp check verbose=3" failed with

  Creating configuration files
  Executing: '/home/wk/b/gnupg/tools/gpgtar' '--extract' \
     '--directory=.' \
     '/tmp/gpgscm-20250530T121329-run-tests-vGAT4R/environment-cache'
  make: *** [Makefile:998: xcheck] Terminated

for unknown reasons.  Not calling the gpgrt_process_release fixes this
regression.  The real cause needs to be investigated.
2025-05-30 14:18:57 +02:00
Werner Koch
e2732b8e19
scd:piv: Support rsa3072
* scd/app-piv.c (PIV_ALGORITHM_RSA): Rename to PIV_ALGORITHM_RSA_2048.
(PIV_ALGORITHM_RSA_3072): New.
(get_key_algorithm_by_dobj): Decide whether to use 3072 or 2048.
(do_sign): Support rsa3072.
(do_decipher): Ditto.
(do_genkey): Ditto.
--

Take care: Due to a lack of a PIV token capable of 3072, this has
not been tested at all.
2025-05-28 11:06:23 +02:00
Werner Koch
15a71f108d
gpg: Allow updating a SHA-1 key certification w/o --force-sign-key.
* g10/keyedit.c (sign_uids): Add a case for this.
--

GnuPG-bug-id:  7663
2025-05-28 10:41:32 +02:00
Werner Koch
e8eb92019f
doc: Minor speedo build clarification
--

Using the given command line for installation is almost always good,
so don't confuse the user with the first sentence.  Also explain how
to disable systemd for keyboxd and dirmngr.
2025-05-28 10:36:09 +02:00
Lucas Mulling via Gnupg-devel
018a2289ba
dirmngr: Don't install expired sks certificate
* dirmngr/Makefile.am (dist_pkgdata_DATA): Remove
  sks-keyservers.netCA.pem.

Signed-off-by: Lucas Mulling <lucas.mulling@suse.com>
2025-05-28 10:27:17 +02:00
NIIBE Yutaka
29bc14f56f
gpgsm,tests,tools: Fix memory leaks.
* sm/minip12.c (p12_parse): Fix creating new TLV with old TLV.
* sm/t-minip12.c (one_file): Release RESULT.
* tests/gpgscm/ffi.c (do_process_wait): Call gpgrt_process_release.
* tools/gpgconf-comp.c (retrieve_options_from_program): Release PARGS.
* tools/gpgtar-extract.c (gpgtar_extract): Release PROC on leave.
* tools/gpgtar-list.c (gpgtar_list): Release PROC on leave.

--

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2025-05-28 15:50:10 +09:00
Werner Koch
1587b387c0
agent: Allow building under Cygwin.
* agent/command-ssh.c (start_command_handler_ssh): Firther protect the
SOCKET cast.
--

Note that Cygwin is not supported, YMMV.
GnuPG-bug-id: 7667
2025-05-27 11:14:37 +02:00
NIIBE Yutaka
0c7e7ec0c8
gpg: Fix ECC_POINT_LEN_MAX to allow NIST curves.
* g10/pkglue.c (ECC_POINT_LEN_MAX): NIST P-521 is large.

--

GnuPG-bug-id: 7664
Reported-by: Collin Funk
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2025-05-26 11:28:02 +09:00
Collin Funk via Gnupg-devel
01cb3ba62d
common: Fix read buffer over-read in uncompress_ecc_q_in_canon_sexp.
* common/sexputil.c (uncompress_ecc_q_in_canon_sexp): Only call memcmp
if the lengths are equal.

--

GnuPG-bug-id: 7662
Signed-off-by: Collin Funk <collin.funk1@gmail.com>
2025-05-24 13:31:24 +02:00
NIIBE Yutaka
681d754043
gpg,agent: Clean up around using ECC KEM.
* common/util.h (gnupg_ecc_kem_kdf): Change the last two args.
* common/kem.c (gnupg_ecc_kem_kdf): The last arguments are KDF_PARAMS
and its length.
* agent/pkdecrypt.c (composite_pgp_kem_decrypt): Follow the change.
* g10/pkglue.c (do_encrypt_kem): Follow the change.
* g10/ecdh.c (extract_secret_x, derive_kek): Remove.
(gnupg_ecc_6637_kdf): Remove.
(ecc_build_kdf_params): Rename from build_kdf_params, changing
arguments.
* g10/pkglue.c (do_encrypt_ecdh): Refactor by ecc_build_kdf_params and
gnupg_ecc_kem_kdf.
* g10/pkglue.h (pk_ecdh_decrypt, gnupg_ecc_6637_kdf): Remove.
(ecc_build_kdf_params): New.
* g10/pubkey-enc.c (ecdh_sexp_build): Use ecc_build_kdf_params.

--

GnuPG-bug-id: 7649
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2025-05-23 16:59:38 +09:00
NIIBE Yutaka
37bec0df7b
common: Fix argument name of gnupg_ecc_kem_kdf.
* common/kem.c (gnupg_ecc_kem_kdf): Rename to kdf_params.

--

It's KDF parameters composed by OpenPGP layer.

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2025-05-23 10:42:44 +09:00
NIIBE Yutaka
07e8ca2a9b
gpg: Use ECC KEM interface for decryption.
* g10/call-agent.c (agent_pkdecrypt): Use --kem=PGP for
PUBKEY_ALGO_ECDH.
* g10/pubkey-enc.c (ecdh_sexp_build): New.
(get_it): Use ecdh_sexp_build for PUBKEY_ALGO_ECDH.  And don't use
pk_ecdh_decrypt since it's done by agent.

--

GnuPG-bug-id: 7649
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2025-05-22 14:36:38 +09:00
NIIBE Yutaka
04782e7fd6
agent: Add support for TPM2 for ECC KEM.
* agent/agent.h (agent_tpm2d_ecc_kem): New.
* agent/divert-tpm2.c (agent_tpm2d_ecc_kem): New.
* agent/pkdecrypt.c (ecc_pgp_kem_decap): Call agent_tpm2d_ecc_kem.

--

GnuPG-bug-id: 7649
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2025-05-22 14:34:05 +09:00
NIIBE Yutaka
b956f47e2a
agent: Finish ECC KEM, adding support for NIST curves.
* agent/command.c (cmd_pkdecrypt): ECC KEM PGP doesn't use OPTION.
* agent/pkdecrypt.c (ecc_table): Add NIST curves.
(ECC_SCALAR_LEN_MAX, ECC_POINT_LEN_MAX): Fix for NIST curves.
(composite_pgp_kem_decrypt): Take care of error by gcry_cipher_setkey.
(ecc_kem_decrypt): Fix un-wrapping the session key.

--

GnuPG-bug-id: 7649
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2025-05-22 14:29:51 +09:00
NIIBE Yutaka
57a3d23925
agent: Support ECC KEM by PKDECRYPT --kem.
* common/kem.c (gnupg_ecc_kem_kdf): Support traditional KDF of RFC
6637.
* common/util.h (gnupg_ecc_kem_kdf): Add FIXED_INFO argument.
* g10/pkglue.c (do_encrypt_kem): Follow the change.
* agent/pkdecrypt.c (ecc_pgp_kem_decap): Return ECC parameters.
(composite_pgp_kem_decrypt): Follow the changes.
(ecc_kem_decrypt): New.
(agent_kem_decrypt): Support ECC KEM.

--

GnuPG-bug-id: 7649
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2025-05-21 14:49:56 +09:00
Werner Koch
2bbcbbcbe8
doc: Add a note to READ on how to disable the systemd activation.
--

A common problem with a self-build gnupg is that systemd starts
another version of a daemon while the self-build gnupg has a different
idea on the provided features of those daemons.
2025-05-20 10:22:40 +02:00
NIIBE Yutaka
eb9c39ac5b
agent: Refactor ECC KEM decap operation.
* agent/pkdecrypt.c (ecc_table): Don't include shared_len.
(ecc_pgp_kem_decap): Rename from ecc_pgp_kem_decrypt and
only do ECC KEM decap operation.
(composite_pgp_kem_decrypt): Move ECC KDF call here.

--

GnuPG-bug-id: 7649
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2025-05-20 16:27:36 +09:00
NIIBE Yutaka
d1c3bfda2a
gpg: Use the KEM API for ECC encryption.
* g10/ecdh.c (gnupg_ecc_6637_kdf): New.
(pk_ecdh_encrypt_with_shared_point, gen_k): Remove.
(pk_ecdh_generate_ephemeral_key): Remove.
* g10/pkglue.c (get_data_from_sexp): Remove.
(do_encrypt_ecdh): Use gcry_kem_encap of the KEM API,
gnupg_ecc_6637_kdf, and AESWRAP.
* g10/pkglue.h (gnupg_ecc_6637_kdf): New.
(pk_ecdh_encrypt_with_shared_point): Remove.
(pk_ecdh_generate_ephemeral_key, pk_ecdh_encrypt): Remove.

--

GnuPG-bug-id: 7649
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2025-05-19 14:57:19 +09:00
Werner Koch
fcac10357e
gpg: Remove unused variable.
* g10/export.c (do_export): Remove zfx.
2025-05-16 14:26:45 +02:00
Werner Koch
8e529f9221
gpg: Do not allow compressed key packets on import.
* g10/import.c (read_block): Bail out on compressed packets.
* g10/options.h (COMPAT_COMPR_KEYS): New.
* g10/gpg.c (compatibility_flags): Add "compr-keys".
* common/util.h: Remove replacement code not any longer needed.
(GPG_ERR_UNEXPECTED_PACKET): Add a new replacement code.
--

Compressed key packets do not make much sense but historically they
were supported.  Thus we also add a compatibility flag.

GnuPG-bug-id: 7014
2025-05-16 14:26:45 +02:00
Werner Koch
645cf7d8fc
Revert "w32: On socket nonce mismatch close the socket."
--

The commit was entirely bogus because the check_nonce function closes
the socket itself if it returns with true.  Thus closing the socket by
the caller in the true case was bogus.

The more likely cause for the hangs on Windows are in scdaemon:

  * scd: Fix posssible lockup on Windows due to a lost select
    result.  [rGa7ec3792c5]

GnuPG-bug-id: 7434
Fixes-commit: 73f6c2dd4d3e5b58faf69821726988ae984fad89.
2025-05-16 14:26:45 +02:00
NIIBE Yutaka
40cfa71281
common: Add KEM constants for NIST curves.
* common/openpgp-oid.c (oidtable): Fill the information for KEM
API for NIST curves.

--

GnuPG-bug-id: 7649
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2025-05-16 14:06:45 +09:00
NIIBE Yutaka
45a11327f3
agent: Support the use case of composite PQC for prompting.
* agent/findkey.c (agent_key_from_file): Take care of the case
where GRIP==CTRL->keygrip1.
* agent/pkdecrypt.c (composite_pgp_kem_decrypt): Use NULL for the
GRIP, it's for crypto operation where prompt is expected.

--

GnuPG-bug-id: 7648
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2025-05-14 11:41:31 +09:00
Werner Koch
d5a4a2dc89
gpg: Make combination of show-only-fpr-mbox and show-unusable-uid work.
* g10/keylist.c (list_keyblock_simple): Take care of
show-unusable-uids.
--

This allows to upload revoked keys to a WKD.

Suggested-by: Uwe Kleine-König
2025-05-13 15:46:41 +02:00
Werner Koch
e7a9bd3205
gpgsm: Just print a note for an empty subject during import.
* sm/certchain.c (gpgsm_walk_cert_chain): Handle an empty subject.
--

During import a certificate was imported but gpgsm used log_error when
trying to figure out whether this is a root cert.  This patch changes
this to just print a note.

GnuPG-bug-id: 7171
2025-05-13 15:18:39 +02:00
Werner Koch
7c2e7bcc41
agent: We should use a macro for the keygrip len in new code.
* agent/divert-scd.c (agent_card_ecc_kem): Use KEYGRIP_LEN constant.
2025-05-13 09:56:59 +02:00
NIIBE Yutaka
309cfb3a4c
agent: Fix ECC key on smartcard for composite KEM with PQC.
* agent/divert-scd.c (agent_card_ecc_kem): Convert binary keygrip to
HEXto call agent_card_pkdecrypt.  Handle the case with prefix.

--

GnuPG-bug-id: 7648
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2025-05-13 15:44:05 +09:00
NIIBE Yutaka
5fb338168e
agent: Recover the old behavior with max-cache-ttl=0.
* agent/cache.c (compute_expiration): Expire newly created entry when
max-cache-ttl is zero.

--

Fixes-commit: 92de0387f04b1e87a4a49ed063323624f25ac3ef
GnuPG-bug-id: 6681
Suggested-by: Lucas Mulling <lucas.mulling@suse.com>
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2025-05-13 09:03:09 +09:00
Werner Koch
8833a34bf0
gpg: Fully implement the group key flag.
* g10/getkey.c (merge_selfsigs_main): Do not mask out the group bit.
(merge_selfsigs_subkey): Ditto/
* g10/keygen.c (ask_key_flags_with_mask): Ditto.
(proc_parameter_file): Ditto.
--

Updates-commit: 0988e49c45d0fb73d0b536aa027bd114f9dc65a7
2025-05-12 11:54:50 +02:00
Werner Koch
727e125a4d
Update distsigkey
--

Added Alexander.  Removed Andre.
2025-05-09 16:24:18 +02:00
Werner Koch
fe347b3881
Post release updates
--
2025-05-08 11:20:33 +02:00
Werner Koch
806b0080bb
Release 2.5.6 gnupg-2.5.6 2025-05-08 10:58:37 +02:00
Collin Funk via Gnupg-devel
598296b9fc
tests:gpgscm: Fix build error on AIX.
* tests/gpgscm/ffi.c (ffi_init): Undefine 'open' so it does not get
expanded to 'open64' in the ffi_define_function macro.

--
GnuPG-bug-id: 7632
Signed-off-by: Collin Funk <collin.funk1@gmail.com>
2025-05-08 10:23:27 +02:00
Collin Funk via Gnupg-devel
8ba33fffe9
common: Add Solaris support to get_signal_name.
* configure.ac: Check for _sys_siglist.
* common/signal.c (get_signal_name): Use _sys_siglist.

--

GnuPG-bug-id: 7638
Signed-off-by: Collin Funk <collin.funk1@gmail.com>
2025-05-08 10:22:47 +02:00
Mattia Narducci via Gnupg-devel
1fea386691
po: Fix misspelled italian translation for 'encrypted'
[[PGP Signed Part:No public key for 4893CA2AF4416CED created at 2025-04-16T23:13:02+0200 using EDDSA]]
--

Signed-off-by: Mattia Narducci <mattianarducci1@gmail.com>
2025-05-08 10:22:02 +02:00
Werner Koch
581d8bd087
Update NEWS
--
2025-05-06 16:16:11 +02:00
Werner Koch
9589da97e2
gpgsm: Always print info about certs-only message.
* sm/verify.c (gpgsm_verify): Always print info that a certs-only
message has been processed.
--

Prior to this patch the message was only printed if no data file has
been given.

Reported-by: Albrecht Dreß
2025-05-06 13:47:51 +02:00
Werner Koch
483f2ba02e
gpg: Fix another regression due to the T7547 fix.
* g10/getkey.c (get_pubkey_for_sig): Keep a requested
PUBKEY_USAGE_CERT.
(finish_lookup): For correctness in future use cases allow
PUBKEY_USAGE_CERT to also trigger verify mode.
--

The case here was that a cert-only primary key was removed with
export-clean.

GnuPG-bug-id: 7583
2025-05-02 12:05:36 +02:00
Werner Koch
8968e84903
common: Fix logic for certain recsel conditions.
* common/recsel.c (recsel_select): Change processing of NULL values.
* common/t-recsel.c (run_test_2): Adjust for this change.  Also a type
fix for s/"letter"/"letters"/.
--

The getval function may return NULL which indicates that there is no
useful value available.  For example because the propertyname is not
defined for some external context (e.g. in gpg the packet type).  This
also required to fix the test for boolean tests of a non existing
property name.

Reported-by: shniubobo at gnupg-users on 2025-04-18.
2025-04-30 15:13:11 +02:00
Werner Koch
a9445bbb1d
gpg: Add debug flag "recsel".
* g10/gpg.c: Include recsel.h.
(debug_flags): New flag "recsel".
(set_debug): Set it.
* g10/options.h (DBG_RECSEL_VALUE, DBG_RECSEL): New.
* g10/import.c (impex_filter_getval): Add debug diagnostics.
* g10/keylist.c (parse_and_set_list_filter): Dump the record filter.
* common/recsel.c (recsel_debug): New variable.
(recsel_set_debug): New function.
(recsel_select): Add debug output if requested.
2025-04-30 15:06:40 +02:00
Werner Koch
28591a9f3a
doc: Register DCO for Collin Funk
--
2025-04-30 10:40:27 +02:00
Collin Funk
3c5a143945
Fix access to the bintoasc mapping in the libksba support.
* common/ksba-io-support.c (has_only_base64): Use memchr since calling
strchr on a non-NUL terminated string is undefined behavior.

--

Signed-off-by: Collin Funk <collin.funk1@gmail.com>

This patch has been stripped from Colin's original patch because this
is not just about a warning but an actual bug.  That bug was
introduced in 2003 by me.  - wk
2025-04-30 10:36:18 +02:00
Werner Koch
d90b290f97
gpg: New command --quick-tsign-key.
* g10/gpg.c (aQuickTSignKey): New.
(opts): Add new command.
(main): Parse args for it.
* g10/keyedit.c: Include mbox-util.h.
(parse_trustsig_string): New.
(sign_uids): Add arg trustsig for use in quick mode.
(keyedit_quick_sign): Also add arg trustsig and print a diagnostic on
error.
2025-04-29 18:35:29 +02:00
Werner Koch
6d49e86bba
gpg: Make the internal sign_uids function easier to read.
* g10/keyedit.c (SIGN_UIDS_LOCAL): New.
(SIGN_UIDS_NONREVOCABLE): New.
(SIGN_UIDS_TRUSTSIG): New.
(SIGN_UIDS_INTERACTIVE): New.
(SIGN_UIDS_QUICK): New.
(sign_uids): Replace several boolean args by flags arg.
2025-04-29 16:28:00 +02:00
Werner Koch
41d6ae8f41
gpg: New list options "show-trustsig"
* g10/options.h (LIST_SHOW_TRUSTSIG): New.
* g10/gpg.c (parse_list_options): Add "show-trustsig".
* g10/keylist.c (parse_trust_name): New.
(list_signature_print): Print trust signature info.
2025-04-29 11:33:41 +02:00
Andreas Metzler
cfe7ad203a
doc: Add missing whitespace gnupg7 manpage.
--
2025-04-24 11:43:05 +02:00