Opened 6 years ago

Closed 6 years ago

#832 closed defect (fixed)

RouterAddress expiration field assumed zero, can't be used

Reported by: zzz Owned by: zzz
Priority: minor Milestone: 0.9.6
Component: api/general Version: 0.9.3
Keywords: Cc:
Parent Tickets:


In 0.9.3 we removed storage of the unused expiration field to save 8 bytes. This means any future use will cause RI signature verification to fail as it is assumed to be zero always. Either restore it so we may use it some day, or document that we can't ever use it.

<orion> Something I noticed about the implementation of the RouterInfo? verifier: If you explicitly set an expiration date on your RouterAddress?, the signature verification will fail.
<orion> This is because, as pointed out by the spec: "Expiration is currently unused, always null (all zeroes))"
<orion> More specifically, getBytes is simply returning all zeroes for the expiration.
<orion> If in the future we want to use an expiration time, older clients will refuse the RouterInfo? when it is sent via DatabaseStore?.
<orion> Just something to note for the future.


Change History (1)

comment:1 Changed 6 years ago by zzz

  • Milestone changed from 0.9.5 to 0.9.6
  • Resolution set to fixed
  • Status changed from new to closed

Documented on website rev 0f6f90d3d429e528e37a9a1b31b2f1f4c1479109
and javadoc rev a32726f5e23dabc078cf6a235a2e92d5673ccf7e

Note: See TracTickets for help on using tickets.