On Mon, Aug 12, 2019 at 10:48:55AM -0700, internet-dra...@ietf.org 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 TLS@ietf.org https://www.ietf.org/mailman/listinfo/tls