Special unions (might want to use interface):
  - TPMU_HA
  - TPMU_CAPABILITIES

Byte arrays:

Just sized buffers:
  - TPM2B_DIGEST (aslo TPMU_HA?)
  - TPM2B_DATA
  - TPM2B_NONCE
  - TPM2B_AUTH
  - TPM2B_OPERAND
  - TPM2B_EVENT
  - TPM2B_MAX_BUFFER
  - TPM2B_TIMEOUT (maybe use TIMEOUT struct?)
  - TPM2B_IV
  - TPM2B_SYM_KEY
  - TPM2B_LABEL
  - TPM2B_PUBLIC_KEY_RSA
  - TPM2B_PRIVATE_KEY_RSA
  - TPM2B_ECC_PARAMETER

Opaque Buffers:
  - TPM2B_PRIVATE
  - TPM2B_ENCRYPTED_SECRET
  - TPM2B_CONTEXT_SENSITIVE

Parsable Buffers:
  - TPM2B_ATTEST (TPMS_ATTEST -> TPM2B_DATA)
  - TPM2B_DERIVE (TPMS_DERIVE -> TPM2B_LABEL)
  - TPM2B_SENSITIVE_DATA (TPMS_DERIVE ???)
  - TPM2B_SENSITIVE_CREATE (TPMS_SENSITIVE_CREATE -> TPM2B_AUTH)
  - TPM2B_ECC_POINT (TPMS_ECC_POINT -> TPM2B_ECC_PARAMETER)
  - TPM2B_PUBLIC (TPMT_PUBLIC -> TPM2B_DIGEST)
  - TPM2B_SENSITIVE (TPMT_SENSITIVE -> TPM2B_AUTH)
  - TPM2B_ID_OBJECT (TPMS_ID_OBJECT -> TPM2B_DIGEST)
  - TPM2B_NV_PUBLIC (TPMS_NV_PUBLIC -> TPM2B_DIGEST)
  - TPM2B_CONTEXT_DATA (TPMS_CONTEXT_DATA -> TPM2B_DIGEST)
  - TPM2B_CREATION_DATA (TPMS_CREATION_DATA -> TPM2B_DIGEST)

Other:
  - TPM2B_TEMPLATE is use TPM2B_PUBLIC (just allow for unique of TPMS_DERIVE ???)
  - TPM2B_NAME (Will just be a normal Rust union)

TPM2B_PRIVATE

Not Used:
  - TPM2B_SYM_KEY (TPMU_SENSITIVE_COMPOSITE -> TPMT_SENSITIVE)
  - 