cisco / go-mls

Message Layer Security
BSD 2-Clause "Simplified" License
48 stars 17 forks source link

RatchetTree -> TreeKEMPublicKey/PrivateKey #71

Closed bifurcation closed 4 years ago

bifurcation commented 4 years ago

The notion of a ratchet tree has changed somewhat over the development of the spec. Most recently, parent hashes and signing with KeyPackages in the leaves made the earlier API challenging. This PR proposes a new structure for TreeKEM, splitting the former RatchetTree structure into public and private halves.

This is incompatible with the protocol as it stands right now, because the Decap() operation takes place on the TreeKEMPrivateKey, which can't compute the required resolution. So the DirectPath (here TreeKEMPath) needs to specify which nodes are encrypted to.

bifurcation commented 4 years ago

I revised this PR so that it uses the definition of DirectPath that is currently in the spec. So I think it's ready for review/landing.