diff --git a/diagrams/message.mmd b/diagrams/message.mmd index 94ea8e7bbc..16e67c198d 100644 --- a/diagrams/message.mmd +++ b/diagrams/message.mmd @@ -1,12 +1,17 @@ sequenceDiagram participant Alice - participant App A - participant Server A - participant Server B - participant App B + participant App A as Alice's app + participant Server A as Alice's server + participant Server B as Bob's server + participant App B as Bob's app participant Bob - Alice ->> App A: Alice writes the message to Bob in the app - App A ->> Server A: The message (including ID & timestamp) is encrypted with Bob's and sent to all Alice's servers
{from: , to: , message: } - Server A ->> Server B: Alice's servers use to locate Bob's servers
and forward encrypted message to all Bob's servers (when they are different from Alice's servers) + Alice -->> App A: Alice writes the message to Bob in the app + App A ->> Server B: The message (including msg ID & timestamp) is signed with , encrypted with Bob's and sent to Bob's servers
{to: , message: } (also signed/encrypted with ) Server B ->> App B: Bob's servers send the message to Bob's app - App B ->> Bob: Bob's app uses to identify Alice
and decrypts the messages with Bob's + App B -->> Bob: Bob's app uses to identify Alice
and decrypts the messages with Bob's + + Note over App B: App creates
"message received"
including:
- msg correlation ID
- timestamp + + App B ->> Server A: "message received" signed with , encrypted with Alice's
{to: , message: } (also signed/encrypted with ) + Server A ->> App A: "message received": Alice's app uses to identify Bob
and decrypts "message received" with Alice's + App A -->> Alice: "message received" shown to Alice diff --git a/diagrams/message.svg b/diagrams/message.svg index 46a6fe2540..a04d996dd0 100644 --- a/diagrams/message.svg +++ b/diagrams/message.svg @@ -1,49 +1,49 @@ -AliceAlice's appAlice's serverBob's serverBob's appBobAlice writes the message to Bob in the appThe message (including msg ID & timestamp) is signed with <AB private key>, encrypted with Bob's <BA public key> and sent to Bob's servers{to: <BA public key hash>, message: <encrypted with BA public key>} (also signed/encrypted with <A_BA server private/public keys>)Bob's servers send the message to Bob's appBob's app uses <BA public key hash> to identify Aliceand decrypts the messages with Bob's <BA private key>App creates"message received"including:- msg correlation ID- timestamp"message received" signed with <BA private key>, encrypted with Alice's <AB public key>{to: <AB public key hash>, message: <encrypted with AB public key>} (also signed/encrypted with <B_AB server private/public keys>)"message received": Alice's app uses <AB public key hash> to identify Boband decrypts "message received" with Alice's <AB private key>"message received" shown to AliceAliceAlice's appAlice's serverBob's serverBob's appBob \ No newline at end of file