2017-08-25 03:14:03 +08:00
|
|
|
# -*- Mode: Python -*-
|
2020-07-30 02:50:24 +08:00
|
|
|
# vim: filetype=python
|
2017-08-25 03:14:03 +08:00
|
|
|
#
|
|
|
|
|
|
|
|
##
|
|
|
|
# = TPM (trusted platform module) devices
|
|
|
|
##
|
|
|
|
|
|
|
|
##
|
|
|
|
# @TpmModel:
|
|
|
|
#
|
|
|
|
# An enumeration of TPM models
|
|
|
|
#
|
|
|
|
# @tpm-tis: TPM TIS model
|
2023-04-28 18:54:29 +08:00
|
|
|
#
|
2018-01-30 02:33:07 +08:00
|
|
|
# @tpm-crb: TPM CRB model (since 2.12)
|
2023-04-28 18:54:29 +08:00
|
|
|
#
|
2020-01-21 23:29:32 +08:00
|
|
|
# @tpm-spapr: TPM SPAPR model (since 5.0)
|
2017-08-25 03:14:03 +08:00
|
|
|
#
|
|
|
|
# Since: 1.5
|
|
|
|
##
|
2021-06-15 22:21:21 +08:00
|
|
|
{ 'enum': 'TpmModel', 'data': [ 'tpm-tis', 'tpm-crb', 'tpm-spapr' ],
|
2021-08-04 16:31:05 +08:00
|
|
|
'if': 'CONFIG_TPM' }
|
2021-06-15 22:21:21 +08:00
|
|
|
|
2017-08-25 03:14:03 +08:00
|
|
|
##
|
|
|
|
# @query-tpm-models:
|
|
|
|
#
|
|
|
|
# Return a list of supported TPM models
|
|
|
|
#
|
|
|
|
# Returns: a list of TpmModel
|
|
|
|
#
|
|
|
|
# Since: 1.5
|
|
|
|
#
|
|
|
|
# Example:
|
|
|
|
#
|
|
|
|
# -> { "execute": "query-tpm-models" }
|
2020-01-21 23:29:32 +08:00
|
|
|
# <- { "return": [ "tpm-tis", "tpm-crb", "tpm-spapr" ] }
|
2017-08-25 03:14:03 +08:00
|
|
|
##
|
2021-06-15 22:21:21 +08:00
|
|
|
{ 'command': 'query-tpm-models', 'returns': ['TpmModel'],
|
2021-08-04 16:31:05 +08:00
|
|
|
'if': 'CONFIG_TPM' }
|
2017-08-25 03:14:03 +08:00
|
|
|
|
|
|
|
##
|
|
|
|
# @TpmType:
|
|
|
|
#
|
|
|
|
# An enumeration of TPM types
|
|
|
|
#
|
|
|
|
# @passthrough: TPM passthrough type
|
2023-04-28 18:54:29 +08:00
|
|
|
#
|
2023-04-25 14:42:22 +08:00
|
|
|
# @emulator: Software Emulator TPM type (since 2.11)
|
2017-08-25 03:14:03 +08:00
|
|
|
#
|
|
|
|
# Since: 1.5
|
|
|
|
##
|
2021-06-15 22:21:21 +08:00
|
|
|
{ 'enum': 'TpmType', 'data': [ 'passthrough', 'emulator' ],
|
2021-08-04 16:31:05 +08:00
|
|
|
'if': 'CONFIG_TPM' }
|
2017-08-25 03:14:03 +08:00
|
|
|
|
|
|
|
##
|
|
|
|
# @query-tpm-types:
|
|
|
|
#
|
|
|
|
# Return a list of supported TPM types
|
|
|
|
#
|
|
|
|
# Returns: a list of TpmType
|
|
|
|
#
|
|
|
|
# Since: 1.5
|
|
|
|
#
|
|
|
|
# Example:
|
|
|
|
#
|
|
|
|
# -> { "execute": "query-tpm-types" }
|
2017-09-29 19:10:20 +08:00
|
|
|
# <- { "return": [ "passthrough", "emulator" ] }
|
2017-08-25 03:14:03 +08:00
|
|
|
##
|
2021-06-15 22:21:21 +08:00
|
|
|
{ 'command': 'query-tpm-types', 'returns': ['TpmType'],
|
2021-08-04 16:31:05 +08:00
|
|
|
'if': 'CONFIG_TPM' }
|
2017-08-25 03:14:03 +08:00
|
|
|
|
|
|
|
##
|
|
|
|
# @TPMPassthroughOptions:
|
|
|
|
#
|
|
|
|
# Information about the TPM passthrough type
|
|
|
|
#
|
|
|
|
# @path: string describing the path used for accessing the TPM device
|
|
|
|
#
|
2023-04-28 18:54:29 +08:00
|
|
|
# @cancel-path: string showing the TPM's sysfs cancel file for
|
|
|
|
# cancellation of TPM commands while they are executing
|
2017-08-25 03:14:03 +08:00
|
|
|
#
|
|
|
|
# Since: 1.5
|
|
|
|
##
|
2018-12-08 19:16:04 +08:00
|
|
|
{ 'struct': 'TPMPassthroughOptions',
|
|
|
|
'data': { '*path': 'str',
|
2021-06-15 22:21:21 +08:00
|
|
|
'*cancel-path': 'str' },
|
2021-08-04 16:31:05 +08:00
|
|
|
'if': 'CONFIG_TPM' }
|
2017-08-25 03:14:03 +08:00
|
|
|
|
2017-09-29 19:10:20 +08:00
|
|
|
##
|
|
|
|
# @TPMEmulatorOptions:
|
|
|
|
#
|
|
|
|
# Information about the TPM emulator type
|
|
|
|
#
|
|
|
|
# @chardev: Name of a unix socket chardev
|
|
|
|
#
|
|
|
|
# Since: 2.11
|
|
|
|
##
|
2021-06-15 22:21:21 +08:00
|
|
|
{ 'struct': 'TPMEmulatorOptions', 'data': { 'chardev' : 'str' },
|
2021-08-04 16:31:05 +08:00
|
|
|
'if': 'CONFIG_TPM' }
|
2017-09-29 19:10:20 +08:00
|
|
|
|
2021-09-17 22:31:16 +08:00
|
|
|
##
|
|
|
|
# @TPMPassthroughOptionsWrapper:
|
|
|
|
#
|
|
|
|
# Since: 1.5
|
|
|
|
##
|
|
|
|
{ 'struct': 'TPMPassthroughOptionsWrapper',
|
|
|
|
'data': { 'data': 'TPMPassthroughOptions' },
|
|
|
|
'if': 'CONFIG_TPM' }
|
|
|
|
|
|
|
|
##
|
|
|
|
# @TPMEmulatorOptionsWrapper:
|
|
|
|
#
|
|
|
|
# Since: 2.11
|
|
|
|
##
|
|
|
|
{ 'struct': 'TPMEmulatorOptionsWrapper',
|
|
|
|
'data': { 'data': 'TPMEmulatorOptions' },
|
|
|
|
'if': 'CONFIG_TPM' }
|
|
|
|
|
2017-08-25 03:14:03 +08:00
|
|
|
##
|
|
|
|
# @TpmTypeOptions:
|
|
|
|
#
|
2023-04-28 18:54:29 +08:00
|
|
|
# A union referencing different TPM backend types' configuration
|
|
|
|
# options
|
2017-08-25 03:14:03 +08:00
|
|
|
#
|
2023-04-28 18:54:29 +08:00
|
|
|
# @type:
|
|
|
|
# - 'passthrough' The configuration options for the TPM
|
|
|
|
# passthrough type
|
|
|
|
# - 'emulator' The configuration options for TPM emulator backend
|
|
|
|
# type
|
2017-08-25 03:14:03 +08:00
|
|
|
#
|
|
|
|
# Since: 1.5
|
|
|
|
##
|
|
|
|
{ 'union': 'TpmTypeOptions',
|
2021-09-17 22:31:16 +08:00
|
|
|
'base': { 'type': 'TpmType' },
|
|
|
|
'discriminator': 'type',
|
|
|
|
'data': { 'passthrough' : 'TPMPassthroughOptionsWrapper',
|
|
|
|
'emulator': 'TPMEmulatorOptionsWrapper' },
|
2021-08-04 16:31:05 +08:00
|
|
|
'if': 'CONFIG_TPM' }
|
2017-08-25 03:14:03 +08:00
|
|
|
|
|
|
|
##
|
|
|
|
# @TPMInfo:
|
|
|
|
#
|
|
|
|
# Information about the TPM
|
|
|
|
#
|
|
|
|
# @id: The Id of the TPM
|
|
|
|
#
|
|
|
|
# @model: The TPM frontend model
|
|
|
|
#
|
|
|
|
# @options: The TPM (backend) type configuration options
|
|
|
|
#
|
|
|
|
# Since: 1.5
|
|
|
|
##
|
|
|
|
{ 'struct': 'TPMInfo',
|
|
|
|
'data': {'id': 'str',
|
|
|
|
'model': 'TpmModel',
|
2021-06-15 22:21:21 +08:00
|
|
|
'options': 'TpmTypeOptions' },
|
2021-08-04 16:31:05 +08:00
|
|
|
'if': 'CONFIG_TPM' }
|
2017-08-25 03:14:03 +08:00
|
|
|
|
|
|
|
##
|
|
|
|
# @query-tpm:
|
|
|
|
#
|
|
|
|
# Return information about the TPM device
|
|
|
|
#
|
|
|
|
# Returns: @TPMInfo on success
|
|
|
|
#
|
|
|
|
# Since: 1.5
|
|
|
|
#
|
|
|
|
# Example:
|
|
|
|
#
|
|
|
|
# -> { "execute": "query-tpm" }
|
|
|
|
# <- { "return":
|
|
|
|
# [
|
|
|
|
# { "model": "tpm-tis",
|
|
|
|
# "options":
|
|
|
|
# { "type": "passthrough",
|
|
|
|
# "data":
|
|
|
|
# { "cancel-path": "/sys/class/misc/tpm0/device/cancel",
|
|
|
|
# "path": "/dev/tpm0"
|
|
|
|
# }
|
|
|
|
# },
|
|
|
|
# "id": "tpm0"
|
|
|
|
# }
|
|
|
|
# ]
|
|
|
|
# }
|
|
|
|
##
|
2021-06-15 22:21:21 +08:00
|
|
|
{ 'command': 'query-tpm', 'returns': ['TPMInfo'],
|
2021-08-04 16:31:05 +08:00
|
|
|
'if': 'CONFIG_TPM' }
|