[tor-commits] [stem/master] Don't require additional arguments to make descriptor

atagar at torproject.org atagar at torproject.org
Sun Nov 17 23:40:39 UTC 2019


commit fd583b244665f7c0b11c7284cab5b68b69b28fe8
Author: Damian Johnson <atagar at torproject.org>
Date:   Sat Oct 12 13:04:00 2019 -0700

    Don't require additional arguments to make descriptor
    
    These additional requirements broke an existing test. Not quite sure what
    we'll do for this long term, but for the moment simply reverting to our
    prior behavior so the test passes...
    
            ======================================================================
            ERROR: test_invalid_lifetime
            ----------------------------------------------------------------------
            Traceback (most recent call last):
            File "/home/atagar/Desktop/stem/test/unit/descriptor/hidden_service_v3.py", line 191, in test_invalid_lifetime
            expect_invalid_attr(self, {'descriptor-lifetime': test_value}, 'lifetime')
            File "/home/atagar/Desktop/stem/test/unit/descriptor/__init__.py", line 41, in base_expect_invalid_attr
            return base_expect_invalid_attr_for_text(cls, default_attr, default_value, test, cls.content(desc_attrs), attr, expected_value)
            File "/home/atagar/Desktop/stem/stem/descriptor/hidden_service.py", line 978, in content
              raise ValueError('Need to provide a private ed25519 identity key to create a descriptor')
            ValueError: Need to provide a private ed25519 identity key to create a descriptor
---
 stem/descriptor/hidden_service.py | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/stem/descriptor/hidden_service.py b/stem/descriptor/hidden_service.py
index b6116358..ba21c360 100644
--- a/stem/descriptor/hidden_service.py
+++ b/stem/descriptor/hidden_service.py
@@ -969,6 +969,20 @@ class HiddenServiceDescriptorV3(BaseHiddenServiceDescriptor):
     if sign:
       raise NotImplementedError('Signing of %s not implemented' % cls.__name__)
 
+    # TODO: When these additional arguments are not present simply constructing
+    # a descriptor that looks reasonable. This might not be the fallback we use
+    # later on.
+
+    if not ed25519_private_identity_key or not intro_points or not blinding_param:
+      return _descriptor_content(attr, exclude, (
+        ('hs-descriptor', '3'),
+        ('descriptor-lifetime', '180'),
+        ('descriptor-signing-key-cert', _random_crypto_blob('ED25519 CERT')),
+        ('revision-counter', '15'),
+        ('superencrypted', _random_crypto_blob('MESSAGE')),
+        ('signature', 'wdc7ffr+dPZJ/mIQ1l4WYqNABcmsm6SHW/NL3M3wG7bjjqOJWoPR5TimUXxH52n5Zk0Gc7hl/hz3YYmAx5MvAg'),
+      ), ())
+
     # We need an private identity key for the onion service to create its
     # descriptor. We could make a new one on the spot, but we also need to
     # return it to the caller, otherwise the caller will have no way to decode





More information about the tor-commits mailing list