Curve25519 support.
authorNIIBE Yutaka <gniibe@fsij.org>
Thu, 6 Aug 2015 08:00:41 +0000 (17:00 +0900)
committerNIIBE Yutaka <gniibe@fsij.org>
Thu, 6 Aug 2015 08:00:41 +0000 (17:00 +0900)
commite5891a82c39997b65ce9ff90eb6120db7bedd399
treeec14c5e240a419bb15eb4edeabdc75eee76de836
parenta6e40530898622fbc5d76557a7da5e69368ecaa4
Curve25519 support.

* agent/cvt-openpgp.c (get_keygrip): Handle Curve25519.
(convert_secret_key, convert_transfer_key): Ditto.
* common/openpgp-oid.c (oidtable): Add Curve25519.
(oid_crv25519, openpgp_oid_is_crv25519): New.
* common/util.h (openpgp_oid_is_crv25519): New.
* g10/ecdh.c (pk_ecdh_encrypt_with_shared_point): Handle the case
with Montgomery curve which uses x-only coordinate.
* g10/keygen.c (gen_ecc): Handle Curve25519.
(ask_curve): Change the API and second arg is to return subkey algo.
(generate_keypair, generate_subkeypair): Follow chage of ask_curve.
* g10/keyid.c (keygrip_from_pk): Handle Curve25519.
* g10/pkglue.c (pk_encrypt): Handle Curve25519.
* g10/pubkey-enc.c (get_it): Handle the case with Montgomery curve.
* scd/app-openpgp.c (ECC_FLAG_DJB_TWEAK): New.
(send_key_attr): Work with general ECC, Ed25519, and Curve25519.
(get_public_key): Likewise.
(ecc_writekey): Handle flag_djb_tweak.

--

When libgcrypt has Curve25519, GnuPG now supports Curve25519.
agent/cvt-openpgp.c
common/openpgp-oid.c
common/util.h
g10/ecdh.c
g10/keygen.c
g10/keyid.c
g10/pkglue.c
g10/pubkey-enc.c
scd/app-openpgp.c