5 # = TPM (trusted platform module) devices
11 # An enumeration of TPM models
13 # @tpm-tis: TPM TIS model
17 { 'enum': 'TpmModel', 'data': [ 'tpm-tis' ] }
22 # Return a list of supported TPM models
24 # Returns: a list of TpmModel
30 # -> { "execute": "query-tpm-models" }
31 # <- { "return": [ "tpm-tis" ] }
34 { 'command': 'query-tpm-models', 'returns': ['TpmModel'] }
39 # An enumeration of TPM types
41 # @passthrough: TPM passthrough type
45 { 'enum': 'TpmType', 'data': [ 'passthrough' ] }
50 # Return a list of supported TPM types
52 # Returns: a list of TpmType
58 # -> { "execute": "query-tpm-types" }
59 # <- { "return": [ "passthrough" ] }
62 { 'command': 'query-tpm-types', 'returns': ['TpmType'] }
65 # @TPMPassthroughOptions:
67 # Information about the TPM passthrough type
69 # @path: string describing the path used for accessing the TPM device
71 # @cancel-path: string showing the TPM's sysfs cancel file
72 # for cancellation of TPM commands while they are executing
76 { 'struct': 'TPMPassthroughOptions', 'data': { '*path' : 'str',
77 '*cancel-path' : 'str'} }
82 # A union referencing different TPM backend types' configuration options
84 # @type: 'passthrough' The configuration options for the TPM passthrough type
88 { 'union': 'TpmTypeOptions',
89 'data': { 'passthrough' : 'TPMPassthroughOptions' } }
94 # Information about the TPM
96 # @id: The Id of the TPM
98 # @model: The TPM frontend model
100 # @options: The TPM (backend) type configuration options
104 { 'struct': 'TPMInfo',
105 'data': {'id': 'str',
107 'options': 'TpmTypeOptions' } }
112 # Return information about the TPM device
114 # Returns: @TPMInfo on success
120 # -> { "execute": "query-tpm" }
123 # { "model": "tpm-tis",
125 # { "type": "passthrough",
127 # { "cancel-path": "/sys/class/misc/tpm0/device/cancel",
128 # "path": "/dev/tpm0"
137 { 'command': 'query-tpm', 'returns': ['TPMInfo'] }