xref: /qemu/qapi/cryptodev.json (revision 9247378df2b16f427ae858787f84a55b073446b1)
114c9fd16Szhenwei pi# -*- Mode: Python -*-
214c9fd16Szhenwei pi# vim: filetype=python
314c9fd16Szhenwei pi#
414c9fd16Szhenwei pi# This work is licensed under the terms of the GNU GPL, version 2 or later.
514c9fd16Szhenwei pi# See the COPYING file in the top-level directory.
614c9fd16Szhenwei pi
714c9fd16Szhenwei pi##
84622c706SMarkus Armbruster# = Cryptography devices
94622c706SMarkus Armbruster##
104622c706SMarkus Armbruster
114622c706SMarkus Armbruster##
12b1019999SMarkus Armbruster# @QCryptodevBackendAlgoType:
13999c789fSzhenwei pi#
14999c789fSzhenwei pi# The supported algorithm types of a crypto device.
15999c789fSzhenwei pi#
16999c789fSzhenwei pi# @sym: symmetric encryption
17a937b6aaSMarkus Armbruster#
18999c789fSzhenwei pi# @asym: asymmetric Encryption
19999c789fSzhenwei pi#
20999c789fSzhenwei pi# Since: 8.0
21999c789fSzhenwei pi##
22b1019999SMarkus Armbruster{ 'enum': 'QCryptodevBackendAlgoType',
23999c789fSzhenwei pi  'data': ['sym', 'asym']}
24999c789fSzhenwei pi
25999c789fSzhenwei pi##
26bc304a64Szhenwei pi# @QCryptodevBackendServiceType:
27bc304a64Szhenwei pi#
28bc304a64Szhenwei pi# The supported service types of a crypto device.
29bc304a64Szhenwei pi#
30*4707331dSzhenwei pi# @cipher: Symmetric Key Cipher service
31*4707331dSzhenwei pi#
32*4707331dSzhenwei pi# @hash: Hash service
33*4707331dSzhenwei pi#
34*4707331dSzhenwei pi# @mac: Message Authentication Codes service
35*4707331dSzhenwei pi#
36*4707331dSzhenwei pi# @aead: Authenticated Encryption with Associated Data service
37*4707331dSzhenwei pi#
38*4707331dSzhenwei pi# @akcipher: Asymmetric Key Cipher service
39*4707331dSzhenwei pi#
40bc304a64Szhenwei pi# Since: 8.0
41bc304a64Szhenwei pi##
42bc304a64Szhenwei pi{ 'enum': 'QCryptodevBackendServiceType',
43bc304a64Szhenwei pi  'data': ['cipher', 'hash', 'mac', 'aead', 'akcipher']}
44bc304a64Szhenwei pi
45bc304a64Szhenwei pi##
4614c9fd16Szhenwei pi# @QCryptodevBackendType:
4714c9fd16Szhenwei pi#
4814c9fd16Szhenwei pi# The crypto device backend type
4914c9fd16Szhenwei pi#
5014c9fd16Szhenwei pi# @builtin: the QEMU builtin support
51a937b6aaSMarkus Armbruster#
5214c9fd16Szhenwei pi# @vhost-user: vhost-user
53a937b6aaSMarkus Armbruster#
5414c9fd16Szhenwei pi# @lkcf: Linux kernel cryptographic framework
5514c9fd16Szhenwei pi#
5614c9fd16Szhenwei pi# Since: 8.0
5714c9fd16Szhenwei pi##
5814c9fd16Szhenwei pi{ 'enum': 'QCryptodevBackendType',
5914c9fd16Szhenwei pi  'data': ['builtin', 'vhost-user', 'lkcf']}
605dcb0198Szhenwei pi
615dcb0198Szhenwei pi##
625dcb0198Szhenwei pi# @QCryptodevBackendClient:
635dcb0198Szhenwei pi#
645dcb0198Szhenwei pi# Information about a queue of crypto device.
655dcb0198Szhenwei pi#
665dcb0198Szhenwei pi# @queue: the queue index of the crypto device
675dcb0198Szhenwei pi#
685dcb0198Szhenwei pi# @type: the type of the crypto device
695dcb0198Szhenwei pi#
705dcb0198Szhenwei pi# Since: 8.0
715dcb0198Szhenwei pi##
725dcb0198Szhenwei pi{ 'struct': 'QCryptodevBackendClient',
735dcb0198Szhenwei pi  'data': { 'queue': 'uint32',
745dcb0198Szhenwei pi            'type': 'QCryptodevBackendType' } }
755dcb0198Szhenwei pi
765dcb0198Szhenwei pi##
775dcb0198Szhenwei pi# @QCryptodevInfo:
785dcb0198Szhenwei pi#
795dcb0198Szhenwei pi# Information about a crypto device.
805dcb0198Szhenwei pi#
815dcb0198Szhenwei pi# @id: the id of the crypto device
825dcb0198Szhenwei pi#
835dcb0198Szhenwei pi# @service: supported service types of a crypto device
845dcb0198Szhenwei pi#
8540b89515SMichael Tokarev# @client: the additional information of the crypto device
865dcb0198Szhenwei pi#
875dcb0198Szhenwei pi# Since: 8.0
885dcb0198Szhenwei pi##
895dcb0198Szhenwei pi{ 'struct': 'QCryptodevInfo',
905dcb0198Szhenwei pi  'data': { 'id': 'str',
915dcb0198Szhenwei pi            'service': ['QCryptodevBackendServiceType'],
925dcb0198Szhenwei pi            'client': ['QCryptodevBackendClient'] } }
935dcb0198Szhenwei pi
945dcb0198Szhenwei pi##
955dcb0198Szhenwei pi# @query-cryptodev:
965dcb0198Szhenwei pi#
975dcb0198Szhenwei pi# Returns information about current crypto devices.
985dcb0198Szhenwei pi#
995dcb0198Szhenwei pi# Returns: a list of @QCryptodevInfo
1005dcb0198Szhenwei pi#
1015dcb0198Szhenwei pi# Since: 8.0
1025dcb0198Szhenwei pi##
1035dcb0198Szhenwei pi{ 'command': 'query-cryptodev', 'returns': ['QCryptodevInfo']}
104