| 267 | } |
| 268 | |
| 269 | bool shachain_get_secret(const struct shachain *shachain, |
| 270 | u64 commit_num, |
| 271 | struct secret *preimage) |
| 272 | { |
| 273 | struct sha256 sha; |
| 274 | |
| 275 | if (commit_num >= (1ULL << SHACHAIN_BITS)) |
| 276 | return false; |
| 277 | |
| 278 | if (!shachain_get_hash(shachain, shachain_index(commit_num), &sha)) |
| 279 | return false; |
| 280 | BUILD_ASSERT(sizeof(*preimage) == sizeof(sha)); |
| 281 | memcpy(preimage, &sha, sizeof(*preimage)); |
| 282 | return true; |
| 283 | } |
no test coverage detected