forked from ElementsProject/lightning
-
Notifications
You must be signed in to change notification settings - Fork 0
/
bolt12_merkle.h
24 lines (22 loc) · 837 Bytes
/
bolt12_merkle.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#ifndef LIGHTNING_COMMON_BOLT12_MERKLE_H
#define LIGHTNING_COMMON_BOLT12_MERKLE_H
#include "config.h"
#include <wire/bolt12_exp_wiregen.h>
/**
* merkle_tlv - bolt12-style merkle hash of this tlv minus signature fields
* @fields: tal_arr of fields from tlv.
* @merkle: returned merkle hash.
*/
void merkle_tlv(const struct tlv_field *fields, struct sha256 *merkle);
/**
* sighash_from_merkle - bolt12-style signature hash using this merkle root.
* @messagename: message name, such as "offer".
* @fieldname: field name, such as "recurrence_signature".
* @merkle: the merkle root as calculated by merkle_tlv.
* @sighash: the returned hash.
*/
void sighash_from_merkle(const char *messagename,
const char *fieldname,
const struct sha256 *merkle,
struct sha256 *sighash);
#endif /* LIGHTNING_COMMON_BOLT12_MERKLE_H */