aboutsummaryrefslogtreecommitdiff
path: root/Documentation/ABI/testing/configfs-tsm
blob: 534408bc1408fdeccf31e68041e317bc27430147 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
What:		/sys/kernel/config/tsm/report/$name/inblob
Date:		September, 2023
KernelVersion:	v6.7
Contact:	linux-coco@lists.linux.dev
Description:
		(WO) Up to 64 bytes of user specified binary data. For replay
		protection this should include a nonce, but the kernel does not
		place any restrictions on the content.

What:		/sys/kernel/config/tsm/report/$name/outblob
Date:		September, 2023
KernelVersion:	v6.7
Contact:	linux-coco@lists.linux.dev
Description:
		(RO) Binary attestation report generated from @inblob and other
		options The format of the report is implementation specific
		where the implementation is conveyed via the @provider
		attribute.

What:		/sys/kernel/config/tsm/report/$name/auxblob
Date:		October, 2023
KernelVersion:	v6.7
Contact:	linux-coco@lists.linux.dev
Description:
		(RO) Optional supplemental data that a TSM may emit, visibility
		of this attribute depends on TSM, and may be empty if no
		auxiliary data is available.

		When @provider is "sev_guest" this file contains the
		"cert_table" from SEV-ES Guest-Hypervisor Communication Block
		Standardization v2.03 Section 4.1.8.1 MSG_REPORT_REQ.
		https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/specifications/56421.pdf

What:		/sys/kernel/config/tsm/report/$name/manifestblob
Date:		January, 2024
KernelVersion:	v6.10
Contact:	linux-coco@lists.linux.dev
Description:
		(RO) Optional supplemental data that a TSM may emit, visibility
		of this attribute depends on TSM, and may be empty if no
		manifest data is available.

		See 'service_provider' for information on the format of the
		manifest blob.

What:		/sys/kernel/config/tsm/report/$name/provider
Date:		September, 2023
KernelVersion:	v6.7
Contact:	linux-coco@lists.linux.dev
Description:
		(RO) A name for the format-specification of @outblob like
		"sev_guest" [1] or "tdx_guest" [2] in the near term, or a
		common standard format in the future.

		[1]: SEV Secure Nested Paging Firmware ABI Specification
		Revision 1.55 Table 22
		https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/specifications/56860.pdf

		[2]: Intel® Trust Domain Extensions Data Center Attestation
		Primitives : Quote Generation Library and Quote Verification
		Library Revision 0.8 Appendix 4,5
		https://download.01.org/intel-sgx/latest/dcap-latest/linux/docs/Intel_TDX_DCAP_Quoting_Library_API.pdf

What:		/sys/kernel/config/tsm/report/$name/generation
Date:		September, 2023
KernelVersion:	v6.7
Contact:	linux-coco@lists.linux.dev
Description:
		(RO) The value in this attribute increments each time @inblob or
		any option is written. Userspace can detect conflicts by
		checking generation before writing to any attribute and making
		sure the number of writes matches expectations after reading
		@outblob, or it can prevent conflicts by creating a report
		instance per requesting context.

What:		/sys/kernel/config/tsm/report/$name/privlevel
Date:		September, 2023
KernelVersion:	v6.7
Contact:	linux-coco@lists.linux.dev
Description:
		(WO) Attribute is visible if a TSM implementation provider
		supports the concept of attestation reports for TVMs running at
		different privilege levels, like SEV-SNP "VMPL", specify the
		privilege level via this attribute.  The minimum acceptable
		value is conveyed via @privlevel_floor and the maximum
		acceptable value is TSM_PRIVLEVEL_MAX (3).

What:		/sys/kernel/config/tsm/report/$name/privlevel_floor
Date:		September, 2023
KernelVersion:	v6.7
Contact:	linux-coco@lists.linux.dev
Description:
		(RO) Indicates the minimum permissible value that can be written
		to @privlevel.

What:		/sys/kernel/config/tsm/report/$name/service_provider
Date:		January, 2024
KernelVersion:	v6.10
Contact:	linux-coco@lists.linux.dev
Description:
		(WO) Attribute is visible if a TSM implementation provider
		supports the concept of attestation reports from a service
		provider for TVMs, like SEV-SNP running under an SVSM.
		Specifying the service provider via this attribute will create
		an attestation report as specified by the service provider.
		The only currently supported service provider is "svsm".

		For the "svsm" service provider, see the Secure VM Service Module
		for SEV-SNP Guests v1.00 Section 7. For the doc, search for
		"site:amd.com "Secure VM Service Module for SEV-SNP
		Guests", docID: 58019"

What:		/sys/kernel/config/tsm/report/$name/service_guid
Date:		January, 2024
KernelVersion:	v6.10
Contact:	linux-coco@lists.linux.dev
Description:
		(WO) Attribute is visible if a TSM implementation provider
		supports the concept of attestation reports from a service
		provider for TVMs, like SEV-SNP running under an SVSM.
		Specifying an empty/null GUID (00000000-0000-0000-0000-000000)
		requests all active services within the service provider be
		part of the attestation report. Specifying a GUID request
		an attestation report of just the specified service using the
		manifest form specified by the service_manifest_version
		attribute.

		See 'service_provider' for information on the format of the
		service guid.

What:		/sys/kernel/config/tsm/report/$name/service_manifest_version
Date:		January, 2024
KernelVersion:	v6.10
Contact:	linux-coco@lists.linux.dev
Description:
		(WO) Attribute is visible if a TSM implementation provider
		supports the concept of attestation reports from a service
		provider for TVMs, like SEV-SNP running under an SVSM.
		Indicates the service manifest version requested for the
		attestation report (default 0). If this field is not set by
		the user, the default manifest version of the service (the
		service's initial/first manifest version) is returned.

		See 'service_provider' for information on the format of the
		service manifest version.