| 177 | } |
| 178 | |
| 179 | u8 *serialize_onionpacket( |
| 180 | const tal_t *ctx, |
| 181 | const struct onionpacket *m) |
| 182 | { |
| 183 | u8 *dst = tal_arr(ctx, u8, TOTAL_PACKET_SIZE(tal_bytelen(m->routinginfo))); |
| 184 | |
| 185 | u8 der[PUBKEY_CMPR_LEN]; |
| 186 | int p = 0; |
| 187 | |
| 188 | pubkey_to_der(der, &m->ephemeralkey); |
| 189 | write_buffer(dst, &m->version, 1, &p); |
| 190 | write_buffer(dst, der, sizeof(der), &p); |
| 191 | write_buffer(dst, m->routinginfo, tal_bytelen(m->routinginfo), &p); |
| 192 | write_buffer(dst, m->hmac.bytes, sizeof(m->hmac.bytes), &p); |
| 193 | return dst; |
| 194 | } |
| 195 | |
| 196 | struct onionpacket *parse_onionpacket(const tal_t *ctx, |
| 197 | const u8 *src, |