# identus-mediator **Repository Path**: mirrors_hyperledger/identus-mediator ## Basic Information - **Project Name**: identus-mediator - **Description**: Identus DIDComm V2 Mediator - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-07-04 - **Last Updated**: 2026-05-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
[](https://coveralls.io/github/hyperledger-identus/mediator?branch=main) [](https://sonarcloud.io/summary/new_code?id=hyperledger-identus_mediator) [](https://www.bestpractices.dev/projects/11793) [](https://scorecard.dev/viewer/?uri=github.com/hyperledger-identus/mediator) [](https://github.com/hyperledger-identus/mediator/releases) [](https://hub.docker.com/r/hyperledgeridentus/identus-mediator) [](https://discord.com/channels/905194001349627914/1230596020790886490) # Mediator A DID Comm v2 mediator A service that receives messages for many agents at a single endpoint and stores them with privacy. A cloud-based agent that forwards messages to mobile devices. ```mermaid graph LR A((Sender)) -- forward --> M((Mediator)) M--pickup-->D((Reciever)) ``` - **CI** automates builds and tests that push to the main branch for all PRs created. - **Scala Steward** automates the creation of pull requests for libraries with updated dependencies, saving maintainers time and effort. It can also help keep libraries updated, improving their reliability and performance. --- **#identus-mediator on Discord:** For the fastest answers, join the [#identus-mediator][Link-Discord LFDT] channel in the official Identus Discord and ask your questions, or chat with other Identus developers and pioneers! **More documentation:** - [LICENSE](LICENSE) - Apache License, Version 2.0 - [Mediation Flows](Mediation-Flows.md) - Examples of mediation flows - [Mediator Purpose](#description) - [Protocols Supported](#protocols) - [Mediator Protocol State and Flow](Coordinate-Mediation-Protocol.md) - [Pre-reqs](#pre-reqs) - [Getting started](#getting-started) - [Docker only](#docker-only) - [Configuring the mediator](#configure-the-mediator) - [Mediator identity](#identity) - [Mediator storage](#mediator-storage) - [Mediator-Storage-In-cloud](#mongodb-in-the-cloud) - [Mediator Deployment](#deploy) - [Mediator Test suite](#mediator-tests) - [Mediator Error Handling](Mediator-Error_Handling.md#error-handling) - [Mediator protocols state flow with problem reporting](Mediator-Error_Handling.md#problem-reports-in-mediator-flow) ## Description DID Comm v2 (Decentralized Identifiers Communication Version 2) is a protocol engineered for secure, private, and decentralized communications between various entities utilizing decentralized identifiers (DIDs). A DID Comm v2 Mediator functions as an intermediary in the communication process, streamlining the exchange of messages among the involved parties. - Establishing Logical Connections - The Mediator empowers entities, which could be individuals or organizations, to forge secure connections amongst themselves. Each entity possesses a unique DID that acts as its identifier within the decentralized network. - DID resolution - When an entity seeks to communicate with another, it resolves the recipient's DID to procure the information necessary to establish a connection. This resolution procedure entails retrieving the recipient's public key and correlated metadata from a decentralized identity infrastructure, which could be a blockchain or distributed ledger. - Message encryption - The sender employs a double encryption technique for the message: initially for the ultimate receiver, and subsequently encapsulates the encrypted message within another encryption layer for the Mediator. This is achieved using the public keys of both the Mediator and the recipient obtained through the DID resolution process. Dual encryption ensures that only the intended recipient has the capacity to decrypt and access the message. ```mermaid graph LR subgraph Encrypted message to Mediator subgraph Encrypted message to Reciever id1[[The plaintext message]] end end ``` - Message routing - The sender transmits an encrypted message to the Mediator, which serves as a routing agent. In this role, the Mediator receives messages from the sender, decrypts one layer, and forwards them to the appropriate recipient based on the recipient's DID. - Mediation process- The Mediator verifies the authenticity and integrity of the incoming message by checking the digital signature attached to it. This signature ensures that the message was indeed sent by the claimed sender and that it hasn't been tampered with during transmission. - Message decryption - After verifying the message's authenticity, the Mediator decrypted one layer of the message using the mediator's private key, which is securely held by the mediator. Once decrypted, the next message becomes readable (the final plaintext intended for the final user it's still encrypted). - Optional processing - The Mediator may perform additional processing on the message based on predefined rules or business logic. This could include applying filters, applying policies, or invoking external services. - Message forwarding - If necessary, the Mediator can further forward the decrypted message to additional entities in the communication flow. This enables multi-party communication scenarios. By acting as an intermediary, the DID Comm v2 Mediator helps facilitate secure and private communication between entities while leveraging the decentralized nature of DIDs and cryptographic techniques to ensure the authenticity, integrity, and confidentiality of the messages exchanged. The mediator is especially useful when the edge entities are not always online, like the mobile paradigm. Usually, we can assume that the mediator is always online. ## Protocols - [DONE] `BasicMessage 2.0` -