This subpacket contains a list of binary flags that hold information about a key. It is a string of octets, and an implementation MUST NOT assume a fixed size. This is so it can grow over time. If a list is shorter than an implementation expects, the unstated flags are considered to be zero.
And it can be useful to explicitly say that a primary key is not allowed to be used for any purpose (except certifying subkeys), for example.
Allow parsing empty Key Flags subpackets.
This is allowed by the spec, which says:
And it can be useful to explicitly say that a primary key is not allowed to be used for any purpose (except certifying subkeys), for example.