The issue is that the "TLSCiphertext.length" is the same field as the "uint16 length", so you are saying that this field has the value of "cid_length plus itself", which is impossible in integers modulo [a value larger than cid_length]. In the "formal" grammar, you'd need to define a new field.
-Ben On Tue, Mar 20, 2018 at 11:45:59PM +0000, John Mattsson wrote: > Correct, I just copied pasted the length of the arrays, should be length = > cid_length + encrypted_record.length. > > The example was taken from draft-ietf-tls-tls13-27. If I understand > correctly, It seems like the same circular definition is done there as > well.... > > ----------------------------------------------------- > struct { > ContentType opaque_type = application_data; /* 23 */ > ProtocolVersion legacy_record_version = 0x0303; /* TLS v1.2 */ > uint16 length; > opaque encrypted_record[TLSCiphertext.length]; > } TLSCiphertext; > ----------------------------------------------------- > > Shouldn't this be... > > ----------------------------------------------------- > struct { > ContentType opaque_type = application_data; /* 23 */ > ProtocolVersion legacy_record_version = 0x0303; /* TLS v1.2 */ > uint16 length; > opaque encrypted_record[encrypted_record.length]; > } TLSCiphertext; > ----------------------------------------------------- > > Does this mean the > On 2018-03-20, 19:29, "Stephen Checkoway" <s...@pahtak.org> wrote: > > > > > On Mar 20, 2018, at 11:38, John Mattsson <john.matts...@ericsson.com> > wrote: > > > > I think Connection ID is an important enabler for end-to-end security > with (D)TLS. There seems to be important use cases for connection ID in TLS > as well, see https://www.ietf.org/mailman/listinfo/atlas. At the Monday > afternoon TLS session, it was stated that Connection ID in TLS was > unemployable in the wild due to middleboxes. Couldn't that be solved by > placing the cid field after the length field? E.g. > > > > struct { > > ContentType opaque_type = application_data; /* 23 */ > > ProtocolVersion legacy_record_version = 0x0303; /* TLS v1.2 */ > > uint16 length; > > opaque cid[cid_length]; // New field > > opaque encrypted_record[TLSCiphertext.length]; > > } TLSCiphertext; > > > > length The sum of cid_length and TLSCiphertext.length > > This defines length in terms of itself since length is > TLSCiphertext.length. > > -- > Stephen Checkoway > > > > > > > > _______________________________________________ > TLS mailing list > TLS@ietf.org > https://www.ietf.org/mailman/listinfo/tls _______________________________________________ TLS mailing list TLS@ietf.org https://www.ietf.org/mailman/listinfo/tls