From e7281cf9f5145cd81a9789a91efc8c9f0567cee8 Mon Sep 17 00:00:00 2001 From: Yura Pakhuchiy Date: Wed, 4 Apr 2018 19:39:56 +0700 Subject: [PATCH] Add GRS curve --- bip32.c | 3 +++ curves.c | 1 + curves.h | 1 + secp256k1.c | 9 +++++++++ secp256k1.h | 1 + 5 files changed, 15 insertions(+) diff --git a/bip32.c b/bip32.c index 8fd2d1ebe4..aa044bf8e8 100644 --- a/bip32.c +++ b/bip32.c @@ -687,6 +687,9 @@ const curve_info *get_curve_by_name(const char *curve_name) { if (strcmp(curve_name, SECP256K1_DECRED_NAME) == 0) { return &secp256k1_decred_info; } + if (strcmp(curve_name, SECP256K1_GROESTL_NAME) == 0) { + return &secp256k1_groestl_info; + } if (strcmp(curve_name, NIST256P1_NAME) == 0) { return &nist256p1_info; } diff --git a/curves.c b/curves.c index f81ea28ad9..5ff645c26e 100644 --- a/curves.c +++ b/curves.c @@ -24,6 +24,7 @@ const char SECP256K1_NAME[] = "secp256k1"; const char SECP256K1_DECRED_NAME[] = "secp256k1-decred"; +const char SECP256K1_GROESTL_NAME[] = "secp256k1-groestl"; const char NIST256P1_NAME[] = "nist256p1"; const char ED25519_NAME[] = "ed25519"; const char ED25519_SHA3_NAME[] = "ed25519-sha3"; diff --git a/curves.h b/curves.h index 9257dcc10d..5fbab0f413 100644 --- a/curves.h +++ b/curves.h @@ -27,6 +27,7 @@ extern const char SECP256K1_NAME[]; extern const char SECP256K1_DECRED_NAME[]; +extern const char SECP256K1_GROESTL_NAME[]; extern const char NIST256P1_NAME[]; extern const char ED25519_NAME[]; extern const char ED25519_SHA3_NAME[]; diff --git a/secp256k1.c b/secp256k1.c index 033a346367..0f5ab1afaf 100644 --- a/secp256k1.c +++ b/secp256k1.c @@ -72,3 +72,12 @@ const curve_info secp256k1_decred_info = { .hasher_sign = HASHER_BLAKE, .hasher_pubkey = HASHER_BLAKE, }; + +const curve_info secp256k1_groestl_info = { + .bip32_name = "Bitcoin seed", + .params = &secp256k1, + .hasher_bip32 = HASHER_SHA2, + .hasher_base58 = HASHER_GROESTLD_TRUNC, + .hasher_sign = HASHER_SHA2, + .hasher_pubkey = HASHER_SHA2, +}; diff --git a/secp256k1.h b/secp256k1.h index 803cde2639..a5442e50c8 100644 --- a/secp256k1.h +++ b/secp256k1.h @@ -32,5 +32,6 @@ extern const ecdsa_curve secp256k1; extern const curve_info secp256k1_info; extern const curve_info secp256k1_decred_info; +extern const curve_info secp256k1_groestl_info; #endif