commit f550f7a2b5b2a385b6970e07374b8f2b32f648f8 Author: Damian Johnson atagar@torproject.org Date: Sat Oct 19 12:54:43 2019 -0700
Fork IntroductionPointV3 class
I'm unsure exactly how we'd care to constitute our IntroductionPointV3 class. Likely it will be a hybrid of what we had and the revisions. Simply forking the class to start with so I can better understand the operative bits of the new variant. --- stem/descriptor/hidden_service.py | 20 ++++++++++++++++++-- test/unit/descriptor/hidden_service_v3.py | 4 ++-- 2 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/stem/descriptor/hidden_service.py b/stem/descriptor/hidden_service.py index 8ecc0eb7..cfa20d09 100644 --- a/stem/descriptor/hidden_service.py +++ b/stem/descriptor/hidden_service.py @@ -144,7 +144,23 @@ class IntroductionPoints(collections.namedtuple('IntroductionPoints', INTRODUCTI """
-class IntroductionPointV3(object): +class IntroductionPointV3(collections.namedtuple('IntroductionPointV3', ['link_specifiers', 'onion_key', 'auth_key', 'enc_key', 'enc_key_cert', 'legacy_key', 'legacy_key_cert'])): + """ + Introduction point for a v3 hidden service. + + .. versionadded:: 1.8.0 + + :var list link_specifiers: :class:`~stem.client.datatype.LinkSpecifier` where this service is reachable + :var str onion_key: ntor introduction point public key + :var str auth_key: cross-certifier of the signing key + :var str enc_key: introduction request encryption key + :var str enc_key_cert: cross-certifier of the signing key by the encryption key + :var str legacy_key: legacy introduction point RSA public key + :var str legacy_key_cert: cross-certifier of the signing key by the legacy key + """ + + +class AlternateIntroductionPointV3(object): """ Introduction point for a v3 hidden service.
@@ -459,7 +475,7 @@ def _parse_v3_introduction_points(descriptor, entries): legacy_key_cert = entry['legacy-key-cert'][0][2] if 'legacy-key-cert' in entry else None
introduction_points.append( - IntroductionPointV3( + AlternateIntroductionPointV3( link_specifiers = link_specifiers, onion_key = onion_key, auth_key_cert = auth_key_cert, diff --git a/test/unit/descriptor/hidden_service_v3.py b/test/unit/descriptor/hidden_service_v3.py index 3c91a482..7e87668d 100644 --- a/test/unit/descriptor/hidden_service_v3.py +++ b/test/unit/descriptor/hidden_service_v3.py @@ -14,7 +14,7 @@ import stem.prereq from stem.descriptor.hidden_service import ( CHECKSUM_CONSTANT, REQUIRED_V3_FIELDS, - IntroductionPointV3, + AlternateIntroductionPointV3, HiddenServiceDescriptorV3, OuterLayer, InnerLayer, @@ -99,7 +99,7 @@ def _helper_get_intro(): enc_privkey = X25519PrivateKey.generate() enc_pubkey = enc_privkey.public_key()
- return IntroductionPointV3(link_specifiers, onion_key=onion_pubkey, enc_key=enc_pubkey, auth_key=auth_pubkey) + return AlternateIntroductionPointV3(link_specifiers, onion_key=onion_pubkey, enc_key=enc_pubkey, auth_key=auth_pubkey)
class TestHiddenServiceDescriptorV3(unittest.TestCase):
tor-commits@lists.torproject.org