A couple of other relatively minor points relating to this section.
We now use the term "data set" for the hashed and unhashed subpackets:
- Hashed subpacket data set. (zero or more subpackets)
- Two-octet scalar octet count for the following unhashed
subpacket data. Note that this is the length in octets of all of
the unhashed subpackets; a pointer incremented by this number
will skip over the unhashed subpackets.
- Unhashed subpacket data set. (zero or more subpackets)
"Data set" is defined in the next section, 5.2.3.1:
A subpacket data set consists of zero or more signature subpackets,
preceded by a two-octet scalar count of the length in octets of all
the subpackets; a pointer incremented by this number will skip over
the subpacket data set.
This definition could be interpreted to mean that the data set includes
the two-octet scalar count. In fact, in the layout in 5.2.3 the data
set does not include the scalar count. 5.2.3.1 could be reworded to say
"A subpacket data set consists of zero or more signature subpackets,
AND IS preceded by a two-octet scalar count..."