xref: /openbmc/qemu/qapi/cryptodev.json (revision 0d70c5aa1bbfb0f5099d53d6e084337a8246cc0c)
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# ********************
9# Cryptography devices
10# ********************
11##
12
13##
14# @QCryptodevBackendAlgoType:
15#
16# The supported algorithm types of a crypto device.
17#
18# @sym: symmetric encryption
19#
20# @asym: asymmetric encryption
21#
22# Since: 8.0
23##
24{ 'enum': 'QCryptodevBackendAlgoType',
25  'data': ['sym', 'asym']}
26
27##
28# @QCryptodevBackendServiceType:
29#
30# The supported service types of a crypto device.
31#
32# @cipher: Symmetric Key Cipher service
33#
34# @hash: Hash service
35#
36# @mac: Message Authentication Codes service
37#
38# @aead: Authenticated Encryption with Associated Data service
39#
40# @akcipher: Asymmetric Key Cipher service
41#
42# Since: 8.0
43##
44{ 'enum': 'QCryptodevBackendServiceType',
45  'data': ['cipher', 'hash', 'mac', 'aead', 'akcipher']}
46
47##
48# @QCryptodevBackendType:
49#
50# The crypto device backend type
51#
52# @builtin: the QEMU builtin support
53#
54# @vhost-user: vhost-user
55#
56# @lkcf: Linux kernel cryptographic framework
57#
58# Since: 8.0
59##
60{ 'enum': 'QCryptodevBackendType',
61  'data': ['builtin', 'vhost-user', 'lkcf']}
62
63##
64# @QCryptodevBackendClient:
65#
66# Information about a queue of crypto device.
67#
68# @queue: the queue index of the crypto device
69#
70# @type: the type of the crypto device
71#
72# Since: 8.0
73##
74{ 'struct': 'QCryptodevBackendClient',
75  'data': { 'queue': 'uint32',
76            'type': 'QCryptodevBackendType' } }
77
78##
79# @QCryptodevInfo:
80#
81# Information about a crypto device.
82#
83# @id: the id of the crypto device
84#
85# @service: supported service types of a crypto device
86#
87# @client: the additional information of the crypto device
88#
89# Since: 8.0
90##
91{ 'struct': 'QCryptodevInfo',
92  'data': { 'id': 'str',
93            'service': ['QCryptodevBackendServiceType'],
94            'client': ['QCryptodevBackendClient'] } }
95
96##
97# @query-cryptodev:
98#
99# Return information about current crypto devices.
100#
101# Since: 8.0
102##
103{ 'command': 'query-cryptodev', 'returns': ['QCryptodevInfo']}
104