In g10/tdbio.c (and verify_own_keys in g10/trustdb.c), fingerprint max is assumed to be 20.
And the record of 40-byte is defined as:
- 1-byte: TYPE
- 1-byte; Reserved
- 20-byte: fingerprint
- 1-byte owner trust
- 1-byte depth
- 1-byte min_ownertrust
- 1-byte rsvd
- 4-byte validlist recnum
- rest of unused bytes (10)
v5 key's fingerprint length is 32. New record type and structure should be possibly needed here.
Perhaps, we can use half-byte for ownertrust and another half-byte for min_ownertrust, so that it can be packed into 40-byte.