Files
simplexmq/protocol/diagrams/simplex-messaging/simplex-creating.svg
T
2021-05-03 10:06:16 +01:00

1 line
13 KiB
XML

<svg id="mermaid-1603362111631" width="100%" xmlns="http://www.w3.org/2000/svg" height="875" style="max-width: 1006px;" viewBox="-50 -10 1006 875"><style>#mermaid-1603362111631{font-family:"trebuchet ms",verdana,arial;font-size:16px;fill:#333;}#mermaid-1603362111631 .error-icon{fill:#552222;}#mermaid-1603362111631 .error-text{fill:#552222;stroke:#552222;}#mermaid-1603362111631 .edge-thickness-normal{stroke-width:2px;}#mermaid-1603362111631 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-1603362111631 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-1603362111631 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-1603362111631 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-1603362111631 .marker{fill:#333333;}#mermaid-1603362111631 .marker.cross{stroke:#333333;}#mermaid-1603362111631 svg{font-family:"trebuchet ms",verdana,arial;font-size:16px;}#mermaid-1603362111631 .actor{stroke:hsl(259.6261682243,59.7765363128%,87.9019607843%);fill:#ECECFF;}#mermaid-1603362111631 text.actor &gt; tspan{fill:black;stroke:none;}#mermaid-1603362111631 .actor-line{stroke:grey;}#mermaid-1603362111631 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-1603362111631 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-1603362111631 #arrowhead path{fill:#333;stroke:#333;}#mermaid-1603362111631 .sequenceNumber{fill:white;}#mermaid-1603362111631 #sequencenumber{fill:#333;}#mermaid-1603362111631 #crosshead path{fill:#333;stroke:#333;}#mermaid-1603362111631 .messageText{fill:#333;stroke:#333;}#mermaid-1603362111631 .labelBox{stroke:hsl(259.6261682243,59.7765363128%,87.9019607843%);fill:#ECECFF;}#mermaid-1603362111631 .labelText,#mermaid-1603362111631 .labelText &gt; tspan{fill:black;stroke:none;}#mermaid-1603362111631 .loopText,#mermaid-1603362111631 .loopText &gt; tspan{fill:black;stroke:none;}#mermaid-1603362111631 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243,59.7765363128%,87.9019607843%);fill:hsl(259.6261682243,59.7765363128%,87.9019607843%);}#mermaid-1603362111631 .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-1603362111631 .noteText,#mermaid-1603362111631 .noteText &gt; tspan{fill:black;stroke:none;}#mermaid-1603362111631 .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-1603362111631 .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-1603362111631 .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-1603362111631:root{--mermaid-font-family:"trebuchet ms",verdana,arial;}#mermaid-1603362111631 sequence{fill:apa;}</style><g></g><g><line id="actor612" x1="75" y1="5" x2="75" y2="864" class="actor-line" stroke-width="0.5px" stroke="#999"></line><rect x="0" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="75" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, sans-serif;"><tspan x="75" dy="0">Bob (sender)</tspan></text></g><g><line id="actor613" x1="484" y1="5" x2="484" y2="864" class="actor-line" stroke-width="0.5px" stroke="#999"></line><rect x="409" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="484" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, sans-serif;"><tspan x="484" dy="0">server (queue RID)</tspan></text></g><g><line id="actor614" x1="831" y1="5" x2="831" y2="864" class="actor-line" stroke-width="0.5px" stroke="#999"></line><rect x="756" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="831" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, sans-serif;"><tspan x="831" dy="0">Alice (recipient)</tspan></text></g><defs><marker id="arrowhead" refX="5" refY="2" markerWidth="6" markerHeight="4" orient="auto"><path d="M 0,0 V 4 L6,2 Z"></path></marker></defs><defs><marker id="crosshead" markerWidth="15" markerHeight="8" orient="auto" refX="16" refY="4"><path fill="black" stroke="#000000" stroke-width="1px" d="M 9,2 V 6 L16,4 Z" style="stroke-dasharray: 0, 0;"></path><path fill="none" stroke="#000000" stroke-width="1px" d="M 0,1 L 6,7 M 6,1 L 0,7" style="stroke-dasharray: 0, 0;"></path></marker></defs><defs><marker id="sequencenumber" refX="15" refY="15" markerWidth="60" markerHeight="40" orient="auto"><circle cx="15" cy="15" r="6"></circle></marker></defs><g><rect x="756" y="75" fill="#EDF2AE" stroke="#666" width="150" height="68" rx="0" ry="0" class="note"></rect><text x="831" y="80" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: &quot;trebuchet ms&quot;, verdana, arial; font-size: 14px; font-weight: 400;"><tspan x="831">creating queue</tspan></text><text x="831" y="96" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: &quot;trebuchet ms&quot;, verdana, arial; font-size: 14px; font-weight: 400;"><tspan x="831">("public" key RK</tspan></text><text x="831" y="112" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: &quot;trebuchet ms&quot;, verdana, arial; font-size: 14px; font-weight: 400;"><tspan x="831">for msg retrieval)</tspan></text></g><text x="658" y="158" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: &quot;trebuchet ms&quot;, verdana, arial; font-size: 16px; font-weight: 400;">1. create queue ("NEW")</text><line x1="831" y1="189" x2="484" y2="189" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none;"></line><text x="658" y="204" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: &quot;trebuchet ms&quot;, verdana, arial; font-size: 16px; font-weight: 400;">respond with queue RID and SID ("IDS")</text><line x1="484" y1="235" x2="831" y2="235" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none;"></line><g><rect x="756" y="245" fill="#EDF2AE" stroke="#666" width="150" height="84" rx="0" ry="0" class="note"></rect><text x="831" y="250" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: &quot;trebuchet ms&quot;, verdana, arial; font-size: 14px; font-weight: 400;"><tspan x="831">out-of-band msg</tspan></text><text x="831" y="266" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: &quot;trebuchet ms&quot;, verdana, arial; font-size: 14px; font-weight: 400;"><tspan x="831">(sender's queue SID</tspan></text><text x="831" y="282" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: &quot;trebuchet ms&quot;, verdana, arial; font-size: 14px; font-weight: 400;"><tspan x="831">and "public" key EK</tspan></text><text x="831" y="298" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: &quot;trebuchet ms&quot;, verdana, arial; font-size: 14px; font-weight: 400;"><tspan x="831">to encrypt msgs)</tspan></text></g><text x="453" y="344" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: &quot;trebuchet ms&quot;, verdana, arial; font-size: 16px; font-weight: 400;">2. send out-of-band message</text><line x1="831" y1="375" x2="75" y2="375" class="messageLine1" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"></line><g><rect x="0" y="385" fill="#EDF2AE" stroke="#666" width="150" height="116" rx="0" ry="0" class="note"></rect><text x="75" y="390" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: &quot;trebuchet ms&quot;, verdana, arial; font-size: 14px; font-weight: 400;"><tspan x="75">confirm queue</tspan></text><text x="75" y="406" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: &quot;trebuchet ms&quot;, verdana, arial; font-size: 14px; font-weight: 400;"><tspan x="75">("public" key SK for</tspan></text><text x="75" y="422" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: &quot;trebuchet ms&quot;, verdana, arial; font-size: 14px; font-weight: 400;"><tspan x="75">sending messages</tspan></text><text x="75" y="438" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: &quot;trebuchet ms&quot;, verdana, arial; font-size: 14px; font-weight: 400;"><tspan x="75">and any optional</tspan></text><text x="75" y="454" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: &quot;trebuchet ms&quot;, verdana, arial; font-size: 14px; font-weight: 400;"><tspan x="75">info encrypted with</tspan></text><text x="75" y="470" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: &quot;trebuchet ms&quot;, verdana, arial; font-size: 14px; font-weight: 400;"><tspan x="75">"public" key EK)</tspan></text></g><text x="280" y="516" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: &quot;trebuchet ms&quot;, verdana, arial; font-size: 16px; font-weight: 400;">3. confirm queue ("SEND" command not signed)</text><line x1="75" y1="547" x2="484" y2="547" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none;"></line><text x="658" y="562" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: &quot;trebuchet ms&quot;, verdana, arial; font-size: 16px; font-weight: 400;">4. deliver Bob's message</text><line x1="484" y1="593" x2="831" y2="593" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none;"></line><g><rect x="756" y="603" fill="#EDF2AE" stroke="#666" width="150" height="52" rx="0" ry="0" class="note"></rect><text x="831" y="608" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: &quot;trebuchet ms&quot;, verdana, arial; font-size: 14px; font-weight: 400;"><tspan x="831">decrypt message</tspan></text><text x="831" y="624" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: &quot;trebuchet ms&quot;, verdana, arial; font-size: 14px; font-weight: 400;"><tspan x="831">("private" key EK)</tspan></text></g><text x="658" y="670" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: &quot;trebuchet ms&quot;, verdana, arial; font-size: 16px; font-weight: 400;">5. secure queue ("KEY", RK-signed)</text><line x1="831" y1="701" x2="484" y2="701" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none;"></line><g><rect x="409" y="711" fill="#EDF2AE" stroke="#666" width="150" height="68" rx="0" ry="0" class="note"></rect><text x="484" y="716" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: &quot;trebuchet ms&quot;, verdana, arial; font-size: 14px; font-weight: 400;"><tspan x="484">6. simplex</tspan></text><text x="484" y="732" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: &quot;trebuchet ms&quot;, verdana, arial; font-size: 14px; font-weight: 400;"><tspan x="484">queue RID</tspan></text><text x="484" y="748" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-family: &quot;trebuchet ms&quot;, verdana, arial; font-size: 14px; font-weight: 400;"><tspan x="484">is ready to use!</tspan></text></g><g><rect x="0" y="799" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="75" y="831.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, sans-serif;"><tspan x="75" dy="0">Bob (sender)</tspan></text></g><g><rect x="409" y="799" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="484" y="831.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, sans-serif;"><tspan x="484" dy="0">server (queue RID)</tspan></text></g><g><rect x="756" y="799" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="831" y="831.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, sans-serif;"><tspan x="831" dy="0">Alice (recipient)</tspan></text></g></svg>