Subject: [Suit] SUIT URIs

From: Brendan Moran <[email-masked]>
Date: Wed, 2 Jun 2021 10:04:33 +0000

The current text of the SUIT manifest specification uses textually-encoded URIs. While this is probably the most compact URI encoding, it does introduce an additional parsing burden on devices.

Should SUIT consider a mechanism for friendlier URIs? There are two immediate options:
1) SUIT URI:
[
  Scheme: int,
  Host: tstr / bstr, ; tstr for domain, bstr for ip address
  Path: tstr,
  Query: tstr
]

2) CRI as defined in draft-ietf-core-href:
CRI-Reference = [
     (authority // discard),
     *path,
     ? (([], fragment)              ; include array only if
        //([+query], ?fragment))    ; at least one query and/or fragment
   ]

   authority   = (?scheme, ?(host, ?port))
   scheme      = (scheme-name
                  // COAP // COAPS // HTTP // HTTPS)
   scheme-name = (false, text .regexp "[a-z][a-z0-9+.-]*")
   COAP = -1 COAPS = -2 HTTP = -3 HTTPS = -4
   host        = (host-name // host-ip)
   host-name   = (true, text)
   host-ip     = bytes .size 4 / bytes .size 16
   port        = 0..65535
   discard     = 0..127
   path        = text
   query       = text
   fragment    = text
My concern with CRI is that it is not yet in Core’s WGLC.

Either choice could easily be added as an extension to SUIT later, but that might mean that SUIT implementations don’t adopt it.

Best Regards,
Brendan
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.

---

From: Carsten Bormann <[email-masked]>
Date: Wed, 2 Jun 2021 12:58:06 +0200

Do you need just URIs or also URI references?
Fragment ids?

Grüße, Carsten

> On 2021-06-02, at 12:04, Brendan Moran <[email-masked]> wrote:
>

---

From: Brendan Moran <[email-masked]>
Date: Wed, 2 Jun 2021 11:59:11 +0000

The only context in which the SUIT manifest specification currently uses URI references is when referencing a payload or dependency manifest that is contained within the envelope. This could be error-prone. Perhaps it would be preferable to change the name of “suit-parameter-uri” to “suit-parameter-reference”.

ORIGINAL:
        SUIT_Parameters //= (suit-parameter-uri => tstr)
PROPOSED:
        SUIT_Parameters //= (suit-parameter-reference => tstr / int)

If we assume the manifest specification is modified in this way, then I suspect that we will not require any URI references.

Best Regards,
Brendan

> On 2 Jun 2021, at 11:58, Carsten Bormann <[email-masked]> wrote:
>