Subject: Re: [TLS] Length of a variable-length vector: Could it be an odd multiple?

From: =JeffH <[email-masked]>
Date: Fri, 22 Jan 2016 07:42:52 -0800

[ resending from different account - my work addr ends up in spam bucket for 
many it seems ]

On 1/20/16, 11:01 AM, "Benjamin Kaduk" <[email-masked]> wrote:
 >On 01/20/2016 12:47 PM, Hodges, Jeff wrote:
 >> On 1/13/16, 12:53 PM, "Benjamin Kaduk" <[email-masked]> wrote:
 >>> On 01/13/2016 02:44 PM, Jong-Shian Wu wrote:
 >>>> I have a question about the even-vs-odd restrictions on the length of
 >>>> a valid variable-length vector defined in TLS specification after
 >>>> reading the section 4.3 of RFC 5246 [1] which states that:
 >>>> "The length of an encoded vector must be an even multiple of the
 >>>>length
 >>>> of a single element (for example, a 17-byte vector of uint16 would be
 >>>> illegal)."
 >>>>
 >>> It means "whole-number" as opposed to fractional, i.e., there should
 >>>not
 >>> be unused "junk bytes" at the end.
 >> In case it's helpful, here's a suggested re-write of that quoted
 >>sentence
 >> above..
 >>
 >>   The length of an encoded variable-length vector must be an
 >>   exact multiple of the length of a single element. For example,
 >>   an encoded 17-byte vector of uint16 would be illegal, and an
 >>   encoded variable-length vector of four 32 byte elements,
 >>   having a ceiling of 2^16-1, will be 130 bytes long overall
 >>   (2 byte length field followed by 128 bytes of data).
 >
 >Wouldn't the ceiling more properly be 2^16-4 in that case?

hm, I'm not sure -- what would be the rationale?  The exact multiple
criteria?  but 2^16 / 32 = 2048  while  (2^16-4) / 32 = 2047.875

i do have further questions regarding variable-length vectors, and how
they are specified, that subsequent discussion will hopefully tease out.

thanks,

=JeffH

---

From: Benjamin Kaduk <[email-masked]>
Date: Fri, 22 Jan 2016 12:48:20 -0600

On 01/22/2016 09:42 AM, =JeffH wrote:
> [ resending from different account - my work addr ends up in spam
> bucket for many it seems ]
>

Ah, I seem to have conflated bits and bytes due to reading too quickly
and should have said (2^16-32), as Ilari alluded to with "or rounding
thereof to integral multiple of
elements".

Sorry for the confusion.

-Ben