Message ID | 20241109123208.24281-1-dorjoychy111@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | device/virtio-nsm: Support string data for extendPCR | expand |
Hey Dorjoy, Thanks a lot for the patch! Would you mind to send to the ML so it can go through the normal review + apply cycle? :) Same comment for the other patches. Alex 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> > --- > 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
Hey Alex, On Tue, Nov 12, 2024, 6:14 PM Alexander Graf <graf@amazon.com> wrote: > Hey Dorjoy, > > Thanks a lot for the patch! Would you mind to send to the ML so it can > go through the normal review + apply cycle? :) > > Same comment for the other patches. > I don't understand. I sent them to the mailing list too, no? I see the cc's on the patches. Regards, Dorjoy >
Hey Dorjoy, On 12.11.24 13:32, Dorjoy Chowdhury wrote: > Hey Alex, > > > On Tue, Nov 12, 2024, 6:14 PM Alexander Graf <graf@amazon.com> wrote: > > Hey Dorjoy, > > Thanks a lot for the patch! Would you mind to send to the ML so it > can > go through the normal review + apply cycle? :) > > Same comment for the other patches. > > > > I don't understand. I sent them to the mailing list too, no? I see the > cc's on the patches. You did indeed - I'm just blind :). Let me have another look at the actual contents of the patches! Alex 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
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
NSM device in AWS Nitro Enclaves supports extending with both bytestring and string data. Signed-off-by: Dorjoy Chowdhury <dorjoychy111@gmail.com> --- hw/virtio/virtio-nsm.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-)