1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-12-22 10:19:57 +01:00

10704 Commits

Author SHA1 Message Date
NIIBE Yutaka
ab8a2408a3
scd: Use gpgrt_spawn_actions_set_env_rev to have clean semantics.
* scd/app.c (report_change): Use gpgrt_spawn_actions_set_env_rev.

--

It's UTF-8 string.

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2024-12-20 11:45:45 +09:00
NIIBE Yutaka
893e5e7c6f
agent: Clean up for the refactoring.
* agent/call-scd.c (agent_card_pkdecrypt): Remove unused variables.

--

Fixes-commit: fe147645d2397dd77b646a253965c5994f360f26
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2024-12-16 10:19:26 +09:00
NIIBE Yutaka
aa36f6ae8b
gpg: Fix key generation with existing key from card.
* g10/keygen.c (ask_algo): Fix condition.  Continue the loop when
failure.

--

Fixes-commit: e7891225788ab5f6d050a06643b1f488c227771f
GnuPG-bug-id: 7309, 7457
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2024-12-16 09:56:24 +09:00
Werner Koch
36dbca3e69
gpg: Allow for longer signature subpackets.
* g10/parse-packet.c (parse_signature): Increase the cap for hashed
subpackets to 30000.  Print the value in the error message.  Do not
return an error but skip a too long signature.
--

The limit of 10000 served us well for decades but given the option to
put a key into the signature, a larger limit will eventually be
useful.  The second part makes things a bit robust against rogue
subpackets on a keyserver.
2024-12-09 13:23:39 +01:00
Werner Koch
4c830b240c
speedo: Change the default to build a 64 bit version
* build-aux/speedo.mk (W32VERSION): Default to 64 bit.
* build-aux/speedo/w32/inst.nsi: Remove the doc dir.
2024-12-06 12:21:37 +01:00
Werner Koch
7b2748c6d8
gpg: Silence expired trusted-key diagnostics in quiet mode.
* g10/trustdb.c (validate_keys): Take care of --quiet.
--

GnuPG-bug-id: 7351
2024-12-05 16:32:25 +01:00
Werner Koch
0f76dd905d
Post release updates
--
2024-12-05 11:30:56 +01:00
Werner Koch
84e1781201
Release 2.5.2 gnupg-2.5.2 2024-12-05 11:13:14 +01:00
Werner Koch
2efcbbea67
po: Run msgmerge
--
2024-12-05 11:08:35 +01:00
Werner Koch
fba1d1089d
po: Update German translation
--
2024-12-05 11:08:09 +01:00
NIIBE Yutaka
fe147645d2
agent: Use SETDATA --apend for larger data to communicate scdaemon.
* agent/call-scd.c (prepare_setdata): New.
(agent_card_pksign): Use prepare_setdata for SETDATA.
(agent_card_pkdecrypt): Likewise.

--

GnuPG-bug-id: 7436
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2024-12-05 15:31:23 +09:00
Werner Koch
c3bab200d9
Require gpgrt 1.51
* configure.ac (NEED_GPGRT_VERSION): Bump to 1.51.

* g10/keydb.c (internal_keydb_update_keyblock) [!USE_TOFU]: Mark an
arg unused.
* common/homedir.c (create_common_conf) [!BUILD_WITH_KEYBOXD]: Mark an
arg unused.
2024-12-04 11:04:41 +01:00
Werner Koch
7b0be541a9
w32: Introduce Registry key GNUPG_ASSUME_COMPLIANCE.
* common/compliance.c (get_assumed_de_vs_compliance): Also consider a
registry entry.
--

On Windows it is easier to set the registry key than to use an envvar.
2024-12-04 11:02:33 +01:00
Daniel Cerqueira
7b0d49785d
po: Update Portuguese Translation.
Signed-off-by: Daniel Cerqueira <dan.git@lispclub.com>
2024-12-02 13:39:39 +01:00
Kisaragi Hiu
4de9028164
po: Update Traditional Chinese Translation.
--
- Follow conventions from other zh_TW user interfaces
  - Use "確定" for "OK" like KDE
  - Remove extra space between keyboard accelerator like in "取消(_C)"
- Follow conventions of modern zh_TW
  - Character -> 字元
  - 衹有 -> 「只」有
- Fix some "pinentry" translations
  Sometimes it was translated as an entry of PIN codes among a list and
  not the "pinentry" tool

Signed-off-by: Kisaragi Hiu <mail@kisaragi-hiu.com>
2024-11-25 11:40:32 +01:00
NIIBE Yutaka
52616ae81d
gpg: Fix modifying signature data by pk_verify for Ed25519.
* g10/pkglue.c (pk_verify): When fixing R and S, make sure those are
copies.

--

GnuPG-bug-id: 7426
Fixing-commit: 0a5a854510fda6e6990938a3fca424df868fe676
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>

Also avoid clearing the error by the S code of a failed mpi_print of
R.

Signed-off-by: Werner Koch <wk@gnupg.org>
2024-11-25 11:05:58 +01:00
Werner Koch
73f3d98444
common: Change daemon startup timeout from 5 to 8 seconds.
* common/asshelp.c (SECS_TO_WAIT_FOR_AGENT): Change from 5 to 8
seconds.
(SECS_TO_WAIT_FOR_KEYBOXD): Ditto.
(SECS_TO_WAIT_FOR_DIRMNGR): Ditto.
--

Experience on Windows showed that right after re-booting we may need
some more time to get things up.
2024-11-25 10:37:02 +01:00
Werner Koch
bb6b38c240
gpg: Fix comparing ed448 vs ed25519 with --assert-pubkey-algo.
* g10/keyid.c (extra_algo_strength_offset): New.
(compare_pubkey_string_part): Use the mapping.
--

GnuPG-bug-id: 6425
2024-11-22 16:46:15 +01:00
Werner Koch
f0bca16ad3
doc: Explain that qualified.txt is a legacy method.
--
2024-11-22 13:44:43 +01:00
NIIBE Yutaka
261a08566e
scd: No hard lock-up when apdu_connect never returns.
* scd/app.c (new_card_lock): New.
(select_application): Scanning is serialized by NEW_CARD_LOCK.
For app_new_register, we hold the W-lock.
(initialize_module): Initialize NEW_CARD_LOCK.

--

GnuPG-bug-id: 7402
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2024-11-18 14:25:58 +09:00
Werner Koch
17b766b0a3
gpgconf: Include a minimal secure version in the --query-swdb output.
* tools/gpgconf.c (query_swdb): Parse the new minver tag.
2024-11-15 09:36:27 +01:00
Werner Koch
e5f450f3bb
gpg: Consider Kyber to be de-vs compliant.
* common/compliance.c (gnupg_pk_is_compliant) <CO_DE_VS>: Consider
Brainpool Kyber variants compliant.
(gnupg_pk_is_allowed): Ditto.
(assumed_de_vs_compliance): Remove variable.
(get_assumed_de_vs_compliance): New.
(get_compliance_cache): Use new accessor.
(gnupg_status_compliance_flag): Ditto.
--

Use

  GNUPG_ASSUME_COMPLIANCE=de-vs gpg --compliance=de-vs ....

for testing.  This returns 2023 instead of 23 to indicate the
non-approval state.

GnuPG-bug-id: 6638
2024-11-14 15:15:11 +01:00
Werner Koch
996e8ae3cb
gpg: Allow "Kyber" as algorithm for the Subkey-Type keyword.
* g10/keygen.c (get_parameter_algo): Make "KYBER" to
PUBKEY_ALGO_KYBER.
--

GnuPG-bug-id: 7397
2024-11-14 14:26:21 +01:00
Werner Koch
7e066f614a
gpg: For composite algos add the algo string to the colons listings.
* g10/keylist.c (list_keyblock_colon): Put the algo string into the
curve field for Kyber.
--

GnuPG-bug-id: 6638
2024-11-14 14:04:50 +01:00
Werner Koch
6b02292d31
gpg: Add option to create Kyber with --full-gen-key.
* g10/keygen.c (PQC_STD_KEY_PARAM_PRI, PQC_STD_KEY_PARAM_SUB): New.
(PQC_STD_KEY_PARAM): Construct from above.
(gen_kyber): Allow short curve names.
(ask_algo): Add Entry for ecc+kyber.
(ask_kyber_variant): New.
(generate_keypair): Generate ECC primary and Kyber sub.
--

GnuPG-bug-id: 6638
2024-11-13 16:13:43 +01:00
Werner Koch
d54db0ac42
gpgconf: Show also the used nPth version with -V
* dirmngr/dirmngr.c (gpgconf_versions): Get and show nPth version.
--

Note that this requires nPth 1.8
2024-11-12 12:07:24 +01:00
Werner Koch
813bd4f3d2
gpg-mail-tube: Fix content type for an attached non-plaintext.
* tools/gpg-mail-tube.c (mail_tube_encrypt): Fix content type for an
attached message.
--

We can't use message/rfc822 if we encrypt this message as a simple PGP
file.
2024-11-12 12:07:24 +01:00
NIIBE Yutaka
d994ffc56a
scd: Clean up app_send_active_apps and app_send_card_list.
* scd/app.c (send_card_and_app_list): Only handle the case with
WANTCARD=NULL.
(app_send_card_list): Follow the change.
(app_send_active_apps): Factor out the case with WANTCARD!=NULL.

--

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2024-11-12 15:36:35 +09:00
NIIBE Yutaka
2f6b479919
scd: Fix a memory leak.
* scd/app-help.c (app_help_read_length_of_cert): Free the BUFFER.

--

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2024-11-11 13:49:06 +09:00
NIIBE Yutaka
b1f2695d24
scd: Fix resource leaks on error paths.
* scd/app-dinsig.c (do_readcert): Don't return directly but care about
releasing memory.
* scd/app-nks.c (readcert_from_ef): Likewise.

--

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2024-11-11 09:51:54 +09:00
Werner Koch
d37971b45f
gpg: Improve wording for only-pubkeys.
* g10/import.c (parse_import_options): Add a description to
only-pubkeys.
--

See gnupg-devel for a brief discussion.
2024-11-08 08:35:04 +01:00
Werner Koch
74e81f830d
gpgtar: Make sure to create upper directories for regular files.
* tools/gpgtar-extract.c (extract_directory): Factor parent directory
creation out to ..
(try_mkdir_p): new.
(extract_regular): Create directory on ENOENT.

* g10/pubkey-enc.c (get_it): Use log_info instead of log_error if the
public key was not found for preference checking.
--

If tarball was created with
    tar cf tarball file1.txt foo/file2.txt
the tarball has no entry for foo/ and thus the extraction fails. This
patch fixes this.

GnuPG-bug-id: 7380

The second patch avoid a wrong exist status status line due to the use
of log_error.  But the actual cause needs stuill needs tobe
investigated.
2024-11-07 15:06:17 +01:00
Werner Koch
567fb6eaa0
gpg-mail-type: Assume text/plain for missing content-type.
* tools/gpg-mail-tube.c (mail_tube_encrypt): Rename var ct_text for
clarity.  Replace debug diagnostic by log_info. Assume text/plain for
missing content-type.
--

Without this fix we would create message/rfc822 attachment instead of
a text/plain attachment with the encrypted body.
2024-11-07 10:51:04 +01:00
Werner Koch
b389e04ef5
gpgtar: Use log-file from common.conf only in --batch mode.
* tools/gpgtar.c (main): Do it.
--

This makes the interactive use of gpgtar more convenient and is more
aligned to what gpg and gpgsm do.
2024-11-07 10:51:04 +01:00
NIIBE Yutaka
8359f2e498
scd: Fix getinfo active_apps.
* scd/app.c (send_card_and_app_list): Avoid locking recursively.

--

Fixes-commit: 25a140542a9186a27b7df9cd3ca3d478b59cbf1b
GnuPG-bug-id: 7323
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2024-11-07 08:59:01 +09:00
NIIBE Yutaka
25a140542a
scd: Serialize CARD access for send_card_and_app_list.
* scd/app.c (send_card_and_app_list): Lock the CARD.

--

GnuPG-bug-id: 7323
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2024-11-06 11:36:48 +09:00
Werner Koch
88b04b47e7
po: Align German trustlist question to what we use in Kleopatra.
--

This replaces our long standing wedding style prompt to something more
straight.
2024-11-05 11:49:57 +01:00
Werner Koch
d30e345692
gpg: Allow the use of an ADSK subkey as ADSK subkey.
* g10/packet.h (PKT_public_key): Increased size of req_usage to 16.
* g10/getkey.c (key_byname): Set allow_adsk in the context if ir was
requested via req_usage.
(finish_lookup): Allow RENC usage matching.
* g10/keyedit.c (append_adsk_to_key): Adjust the assert.
* g10/keygen.c (prepare_adsk): Also allow to find an RENC subkey.
--

If an ADSK is to be added it may happen that an ADSK subkey is found
first and this should then be used even that it does not have the E
usage.  However, it used to have that E usage when it was added.

While testing this I found another pecularity: If you do
  gpg -k ADSK_SUBKEY_FPR
without the '!' suffix and no corresponding encryption subkey is dound,
you will get an unusabe key error.  I hesitate to fix that due to
possible side-effects.

GnuPG-bug-id: 6882
2024-10-31 15:11:55 +01:00
NIIBE Yutaka
a7c81efe51
agent: Fix status output for LISTTRUSTED.
* agent/trustlist.c (istrusted_internal): When LISTMODE is enabled,
TRUSTLISTFPR status output should be done.

--

GnuPG-bug-id: 7363
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
Fixes-commit: 4275d5fa7a51731544d243ba16628a9958ffe3ce
2024-10-31 09:33:40 +01:00
Werner Koch
48aa9e8265
gpg: Do not fail with an error for a "Note:" diagnostic
* g10/trustdb.c (validate_keys): Use log_info instead of log_error for
not found or expired UTKs.
--

Actually the not-found case used log_error for decades.  The
semantically simialr expired case did thus the same.  The actual
problem is for example in the import case where gpg exits with a
failure despite that a key validation was requested.

GnuPG-bug-id: 7351
2024-10-30 08:13:55 +01:00
Werner Koch
39aa206dc5
speedo: Enable additional runtime protections on Windows.
* build-aux/speedo.mk (speedo_w32_cflags): Remove -mms-bitfields
because it is for a long time the gcc default.  Enable control flow
protection.
--

Note that due to mingw static linking problems with libssp the stack
protector is not yet enabled.

(cherry picked from commit afe87ffc08e14317f4ef5bbe2940d07203a43808)
2024-10-29 13:45:14 +01:00
Werner Koch
18081e2ecf
gpgsm: Terminate key listing on output write error.
* sm/keylist.c (list_internal_keys): Detect write errors to the output
stream.

* sm/server.c (any_failure_printed): New var.
(gpgsm_status2): Handle new var.  Move statusfp init to ...
(gpgsm_init_statusfp): new function.
(gpgsm_exit_failure_status): New.
* sm/gpgsm.c (main): Explicit statusfp init.
(gpgsm_exit): Print failure status on error.
--
Test by using

  gpgsm -k >/dev/full
  gpgsm -k --wit-colons >/dev/full

and also by redirecting to a file on a small partition.

GnuPG-bug-id: 6185
2024-10-23 11:43:08 +02:00
NIIBE Yutaka
40707c8bff
agent: Fix resource leak for PRIMARY_CTX.
* agent/call-daemon.c (wait_child_thread): Call assuan_release for
PRIMARY_CTX when it's kept for reuse.

--

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2024-10-22 09:51:03 +09:00
Werner Koch
51b7bb9106
common: Fix test for the assumed compliance.
* common/compliance.c (gnupg_status_compliance_flag): Fix test.
--

In general the cache is used to query this flag but in this function
it is used directly and we need to adjust the test.

Thanks to Ingo for reporting this.
2024-10-21 17:08:59 +02:00
NIIBE Yutaka
347ab07c62
build: Don't remove --disable-endian-check.
* configure.ac (WORDS_BIGENDIAN): Use the autoconf macro,
instead of our own BIG_ENDIAN_HOST.
(DISABLED_ENDIAN_CHECK): Keep --disable-endian-check supported.
* g10/rmd160.c (transform): Use WORDS_BIGENDIAN.

--

Fixes-commit: f8bf5e01f76620cc550253cc2575754872cf64aa
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2024-10-16 11:41:46 +09:00
NIIBE Yutaka
71840b57f4
common: Fix a race condition in creating socketdir.
* common/homedir.c (_gnupg_socketdir_internal): Check return code
of gnupg_mkdir and handle the case of GPG_ERR_EEXIST.

--

GnuPG-bug-id: 7332
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2024-10-16 10:04:18 +09:00
Werner Koch
374195e741
gpgsm: Fix cached istrusted lookup.
* sm/call-agent.c (gpgsm_agent_istrusted): Actually set istrusted
list.
--

Fixes-commit: 9087c1d3637cf1c61744ece0002dc0dc5675d7c9
2024-10-15 09:45:55 +02:00
Werner Koch
f8b1b7b4df
dirmngr: Print a brief list of URLs with LISTCRLS.
* dirmngr/crlcache.c (crl_cache_list): Print a summary of URLs.

* sm/call-dirmngr.c (gpgsm_dirmngr_run_command): Print a notice to
stdout if the dirmngr has been disabled.
--

GnuPG-bug-id: 7337
2024-10-14 16:48:37 +02:00
NIIBE Yutaka
f8bf5e01f7
build: Use AC_C_BIGENDIAN for detecting endian.
* acinclude.m4 (GNUPG_CHECK_ENDIAN): Remove.
* configure.ac (BIG_ENDIAN_HOST): Use AC_C_BIGENDIAN
to detect endian and set BIG_ENDIAN_HOST.

--

Reported-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2024-10-11 09:57:49 +09:00
NIIBE Yutaka
57dce1ee62
common,gpg,scd,sm: Fix for Curve25519 OID supporting new and old.
* common/util.h (openpgp_curve_to_oid): Add new argument to select OID
by OpenPGP version.
* common/openpgp-oid.c (openpgp_curve_to_oid): Implement returning
selected OID for Curve25519.
* common/openpgp-fpr.c (compute_openpgp_fpr_ecc): Follow the change,
selecting by the version.
* g10/export.c (match_curve_skey_pk): Likewise.
(transfer_format_to_openpgp): Likewise.
* g10/gpg.c (list_config): Likewise, print new OID.
* g10/keygen.c (ecckey_from_sexp): Likewise, selecting by the version.
* sm/encrypt.c (ecdh_encrypt): Likewise, don't care.
* sm/minip12.c (build_ecc_key_sequence): Likewise, new OID.
* scd/app-openpgp.c (ecdh_params, gen_challenge): Likewise, don't
care.
(ecc_read_pubkey, change_keyattr_from_string, ecc_writekey): Likewise,
old OID.

--

GnuPG-bug-id: 7316
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
2024-10-08 15:25:41 +09:00