mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-03 22:56:33 +02:00
gpg: Pass ECDH parameters to OpenPGP smartcards
* 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.
--
Backported from 2.4 - here the gpg part.
See-commit: c03ba92576
This is related to
GnuPG-bug-id: 6378
This commit is contained in:
parent
d03d0add12
commit
92af3f88a9
6 changed files with 68 additions and 11 deletions
22
g10/keyid.c
22
g10/keyid.c
|
@ -994,3 +994,25 @@ hexkeygrip_from_pk (PKT_public_key *pk, char **r_grip)
|
|||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
/* Return a hexfied malloced string of the ECDH parameters for an ECDH
|
||||
* key from the public key PK. Returns NULL on error. */
|
||||
char *
|
||||
ecdh_param_str_from_pk (PKT_public_key *pk)
|
||||
{
|
||||
const unsigned char *s;
|
||||
unsigned int n;
|
||||
|
||||
if (!pk
|
||||
|| pk->pubkey_algo != PUBKEY_ALGO_ECDH
|
||||
|| !gcry_mpi_get_flag (pk->pkey[2], GCRYMPI_FLAG_OPAQUE)
|
||||
|| !(s = gcry_mpi_get_opaque (pk->pkey[2], &n)) || !n)
|
||||
{
|
||||
gpg_err_set_errno (EINVAL);
|
||||
return NULL; /* Invalid parameter */
|
||||
}
|
||||
|
||||
n = (n+7)/8;
|
||||
return bin2hex (s, n, NULL);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue