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

10852 Commits

Author SHA1 Message Date
NIIBE Yutaka
fde915af1c
agent: Fix for the prefix 0x40 in the point representation.
* agent/pkdecrypt.c (ECC_CURVE25519_INDEX): New.
(ecc_pgp_kem_decap): Handle the prefix 0x40 for Curve25519.

--

GnuPG-bug-id: 7676
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2025-06-06 14:13:05 +09:00
NIIBE Yutaka
27e6622322
scd: Take care of possible buffer overflow in do_auth.
* scd/app-openpgp.c (do_auth): Check the length in the heuristic.

--

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2025-06-05 10:24:07 +09:00
NIIBE Yutaka
eb7d5d4d85
scd: Fix detecting digest OID in the message to be signed.
* scd/app-openpgp.c (do_auth): Don't exclude Ed25519 for removing
digest OID.

--

GnuPG-bug-id: 7589
Fixes-commit: 3132bd90dc8db9c7fd19ba201918e95891306dc5
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2025-06-04 13:53:58 +09:00
NIIBE Yutaka
2436afa057
po: Update Japanese Translation.
--

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2025-06-03 14:00:20 +09:00
NIIBE Yutaka
16ee68259d
gpg,regexp: Use -DREGEXP_PREFIX=gnupg_.
* g10/Makefile.am (AM_CPPFLAGS): Add -DREGEXP_PREFIX=gnupg_
* regexp/Makefile.am (AM_CPPFLAGS): Likewise.
* regexp/jimregexp.h (ADD_PREFIX): New.
(regcomp, regexec, regerror, regfree): Use ADD_PREFIX.

--

GnuPG-bug-id: 7668
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2025-06-03 11:37:07 +09:00
NIIBE Yutaka
95d0adfc56
gpgtar: Fix releasing PROC correctly.
* tools/gpgtar-extract.c (gpgtar_extract): Initialize PROC as NULL,
and release at the end for the case of jumping to "leave:" label.
* tools/gpgtar-list.c (gpgtar_list): Release at the end.

--

Fixes-commit: 29bc14f56f6430294f225b6744012ab1f5df62e6
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2025-06-03 11:12:37 +09:00
Werner Koch
87938a72f2
Post release updates.
--

Note that this also includes a minor fix in the wixlib description
which is actually part of gnupg-w32-2.5.7_20250602.wixlib.
2025-06-02 17:55:13 +02:00
Werner Koch
0eb62ee117
Release 2.5.7 gnupg-2.5.7 2025-06-02 16:52:18 +02:00
Werner Koch
a83fe3fb1c
nsis: Install the help files.
* build-aux/speedo/w32/inst.nsi: Install the template files.
--

The help files are not very well known but we should at least install
some.  We also install those for the wks-utils in case we will ever
support gpg-wks-server of gpg-mail-tube on Windows.
Release 2.5.7
2025-06-02 16:52:16 +02:00
Werner Koch
bb150d41e6
po: msgmerge
--
2025-06-02 15:43:04 +02:00
Werner Koch
2b5e26dbef
po: Update German translation
--
2025-06-02 15:41:10 +02:00
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