public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Anton Iacobaeus <anton.iacobaeus@canarybit.eu>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH manager v3 2/2] Add support for TDX attestation
Date: Tue, 28 Oct 2025 13:54:27 +0100	[thread overview]
Message-ID: <20251028125459.287308-6-anton.iacobaeus@canarybit.eu> (raw)
In-Reply-To: <20251028125459.287308-1-anton.iacobaeus@canarybit.eu>

Add configuration options for the quote-generation-socket used to
communicate with the Quote Generation Service. This enables attestation
support for TDX using vsock or unix sockets.

More information can be found at:
https://www.qemu.org/docs/master/interop/qemu-storage-daemon-qmp-ref.html#object-QSD-qom.TdxGuestProperties

This only includes support for vsock and unix sockets. The SocketAddress
object in QEMU also supports inet and fd, which are not commonly used in
TDX.

Signed-off-by: Anton Iacobaeus <anton.iacobaeus@canarybit.eu>
---
 www/manager6/qemu/TdxEdit.js | 103 ++++++++++++++++++++++++++++++++++-
 1 file changed, 102 insertions(+), 1 deletion(-)

diff --git a/www/manager6/qemu/TdxEdit.js b/www/manager6/qemu/TdxEdit.js
index 3f43bf7a..95e086b5 100644
--- a/www/manager6/qemu/TdxEdit.js
+++ b/www/manager6/qemu/TdxEdit.js
@@ -7,9 +7,14 @@ Ext.define('PVE.qemu.TdxInputPanel', {
     viewModel: {
         data: {
             type: '__default__',
+            attestation: 1,
+            socketType: 'vsock',
         },
         formulas: {
             tdxEnabled: (get) => get('type') === 'tdx',
+            attestationEnabled: (get) => Number(get('attestation')) === 1,
+            vsockEnabled: (get) => get('socketType') === 'vsock',
+            unixSocketEnabled: (get) => get('socketType') === 'unix',
         },
     },
 
@@ -18,12 +23,17 @@ Ext.define('PVE.qemu.TdxInputPanel', {
             values.delete = 'intel-tdx';
             return values;
         }
+        if (values.tight !== undefined && !values.tight) {
+            values['unix-tight'] = 0;
+        }
+        delete values.tight;
         let ret = {};
         ret['intel-tdx'] = PVE.Parser.printPropertyString(values, 'type');
         return ret;
     },
 
     setValues: function (values) {
+        values.tight = PVE.Parser.parseBoolean(values['unix-tight'], 1);
         this.callParent(arguments);
     },
 
@@ -63,7 +73,98 @@ Ext.define('PVE.qemu.TdxInputPanel', {
         },
     ],
 
-    advancedItems: [],
+    advancedItems: [
+        {
+            xtype: 'proxmoxcheckbox',
+            fieldLabel: gettext('Enable Attestation'),
+            labelWidth: 150,
+            name: 'attestation',
+            value: 1,
+            uncheckedValue: 0,
+            bind: {
+                value: '{attestation}',
+                hidden: '{!tdxEnabled}',
+                disabled: '{!tdxEnabled}',
+            },
+        },
+        {
+            xtype: 'proxmoxKVComboBox',
+            fieldLabel: gettext('Socket Type'),
+            labelWidth: 150,
+            name: 'socket-type',
+            value: 'vsock',
+            comboItems: [
+                ['vsock', 'VSOCK'],
+                ['unix', 'Unix Socket'],
+            ],
+            bind: {
+                value: '{socketType}',
+                hidden: '{!tdxEnabled}',
+                disabled: '{!attestationEnabled || !tdxEnabled}',
+            },
+        },
+        {
+            xtype: 'proxmoxintegerfield',
+            fieldLabel: gettext('CID'),
+            labelWidth: 150,
+            name: 'vsock-cid',
+            minValue: 2,
+            value: '2',
+            allowBlank: false,
+            bind: {
+                hidden: '{!vsockEnabled || !tdxEnabled}',
+                disabled: '{!vsockEnabled || !attestationEnabled || !tdxEnabled}',
+            },
+        },
+        {
+            xtype: 'proxmoxintegerfield',
+            fieldLabel: gettext('Port'),
+            labelWidth: 150,
+            name: 'vsock-port',
+            minValue: 0,
+            value: '4050',
+            allowBlank: false,
+            bind: {
+                hidden: '{!vsockEnabled || !tdxEnabled}',
+                disabled: '{!vsockEnabled || !attestationEnabled || !tdxEnabled}',
+            },
+        },
+        {
+            xtype: 'textfield',
+            fieldLabel: gettext('Socket Path'),
+            labelWidth: 150,
+            name: 'unix-path',
+            value: '/var/run/tdx-qgs/qgs.socket',
+            allowBlank: false,
+            bind: {
+                hidden: '{!unixSocketEnabled || !tdxEnabled}',
+                disabled: '{!unixSocketEnabled || !attestationEnabled || !tdxEnabled}',
+            },
+        },
+        {
+            xtype: 'proxmoxcheckbox',
+            fieldLabel: gettext('Abstract'),
+            labelWidth: 150,
+            name: 'unix-abstract',
+            value: 0,
+            bind: {
+                hidden: '{!unixSocketEnabled || !tdxEnabled}',
+                disabled: '{!unixSocketEnabled || !attestationEnabled || !tdxEnabled}',
+            },
+        },
+        {
+            xtype: 'proxmoxcheckbox',
+            fieldLabel: gettext('Tight'),
+            labelWidth: 150,
+            name: 'tight',
+            value: 1,
+            uncheckedValue: 0,
+            bind: {
+                hidden: '{!unixSocketEnabled || !tdxEnabled}',
+                disabled: '{!unixSocketEnabled || !attestationEnabled || !tdxEnabled}',
+            },
+        },
+    ],
 });
 
 Ext.define('PVE.qemu.TdxEdit', {
-- 
2.43.0

_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


  parent reply	other threads:[~2025-10-28 12:55 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-28 12:54 [pve-devel] [PATCH edk2-firmware/manager/qemu-server v3 0/9] Add support for Intel TDX Anton Iacobaeus
2025-10-28 12:54 ` [pve-devel] [PATCH edk2-firmware v3 1/3] Change name of SEV-related OVMF files Anton Iacobaeus
2025-10-28 12:54 ` [pve-devel] [PATCH edk2-firmware v3 2/3] Add firmware target for TDFV Anton Iacobaeus
2025-10-28 12:54 ` [pve-devel] [PATCH edk2-firmware v3 3/3] Add SCSI in NCCFV for TD guest Anton Iacobaeus
2025-10-28 12:54 ` [pve-devel] [PATCH manager v3 1/2] Add support for Intel TDX Anton Iacobaeus
2025-10-28 12:54 ` Anton Iacobaeus [this message]
2025-10-28 12:54 ` [pve-devel] [PATCH qemu-server v3 1/4] Adapt AMD SEV code for compatibility with other platforms Anton Iacobaeus
2025-10-28 12:54 ` [pve-devel] [PATCH qemu-server v3 2/4] Add check for TDX support Anton Iacobaeus
2025-10-28 12:54 ` [pve-devel] [PATCH qemu-server v3 3/4] Add support for Intel TDX Anton Iacobaeus
2025-10-28 12:54 ` [pve-devel] [PATCH qemu-server v3 4/4] Add support for TDX quote-generation-socket object Anton Iacobaeus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251028125459.287308-6-anton.iacobaeus@canarybit.eu \
    --to=anton.iacobaeus@canarybit.eu \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal