[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 09/18] qapi/qom: Add ObjectOptions for tls-*, deprecate 'loaded'
From: |
Kevin Wolf |
Subject: |
[PATCH 09/18] qapi/qom: Add ObjectOptions for tls-*, deprecate 'loaded' |
Date: |
Mon, 30 Nov 2020 13:25:29 +0100 |
This adds a QAPI schema for the properties of the tls-* objects.
The 'loaded' property doesn't seem to make sense as an external
interface: It is automatically set to true in ucc->complete, and
explicitly setting it to true earlier just means that additional options
will be silently ignored.
In other words, the 'loaded' property is useless. Mark it as deprecated
in the schema from the start.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
qapi/crypto.json | 98 ++++++++++++++++++++++++++++++++++++++++++++++++
qapi/qom.json | 12 +++++-
2 files changed, 108 insertions(+), 2 deletions(-)
diff --git a/qapi/crypto.json b/qapi/crypto.json
index 4cb6bb00ed..a32dfa320a 100644
--- a/qapi/crypto.json
+++ b/qapi/crypto.json
@@ -442,3 +442,101 @@
{ 'struct': 'SecretKeyringProperties',
'base': 'SecretCommonProperties',
'data': { 'serial': 'int32' } }
+
+##
+# @TlsCredsProperties:
+#
+# Properties for objects of classes derived from tls-creds.
+#
+# @verify-peer: if true the peer credentials will be verified once the
+# handshake is completed. This is a no-op for anonymous
+# credentials. (default: true)
+#
+# @dir: the path of the directory that contains the credential files
+#
+# @endpoint: whether the QEMU network backend that uses the credentials will be
+# acting as a client or as a server (default: client)
+#
+# @priority: a gnutls priority string as described at
+# https://gnutls.org/manual/html_node/Priority-Strings.html
+#
+# Since: 6.0
+##
+{ 'struct': 'TlsCredsProperties',
+ 'data': { '*verify-peer': 'bool',
+ '*dir': 'str',
+ '*endpoint': 'QCryptoTLSCredsEndpoint',
+ '*priority': 'str' } }
+
+##
+# @TlsCredsAnonProperties:
+#
+# Properties for tls-creds-anon objects.
+#
+# @loaded: if true, the credentials are loaded immediately when applying this
+# option and will ignore options that are processed later. Don't use;
+# only provided for compatibility. (default: false)
+#
+# Features:
+# @deprecated: Member @loaded is deprecated. Setting true doesn't make sense,
+# and false is already the default.
+#
+# Since: 6.0
+##
+{ 'struct': 'TlsCredsAnonProperties',
+ 'base': 'TlsCredsProperties',
+ 'data': { '*loaded': { 'type': 'bool', 'features': ['deprecated'] } } }
+
+##
+# @TlsCredsPskProperties:
+#
+# Properties for tls-creds-psk objects.
+#
+# @loaded: if true, the credentials are loaded immediately when applying this
+# option and will ignore options that are processed later. Don't use;
+# only provided for compatibility. (default: false)
+#
+# @username: the username which will be sent to the server. For clients only.
+# If absent, "qemu" is sent and the property will read back as an
+# empty string.
+#
+# Features:
+# @deprecated: Member @loaded is deprecated. Setting true doesn't make sense,
+# and false is already the default.
+#
+# Since: 6.0
+##
+{ 'struct': 'TlsCredsPskProperties',
+ 'base': 'TlsCredsProperties',
+ 'data': { '*loaded': { 'type': 'bool', 'features': ['deprecated'] },
+ '*username': 'str' } }
+
+##
+# @TlsCredsX509Properties:
+#
+# Properties for tls-creds-x509 objects.
+#
+# @loaded: if true, the credentials are loaded immediately when applying this
+# option and will ignore options that are processed later. Don't use;
+# only provided for compatibility. (default: false)
+#
+# @sanity-check: if true, perform some sanity checks before using the
+# credentials (default: true)
+#
+# @passwordid: For the server-key.pem and client-key.pem files which contain
+# sensitive private keys, it is possible to use an encrypted
+# version by providing the @passwordid parameter. This provides
+# the ID of a previously created secret object containing the
+# password for decryption.
+#
+# Features:
+# @deprecated: Member @loaded is deprecated. Setting true doesn't make sense,
+# and false is already the default.
+#
+# Since: 6.0
+##
+{ 'struct': 'TlsCredsX509Properties',
+ 'base': 'TlsCredsProperties',
+ 'data': { '*loaded': { 'type': 'bool', 'features': ['deprecated'] },
+ '*sanity-check': 'bool',
+ '*passwordid': 'str' } }
diff --git a/qapi/qom.json b/qapi/qom.json
index 05ec67b0d1..31e381b3bb 100644
--- a/qapi/qom.json
+++ b/qapi/qom.json
@@ -440,7 +440,11 @@
'rng-random',
'secret',
'secret_keyring',
- 'throttle-group'
+ 'throttle-group',
+ 'tls-creds-anon',
+ 'tls-creds-psk',
+ 'tls-creds-x509',
+ 'tls-cipher-suites'
] }
##
@@ -476,7 +480,11 @@
'rng-random': 'RngRandomProperties',
'secret': 'SecretProperties',
'secret_keyring': 'SecretKeyringProperties',
- 'throttle-group': 'ThrottleGroupProperties'
+ 'throttle-group': 'ThrottleGroupProperties',
+ 'tls-creds-anon': 'TlsCredsAnonProperties',
+ 'tls-creds-psk': 'TlsCredsPskProperties',
+ 'tls-creds-x509': 'TlsCredsX509Properties',
+ 'tls-cipher-suites': 'TlsCredsProperties'
} }
##
--
2.28.0
- [PATCH 00/18] qapi/qom: QAPIfy object-add, Kevin Wolf, 2020/11/30
- [PATCH 01/18] qapi/qom: Add ObjectOptions for iothread, Kevin Wolf, 2020/11/30
- [PATCH 02/18] qapi/qom: Add ObjectOptions for authz-*, Kevin Wolf, 2020/11/30
- [PATCH 03/18] qapi/qom: Add ObjectOptions for cryptodev-*, Kevin Wolf, 2020/11/30
- [PATCH 06/18] qapi/qom: Add ObjectOptions for rng-*, deprecate 'opened', Kevin Wolf, 2020/11/30
- [PATCH 04/18] qapi/qom: Add ObjectOptions for dbus-vmstate, Kevin Wolf, 2020/11/30
- [PATCH 05/18] qapi/qom: Add ObjectOptions for memory-backend-*, Kevin Wolf, 2020/11/30
- [PATCH 08/18] qapi/qom: Add ObjectOptions for secret*, deprecate 'loaded', Kevin Wolf, 2020/11/30
- [PATCH 07/18] qapi/qom: Add ObjectOptions for throttle-group, Kevin Wolf, 2020/11/30
- [PATCH 09/18] qapi/qom: Add ObjectOptions for tls-*, deprecate 'loaded',
Kevin Wolf <=
- [PATCH 10/18] qapi/qom: Add ObjectOptions for can-*, Kevin Wolf, 2020/11/30
- [PATCH 11/18] qapi/qom: Add ObjectOptions for colo-compare, Kevin Wolf, 2020/11/30
- [PATCH 12/18] qapi/qom: Add ObjectOptions for filter-*, Kevin Wolf, 2020/11/30
- [PATCH 13/18] qapi/qom: Add ObjectOptions for pr-manager-helper, Kevin Wolf, 2020/11/30
- [PATCH 14/18] qapi/qom: Add ObjectOptions for sev-guest, Kevin Wolf, 2020/11/30
- [PATCH 15/18] qapi/qom: Add ObjectOptions for input-*, Kevin Wolf, 2020/11/30
- [PATCH 16/18] tests: Drop 'props' from object-add calls, Kevin Wolf, 2020/11/30
- [PATCH 17/18] qapi/qom: Drop deprecated 'props' from object-add, Kevin Wolf, 2020/11/30
- [PATCH 18/18] qapi/qom: QAPIfy object-add, Kevin Wolf, 2020/11/30
- Re: [PATCH 00/18] qapi/qom: QAPIfy object-add, Paolo Bonzini, 2020/11/30