The HMAC construction natively permits any key size between 0 and the input
block length. Before r324017, the auth_hash 'keysize' member was the hash
output length, which is used by ipsec for key sizes. (Non-ipsec consumers
need the ability to use other keysizes, hence, r324017.)
The ipsec SADB code blindly uses the auth_hash 'keysize' member for both
minimum and maximum key size, which is wrong. Instead it should use the
range [0, keysize], or perhaps the 'hashsize' parameter to match the
previous hardcoded lengths, if exclusively those key sizes should be
accepted.