feat:added rooms protocol#131
Open
vinaysingh8866 wants to merge 1 commit into
Open
Conversation
Signed-off-by: Vinay Singh <vinay@verid.id>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add Rooms 1.0 Protocol
Summary
This PR introduces the Rooms 1.0 protocol for end-to-end encrypted group messaging over DIDComm v2. It combines MLS (RFC 9420) for cryptographic group keying, a Host (MLS Delivery Service) for handshake ordering and fan-out, optional Routers for mesh relay, and Signing 1.0 artifacts for admin governance, replay-proof join tokens, and router attestations. MLS provides forward secrecy and post-compromise security; DIDComm provides addressing, routing, threading, and offline-first delivery via Message Pickup.
What's Added
https://didcomm.org/rooms/1.0Key Features
Cryptographic Group Keying — MLS (RFC 9420)
MLS_128_DHKEMX25519_AES128GCM_SHA256_Ed25519)Roles
Room Identity
DIDCommMessagingservice endpoint pointing to the Hostcontrollerfield supports multiple admin DIDs for multi-admin governanceMembership & Governance
invite,moderate, and policy update carries a Signing 1.0 artifact (single signature or threshold like FROST/MuSig2)add,remove,ban,unban,promote,demote,transfer-ownershipDelivery Semantics
id(network-level) +mls_msg_idin MLS AAD (content-level)hop_countand optionalviatraceOffline & Mesh Support
Protocol Messages
Lifecycle
create,created— room creation and acknowledgmentMembership
invite— admin invites a DID with Signing 1.0 authz artifactjoin— invitee joins with MLS KeyPackage and join tokenwelcome— Host delivers MLS Welcome to new membercommit— MLS Commit fan-out to existing membersleave— member self-removalRoster
roster-request,roster— fetch current members and MLS epochApplication Data
msg— carries MLS application ciphertext (opaque to Host and Routers)Moderation
moderate— admin actions on membership (requires Signing 1.0 authz)Mesh Relay
route-advertise,route-ack— Router registers reach set with signed attestationState Machines
Room Lifecycle:
Member Lifecycle:
Security Highlights
Error Codes (Report-Problem 2.0)
authz.denied— invalid or missing admin authorizationmls.conflict— competing commit; retry latermls.epoch-stale— sender behind current epoch; resync requiredjoin.token-expired— join token past expiryjoin.replay— token counter already seenrouter.attestation-invalid— bad or expired router attestationComposition with Other Protocols
forwardfor encrypted routingUse Cases
References