Add Ed25519 support (#91)

* Add support for Ed25519 as a public key type

Ed25519 is a elliptic curve signature scheme that offers
better security than ECDSA and DSA and good performance. It may be
used for both user and host keys.

OpenSSH key import and fuzzer are not supported yet.

Initially inspired by Peter Szabo.

* Add curve25519 and ed25519 fuzzers

* Add import and export of Ed25519 keys
This commit is contained in:
Vladislav Grishenko
2020-03-11 21:09:45 +05:00
committed by GitHub
parent b2007beeb0
commit 3d12521735
30 changed files with 1288 additions and 945 deletions

View File

@@ -28,6 +28,7 @@
#include "buffer.h"
#include "dss.h"
#include "rsa.h"
#include "ed25519.h"
enum signkey_type {
#if DROPBEAR_RSA
@@ -41,6 +42,9 @@ enum signkey_type {
DROPBEAR_SIGNKEY_ECDSA_NISTP384,
DROPBEAR_SIGNKEY_ECDSA_NISTP521,
#endif /* DROPBEAR_ECDSA */
#if DROPBEAR_ED25519
DROPBEAR_SIGNKEY_ED25519,
#endif
DROPBEAR_SIGNKEY_NUM_NAMED,
DROPBEAR_SIGNKEY_ECDSA_KEYGEN = 70, /* just "ecdsa" for keygen */
DROPBEAR_SIGNKEY_ANY = 80,
@@ -78,6 +82,9 @@ struct SIGN_key {
ecc_key * ecckey521;
#endif
#endif
#if DROPBEAR_ED25519
dropbear_ed25519_key * ed25519key;
#endif
};
typedef struct SIGN_key sign_key;