xref: /qemu/qapi/cryptodev.json (revision 651ccdfa)
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# @QCryptodevBackendAlgType:
9#
10# The supported algorithm types of a crypto device.
11#
12# @sym: symmetric encryption
13# @asym: asymmetric Encryption
14#
15# Since: 8.0
16##
17{ 'enum': 'QCryptodevBackendAlgType',
18  'prefix': 'QCRYPTODEV_BACKEND_ALG',
19  'data': ['sym', 'asym']}
20
21##
22# @QCryptodevBackendServiceType:
23#
24# The supported service types of a crypto device.
25#
26# Since: 8.0
27##
28{ 'enum': 'QCryptodevBackendServiceType',
29  'prefix': 'QCRYPTODEV_BACKEND_SERVICE',
30  'data': ['cipher', 'hash', 'mac', 'aead', 'akcipher']}
31
32##
33# @QCryptodevBackendType:
34#
35# The crypto device backend type
36#
37# @builtin: the QEMU builtin support
38# @vhost-user: vhost-user
39# @lkcf: Linux kernel cryptographic framework
40#
41# Since: 8.0
42##
43{ 'enum': 'QCryptodevBackendType',
44  'prefix': 'QCRYPTODEV_BACKEND_TYPE',
45  'data': ['builtin', 'vhost-user', 'lkcf']}
46
47##
48# @QCryptodevBackendClient:
49#
50# Information about a queue of crypto device.
51#
52# @queue: the queue index of the crypto device
53#
54# @type: the type of the crypto device
55#
56# Since: 8.0
57##
58{ 'struct': 'QCryptodevBackendClient',
59  'data': { 'queue': 'uint32',
60            'type': 'QCryptodevBackendType' } }
61
62##
63# @QCryptodevInfo:
64#
65# Information about a crypto device.
66#
67# @id: the id of the crypto device
68#
69# @service: supported service types of a crypto device
70#
71# @client: the additional infomation of the crypto device
72#
73# Since: 8.0
74##
75{ 'struct': 'QCryptodevInfo',
76  'data': { 'id': 'str',
77            'service': ['QCryptodevBackendServiceType'],
78            'client': ['QCryptodevBackendClient'] } }
79
80##
81# @query-cryptodev:
82#
83# Returns information about current crypto devices.
84#
85# Returns: a list of @QCryptodevInfo
86#
87# Since: 8.0
88##
89{ 'command': 'query-cryptodev', 'returns': ['QCryptodevInfo']}
90