qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] device/virtio-nsm: Support string data for extendPCR


From: Alexander Graf
Subject: Re: [PATCH] device/virtio-nsm: Support string data for extendPCR
Date: Mon, 2 Dec 2024 16:37:22 +0100
User-agent: Mozilla Thunderbird

On 09.11.24 13:32, Dorjoy Chowdhury wrote:
NSM device in AWS Nitro Enclaves supports extending with both
bytestring and string data.

Signed-off-by: Dorjoy Chowdhury <dorjoychy111@gmail.com>

Reviewed-by: Alexander Graf <graf@amazon.com>

Alex


---
  hw/virtio/virtio-nsm.c | 21 ++++++++++++++-------
  1 file changed, 14 insertions(+), 7 deletions(-)

diff --git a/hw/virtio/virtio-nsm.c b/hw/virtio/virtio-nsm.c
index a3db8eef3e..6830fcfe17 100644
--- a/hw/virtio/virtio-nsm.c
+++ b/hw/virtio/virtio-nsm.c
@@ -444,7 +444,7 @@ static bool handle_describe_pcr(VirtIONSM *vnsm, struct 
iovec *request,
   *       key = String("index"),
   *       value = Uint8(pcr),
   *       key = String("data"),
- *       value = Byte_String(data),
+ *       value = Byte_String(data) || String(data),
   *     }
   *   }
   * }
@@ -504,14 +504,21 @@ static enum NSMResponseTypes 
get_nsm_extend_pcr_req(uint8_t *req, size_t len,

          if (cbor_string_length(pair[i].key) == 4 &&
              memcmp(str, "data", 4) == 0) {
-            if (!cbor_isa_bytestring(pair[i].value)) {
+            if (cbor_isa_bytestring(pair[i].value)) {
+                str = cbor_bytestring_handle(pair[i].value);
+                if (!str) {
+                    goto cleanup;
+                }
+                nsm_req->data_len = cbor_bytestring_length(pair[i].value);
+            } else if (cbor_isa_string(pair[i].value)) {
+                str = cbor_string_handle(pair[i].value);
+                if (!str) {
+                    goto cleanup;
+                }
+                nsm_req->data_len = cbor_string_length(pair[i].value);
+            } else {
                  goto cleanup;
              }
-            str = cbor_bytestring_handle(pair[i].value);
-            if (!str) {
-                goto cleanup;
-            }
-            nsm_req->data_len = cbor_bytestring_length(pair[i].value);
              /*
               * nsm_req->data_len will be smaller than NSM_REQUEST_MAX_SIZE as
               * we already check for the max request size before processing
--
2.39.5



Amazon Web Services Development Center Germany GmbH
Krausenstr. 38
10117 Berlin
Geschaeftsfuehrung: Christian Schlaeger, Jonathan Weiss
Eingetragen am Amtsgericht Charlottenburg unter HRB 257764 B
Sitz: Berlin
Ust-ID: DE 365 538 597

reply via email to

[Prev in Thread] Current Thread [Next in Thread]