struct trusted_key_options contains fields that are specific to the TPM
trusted source, resulting in the accumulation backend-specific fields in
the generic options structure.
Move the TPM-specific fields into a new struct trusted_key_tpm and store a
pointer to it in the private member of struct trusted_key_options.
As a preparatory change, return immediately after a TPM unseal failure to
prevent pcrlock() from overwriting the unseal error.
Changelog:
v7:
- Fix a memory leak in the preparatory fix
v6:
- Add a preparatory fix to return immediately after a TPM unseal failure
- Replace explicit cleanup with __free(kfree_sensitive) in the TPM seal
and unseal paths, as suggested by Jarkko
v5:
- Rename struct trusted_tpm_options to struct trusted_key_tpm, as
suggestedby Jarkko.
v4:
- Rebased onto mainline after tpm-buf memory-safe allocation changes were
merged
- Resolved the resulting merge conflicts
v3:
- Exclude the preparatory clean up patch as the problem has been
addressed in commit
9ec4175a30eb ("KEYS: trusted: Debugging as a feature")
v2:
- Exclude the bug-fix patch as it has already been applied to 6.19-rc7
- Rename instances of trusted_tpm_options from tpm_opts to private
- Use pr_debug and KERN_DEBUG for logging debug messages (preparatory
clean up patch)
- Address other minor comments from Jarkko
Srish Srinivasan (2):
keys/trusted_keys: return immediately after TPM unseal failure
keys/trusted_keys: move TPM-specific fields into struct
trusted_key_tpm
include/keys/trusted-type.h | 11 --
include/keys/trusted_tpm.h | 14 +++
security/keys/trusted-keys/trusted_tpm1.c | 125 ++++++++++++----------
security/keys/trusted-keys/trusted_tpm2.c | 50 +++++----
4 files changed, 113 insertions(+), 87 deletions(-)
--
2.53.0