tpm: export the context save and load commands

The TPM2 session HMAC and encryption handling code needs to save and
restore a single volatile context for the elliptic curve version of
the NULL seed, so export the APIs which do this for internal use.

Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
Tested-by: Jarkko Sakkinen <jarkko@kernel.org>
Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
This commit is contained in:
James Bottomley 2024-04-29 16:28:00 -04:00 committed by Jarkko Sakkinen
parent 11189d6828
commit fefb9f1272
2 changed files with 8 additions and 4 deletions

View file

@ -312,6 +312,10 @@ int tpm2_commit_space(struct tpm_chip *chip, struct tpm_space *space, void *buf,
size_t *bufsiz); size_t *bufsiz);
int tpm_devs_add(struct tpm_chip *chip); int tpm_devs_add(struct tpm_chip *chip);
void tpm_devs_remove(struct tpm_chip *chip); void tpm_devs_remove(struct tpm_chip *chip);
int tpm2_save_context(struct tpm_chip *chip, u32 handle, u8 *buf,
unsigned int buf_size, unsigned int *offset);
int tpm2_load_context(struct tpm_chip *chip, u8 *buf,
unsigned int *offset, u32 *handle);
void tpm_bios_log_setup(struct tpm_chip *chip); void tpm_bios_log_setup(struct tpm_chip *chip);
void tpm_bios_log_teardown(struct tpm_chip *chip); void tpm_bios_log_teardown(struct tpm_chip *chip);

View file

@ -68,8 +68,8 @@ void tpm2_del_space(struct tpm_chip *chip, struct tpm_space *space)
kfree(space->session_buf); kfree(space->session_buf);
} }
static int tpm2_load_context(struct tpm_chip *chip, u8 *buf, int tpm2_load_context(struct tpm_chip *chip, u8 *buf,
unsigned int *offset, u32 *handle) unsigned int *offset, u32 *handle)
{ {
struct tpm_buf tbuf; struct tpm_buf tbuf;
struct tpm2_context *ctx; struct tpm2_context *ctx;
@ -119,8 +119,8 @@ static int tpm2_load_context(struct tpm_chip *chip, u8 *buf,
return 0; return 0;
} }
static int tpm2_save_context(struct tpm_chip *chip, u32 handle, u8 *buf, int tpm2_save_context(struct tpm_chip *chip, u32 handle, u8 *buf,
unsigned int buf_size, unsigned int *offset) unsigned int buf_size, unsigned int *offset)
{ {
struct tpm_buf tbuf; struct tpm_buf tbuf;
unsigned int body_size; unsigned int body_size;