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()
.