From 4cb090169c31c21df63aad960993f224645203cc Mon Sep 17 00:00:00 2001 From: Saleem Rashid Date: Fri, 19 May 2017 18:20:55 +0100 Subject: [PATCH] curves: Add ed25519-sha3 & ed25519-keccak --- bip32.c | 22 ++++++++++++++++++++++ curves.c | 6 ++++++ curves.h | 6 ++++++ 3 files changed, 34 insertions(+) diff --git a/bip32.c b/bip32.c index 7810f4c43..8076d2c0b 100644 --- a/bip32.c +++ b/bip32.c @@ -48,6 +48,20 @@ const curve_info ed25519_info = { 0 }; +const curve_info ed25519_sha3_info = { + /* bip32_name */ + "ed25519-sha3 seed", + 0 +}; + +#if USE_KECCAK +const curve_info ed25519_keccak_info = { + /* bip32_name */ + "ed25519-keccak seed", + 0 +}; +#endif + const curve_info curve25519_info = { /* bip32_name */ "curve25519 seed", @@ -548,6 +562,14 @@ const curve_info *get_curve_by_name(const char *curve_name) { if (strcmp(curve_name, ED25519_NAME) == 0) { return &ed25519_info; } + if (strcmp(curve_name, ED25519_SHA3_NAME) == 0) { + return &ed25519_sha3_info; + } +#if USE_KECCAK + if (strcmp(curve_name, ED25519_KECCAK_NAME) == 0) { + return &ed25519_keccak_info; + } +#endif if (strcmp(curve_name, CURVE25519_NAME) == 0) { return &curve25519_info; } diff --git a/curves.c b/curves.c index e2fa10239..42863cdb0 100644 --- a/curves.c +++ b/curves.c @@ -20,7 +20,13 @@ * OTHER DEALINGS IN THE SOFTWARE. */ +#include "curves.h" + const char SECP256K1_NAME[] = "secp256k1"; const char NIST256P1_NAME[] = "nist256p1"; const char ED25519_NAME[] = "ed25519"; +const char ED25519_SHA3_NAME[] = "ed25519-sha3"; +#if USE_KECCAK +const char ED25519_KECCAK_NAME[] = "ed25519-keccak"; +#endif const char CURVE25519_NAME[] = "curve25519"; diff --git a/curves.h b/curves.h index dc99bc66f..cd95e0848 100644 --- a/curves.h +++ b/curves.h @@ -23,9 +23,15 @@ #ifndef __CURVES_H__ #define __CURVES_H__ +#include "options.h" + extern const char SECP256K1_NAME[]; extern const char NIST256P1_NAME[]; extern const char ED25519_NAME[]; +extern const char ED25519_SHA3_NAME[]; +#if USE_KECCAK +extern const char ED25519_KECCAK_NAME[]; +#endif extern const char CURVE25519_NAME[]; #endif