From 289e39a0a359a58753f7c6cd1656fc0cdaad924e Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Mon, 23 Jul 2018 11:53:02 +0930 Subject: [PATCH] bitcoin/pubkey: add pubkey_from_secret. Really, we should have a 'struct point' since we don't use all points as pubkeys. But this is the minimal fix to avoid type cast nastiness. Signed-off-by: Rusty Russell --- bitcoin/pubkey.c | 12 ++++++++---- bitcoin/pubkey.h | 4 ++++ lightningd/test/run-commit_tx.c | 8 -------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/bitcoin/pubkey.c b/bitcoin/pubkey.c index fe49a1c2f..63d369820 100644 --- a/bitcoin/pubkey.c +++ b/bitcoin/pubkey.c @@ -28,16 +28,20 @@ void pubkey_to_der(u8 der[PUBKEY_DER_LEN], const struct pubkey *key) assert(outlen == PUBKEY_DER_LEN); } -/* Pubkey from privkey */ -bool pubkey_from_privkey(const struct privkey *privkey, - struct pubkey *key) +bool pubkey_from_secret(const struct secret *secret, struct pubkey *key) { if (!secp256k1_ec_pubkey_create(secp256k1_ctx, - &key->pubkey, privkey->secret.data)) + &key->pubkey, secret->data)) return false; return true; } +bool pubkey_from_privkey(const struct privkey *privkey, + struct pubkey *key) +{ + return pubkey_from_secret(&privkey->secret, key); +} + bool pubkey_from_hexstr(const char *derstr, size_t slen, struct pubkey *key) { size_t dlen; diff --git a/bitcoin/pubkey.h b/bitcoin/pubkey.h index daf9016a5..c433a6559 100644 --- a/bitcoin/pubkey.h +++ b/bitcoin/pubkey.h @@ -9,6 +9,7 @@ #include struct privkey; +struct secret; #define PUBKEY_DER_LEN 33 @@ -28,6 +29,9 @@ char *pubkey_to_hexstr(const tal_t *ctx, const struct pubkey *key); /* Convenience wrapper for a raw secp256k1_pubkey */ char *secp256k1_pubkey_to_hexstr(const tal_t *ctx, const secp256k1_pubkey *key); +/* Point from secret */ +bool pubkey_from_secret(const struct secret *secret, struct pubkey *key); + /* Pubkey from privkey */ bool pubkey_from_privkey(const struct privkey *privkey, struct pubkey *key); diff --git a/lightningd/test/run-commit_tx.c b/lightningd/test/run-commit_tx.c index 8696b58d2..2a80cfb2c 100644 --- a/lightningd/test/run-commit_tx.c +++ b/lightningd/test/run-commit_tx.c @@ -56,14 +56,6 @@ static struct secret secret_from_hex(const char *hex) return s; } -static bool pubkey_from_secret(const struct secret *secret, - struct pubkey *key) -{ - return secp256k1_ec_pubkey_create(secp256k1_ctx, - &key->pubkey, - secret->data); -} - static void tx_must_be_eq(const struct bitcoin_tx *a, const struct bitcoin_tx *b) {