xref: /openbmc/qemu/qapi/cryptodev.json (revision 4622c706)
1# -*- Mode: Python -*-
2# vim: filetype=python
3#
4# This work is licensed under the terms of the GNU GPL, version 2 or later.
5# See the COPYING file in the top-level directory.
6
7##
8# = Cryptography devices
9##
10
11##
12# @QCryptodevBackendAlgType:
13#
14# The supported algorithm types of a crypto device.
15#
16# @sym: symmetric encryption
17# @asym: asymmetric Encryption
18#
19# Since: 8.0
20##
21{ 'enum': 'QCryptodevBackendAlgType',
22  'prefix': 'QCRYPTODEV_BACKEND_ALG',
23  'data': ['sym', 'asym']}
24
25##
26# @QCryptodevBackendServiceType:
27#
28# The supported service types of a crypto device.
29#
30# Since: 8.0
31##
32{ 'enum': 'QCryptodevBackendServiceType',
33  'prefix': 'QCRYPTODEV_BACKEND_SERVICE',
34  'data': ['cipher', 'hash', 'mac', 'aead', 'akcipher']}
35
36##
37# @QCryptodevBackendType:
38#
39# The crypto device backend type
40#
41# @builtin: the QEMU builtin support
42# @vhost-user: vhost-user
43# @lkcf: Linux kernel cryptographic framework
44#
45# Since: 8.0
46##
47{ 'enum': 'QCryptodevBackendType',
48  'prefix': 'QCRYPTODEV_BACKEND_TYPE',
49  'data': ['builtin', 'vhost-user', 'lkcf']}
50
51##
52# @QCryptodevBackendClient:
53#
54# Information about a queue of crypto device.
55#
56# @queue: the queue index of the crypto device
57#
58# @type: the type of the crypto device
59#
60# Since: 8.0
61##
62{ 'struct': 'QCryptodevBackendClient',
63  'data': { 'queue': 'uint32',
64            'type': 'QCryptodevBackendType' } }
65
66##
67# @QCryptodevInfo:
68#
69# Information about a crypto device.
70#
71# @id: the id of the crypto device
72#
73# @service: supported service types of a crypto device
74#
75# @client: the additional infomation of the crypto device
76#
77# Since: 8.0
78##
79{ 'struct': 'QCryptodevInfo',
80  'data': { 'id': 'str',
81            'service': ['QCryptodevBackendServiceType'],
82            'client': ['QCryptodevBackendClient'] } }
83
84##
85# @query-cryptodev:
86#
87# Returns information about current crypto devices.
88#
89# Returns: a list of @QCryptodevInfo
90#
91# Since: 8.0
92##
93{ 'command': 'query-cryptodev', 'returns': ['QCryptodevInfo']}
94