commit 91973b00077f9aba0d3064355838c8f8ace6e206 Merge: eff0664c 860afdb8 Author: Damian Johnson atagar@torproject.org Date: Sun Nov 17 15:32:40 2019 -0800
HSv3 descriptor creation support
Cryptographically valid support for hidden service creation...
https://trac.torproject.org/projects/tor/ticket/31823
HSv3 descriptors consist of three parts: an inner layer, outer layer, and the descriptor itself. Callers of HiddenServiceDescriptorV3's create() and content() methods can supply these to specify that layer's parameters.
For example, to supply custom introduction points with random key material simply call...
HiddenServiceDescriptorV3.content( inner_layer = InnerLayer.create( introduction_points = [ IntroductionPointV3.create('1.1.1.1', 9001), IntroductionPointV3.create('2.2.2.2', 9001), IntroductionPointV3.create('3.3.3.3', 9001), ], ), )
stem/client/datatype.py | 146 +++-- stem/descriptor/__init__.py | 4 +- stem/descriptor/certificate.py | 358 ++++++++---- stem/descriptor/hidden_service.py | 638 +++++++++++++++++---- stem/descriptor/router_status_entry.py | 7 +- stem/descriptor/server_descriptor.py | 4 +- stem/prereq.py | 37 +- stem/util/__init__.py | 31 + stem/util/slow_ed25519.py | 158 +++++ stem/util/str_tools.py | 12 + test/require.py | 3 +- test/settings.cfg | 2 + test/unit/client/cell.py | 6 +- test/unit/client/certificate.py | 2 +- test/unit/client/link_specifier.py | 22 +- test/unit/descriptor/certificate.py | 70 ++- .../descriptor/data/hidden_service_v3_intro_point | 28 + test/unit/descriptor/hidden_service_v3.py | 302 +++++++++- test/unit/descriptor/server_descriptor.py | 5 +- 19 files changed, 1484 insertions(+), 351 deletions(-)