Skip to content

hs: Unify link specifier API/ABI

In hs_descriptor.{c|h}, link specifiers are used to encode the introduction points in the descriptor. The decoded version is represented by the hs_desc_link_specifier_t object which is used to build a trunnel object that is then base64 encoded and put in the descriptor.

With the service and client implementation of prop224, link specifiers are also used in the INTRODUCE1 cell. Client will encode them in the cell and service decodes them (INTRODUCE2 cell).

This ticket is to unify the link specifier API/ABI used between cell and descriptor for both encoding and decoding in order to avoid code duplication.

Furthermore, future work could expend this to the EXTEND2 cell that also requires link specifiers (extend_cell_from_extend2_cell_body() and extend_cell_format().

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information