[tor-commits] [stem/master] Add hash_type and encoding arguments to descriptor digest() methods

atagar at torproject.org atagar at torproject.org
Thu Nov 15 20:29:50 UTC 2018


commit 5d3565002b954ca49e1bc45d6dc68e1c99716069
Merge: 0a8b47e8 6beaaf49
Author: Damian Johnson <atagar at torproject.org>
Date:   Thu Nov 15 12:18:03 2018 -0800

    Add hash_type and encoding arguments to descriptor digest() methods
    
    Iain made a great point that it's tougher to calculate descriptor digests than
    it should be...
    
      https://trac.torproject.org/projects/tor/ticket/28398
    
    Digest type and encoding varies by their use. Mostly our spec sticks with
    sha1/hex or sha256/base64, but sometimes it differs. For instance, the consensus
    cites sha1/base64 server desciptor digests, whereas according to Karsten Tor
    Metrics uses sha1/hex digests for filenames.
    
    Presently server and extrainfo descriptors are the only classes with digest()
    methods. Microdescriptors should (consensus votes cite microdescriptor digests)
    but nobody has asked for those so we'll cross that bridge when we come to it.
    
    This branch expands our digest() methods in the following ways...
    
      * Add a hash_type argument so callers can specify sha1 or sha256
        hashing.
    
      * Add an encoding argument so callers can specify hex, base64, or
        no encoding.
    
      * In our digest documentation cite what references that descriptor
        type's digest (ie. 'what the heck is this useful for?').

 docs/change_log.rst                          |  1 +
 stem/descriptor/__init__.py                  | 91 ++++++++++++++++++++++------
 stem/descriptor/extrainfo_descriptor.py      | 55 +++++++++++++----
 stem/descriptor/hidden_service_descriptor.py |  3 +-
 stem/descriptor/networkstatus.py             |  4 +-
 stem/descriptor/server_descriptor.py         | 38 +++++++++---
 test/unit/descriptor/extrainfo_descriptor.py |  3 +-
 test/unit/descriptor/server_descriptor.py    |  1 +
 8 files changed, 155 insertions(+), 41 deletions(-)



More information about the tor-commits mailing list