Linux Confidential Computing Development
 help / color / mirror / Atom feed
From: Aneesh Kumar K.V <aneesh.kumar@kernel.org>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: Dave Jiang <dave.jiang@intel.com>,
	"Reshetova, Elena" <elena.reshetova@intel.com>,
	Xu Yilun <yilun.xu@linux.intel.com>,
	"linux-coco@lists.linux.dev" <linux-coco@lists.linux.dev>,
	Jiri Pirko <jiri@resnulli.us>,
	"Tian, Kevin" <kevin.tian@intel.com>,
	Alexey Kardashevskiy <aik@amd.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Suzuki K Poulose <suzuki.poulose@arm.com>,
	Steven Price <steven.price@arm.com>,
	Kiryl Shutsemau <kas@kernel.org>,
	"Edgecombe, Rick P" <rick.p.edgecombe@intel.com>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Jonathan Cameron <jic23@kernel.org>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Ashish Kalra <ashish.kalra@amd.com>,
	Tom Lendacky <thomas.lendacky@amd.com>,
	John Allen <john.allen@amd.com>, Will Deacon <will@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	"patches@lists.linux.dev" <patches@lists.linux.dev>,
	Alistair <alistair23@gmail.com>
Subject: Re: [RFC PATCH v1 10/11] virt: coco: arm-cca-host: Publish slot zero and establish streams after acceptance
Date: Fri, 13 Nov 2026 22:42:06 +0530	[thread overview]
Message-ID: <yq5a33t4mza1.fsf@kernel.org> (raw)
In-Reply-To: <20261113145249.GA3706007@nvidia.com>

Jason Gunthorpe <jgg@nvidia.com> writes:

> On Fri, Nov 13, 2026 at 02:24:59PM +0530, Aneesh Kumar K.V wrote:
>> Jason Gunthorpe <jgg@nvidia.com> writes:
>> 
>> > On Thu, Nov 12, 2026 at 03:07:43PM +0530, Aneesh Kumar K.V wrote:

 [ ... 96 lines skipped ... ] 

> We really want the certificates to be loaded at the start before doing
> key_exchange. That is when they are most useful.
>
> So when we fix this for 1.3 the opt in should trigger a transcript'd
> GET_DIGEST in plain text and certificate collection from all the slots
> in plain text.
>
> 1.3 will sign GET_DIGESTS during KEY_EXCHANGE
> 1.2 RMM could issue CHALLENGE if the device supports it right before
>     KEY_EXCHANGE and transcript it
> 1.2 RMM could issue GET_DIGESTS inside the session and fail if != to
>     the plaintext
>


So the combined flow would be:

Host                             RMM                              Device
|                                 |                                  |
| RMI_PDEV_CREATE(new-flow opt-in)|                                  |
|-------------------------------->|                                  |
|                                 | GET_VERSION / VERSION            |
|                                 | GET_CAPABILITIES / CAPABILITIES  |
|                                 | NEGOTIATE_ALGORITHMS / ALGORITHMS|
|                                 |<-------------------------------->|
| Cache individual VCA messages   |                                  |
|<--------------------------------|                                  |
|                                 |                                  |
|                                 | GET_DIGESTS / DIGESTS [plaintext]|
|                                 |<-------------------------------->|
| Cache discovery transcript      | Retain original slot mask        |
|<--------------------------------| and per-slot chain digests       |
|                                 |                                  |
|                                 | For each populated slot:         |
|                                 | GET_CERTIFICATE / CERTIFICATE    |
|                                 |<-------------------------------->|
| Cache complete chains by slot   |                                  |
|<--------------------------------|                                  |
|                                 |                                  |
|                      Pause: PDEV_NEEDS_KEY                         |
|                                 |                                  |
| Validate candidate certificate  |                                  |
| paths against userspace policy. |                                  |
| Select slot S and extract key S.|                                  |
| Discovery remains provisional.  |                                  |
|                                 |                                  |
| RMI_PDEV_SET_PUBKEY             |                                  |
| (slot S, key S, chain hash S)   |                                  |
|-------------------------------->|                                  |
|                                 |                                  |
|                    IF SPDM 1.2 AND CHALLENGE supported             |
|                                 |                                  |
|                                 | CHALLENGE(slot S, fresh nonce)   |
|                                 |--------------------------------->|
|                                 | CHALLENGE_AUTH                   |
|                                 |<---------------------------------|
|                                 | Verify signature using key S.    |
|                                 | Authenticates earlier DIGESTS.   |
| Cache challenge transcript      |                                  |
|<--------------------------------|                                  |
|                                 |                                  |
|                    END IF                                          |
|                                 |                                  |
|                                 | KEY_EXCHANGE(slot S)             |
|                                 |--------------------------------->|
|                                 | KEY_EXCHANGE_RSP                 |
|                                 |<---------------------------------|
|                                 | Verify signature using key S.    |
|                                 |                                  |
|                    IF SPDM 1.3 multikey negotiated                 |
|                                 |                                  |
|                                 | Signature covers earlier DIGESTS.|
|                                 | Authenticate retained inventory. |
|                                 |                                  |
|                    END IF                                          |
|                                 |                                  |
| Cache key-exchange transcript   |                                  |
|<--------------------------------|                                  |
|                                 | FINISH / FINISH_RSP              |
|                                 |<-------------------------------->|
|                                 | Session established.             |
|                                 |                                  |
|                    IF SPDM 1.2 AND CHALLENGE unavailable           |
|                                 |                                  |
|                                 | GET_DIGESTS / DIGESTS [secure]   |
| Relay ciphertext                |<-------------------------------->|
|                                 | Compare authenticated slot mask  |
|                                 | and every digest with original   |
|                                 | plaintext discovery.             |
|                                 |                                  |
|                                 | Mismatch: fail setup.            |
|                                 | Match: authenticate inventory.   |
|                                 |                                  |
|                    END IF                                          |
|                                 |                                  |
|                                 | Check collected chains against   |
|                                 | authenticated per-slot digests.  |
|                                 |                                  |
|                            PDEV_READY                              |

BTW, all these proposals require RMM changes. As I requested in my previous
email, it would be useful to describe what this would look like without a
firmware change.

-aneesh

  parent reply	other threads:[~2026-11-13 17:12 UTC|newest]

Thread overview: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-28 15:26 [RFC PATCH v1 00/11] PCI/TSM: Add CTLV attestation Aneesh Kumar K.V (Arm)
2026-10-28 15:26 ` [RFC PATCH v1 01/11] attestation: Restrict inherited operations per instance Aneesh Kumar K.V (Arm)
2026-10-30 13:29   ` Jiri Pirko
2026-10-28 15:26 ` [RFC PATCH v1 02/11] attestation: Filter evidence objects " Aneesh Kumar K.V (Arm)
2026-10-30 13:44   ` Jiri Pirko
2026-10-31  6:24     ` Aneesh Kumar K.V
2026-11-02 19:14       ` Jiri Pirko
2026-10-28 15:26 ` [RFC PATCH v1 03/11] attestation: Enter secure operation when evidence is accepted Aneesh Kumar K.V (Arm)
2026-10-30 13:51   ` Jiri Pirko
2026-10-30 15:36     ` Jason Gunthorpe
2026-10-31  4:09     ` Aneesh Kumar K.V
2026-11-02 11:28       ` Jiri Pirko
2026-10-28 15:26 ` [RFC PATCH v1 04/11] attestation: Bind object selection to accepted evidence snapshots Aneesh Kumar K.V (Arm)
2026-10-28 15:26 ` [RFC PATCH v1 05/11] attestation: Make the evidence-get challenge attribute optional Aneesh Kumar K.V (Arm)
2026-10-28 15:26 ` [RFC PATCH v1 06/11] PCI/TSM: Describe the PCI attestation control family Aneesh Kumar K.V (Arm)
2026-10-30 14:01   ` Jiri Pirko
2026-10-30 15:43     ` Jason Gunthorpe
2026-11-02 12:45       ` Jiri Pirko
2026-11-03 15:45         ` Jason Gunthorpe
2026-11-04  9:21           ` Jiri Pirko
2026-11-04 14:00             ` Jason Gunthorpe
2026-10-31  4:05     ` Aneesh Kumar K.V
2026-11-02 11:50       ` Jiri Pirko
2026-11-03 15:35       ` Jason Gunthorpe
2026-10-31  4:22     ` Aneesh Kumar K.V
2026-11-02 11:30       ` Jiri Pirko
2026-11-03 15:39       ` Jason Gunthorpe
2026-10-28 15:26 ` [RFC PATCH v1 07/11] attestation: Add attestation helpers for PCI/TSM integration Aneesh Kumar K.V (Arm)
2026-10-28 15:26 ` [RFC PATCH v1 08/11] PCI/TSM: Bind CTLV attestation to connected and locked contexts Aneesh Kumar K.V (Arm)
2026-10-28 22:56   ` Dave Jiang
2026-10-29  5:30     ` Aneesh Kumar K.V
2026-10-29 12:41       ` Jason Gunthorpe
2026-10-30 14:04   ` Jiri Pirko
2026-10-30 14:08   ` Jiri Pirko
2026-10-30 15:39     ` Jason Gunthorpe
2026-11-02 12:11       ` Jiri Pirko
2026-11-03 15:41         ` Jason Gunthorpe
2026-10-28 15:26 ` [RFC PATCH v1 09/11] crypto/ccp: Defer SEV-TIO link setup until evidence acceptance Aneesh Kumar K.V (Arm)
2026-11-06  7:47   ` Alexey Kardashevskiy
2026-11-06 13:14     ` Aneesh Kumar K.V
2026-11-06 14:21       ` Jason Gunthorpe
2026-11-09 10:03       ` Alexey Kardashevskiy
2026-11-12  6:23         ` Aneesh Kumar K.V
2026-10-28 15:26 ` [RFC PATCH v1 10/11] virt: coco: arm-cca-host: Publish slot zero and establish streams after acceptance Aneesh Kumar K.V (Arm)
2026-10-29 16:56   ` Dave Jiang
2026-10-29 17:10     ` Jason Gunthorpe
2026-10-30  9:58       ` Reshetova, Elena
2026-10-30 13:15         ` Jason Gunthorpe
2026-10-31  3:47           ` Aneesh Kumar K.V
2026-11-02 10:11             ` Reshetova, Elena
2026-11-02 17:26               ` Jason Gunthorpe
2026-11-03 12:01                 ` Reshetova, Elena
2026-11-03 15:16                   ` Jason Gunthorpe
2026-11-04  8:03                     ` Xu Yilun
2026-11-04  9:49                       ` Reshetova, Elena
2026-11-04 13:41                         ` Jason Gunthorpe
2026-11-04 16:54                           ` Dave Jiang
2026-11-06 15:53                             ` Dave Jiang
2026-11-06 19:30                               ` Jason Gunthorpe
2026-11-06 22:39                                 ` Dave Jiang
2026-11-08 18:33                                   ` Jason Gunthorpe
2026-11-09 10:55                                     ` Reshetova, Elena
2026-11-09 13:47                                       ` Jason Gunthorpe
2026-11-09 17:37                                     ` Dave Jiang
2026-11-09 18:53                                       ` Jason Gunthorpe
2026-11-09 20:54                                         ` Dave Jiang
2026-11-09 23:40                                           ` Jason Gunthorpe
2026-11-10 13:15                                             ` Reshetova, Elena
2026-11-10 14:20                                               ` Jason Gunthorpe
2026-11-11 13:09                                                 ` Reshetova, Elena
2026-11-11 14:13                                                   ` Jason Gunthorpe
2026-11-12  1:48                                                     ` Alexey Kardashevskiy
2026-11-12 12:31                                                       ` Jason Gunthorpe
2026-11-10  1:40                                         ` Alistair
2026-11-10 15:07                                           ` Jason Gunthorpe
2026-11-10  5:32                                         ` Alexey Kardashevskiy
2026-11-10 12:52                                           ` Jason Gunthorpe
2026-11-11  9:03                                             ` Alexey Kardashevskiy
2026-11-12  9:37                                 ` Aneesh Kumar K.V
2026-11-12 14:52                                   ` Jason Gunthorpe
2026-11-12 15:47                                     ` Dave Jiang
2026-11-12 16:37                                       ` Jason Gunthorpe
2026-11-13  8:54                                     ` Aneesh Kumar K.V
2026-11-13 14:52                                       ` Jason Gunthorpe
2026-11-13 16:29                                         ` Aneesh Kumar K.V
2026-11-13 16:38                                         ` Aneesh Kumar K.V
2026-11-13 17:12                                         ` Aneesh Kumar K.V [this message]
2026-11-10 20:07                               ` Jason Gunthorpe
2026-11-04  9:03                     ` Reshetova, Elena
2026-11-04 13:48                       ` Jason Gunthorpe
2026-11-06  8:24                     ` Aneesh Kumar K.V
2026-11-06 12:49                       ` Reshetova, Elena
2026-11-06 15:53                         ` Aneesh Kumar K.V
2026-11-06 18:54                           ` Jason Gunthorpe
2026-11-03 16:31                 ` Aneesh Kumar K.V
2026-11-03 17:56                   ` Jason Gunthorpe
2026-11-02 10:05           ` Reshetova, Elena
2026-11-02 10:22           ` Reshetova, Elena
2026-11-02 17:37             ` Jason Gunthorpe
2026-10-28 15:26 ` [RFC PATCH v1 11/11] virt: coco: arm-cca-guest: Refresh selected evidence against trusted digests Aneesh Kumar K.V (Arm)
2026-10-30 12:34 ` [RFC PATCH v1 00/11] PCI/TSM: Add CTLV attestation Xu Yilun
2026-10-30 15:32   ` Jason Gunthorpe

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=yq5a33t4mza1.fsf@kernel.org \
    --to=aneesh.kumar@kernel.org \
    --cc=aik@amd.com \
    --cc=alistair23@gmail.com \
    --cc=ashish.kalra@amd.com \
    --cc=bhelgaas@google.com \
    --cc=catalin.marinas@arm.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=dave.jiang@intel.com \
    --cc=elena.reshetova@intel.com \
    --cc=jgg@nvidia.com \
    --cc=jic23@kernel.org \
    --cc=jiri@resnulli.us \
    --cc=john.allen@amd.com \
    --cc=kas@kernel.org \
    --cc=kevin.tian@intel.com \
    --cc=linux-coco@lists.linux.dev \
    --cc=mark.rutland@arm.com \
    --cc=patches@lists.linux.dev \
    --cc=rick.p.edgecombe@intel.com \
    --cc=steven.price@arm.com \
    --cc=suzuki.poulose@arm.com \
    --cc=thomas.lendacky@amd.com \
    --cc=will@kernel.org \
    --cc=yilun.xu@linux.intel.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