mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-03 22:56:33 +02:00
Reworked the ECC changes to better fit into the Libgcrypt API.
See ChangeLog for details. Key generation, signing and verification works. Encryption does not yet work. Requires latest Libgcrypt changes.
This commit is contained in:
parent
a58a6b5b78
commit
0fb0bb8d9a
12 changed files with 622 additions and 359 deletions
21
g10/keyid.c
21
g10/keyid.c
|
@ -724,17 +724,20 @@ keygrip_from_pk (PKT_public_key *pk, unsigned char *array)
|
|||
|
||||
case PUBKEY_ALGO_ECDSA:
|
||||
case PUBKEY_ALGO_ECDH:
|
||||
err = gcry_sexp_build (&s_pkey, NULL,
|
||||
"(public-key(ecc(c%m)(q%m)))",
|
||||
pk->pkey[0], pk->pkey[1]);
|
||||
{
|
||||
char *curve = openpgp_oid_to_str (pk->pkey[0]);
|
||||
if (!curve)
|
||||
err = gpg_error_from_syserror ();
|
||||
else
|
||||
{
|
||||
err = gcry_sexp_build (&s_pkey, NULL,
|
||||
"(public-key(ecc(curve%s)(q%m)))",
|
||||
curve, pk->pkey[1]);
|
||||
xfree (curve);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
/* case PUBKEY_ALGO_ECDH: */
|
||||
/* err = gcry_sexp_build (&s_pkey, NULL, */
|
||||
/* "(public-key(ecdh(c%m)(q%m)(p%m)))", */
|
||||
/* pk->pkey[0], pk->pkey[1], pk->pkey[2]); */
|
||||
/* break; */
|
||||
|
||||
default:
|
||||
err = gpg_error (GPG_ERR_PUBKEY_ALGO);
|
||||
break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue