[tor-bugs] #20138 [Core Tor/Trunnel]: Add constified getters to trunnel

Tor Bug Tracker & Wiki blackhole at torproject.org
Tue Sep 13 10:18:18 UTC 2016


#20138: Add constified getters to trunnel
----------------------------------+---------------------
     Reporter:  asn               |      Owner:  nickm
         Type:  task              |     Status:  new
     Priority:  Medium            |  Milestone:
    Component:  Core Tor/Trunnel  |    Version:
     Severity:  Normal            |   Keywords:  trunnel
Actual Points:                    |  Parent ID:
       Points:                    |   Reviewer:
      Sponsor:                    |
----------------------------------+---------------------
 Here is a feature request for trunnel. Let me know if it does not make
 sense.

 It might be useful to introduce constified versions of getters in trunnel.

 As an example, consider the following getter:
 {{{
 /** Return a pointer to the variable-length array field body of 'inp'.
  */
 uint8_t * certs_cell_cert_getarray_body(certs_cell_cert_t *inp);
 }}}

 In that spot, we could also additionally add the following getter:
 {{{
 /** Return a const pointer to the variable-length array field body of
 'inp'.
  */
 const uint8_t * certs_cell_cert_getarray_body_immutable(const
 certs_cell_cert_t *inp);
 }}}

 which would be more suitable for the following code at
 `channel_tls_process_certs_cell()`:
 {{{
 ...
     uint8_t *cert_body = certs_cell_cert_getarray_body(c);

     if (cert_type > MAX_CERT_TYPE_WANTED)
       continue;

     tor_x509_cert_t *cert = tor_x509_cert_decode(cert_body, cert_len);
 ...
 }}}

 Basically, everytime you use a getter to get a signature/mac/cert field,
 you probably want it constified as you dont need to change it when
 verifying. This occurs quite frequently in the prop224 cells we've been
 implementing, hence this ticket.

 This feature might make some parts of the code more
 readable/understandable, but at the cost of increasing trunnel's
 complexity.

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


More information about the tor-bugs mailing list