SLUUAQ3A April 2016 – October 2022 BQ4050
The SHA-1 engine calculates a modified HMAC value. Using a public message and a secret key, the HMAC output is considered to be a secure fingerprint that authenticates the device used to generate the HMAC.
To compute the HMAC: Let H designate the SHA-1 hash function, M designate the message transmitted to the device, and KD designate the unique 128-bit Unseal/Full Access/Authentication key of the device. HMAC(M) is defined as:
H[KD || H(KD || M)], where || symbolizes an append operation.
The message, M, is appended to the unseal/full access/authentication key, KD, and padded to become the input to the SHA-1 hash. The output of this first calculation is then appended to the unseal/full access/authentication key, KD, padded again, and cycled through the SHA-1 hash a second time. The output is the HMAC digest value.