Subject: [Trans] [trans] #90 (rfc6962-bis): Clarify how to turn a MerkleTreeLeaf into a leaf hash

From: "trans issue tracker" <[email-masked]>
Date: Tue, 23 Jun 2015 21:38:28 -0000

#90: Clarify how to turn a MerkleTreeLeaf into a leaf hash

 Section 3.5 "Merkle Tree" which is cross-referenced from "Log Client
 Messages" (sections 4.5 and 4.6) describes how 'the "hash" must be
 calculated'.

 Section 3.5 first describes the data structure and then finishes with:
 'The leaves of the Merkle Tree are the leaf hashes of the corresponding
 "!MerkleTreeLeaf" structures.'

 At least two client implementers have incorrectly assumed that meant that
 the hash should be calculated as:
 {{{HASH(MerkleTreeLeaf)}}}

 If the implementer noticed the word "leaf" before hash, and carefully read
 section 2.1 they would realize that what they really need is:
 {{{HASH(0x00 || MerkleTreeLeaf)}}}

 I propose we add the following line to the last paragraph in Section 3.5
 to make this clearer:
 {{{Note that leaf hashes are calculated as HASH(0x00 || MerkleTreeLeaf).
 See Section 2.1 for further details.}}}

 Confused users:
 1. http://comments.gmane.org/gmane.comp.security.ssl.certificate-
 transparency.general/1204
 2. Me, independently doing exactly the same, first calling get-entries and
 then hashing the result leaf_input and sending to get-proof-by-hash.

-- 
-------------------------+-------------------------------------------------
 Reporter:               |      Owner:  draft-ietf-trans-
  [email-masked]  |  [email-masked]
     Type:  defect       |     Status:  new
 Priority:  minor        |  Milestone:
Component:  rfc6962-bis  |    Version:
 Severity:  -            |   Keywords:
-------------------------+-------------------------------------------------

Ticket URL: <http://trac.tools.ietf.org/wg/trans/trac/ticket/90>
trans <http://tools.ietf.org/trans/>