Taken from hsmd. */
| 250 | |
| 251 | /* Taken from hsmd. */ |
| 252 | static void get_channel_seed(struct secret *channel_seed, const struct node_id *peer_id, |
| 253 | u64 dbid, struct secret *hsm_secret) |
| 254 | { |
| 255 | struct secret channel_base; |
| 256 | u8 input[sizeof(peer_id->k) + sizeof(dbid)]; |
| 257 | const char *info = "per-peer seed"; |
| 258 | |
| 259 | hkdf_sha256(&channel_base, sizeof(struct secret), NULL, 0, |
| 260 | hsm_secret, sizeof(*hsm_secret), |
| 261 | "peer seed", strlen("peer seed")); |
| 262 | memcpy(input, peer_id->k, sizeof(peer_id->k)); |
| 263 | BUILD_ASSERT(sizeof(peer_id->k) == PUBKEY_CMPR_LEN); |
| 264 | memcpy(input + PUBKEY_CMPR_LEN, &dbid, sizeof(dbid)); |
| 265 | |
| 266 | hkdf_sha256(channel_seed, sizeof(*channel_seed), |
| 267 | input, sizeof(input), |
| 268 | &channel_base, sizeof(channel_base), |
| 269 | info, strlen(info)); |
| 270 | } |
| 271 | |
| 272 | static void print_secret(const char *hsm_secret_path, const char *id, bool must_be_oldstyle) |
| 273 | { |
no test coverage detected