<mxCell id="UarGHlLd0uthddKlq-wd-3" value="Download its public key" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxCell id="UarGHlLd0uthddKlq-wd-3" value="Download its public key, which is encrypted for Komrade, from Keyserver<br><br>Decrypt Keyserver's public key" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxCell id="UarGHlLd0uthddKlq-wd-5" value="Keyserver storing a public key for "marx"?" style="rhombus;whiteSpace=wrap;html=1;shadow=0;fontFamily=Helvetica;fontSize=12;align=center;strokeWidth=1;spacing=6;spacingTop=-4;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxCell id="UarGHlLd0uthddKlq-wd-5" value="Keyserver storing a public key for "marx"?" style="rhombus;whiteSpace=wrap;html=1;shadow=0;fontFamily=Helvetica;fontSize=12;align=center;strokeWidth=1;spacing=6;spacingTop=-4;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxCell id="UarGHlLd0uthddKlq-wd-14" value="Do I have a .marx.key?" style="rhombus;whiteSpace=wrap;html=1;shadow=0;fontFamily=Helvetica;fontSize=12;align=center;strokeWidth=1;spacing=6;spacingTop=-4;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxCell id="UarGHlLd0uthddKlq-wd-14" value="Do I have a .marx.key?" style="rhombus;whiteSpace=wrap;html=1;shadow=0;fontFamily=Helvetica;fontSize=12;align=center;strokeWidth=1;spacing=6;spacingTop=-4;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxCell id="UarGHlLd0uthddKlq-wd-72" value="<div><span>[Server]</span></div><div><br></div><div>Receive 2 encryped public keys from user</div><div><br></div><div>Decrypt first public key:</div><div><i>to</i>: me,&nbsp;<span><i>from</i>: komrade</span></div><div><br></div><div>Decrypt second public key:</div><div><i>to</i>: me, <i>from:</i>&nbsp;<span>decrypted first pubkey</span></div>" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;align=center;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxCell id="UarGHlLd0uthddKlq-wd-72" value="<div><span>[Server]</span></div><div><br></div><div>Receive 2 encryped public keys from user</div><div><br></div><div>Decrypt first public key:</div><div><i>to</i>: me,&nbsp;<span><i>from</i>: komrade</span></div><div><br></div><div>Decrypt second public key:</div><div><i>to</i>: me, <i>from:</i>&nbsp;<span>decrypted first pubkey</span></div>" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;align=center;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxCell id="UarGHlLd0uthddKlq-wd-86" value="Login failed. You claim to be marx but cannot decrypt his key." style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxCell id="UarGHlLd0uthddKlq-wd-86" value="Login failed. You claim to be marx but cannot decrypt his key." style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;fillColor=#f8cecc;strokeColor=#b85450;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxCell id="UarGHlLd0uthddKlq-wd-88" value="<div>[Client]</div><div><br></div><div>As before, encrypt my public key twice:</div><div><br></div><div>(1) to keyserver, from komrade</div><div>(2) to keyserver, from me</div><div><br></div><div>Send both to server</div>" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;align=center;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxCell id="UarGHlLd0uthddKlq-wd-88" value="<div>[Client]</div><div><br></div><div>As before, encrypt my public key twice:</div><div><br></div><div>(1) to keyserver, from komrade</div><div>(2) to keyserver, from me</div><div><br></div><div>Send both to server</div>" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;align=center;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxCell id="UarGHlLd0uthddKlq-wd-97" value="<div><span>[Client] -&gt; [Server]</span></div><div><br></div><div>Encrypt my public key,&nbsp;</div><div><span><i>to</i>: keyserver,&nbsp;</span><i>from</i><span>: komrade</span></div><div><br></div><div>Encrypt my public key again,</div><div><i>to</i>: keyserver,&nbsp;<i>from</i><span>: me</span></div><div><br></div><div>Send my 2 encrypted public keys to keyserver</div>" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;align=center;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxCell id="UarGHlLd0uthddKlq-wd-97" value="<div><span>[Client] -&gt; [Server]</span></div><div><br></div><div>Encrypt my public key,&nbsp;</div><div><span><i>to</i>: keyserver,&nbsp;</span><i>from</i><span>: komrade</span></div><div><br></div><div>Encrypt my public key again,</div><div><i>to</i>: keyserver,&nbsp;<i>from</i><span>: me</span></div><div><br></div><div>Send my 2 encrypted public keys to keyserver</div>" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;align=center;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxCell id="UarGHlLd0uthddKlq-wd-101" value="<div><span>[Server]</span></div><div><span><br></span></div><div>Save first decrypted key</div><div>(to me, from komrade) to</div><div>~/.komrade/.keyserver/.marx.loc</div><div><br></div><div>Send second decrypted pubkey</div><div>(to me, from user) to</div><div>~/.komrade/.keyserver/.marx.loc.box</div><div><br></div><div><div>Send back to user OK response</div></div>" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;align=center;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxCell id="UarGHlLd0uthddKlq-wd-101" value="<div><span>[Server]</span></div><div><span><br></span></div><div>Save first decrypted key</div><div>(to me, from komrade) to</div><div>~/.komrade/.keyserver/.marx.loc</div><div><br></div><div>Send second decrypted pubkey</div><div>(to me, from user) to</div><div>~/.komrade/.keyserver/.marx.loc.box</div><div><br></div><div><div>Send back to user OK response</div></div>" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;align=center;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxCell id="UarGHlLd0uthddKlq-wd-105" value="<div><span>[Server]</span></div><div><br></div><div>Receive 2 encryped public keys from user</div><div><br></div><div>Decrypt first public key:</div><div><i>to</i>: me,&nbsp;<span><i>from</i>: komrade</span></div><div><br></div><div>Decrypt second public key:</div><div><i>to</i>: me, <i>from:</i>&nbsp;<span>decrypted first pubkey</span></div><div><span><br></span></div><div><span>Do same with those 2 already on disk</span></div>" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;align=center;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxCell id="UarGHlLd0uthddKlq-wd-105" value="<div><span>[Server]</span></div><div><br></div><div>Receive 2 encryped public keys from user</div><div><br></div><div>Decrypt first public key:</div><div><i>to</i>: me,&nbsp;<span><i>from</i>: komrade</span></div><div><br></div><div>Decrypt second public key:</div><div><i>to</i>: me, <i>from:</i>&nbsp;<span>decrypted first pubkey</span></div><div><span><br></span></div><div><span>Do same with those 2 already on disk</span></div>" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;align=center;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxCell id="UarGHlLd0uthddKlq-wd-111" value="[Server] All four decrypted keys match each other?" style="rhombus;whiteSpace=wrap;html=1;shadow=0;fontFamily=Helvetica;fontSize=12;align=center;strokeWidth=1;spacing=6;spacingTop=-4;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxCell id="UarGHlLd0uthddKlq-wd-111" value="[Server] All four decrypted keys match each other?" style="rhombus;whiteSpace=wrap;html=1;shadow=0;fontFamily=Helvetica;fontSize=12;align=center;strokeWidth=1;spacing=6;spacingTop=-4;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxCell id="UarGHlLd0uthddKlq-wd-112" value="<div><span>[Server]</span></div><div><span><br></span></div><div><span>Send back to user OK response</span><br></div>" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;align=center;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxCell id="UarGHlLd0uthddKlq-wd-112" value="<div><span>[Server]</span></div><div><span><br></span></div><div><span>Send back to user OK response</span><br></div>" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;align=center;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxCell id="UarGHlLd0uthddKlq-wd-114" value="<div><span>[Server]</span><br></div><div><span><br></span></div><div><span>Send back to user FAIL response</span><br></div>" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;align=center;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxCell id="UarGHlLd0uthddKlq-wd-114" value="<div><span>[Server]</span><br></div><div><span><br></span></div><div><span>Send back to user FAIL response</span><br></div>" style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;align=center;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxCell id="pqJTde5UYUQTvpoNPmt8-0" value="Login failed. You claim to be marx but do not have his private key." style="rounded=1;whiteSpace=wrap;html=1;fontSize=12;glass=0;strokeWidth=1;shadow=0;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">