@@ -657,6 +657,9 @@ contain the following information about its OCM API:
657657 for a short-lived bearer token.
658658 _ `"invite-wayf"` - to indicate that this OCM Server exposes a WAYF
659659 Page to facilitate the Invite flow.
660+ _ `"http-sig"` - to indicate that this OCM Server supports
661+ [RFC9421] HTTP Message Signatures and advertises public keys in the
662+ ` publicKeys` array for signature verification.
660663* OPTIONAL: criteria (array of string) - The criteria for accepting a
661664 Share Creation Notification.
662665 As all Receiving Servers SHOULD require the use of TLS in API
@@ -674,19 +677,37 @@ contain the following information about its OCM API:
674677 address \* `"invite"` - an invite MUST have been exchanged between the
675678 sender and the receiver before a Share Creation Notification can be
676679 sent
677- * OPTIONAL: publicKey (object) - The signatory used to sign outgoing
678- request to confirm its origin.
679- The signatory is optional, but if present, it MUST contain
680- two string fields, `id` and `publicKeyPem`.
680+ * OPTIONAL: publicKey (object) - DEPRECATED: Use publicKeys array
681+ instead for RFC 9421 support.
682+ Legacy field for draft-cavage HTTP Signatures (RSA only).
683+ Maintained for backward compatibility with existing deployments.
684+ The signatory is optional, but if present, it MUST contain
685+ two string fields, `keyId` and `publicKeyPem`.
681686 properties :
682687 - REQUIRED keyId (string) unique id of the key in URI format. The
683688 hostname set the origin of the request and MUST be
684689 identical to the current discovery endpoint.
685690 Example : https://my-cloud-storage.org/ocm#signature
686- - REQUIRED publicKeyPem (string) - PEM-encoded version of the public
687- key .
691+ - REQUIRED publicKeyPem (string) - PEM-encoded RSA public key for
692+ draft-cavage signatures .
688693 Example :
689694 " ----BEGIN PUBLIC KEY----\n ...\n ----END PUBLIC KEY----\n "
695+ * OPTIONAL: publicKeys (array of objects) - Array of public keys for
696+ [RFC9421] HTTP Message Signatures.
697+ Servers advertising the "http-sig" capability MUST provide this
698+ field. Clients SHOULD prefer [RFC9421] signatures when this capability
699+ is present. Each object in the array MUST contain :
700+ - REQUIRED keyId (string) - Unique identifier for this key in URI
701+ format. Hostname MUST match the discovery endpoint hostname.
702+ Example : https://my-cloud-storage.org/ocm#key-1
703+ - REQUIRED publicKeyPem (string) - PEM-encoded public key for
704+ [RFC9421] signatures.
705+ Example :
706+ " ----BEGIN PUBLIC KEY----\n MCowBQYDK...\n ----END PUBLIC KEY----\n "
707+ - REQUIRED algorithm (string) - Cryptographic algorithm identifier
708+ from the IANA HTTP Signature Algorithms Registry as defined in
709+ [RFC9421] Section 6.2.
710+ Example : " ed25519"
690711* OPTIONAL: inviteAcceptDialog (string) - URL path of a web page where
691712 a user can accept an invite, when query parameters `"token"` and
692713 ` "providerDomain"` are provided. Implementations that offer the
0 commit comments