On Mon, Aug 12, 2019 at 10:48:55AM -0700, [email protected] wrote:
>
> A New Internet-Draft is available from the on-line Internet-Drafts
> directories.
> This draft is a work item of the Transport Layer Security WG of the IETF.
>
> Title : A Flags Extension for TLS 1.3
> Author : Yoav Nir
> Filename : draft-ietf-tls-tlsflags-00.txt
> Pages : 6
> Date : 2019-08-12
>
>
> The IETF datatracker status page for this draft is:
> https://datatracker.ietf.org/doc/draft-ietf-tls-tlsflags/
>
> There are also htmlized versions available at:
> https://tools.ietf.org/html/draft-ietf-tls-tlsflags-00
> https://datatracker.ietf.org/doc/html/draft-ietf-tls-tlsflags-00
Two things:
1) uint8 flags<0..31>;
That adds an extra byte that is not technically necressary (because
extensions have lengths anyway) and limits number of flags to 248
(which might be enough).
And I do not think the length of flags field can be 0 (if it would
be, one could just omit the extension).
2) I think the bit order within octets should be reversed
That is, pack flags so that 0 is LSB of first octet, 7 is MSB of
first octet, 8 is LSB of second octet and so on.
Then one can read status flags by index with code like:
fn read_flag(flags: &[u8], idx: usize) -> bool
{
*flags.get(idx/8).unwrap_or(&0) >> idx%8 & 1 != 0
}
(That code will also happily handle out-of-array flags by reading
them as false.)
-Ilari
_______________________________________________
TLS mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/tls