qapi: Reject multiple and empty feature descriptions
[qemu/kevin.git] / qapi / cryptodev.json
blob68289f49840b767d6952bc0b890b4416c5a1334b
1 # -*- Mode: Python -*-
2 # vim: filetype=python
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.
7 ##
8 # = Cryptography devices
9 ##
12 # @QCryptodevBackendAlgType:
14 # The supported algorithm types of a crypto device.
16 # @sym: symmetric encryption
18 # @asym: asymmetric Encryption
20 # Since: 8.0
22 { 'enum': 'QCryptodevBackendAlgType',
23   'prefix': 'QCRYPTODEV_BACKEND_ALG',
24   'data': ['sym', 'asym']}
27 # @QCryptodevBackendServiceType:
29 # The supported service types of a crypto device.
31 # Since: 8.0
33 { 'enum': 'QCryptodevBackendServiceType',
34   'prefix': 'QCRYPTODEV_BACKEND_SERVICE',
35   'data': ['cipher', 'hash', 'mac', 'aead', 'akcipher']}
38 # @QCryptodevBackendType:
40 # The crypto device backend type
42 # @builtin: the QEMU builtin support
44 # @vhost-user: vhost-user
46 # @lkcf: Linux kernel cryptographic framework
48 # Since: 8.0
50 { 'enum': 'QCryptodevBackendType',
51   'prefix': 'QCRYPTODEV_BACKEND_TYPE',
52   'data': ['builtin', 'vhost-user', 'lkcf']}
55 # @QCryptodevBackendClient:
57 # Information about a queue of crypto device.
59 # @queue: the queue index of the crypto device
61 # @type: the type of the crypto device
63 # Since: 8.0
65 { 'struct': 'QCryptodevBackendClient',
66   'data': { 'queue': 'uint32',
67             'type': 'QCryptodevBackendType' } }
70 # @QCryptodevInfo:
72 # Information about a crypto device.
74 # @id: the id of the crypto device
76 # @service: supported service types of a crypto device
78 # @client: the additional information of the crypto device
80 # Since: 8.0
82 { 'struct': 'QCryptodevInfo',
83   'data': { 'id': 'str',
84             'service': ['QCryptodevBackendServiceType'],
85             'client': ['QCryptodevBackendClient'] } }
88 # @query-cryptodev:
90 # Returns information about current crypto devices.
92 # Returns: a list of @QCryptodevInfo
94 # Since: 8.0
96 { 'command': 'query-cryptodev', 'returns': ['QCryptodevInfo']}