gnupg/agent
Werner Koch c03ba92576
gpg: Fix writing ECDH keys to OpenPGP smartcards.
* agent/command.c (cmd_keytocard): Add new arg for ECDH params.
* scd/app-openpgp.c (ecc_writekey): Use provided ECDH params to
compute the fingerprint.
* g10/call-agent.c (agent_keytocard): Add arg ecdh_param_str.
* g10/keyid.c (ecdh_param_str_from_pk): New.
* g10/card-util.c (card_store_subkey): Pass ECDH params to writekey.
* g10/keygen.c (card_store_key_with_backup): Ditto.

* scd/app-openpgp.c (store_fpr): Add arg update.
(rsa_read_pubkey, ecc_read_pubkey): Add arg meta_update and avoid
writing the fingerprint back to the card if not set.
(read_public_key): Also add arg meta_update.
(get_public_key): Do not pass it as true here...
(do_genkey): ... but here.
(rsa_write_key, ecc_writekey): Force string the fingerprint.
--

The problem showed up because in 2.4 we changed the standard ECDH
parameter some years ago.  Now when trying to write an ECDH key
created by 2.2 with 2.4 to an openpgp card, scdaemon computes a wrong
fingerprint and thus gpg was not able to find the key again by
fingerprint.

The patch also avoids updating the stored fingerprint in certain
situations.

This fix is somewhat related to
GnuPG-bug-id: 6378
2023-04-21 15:23:29 +02:00
..
ChangeLog-2011 Fix typos 2015-10-28 10:20:17 +01:00
Makefile.am build: Remove Windows CE support. 2022-12-09 14:06:08 +09:00
agent.h agent: Make --disable-extended-key-format a dummy option. 2023-03-13 08:53:50 +01:00
all-tests.scm tests: Support semihosted environment. 2022-12-01 13:59:06 +09:00
cache.c agent: Fix SEGV when debuging for cache enabled. 2020-10-09 13:57:29 +09:00
call-daemon.c agent,gpg,tools: Fix use of log_get_fd. 2022-06-22 13:34:06 +09:00
call-pinentry.c agent: Try to SETREPEATOK if the pinentry supports it. 2023-03-09 20:12:07 -08:00
call-scd.c agent: Handle USAGE information in KEYINFO. 2022-05-26 14:01:03 +09:00
call-tpm2d.c agent: always use hexgrip when storing key password 2022-01-24 22:22:05 +01:00
command-ssh.c ssh: Allow to prefer on-disk keys over active card keys. 2023-04-18 09:04:27 +02:00
command.c gpg: Fix writing ECDH keys to OpenPGP smartcards. 2023-04-21 15:23:29 +02:00
cvt-openpgp.c agent: Make --disable-extended-key-format a dummy option. 2023-03-13 08:53:50 +01:00
cvt-openpgp.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
divert-scd.c agent: Move confirmation handling into findkey.c. 2022-05-20 13:43:08 +09:00
divert-tpm2.c agent: Move confirmation handling into findkey.c. 2022-05-20 13:43:08 +09:00
findkey.c agent: Make --disable-extended-key-format a dummy option. 2023-03-13 08:53:50 +01:00
genkey.c agent: Make --disable-extended-key-format a dummy option. 2023-03-13 08:53:50 +01:00
gpg-agent-w32info.rc w32: Add icons and version information. 2013-05-07 21:35:48 +02:00
gpg-agent.c agent: Make --disable-extended-key-format a dummy option. 2023-03-13 08:53:50 +01:00
keyformat.txt ssh: Allow to prefer on-disk keys over active card keys. 2023-04-18 09:04:27 +02:00
learncard.c agent: Allow signing with card key even without a stub key. 2020-02-13 11:45:41 +01:00
pkdecrypt.c agent: Show "no secret key" instead of "card removed". 2023-03-01 16:49:40 +01:00
pksign.c agent: Move confirmation handling into findkey.c. 2022-05-20 13:43:08 +09:00
preset-passphrase.c agent: New option --restricted for PRESET_PASSPHRASE. 2023-03-27 11:47:28 +02:00
protect-tool.c agent: Make --disable-extended-key-format a dummy option. 2023-03-13 08:53:50 +01:00
protect.c agent: Make --disable-extended-key-format a dummy option. 2023-03-13 08:53:50 +01:00
sexp-secret.c agent: Avoid uninitialized buffer. 2021-11-12 15:36:02 +09:00
t-protect.c agent: Make --disable-extended-key-format a dummy option. 2023-03-13 08:53:50 +01:00
trans.c agent: Replace most assert by log_assert. 2019-05-14 10:31:46 +02:00
trustlist.c agent: Add trustlist flag "de-vs". 2023-04-03 14:10:33 +02:00
w32main.c Spelling cleanup. 2020-02-18 18:07:46 -05:00
w32main.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00