[tor-bugs] #14846 [Tor]: Controller: retrieve an HS descriptor of a service run by a user

Tor Bug Tracker & Wiki blackhole at torproject.org
Mon Aug 24 13:23:56 UTC 2015


#14846: Controller: retrieve an HS descriptor of a service run by a user
-------------------------+-------------------------------------------------
     Reporter:  dgoulet  |      Owner:  donncha
         Type:           |     Status:  needs_revision
  enhancement            |  Milestone:  Tor: 0.2.7.x-final
     Priority:  trivial  |    Version:  Tor: 0.2.7
    Component:  Tor      |   Keywords:  SponsorR, tor-hs, controller,
   Resolution:           |  027-triaged-1-in, SponsorS, TorCoreTeam201508
Actual Points:           |  Parent ID:  #3521
       Points:  small    |
-------------------------+-------------------------------------------------

Comment (by donncha):

 Replying to [comment:18 nickm]:>

 Thank you for the feedback

 > Overall notes:
 >   * It makes me a little bit nervous to have a single function to handle
 server-side and client-side lookups.

 Should I revert to having separate
 `rend_cache_lookup_v2_desc_as_service()` and `rend_cache_lookup_entry()`
 functions? Alternatively I could add an assert for the cache type and
 require explicit specification of the cache  rather than defaulting to the
 client cache. This should reduce the risk of information leaks between the
 client and service-side cache.


 >   * I think we should name the "service cache" to make it clear that
 it's our own descriptors we're asking about.

 I'll rename it to `rend_cache_local_service`.

 >   * rend_cache_store_v2_desc_as_service() appears to be mostly duplicate
 code from rend_desc_cache_store_v2_desc_as_client().  Duplicate code
 usually indicates an opportunity for a function.

 I'm don't think sharing code between
 `rend_cache_store_v2_desc_as_service()` and
 `rend_desc_cache_store_v2_desc_as_client()` would result in cleaner code.
 The client function needs to do validation based on the client's rend
 query.  It also parses the descriptor's introduction points unlike
 `rend_cache_store_v2_desc_as_service()`.

 >   * I wonder if this will conflict with any of dgoulet's patches for
 #16389.

 I'll rebase on #16389 which is now merged in master.

 >   * Does anything ever expire entries from rend_cache_service, or do
 they stick around forever?  (Currently this is handled for the other cache
 in rend_cache_clean.)

 I'll add a rend_cache_type argument to `rend_cache_clean()` and then clean
 `rend_cache_service` when the client cache is cleaned.

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


More information about the tor-bugs mailing list