[tor-commits] [stem/master] Dropping attribute for block types

atagar at torproject.org atagar at torproject.org
Mon Mar 26 00:10:01 UTC 2012


commit d4fa1279f43c585d9551c6e1f94d3917e14eec99
Author: Damian Johnson <atagar at torproject.org>
Date:   Sat Mar 24 19:45:06 2012 -0700

    Dropping attribute for block types
    
    We already have enough attributes, and parsing out the armor type is redundant
    since it's within the armor itself. Besides, it's not likely to change and I
    doubt callers will ever care about it.
---
 stem/descriptor/server_descriptor.py       |   32 +++++++++------------------
 test/integ/descriptor/server_descriptor.py |    3 --
 2 files changed, 11 insertions(+), 24 deletions(-)

diff --git a/stem/descriptor/server_descriptor.py b/stem/descriptor/server_descriptor.py
index ceee835..598571e 100644
--- a/stem/descriptor/server_descriptor.py
+++ b/stem/descriptor/server_descriptor.py
@@ -161,8 +161,7 @@ def _get_psudo_pgp_block(remaining_contents):
     remaining_contents (list) - lines to be checked for a public key block
   
   Returns:
-    (str, str) tuple with the block type and the armor wrapped contents, this
-    returns (None, None) instead if it doesn't exist
+    str with the armor wrapped contents or None if it doesn't exist
   
   Raises:
     ValueError if the contents starts with a key block but it's malformed (for
@@ -170,7 +169,7 @@ def _get_psudo_pgp_block(remaining_contents):
   """
   
   if not remaining_contents:
-    return (None, None) # nothing left
+    return None # nothing left
   
   block_match = PGP_BLOCK_START.match(remaining_contents[0])
   
@@ -186,9 +185,9 @@ def _get_psudo_pgp_block(remaining_contents):
       block_lines.append(line)
       
       if line == PGP_BLOCK_END % block_type:
-        return (block_type, "\n".join(block_lines))
+        return "\n".join(block_lines)
   else:
-    return (None, None)
+    return None
 
 class ServerDescriptorV3(stem.descriptor.Descriptor):
   """
@@ -221,11 +220,8 @@ class ServerDescriptorV3(stem.descriptor.Descriptor):
     burst_bandwidth (int)    - rate of traffic relay is willing to burst to in bytes/s (*)
     observed_bandwidth (int) - estimated capacity of the relay based on usage in bytes/s (*)
     onion_key (str)          - key used to encrypt EXTEND cells (*)
-    onion_key_type (str)     - block type of the onion_key, probably "RSA PUBLIC KEY" (*)
     signing_key (str)        - relay's long-term identity key (*)
-    signing_key_type (str)   - block type of the signing_key, probably "RSA PUBLIC KEY" (*)
     signature (str)          - signature for this descriptor (*)
-    signature_type (str)     - block type of the signature, probably "SIGNATURE" (*)
     
     (*) required fields, others are left as None if undefined
   """
@@ -276,11 +272,8 @@ class ServerDescriptorV3(stem.descriptor.Descriptor):
     self.burst_bandwidth = None
     self.observed_bandwidth = None
     self.onion_key = None
-    self.onion_key_type = None
     self.signing_key = None
-    self.signing_key_type = None
     self.signature = None
-    self.signature_type = None
     
     # TODO: Until we have a proper ExitPolicy class this is just a list of the
     # exit policy strings...
@@ -333,7 +326,7 @@ class ServerDescriptorV3(stem.descriptor.Descriptor):
       keyword, value = line_match.groups()
       
       try:
-        block_type, block_contents = _get_psudo_pgp_block(remaining_contents)
+        block_contents = _get_psudo_pgp_block(remaining_contents)
       except ValueError, exc:
         if not validate: continue
         raise exc
@@ -341,9 +334,9 @@ class ServerDescriptorV3(stem.descriptor.Descriptor):
       if keyword in ("accept", "reject"):
         self.exit_policy.append("%s %s" % (keyword, value))
       elif keyword in entries:
-        entries[keyword].append((value, block_type, block_contents))
+        entries[keyword].append((value, block_contents))
       else:
-        entries[keyword] = [(value, block_type, block_contents)]
+        entries[keyword] = [(value, block_contents)]
     
     # validates restrictions about the entries
     if validate:
@@ -361,7 +354,7 @@ class ServerDescriptorV3(stem.descriptor.Descriptor):
     # parse all the entries into our attributes
     for keyword, values in entries.items():
       # most just work with the first (and only) value
-      value, block_type, block_contents = values[0]
+      value, block_contents = values[0]
       
       line = "%s %s" % (keyword, value) # original line
       if block_contents: line += "\n%s" % block_contents
@@ -488,22 +481,19 @@ class ServerDescriptorV3(stem.descriptor.Descriptor):
         
         self.uptime = int(value)
       elif keyword == "onion-key":
-        if validate and (not block_type or not block_contents):
+        if validate and not block_contents:
           raise ValueError("Onion key line must be followed by a public key: %s" % line)
         
-        self.onion_key_type = block_type
         self.onion_key = block_contents
       elif keyword == "signing-key":
-        if validate and (not block_type or not block_contents):
+        if validate and not block_contents:
           raise ValueError("Signing key line must be followed by a public key: %s" % line)
         
-        self.signing_key_type = block_type
         self.signing_key = block_contents
       elif keyword == "router-signature":
-        if validate and (not block_type or not block_contents):
+        if validate and not block_contents:
           raise ValueError("Router signature line must be followed by a signature block: %s" % line)
         
-        self.signature_type = block_type
         self.signature = block_contents
       elif keyword == "contact":
         self.contact = value
diff --git a/test/integ/descriptor/server_descriptor.py b/test/integ/descriptor/server_descriptor.py
index a956606..d027dc6 100644
--- a/test/integ/descriptor/server_descriptor.py
+++ b/test/integ/descriptor/server_descriptor.py
@@ -81,9 +81,6 @@ Qlx9HNCqCY877ztFRC624ja2ql6A2hBcuoYMbkHjcQ4=
     self.assertEquals(104590, desc.observed_bandwidth)
     self.assertEquals(["reject *:*"], desc.exit_policy)
     self.assertEquals(expected_onion_key, desc.onion_key)
-    self.assertEquals("RSA PUBLIC KEY", desc.onion_key_type)
     self.assertEquals(expected_signing_key, desc.signing_key)
-    self.assertEquals("RSA PUBLIC KEY", desc.signing_key_type)
     self.assertEquals(expected_signature, desc.signature)
-    self.assertEquals("SIGNATURE", desc.signature_type)
 





More information about the tor-commits mailing list