Re: [PATCH v1.5 3/5] key: add tpm_send command

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Quoting Mimi Zohar (zohar@xxxxxxxxxxxxxxxxxx):
> Add internal kernel tpm_send() command used to seal/unseal keys.
> 
> Changelog:
> - replaced module_put in tpm_send() with new tpm_chip_put() wrapper
>   (suggested by David Howells)
> - Make tpm_send() cmd argument a 'void *' (suggested by David Howells)
> 
> Signed-off-by: David Safford <safford@xxxxxxxxxxxxxx>
> Signed-off-by: Mimi Zohar <zohar@xxxxxxxxxx>
> Acked-by: David Howells <dhowells@xxxxxxxxxx>
> ---
>  drivers/char/tpm/tpm.c |   16 ++++++++++++++++
>  include/linux/tpm.h    |    4 ++++
>  2 files changed, 20 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/char/tpm/tpm.c b/drivers/char/tpm/tpm.c
> index 26c09f3..068bac8 100644
> --- a/drivers/char/tpm/tpm.c
> +++ b/drivers/char/tpm/tpm.c
> @@ -780,6 +780,22 @@ int tpm_pcr_extend(u32 chip_num, int pcr_idx, const u8 *hash)
>  }
>  EXPORT_SYMBOL_GPL(tpm_pcr_extend);
>  
> +int tpm_send(u32 chip_num, void *cmd, size_t buflen)

Hate to nit-pick, but any particular reason you're not following the
rest of the file and using 'struct tpm_cmd_t *cmd' here?

Acked-by: Serge E. Hallyn <serge.hallyn@xxxxxxxxxxxxx>

> +{
> +	struct tpm_chip *chip;
> +	int rc;
> +
> +	chip = tpm_chip_find_get(chip_num);
> +	if (chip == NULL)
> +		return -ENODEV;
> +
> +	rc = transmit_cmd(chip, cmd, buflen, "attempting tpm_cmd");
> +
> +	tpm_chip_put(chip);
> +	return rc;
> +}
> +EXPORT_SYMBOL_GPL(tpm_send);
> +
>  ssize_t tpm_show_pcrs(struct device *dev, struct device_attribute *attr,
>  		      char *buf)
>  {
> diff --git a/include/linux/tpm.h b/include/linux/tpm.h
> index ac5d1c1..fdc718a 100644
> --- a/include/linux/tpm.h
> +++ b/include/linux/tpm.h
> @@ -31,6 +31,7 @@
>  
>  extern int tpm_pcr_read(u32 chip_num, int pcr_idx, u8 *res_buf);
>  extern int tpm_pcr_extend(u32 chip_num, int pcr_idx, const u8 *hash);
> +extern int tpm_send(u32 chip_num, void *cmd, size_t buflen);
>  #else
>  static inline int tpm_pcr_read(u32 chip_num, int pcr_idx, u8 *res_buf) {
>  	return -ENODEV;
> @@ -38,5 +39,8 @@ static inline int tpm_pcr_read(u32 chip_num, int pcr_idx, u8 *res_buf) {
>  static inline int tpm_pcr_extend(u32 chip_num, int pcr_idx, const u8 *hash) {
>  	return -ENODEV;
>  }
> +static inline int tpm_send(u32 chip_num, void *cmd, size_t buflen) {
> +	return -ENODEV;
> +}
>  #endif
>  #endif
> -- 
> 1.7.2.2
> 
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-security-module" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]

  Powered by Linux