[tor-bugs] #13202 [Tor]: Figure out a way to deal with bridges missing arguments.

Tor Bug Tracker & Wiki blackhole at torproject.org
Fri Mar 27 00:46:24 UTC 2015


#13202: Figure out a way to deal with bridges missing arguments.
-------------------------+-------------------------------------------------
     Reporter:  yawning  |      Owner:
         Type:  defect   |     Status:  needs_review
     Priority:  normal   |  Milestone:  Tor: 0.2.???
    Component:  Tor      |    Version:  Tor: unspecified
   Resolution:           |   Keywords:  bridgedb-dist, scramblesuit,
Actual Points:           |  isis2014Q3Q4, isis2015Q1Q2, bridgedb-0.3.2
       Points:           |  Parent ID:
-------------------------+-------------------------------------------------
Changes (by isis):

 * status:  assigned => needs_review
 * keywords:  bridgedb-dist, scramblesuit, isis2014Q3Q4, isis2015Q1Q2 =>
     bridgedb-dist, scramblesuit, isis2014Q3Q4, isis2015Q1Q2,
     bridgedb-0.3.2


Comment:

 Until Tor-0.2.4.x is deprecated and no longer in use, I've placed a
 temporary fix in BridgeDB. It isn't elegant or anything, but it works, and
 there's a note to this ticket saying that at some point in the future we
 can remove it.

 The patch is in my `fix/13202-missing-pt-args`
 [https://gitweb.torproject.org/user/isis/bridgedb.git/log/?h=fix/13202
 -missing-pt-args branch], and basically consists of adding the following
 method to the `bridgedb.bridges.PluggableTransport` class, which is called
 whenever the `PluggableTransport`'s attributes are checked, which happens
 whenever it is updated:

 {{{
 + def _checkArguments(self):
 +     """This method is a temporary fix for PTs with missing arguments
 +     (see `#13202 <https://bugs.torproject.org/13202`_). This method can
 +     be removed after Tor-0.2.4.x is deprecated.
 +     """
 +     # obfs4 requires (iat-mode && (cert || (node-id && public-key))):
 +     if self.methodname == 'obfs4':
 +         if self.arguments.get('iat-mode'):
 +             if (self.arguments.get('cert') or \
 +                 (self.arguments.get('node-id') and self.arguments.get
 ('public-key'))):
 +                 return True
 +     # scramblesuit requires (password):
 +     elif self.methodname == 'scramblesuit':
 +         if self.arguments.get('password'):
 +             return True
 +     else:
 +         return True
 +
 +     return False
 }}}

 There are also
 [https://gitweb.torproject.org/user/isis/bridgedb.git/commit/?h=fix/13202
 -missing-pt-args&id=f4e83a5a5dce2fdf67051e2462e210936b261f92 unittests] to
 ensure this behaviour works as expected.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/13202#comment:20>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list