[tor-commits] [stem/master] Initially create test strings as bytes

atagar at torproject.org atagar at torproject.org
Thu Mar 30 04:18:02 UTC 2017


commit af3a9fdf7207eb66788ffe5c24971af72d224101
Author: Damian Johnson <atagar at torproject.org>
Date:   Mon Mar 13 09:34:28 2017 -0700

    Initially create test strings as bytes
    
    Might as well construct our test input as bytes, rather than converting to
    them.
---
 stem/descriptor/server_descriptor.py |   1 +
 test/unit/descriptor/certificate.py  | 116 ++++++++++++-----------------------
 2 files changed, 39 insertions(+), 78 deletions(-)

diff --git a/stem/descriptor/server_descriptor.py b/stem/descriptor/server_descriptor.py
index dfb1bc5..76173a0 100644
--- a/stem/descriptor/server_descriptor.py
+++ b/stem/descriptor/server_descriptor.py
@@ -764,6 +764,7 @@ class RelayDescriptor(ServerDescriptor):
 
         if self.onion_key_crosscert:
           onion_key_crosscert_digest = self._digest_for_signature(self.onion_key, self.onion_key_crosscert)
+
           if onion_key_crosscert_digest != self.onion_key_crosscert_digest():
             raise ValueError('Decrypted onion-key-crosscert digest does not match local digest (calculated: %s, local: %s)' % (onion_key_crosscert_digest, self.onion_key_crosscert_digest()))
 
diff --git a/test/unit/descriptor/certificate.py b/test/unit/descriptor/certificate.py
index 0603a32..2f2f728 100644
--- a/test/unit/descriptor/certificate.py
+++ b/test/unit/descriptor/certificate.py
@@ -12,84 +12,51 @@ import test.runner
 class TestCertificate(unittest.TestCase):
   def test_with_invalid_version(self):
     cert_bytes = b'\x02\x04'
-    self.assertRaisesRegexp(
-      ValueError,
-      'Unknown Certificate version',
-      stem.descriptor.certificate._parse_certificate,
-      cert_bytes,
-      None
-    )
+    self.assertRaisesRegexp(ValueError, 'Unknown Certificate version', stem.descriptor.certificate._parse_certificate, cert_bytes, None)
 
   def test_with_invalid_type(self):
     cert_bytes = b'\x01\x07'
-    self.assertRaisesRegexp(
-      ValueError,
-      'Unknown Certificate type',
-      stem.descriptor.certificate._parse_certificate,
-      cert_bytes,
-      None
-    )
+    self.assertRaisesRegexp(ValueError, 'Unknown Certificate type', stem.descriptor.certificate._parse_certificate, cert_bytes, None)
 
   def test_parse_extensions_truncated_extension(self):
-    cert_bytes = '\x00' * 39  # First 40 bytes are standard fields
-    cert_bytes += '\x01'  # n_extensions = 1
-    cert_bytes += '\x00\x08'  # extension length = 8 bytes
-    cert_bytes += '\x04'      # ext_type = 0x04
-    cert_bytes += stem.descriptor.certificate.SIGNATURE_LENGTH * '\x00'  # pad empty signature block
-
-    self.assertRaisesRegexp(
-      ValueError,
-      'Certificate contained truncated extension',
-      stem.descriptor.certificate._parse_extensions,
-      stem.util.str_tools._to_bytes(cert_bytes)
-    )
+    cert_bytes = b'\x00' * 39  # First 40 bytes are standard fields
+    cert_bytes += b'\x01'      # n_extensions = 1
+    cert_bytes += b'\x00\x08'  # extension length = 8 bytes
+    cert_bytes += b'\x04'      # ext_type = 0x04
+    cert_bytes += stem.descriptor.certificate.SIGNATURE_LENGTH * b'\x00'  # pad empty signature block
+
+    self.assertRaisesRegexp(ValueError, 'Certificate contained truncated extension', stem.descriptor.certificate._parse_extensions, cert_bytes)
 
   def test_parse_extensions_invalid_certificate_extension_type(self):
-    cert_bytes = '\x00' * 39  # First 40 bytes are standard fields
-    cert_bytes += '\x01'   # n_extensions = 1
-    cert_bytes += '\x00\x08'  # extension length = 8 bytes
-    cert_bytes += '\x00' * 6  # pad out to 8 bytes
-    cert_bytes += stem.descriptor.certificate.SIGNATURE_LENGTH * '\x00'  # pad empty signature block
-
-    self.assertRaisesRegexp(
-      ValueError,
-      'Invalid certificate extension type:',
-      stem.descriptor.certificate._parse_extensions,
-      stem.util.str_tools._to_bytes(cert_bytes)
-    )
+    cert_bytes = b'\x00' * 39  # First 40 bytes are standard fields
+    cert_bytes += b'\x01'      # n_extensions = 1
+    cert_bytes += b'\x00\x08'  # extension length = 8 bytes
+    cert_bytes += b'\x00' * 6  # pad out to 8 bytes
+    cert_bytes += stem.descriptor.certificate.SIGNATURE_LENGTH * b'\x00'  # pad empty signature block
+
+    self.assertRaisesRegexp(ValueError, 'Invalid certificate extension type:', stem.descriptor.certificate._parse_extensions, cert_bytes)
 
   def test_parse_extensions_invalid_n_extensions_count(self):
-    cert_bytes = '\x00' * 39  # First 40 bytes are standard fields
-    cert_bytes += '\x02'    # n_extensions = 2
-    cert_bytes += '\x00\x08'  # extension length = 8 bytes
-    cert_bytes += '\x04'    # certificate type
-    cert_bytes += '\x00' * 5  # pad out to 8 bytes
-    cert_bytes += stem.descriptor.certificate.SIGNATURE_LENGTH * '\x00'  # pad empty signature block
-
-    self.assertRaisesRegexp(
-      ValueError,
-      'n_extensions was 2 but parsed 1',
-      stem.descriptor.certificate._parse_extensions,
-      stem.util.str_tools._to_bytes(cert_bytes)
-    )
+    cert_bytes = b'\x00' * 39  # First 40 bytes are standard fields
+    cert_bytes += b'\x02'      # n_extensions = 2
+    cert_bytes += b'\x00\x08'  # extension length = 8 bytes
+    cert_bytes += b'\x04'      # certificate type
+    cert_bytes += b'\x00' * 5  # pad out to 8 bytes
+    cert_bytes += stem.descriptor.certificate.SIGNATURE_LENGTH * b'\x00'  # pad empty signature block
+
+    self.assertRaisesRegexp(ValueError, 'n_extensions was 2 but parsed 1', stem.descriptor.certificate._parse_extensions, cert_bytes)
 
   def test_ed25519_key_certificate_without_extensions(self):
-    cert_bytes = '\x01\x04' + '\x00' * 37  # First 40 bytes are standard fields
-    cert_bytes += '\x00'   # n_extensions = 0
-    cert_bytes += stem.descriptor.certificate.SIGNATURE_LENGTH * '\x00'  # pad empty signature block
-
-    self.assertRaisesRegexp(
-      ValueError,
-      'Ed25519KeyCertificate missing SignedWithEd25519KeyCertificateExtension extension',
-      stem.descriptor.certificate._parse_certificate,
-      stem.util.str_tools._to_bytes(cert_bytes),
-      None,
-      validate = True
-    )
+    cert_bytes = b'\x01\x04' + b'\x00' * 37  # First 40 bytes are standard fields
+    cert_bytes += b'\x00'   # n_extensions = 0
+    cert_bytes += stem.descriptor.certificate.SIGNATURE_LENGTH * b'\x00'  # pad empty signature block
+
+    exc_msg = 'Ed25519KeyCertificate missing SignedWithEd25519KeyCertificateExtension extension'
+    self.assertRaisesRegexp(ValueError, exc_msg, stem.descriptor.certificate._parse_certificate, cert_bytes, None, validate = True)
 
   def test_certificate_with_invalid_signature(self):
     if not stem.prereq._is_pynacl_available():
-      test.runner.skip(self, '(require pynacl module)')
+      test.runner.skip(self, '(requires pynacl module)')
       return
 
     import nacl.signing
@@ -98,17 +65,10 @@ class TestCertificate(unittest.TestCase):
     master_key = nacl.signing.SigningKey.generate()
     master_key_base64 = master_key.encode(nacl.encoding.Base64Encoder)
 
-    cert_bytes = '\x01\x04' + '\x00' * 37  # 40 byte preamble of standard fields
-    cert_bytes += '\x01'  # n_extensions = 1
-    cert_bytes += '\x00\x08'  # extentsion length = 8 bytes
-    cert_bytes += '\x04' + '\x00' * 5  # certificate type + padding out to 8 bytes
-    cert_bytes += stem.descriptor.certificate.SIGNATURE_LENGTH * '\x00'  # empty signature block
-
-    self.assertRaisesRegexp(
-      ValueError,
-      'Ed25519KeyCertificate signature invalid',
-      stem.descriptor.certificate._parse_certificate,
-      stem.util.str_tools._to_bytes(cert_bytes),
-      master_key_base64,
-      validate = True
-    )
+    cert_bytes = b'\x01\x04' + b'\x00' * 37  # 40 byte preamble of standard fields
+    cert_bytes += b'\x01'  # n_extensions = 1
+    cert_bytes += b'\x00\x08'  # extentsion length = 8 bytes
+    cert_bytes += b'\x04' + b'\x00' * 5  # certificate type + padding out to 8 bytes
+    cert_bytes += stem.descriptor.certificate.SIGNATURE_LENGTH * b'\x00'  # empty signature block
+
+    self.assertRaisesRegexp(ValueError, 'Ed25519KeyCertificate signature invalid', stem.descriptor.certificate._parse_certificate, cert_bytes, master_key_base64, validate = True)





More information about the tor-commits mailing list