#ifndef LIGHTNING_COMMON_KEY_DERIVE_H #define LIGHTNING_COMMON_KEY_DERIVE_H #include "config.h" #include #include struct pubkey; struct privkey; struct secret; /* For `localkey`, `remotekey`, `local-delayedkey` and `remote-delayedkey` */ bool derive_simple_key(const struct pubkey *basepoint, const struct pubkey *per_commitment_point, struct pubkey *key); bool derive_simple_privkey(const struct secret *base_secret, const struct pubkey *basepoint, const struct pubkey *per_commitment_point, struct privkey *key); /* For `revocationkey` */ bool derive_revocation_key(const struct pubkey *basepoint, const struct pubkey *per_commitment_point, struct pubkey *key); bool derive_revocation_privkey(const struct secret *base_secret, const struct secret *per_commitment_secret, const struct pubkey *basepoint, const struct pubkey *per_commitment_point, struct privkey *key); struct ext_key; bool bip32_pubkey(const struct ext_key *bip32_base, struct pubkey *pubkey, u32 index); #endif /* LIGHTNING_COMMON_KEY_DERIVE_H */