You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jun 17, 2024. It is now read-only.
Extending the HyperStack memory model to support the interface of dynamic regions (@aseemr )
An implementation of the witnessed_functorial lemma in LowStar.Monotonic.Buffer (@aseemr )
An implementation of a Buffer.sub variant that does not require a concrete length field, i.e., something like what's below. (thanks ! @R1kM )
assume
val sub (c:buffer 'a) (i:uint_32) (len:Ghost.erased uint_32)
: Stack (buffer 'a)
(requires fun h ->
live h c /\
U32.v i + U32.v (Ghost.reveal len) <= length c)
(ensures fun h0 c' h1 ->
h0 == h1 /\
c' `sub_buffer i (Ghost.reveal len)` c)
EverParse changes
Accessors and jumpers should not take a concrete slice length. Instead they should take at most a pointer and a ghost length, as follows @tahina-pro
let accessor (p1:parser k1 t1) (p2:parser k2 t2) (g:gaccessor p1 p2 l) =
pos:u32 -> b:buffer u8 -> len:erased u32 ->
Stack u32
(requires fun h ->
valid (as_slice b len) p1 pos h /\ ... )
...
Support for list reprs, with combinators on it like fold, etc. @nikswamy
QuackyDucky changes to auto-generate reprs for all types in the rfc (@ad-l@tahina-pro ?)
For each type t, it should produce two type abbreviations:
let ptr = R.repr_ptr_p t t_parser
let pos (b:R.const_slice) = R.repr_pos_p t b t_parser
And for each field it should produce, either a FieldAccessor or a FieldReader
e.g.,
/// Reader for the protocol version
noextract
unfold
let version_reader =
R.FieldReader
CH.accessor_clientHello_version
Parsers.ProtocolVersion.protocolVersion_reader
/// Accessor for the extensions
noextract
unfold
let extensions_field =
R.FieldAccessor CH.accessor_clientHello_extensions
Parsers.ClientHelloExtensions.clientHelloExtensions_jumper
Parsers.ClientHelloExtensions.clientHelloExtensions_parser32
As we figure out how to do lists, we will require more things to be emitted by QD
miTLS changes
ParseFlights, Receive, Transcript use the new reprs @nikswamy
Provide access to the ith element of a list whose element sizes are constant @nikswamy
We have in several related branches a prototype implementation of the miTLS memory model
https://github.com/mitls/mitls-papers/wiki/The-Memory-Model-of-miTLS (private link)
To merge this into the no_hsl branch of miTLS the following work items need to be completed
F* branch: nik_dynamic_regions to be merged to master
EverParse changes
For each type
t
, it should produce two type abbreviations:And for each field it should produce, either a FieldAccessor or a FieldReader
e.g.,
As we figure out how to do lists, we will require more things to be emitted by QD
miTLS changes
We should maintain the functionality of no_hsl, as defined by CI
The text was updated successfully, but these errors were encountered: