1 /* MIT (BSD) license - see LICENSE file for details */
2 #ifndef CCAN_CRYPTO_SHACHAIN_H
3 #define CCAN_CRYPTO_SHACHAIN_H
5 #include <ccan/crypto/sha256/sha256.h>
9 /* Useful for testing. */
10 #ifndef shachain_index_t
11 #define shachain_index_t uint64_t
14 void shachain_from_seed(const struct sha256 *seed, shachain_index_t index,
18 shachain_index_t max_index;
19 unsigned int num_valid;
21 shachain_index_t index;
23 } known[sizeof(shachain_index_t) * 8];
26 void shachain_init(struct shachain *shachain);
28 bool shachain_add_hash(struct shachain *shachain,
29 shachain_index_t index, const struct sha256 *hash);
31 bool shachain_get_hash(const struct shachain *shachain,
32 shachain_index_t index, struct sha256 *hash);
33 #endif /* CCAN_CRYPTO_SHACHAIN_H */