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

Tor Bug Tracker & Wiki blackhole at torproject.org
Tue Aug 25 14:12:33 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 nickm):

 Replying to [comment:20 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.

 That might be good.  It's okay if they share code, but what I'm really
 concerned about is accidental API misuse.

 > >   * 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`.

 Sounds fine!

 > >   * 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()`.

 Hmm.  Possibly?  Let's just open a new ticket once this is merged to
 return to the question.

 > >   * 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.

 Thanks!

 > >   * 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.

 Sounds good!

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


More information about the tor-bugs mailing list