Skip to content
This repository has been archived by the owner on Jun 17, 2024. It is now read-only.

Plan for low-level Handshake and HandshakeLog #219

Open
4 tasks
aseemr opened this issue Dec 21, 2018 · 0 comments
Open
4 tasks

Plan for low-level Handshake and HandshakeLog #219

aseemr opened this issue Dec 21, 2018 · 0 comments

Comments

@aseemr
Copy link
Collaborator

aseemr commented Dec 21, 2018

Notes from a meeting between @fournet, @ad-l, and @aseemr:

We will work towards an implementation of HS ans HSL consisting of both low-level and high-level components.

On the reading side, HSL will provide a low-level interface, in the same style that we have been working on. On the writing side, HSL.send will still be high-level, and will internally use QD intermediate serializers and bytes-to-buffer conversions. For hashing, on the reading side, HS will send signals to HSL for hashing the messages and adding them to the transcript (where the signals will contain indices in the input buffer, HSL will maintain enough invariants so that HS does not need to pass them on). On the writing side, HSL will automatically hash the messages.

HS implementation will be low-level on the reading side, i.e. it will take buffer indices from HSL and use low-level QD accessors etc. But when it talks to Nego and KS, it will use the QD intermediate parsers to construct high-level messages and then pass them back-and-forth. In other words, Nego and KS, and the related state and invariants in HS will remain high-level. On the writing side, HS will be purely high-level.

We will move to QD datatypes for both high- and low-level (#218).

Towards this plan, we identified following tasks:

  • Switch to QD for HandshakeMessage and Extensions, merge @nikswamy's F* and mitls branches for extraction (@ad-l)

  • Continue work on HS Secret, KDF, Nego in high-level style (@ad-l, @fournet, @s-zanella)

  • Iterate fast on low-level HSL.fsti and implement an HSL.fst that is partially verified but functional (@aseemr, @nikswamy)

  • In Jan., interop with low-level HSL.fst which is partially verified

We discussed some alternate choices for HS and HSL implementation. Will add them as a comment soon.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant