diff options
Diffstat (limited to 'include/linux/tsm.h')
| -rw-r--r-- | include/linux/tsm.h | 19 | 
1 files changed, 19 insertions, 0 deletions
diff --git a/include/linux/tsm.h b/include/linux/tsm.h index 30d9d270b446..11b0c525be30 100644 --- a/include/linux/tsm.h +++ b/include/linux/tsm.h @@ -4,6 +4,7 @@  #include <linux/sizes.h>  #include <linux/types.h> +#include <linux/uuid.h>  #define TSM_INBLOB_MAX 64  #define TSM_OUTBLOB_MAX SZ_32K @@ -19,11 +20,17 @@   * @privlevel: optional privilege level to associate with @outblob   * @inblob_len: sizeof @inblob   * @inblob: arbitrary input data + * @service_provider: optional name of where to obtain the tsm report blob + * @service_guid: optional service-provider service guid to attest + * @service_manifest_version: optional service-provider service manifest version requested   */  struct tsm_desc {  	unsigned int privlevel;  	size_t inblob_len;  	u8 inblob[TSM_INBLOB_MAX]; +	char *service_provider; +	guid_t service_guid; +	unsigned int service_manifest_version;  };  /** @@ -33,6 +40,8 @@ struct tsm_desc {   * @outblob: generated evidence to provider to the attestation agent   * @auxblob_len: sizeof(@auxblob)   * @auxblob: (optional) auxiliary data to the report (e.g. certificate data) + * @manifestblob_len: sizeof(@manifestblob) + * @manifestblob: (optional) manifest data associated with the report   */  struct tsm_report {  	struct tsm_desc desc; @@ -40,6 +49,8 @@ struct tsm_report {  	u8 *outblob;  	size_t auxblob_len;  	u8 *auxblob; +	size_t manifestblob_len; +	u8 *manifestblob;  };  /** @@ -48,12 +59,18 @@ struct tsm_report {   * @TSM_REPORT_PROVIDER: index of the provider name attribute   * @TSM_REPORT_PRIVLEVEL: index of the desired privilege level attribute   * @TSM_REPORT_PRIVLEVEL_FLOOR: index of the minimum allowed privileg level attribute + * @TSM_REPORT_SERVICE_PROVIDER: index of the service provider identifier attribute + * @TSM_REPORT_SERVICE_GUID: index of the service GUID attribute + * @TSM_REPORT_SERVICE_MANIFEST_VER: index of the service manifest version attribute   */  enum tsm_attr_index {  	TSM_REPORT_GENERATION,  	TSM_REPORT_PROVIDER,  	TSM_REPORT_PRIVLEVEL,  	TSM_REPORT_PRIVLEVEL_FLOOR, +	TSM_REPORT_SERVICE_PROVIDER, +	TSM_REPORT_SERVICE_GUID, +	TSM_REPORT_SERVICE_MANIFEST_VER,  };  /** @@ -61,11 +78,13 @@ enum tsm_attr_index {   * @TSM_REPORT_INBLOB: index of the binary report input attribute   * @TSM_REPORT_OUTBLOB: index of the binary report output attribute   * @TSM_REPORT_AUXBLOB: index of the binary auxiliary data attribute + * @TSM_REPORT_MANIFESTBLOB: index of the binary manifest data attribute   */  enum tsm_bin_attr_index {  	TSM_REPORT_INBLOB,  	TSM_REPORT_OUTBLOB,  	TSM_REPORT_AUXBLOB, +	TSM_REPORT_MANIFESTBLOB,  };  /**  | 
