|
| 1 | +sequenceDiagram |
| 2 | + participant A as Alice |
| 3 | + participant AA as Alice's<br>agent |
| 4 | + participant AS as Alice's<br>server |
| 5 | + participant BS as Bob's<br>server |
| 6 | + participant BA as Bob's<br>agent |
| 7 | + participant B as Bob |
| 8 | + |
| 9 | + note over AA, BA: status (receive/send): NONE/NONE |
| 10 | + |
| 11 | + note over A, AA: 1. request connection<br>from agent |
| 12 | + A ->> AA: NEW: create<br>duplex connection |
| 13 | + |
| 14 | + note over AA, AS: 2. create Alice's SMP queue |
| 15 | + AA ->> AS: NEW: create SMP queue |
| 16 | + AS ->> AA: IDS: SMP queue IDs |
| 17 | + note over AA: status: NEW/NONE |
| 18 | + |
| 19 | + AA ->> A: INV: invitation<br>to connect |
| 20 | + |
| 21 | + note over A, B: 3. out-of-band invitation |
| 22 | + A ->> B: OOB: invitation to connect |
| 23 | + |
| 24 | + note over BA, B: 4. accept connection |
| 25 | + B ->> BA: JOIN:<br>via invitation info |
| 26 | + note over BA: status: NONE/NEW |
| 27 | + |
| 28 | + note over BA, AS: 5. secure Alice's SMP queue |
| 29 | + BA ->> AS: SKEY: secure queue (this command needs to be proxied) |
| 30 | + note over BA: status: NONE/SECURED |
| 31 | + |
| 32 | + note over BA, BS: 6. create Bob's SMP queue |
| 33 | + BA ->> BS: NEW: create SMP queue |
| 34 | + BS ->> BA: IDS: SMP queue IDs |
| 35 | + note over BA: status: NEW/SECURED |
| 36 | + |
| 37 | + note over BA, AA: 7. confirm Alice's SMP queue |
| 38 | + BA ->> AS: SEND: Bob's info without sender's key (SMP confirmation with reply queues) |
| 39 | + note over BA: status: NEW/CONFIRMED |
| 40 | + |
| 41 | + AS ->> AA: MSG: Bob's info without<br>sender server key |
| 42 | + note over AA: status: CONFIRMED/NEW |
| 43 | + AA ->> AS: ACK: confirm message |
| 44 | + |
| 45 | + note over AA, BS: 8. secure Bob's SMP queue |
| 46 | + AA ->> BS: SKEY: secure queue (this command needs to be proxied) |
| 47 | + note over BA: status: CONFIRMED/SECURED |
| 48 | + |
| 49 | + AA ->> BS: SEND: Alice's info without sender's server key (SMP confirmation without reply queues) |
| 50 | + note over AA: status: CONFIRMED/CONFIRMED |
| 51 | + |
| 52 | + note over AA, A: 9. notify Alice<br>about connection success<br>(no HELLO needed in v6) |
| 53 | + AA ->> A: CON: connected |
| 54 | + note over AA: status: ACTIVE/ACTIVE |
| 55 | + |
| 56 | + BS ->> BA: MSG: Alice's info without<br>sender's server key |
| 57 | + note over BA: status: CONFIRMED/CONFIRMED |
| 58 | + BA ->> B: INFO: Alice's info |
| 59 | + BA ->> BS: ACK: confirm message |
| 60 | + |
| 61 | + note over BA, B: 10. notify Bob<br>about connection success |
| 62 | + BA ->> B: CON: connected |
| 63 | + note over BA: status: ACTIVE/ACTIVE |
0 commit comments