sphinx: Migrate sphinx compression to new interface

It also removes the duplicate compression code and serialization code.
This commit is contained in:
Christian Decker
2020-03-03 18:32:06 +01:00
committed by Rusty Russell
parent 6dd14a2039
commit ef86ee0bae
3 changed files with 13 additions and 40 deletions

View File

@@ -149,30 +149,6 @@ u8 *serialize_onionpacket(
return dst;
}
u8 *serialize_compressed_onion(const tal_t *ctx,
const struct sphinx_path *sp,
const struct onionpacket *packet)
{
u8 *dst;
u8 der[PUBKEY_CMPR_LEN];
size_t payloads_size = sphinx_path_payloads_size(sp);
size_t max_prefill = ROUTING_INFO_SIZE - payloads_size;
size_t rv_onion_size = TOTAL_PACKET_SIZE - max_prefill;
int p = 0;
assert(sp->rendezvous_id != NULL);
dst = tal_arr(ctx, u8, rv_onion_size);
pubkey_to_der(der, &packet->ephemeralkey);
write_buffer(dst, &packet->version, 1, &p);
write_buffer(dst, der, sizeof(der), &p);
write_buffer(dst, packet->routinginfo, ROUTING_INFO_SIZE - max_prefill, &p);
write_buffer(dst, packet->mac, sizeof(packet->mac), &p);
return dst;
}
enum onion_type parse_onionpacket(const u8 *src,
const size_t srclen,
struct onionpacket *dest)
@@ -810,7 +786,7 @@ sphinx_compress(const tal_t *ctx, const struct onionpacket *packet,
size_t payloads_size = sphinx_path_payloads_size(path);
/* We can't compress an onion that doesn't have a rendez-vous node. */
if (path->rendezvous_id)
if (path->rendezvous_id == NULL)
return NULL;
res = tal(ctx, struct sphinx_compressed_onion);