aboutsummaryrefslogtreecommitdiff
path: root/qapi
diff options
context:
space:
mode:
authorDaniel P. Berrange <berrange@redhat.com>2015-03-13 17:39:26 +0000
committerDaniel P. Berrange <berrange@redhat.com>2015-09-15 14:47:37 +0100
commita090187de116a3d0b8146ca481249c8fc83ad3ee (patch)
tree45a83d45ec34d9caf3bc9098d9711a4215f442e3 /qapi
parent0c7012e0558e4312e575fd4c70652d8ef2265ff7 (diff)
downloadqemu-a090187de116a3d0b8146ca481249c8fc83ad3ee.zip
qemu-a090187de116a3d0b8146ca481249c8fc83ad3ee.tar.gz
qemu-a090187de116a3d0b8146ca481249c8fc83ad3ee.tar.bz2
crypto: introduce new base module for TLS credentials
Introduce a QCryptoTLSCreds class to act as the base class for storing TLS credentials. This will be later subclassed to provide handling of anonymous and x509 credential types. The subclasses will be user creatable objects, so instances can be created & deleted via 'object-add' and 'object-del' QMP commands respectively, or via the -object command line arg. If the credentials cannot be initialized an error will be reported as a QMP reply, or on stderr respectively. The idea is to make it possible to represent and manage TLS credentials independently of the network service that is using them. This will enable multiple services to use the same set of credentials and minimize code duplication. A later patch will convert the current VNC server TLS code over to use this object. The representation of credentials will be functionally equivalent to that currently implemented in the VNC server with one exception. The new code has the ability to (optionally) load a pre-generated set of diffie-hellman parameters, if the file dh-params.pem exists, whereas the current VNC server will always generate them on startup. This is beneficial for admins who wish to avoid the (small) time sink of generating DH parameters at startup and/or avoid depleting entropy. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Diffstat (limited to 'qapi')
-rw-r--r--qapi/crypto.json21
1 files changed, 21 insertions, 0 deletions
diff --git a/qapi/crypto.json b/qapi/crypto.json
new file mode 100644
index 0000000..b058b14
--- /dev/null
+++ b/qapi/crypto.json
@@ -0,0 +1,21 @@
+# -*- Mode: Python -*-
+#
+# QAPI crypto definitions
+
+##
+# QCryptoTLSCredsEndpoint:
+#
+# The type of network endpoint that will be using the credentials.
+# Most types of credential require different setup / structures
+# depending on whether they will be used in a server versus a
+# client.
+#
+# @client: the network endpoint is acting as the client
+#
+# @server: the network endpoint is acting as the server
+#
+# Since: 2.5
+##
+{ 'enum': 'QCryptoTLSCredsEndpoint',
+ 'prefix': 'QCRYPTO_TLS_CREDS_ENDPOINT',
+ 'data': ['client', 'server']}