Merge tag 'hw-misc-20250113' of https://github.com/philmd/qemu into staging
[qemu/kevin.git] / qapi / cryptodev.json
blob04d0e21d209db11ff232b636f0caf7b9f2049e48
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 # @QCryptodevBackendAlgoType:
14 # The supported algorithm types of a crypto device.
16 # @sym: symmetric encryption
18 # @asym: asymmetric Encryption
20 # Since: 8.0
22 { 'enum': 'QCryptodevBackendAlgoType',
23   'data': ['sym', 'asym']}
26 # @QCryptodevBackendServiceType:
28 # The supported service types of a crypto device.
30 # @cipher: Symmetric Key Cipher service
32 # @hash: Hash service
34 # @mac: Message Authentication Codes service
36 # @aead: Authenticated Encryption with Associated Data service
38 # @akcipher: Asymmetric Key Cipher service
40 # Since: 8.0
42 { 'enum': 'QCryptodevBackendServiceType',
43   'data': ['cipher', 'hash', 'mac', 'aead', 'akcipher']}
46 # @QCryptodevBackendType:
48 # The crypto device backend type
50 # @builtin: the QEMU builtin support
52 # @vhost-user: vhost-user
54 # @lkcf: Linux kernel cryptographic framework
56 # Since: 8.0
58 { 'enum': 'QCryptodevBackendType',
59   'data': ['builtin', 'vhost-user', 'lkcf']}
62 # @QCryptodevBackendClient:
64 # Information about a queue of crypto device.
66 # @queue: the queue index of the crypto device
68 # @type: the type of the crypto device
70 # Since: 8.0
72 { 'struct': 'QCryptodevBackendClient',
73   'data': { 'queue': 'uint32',
74             'type': 'QCryptodevBackendType' } }
77 # @QCryptodevInfo:
79 # Information about a crypto device.
81 # @id: the id of the crypto device
83 # @service: supported service types of a crypto device
85 # @client: the additional information of the crypto device
87 # Since: 8.0
89 { 'struct': 'QCryptodevInfo',
90   'data': { 'id': 'str',
91             'service': ['QCryptodevBackendServiceType'],
92             'client': ['QCryptodevBackendClient'] } }
95 # @query-cryptodev:
97 # Returns information about current crypto devices.
99 # Returns: a list of @QCryptodevInfo
101 # Since: 8.0
103 { 'command': 'query-cryptodev', 'returns': ['QCryptodevInfo']}