Skip to content

Instantly share code, notes, and snippets.

@jeremyckahn
Last active December 5, 2023 17:25
Show Gist options
  • Save jeremyckahn/32a066915e2aceb937e89e97cf3c81b0 to your computer and use it in GitHub Desktop.
Save jeremyckahn/32a066915e2aceb937e89e97cf3c81b0 to your computer and use it in GitHub Desktop.
{
"type": "excalidraw",
"version": 2,
"source": "https://excalidraw.com",
"elements": [
{
"id": "6NTKCxHqlVnqYY7Mg_5ph",
"type": "text",
"x": 603,
"y": 639,
"width": 172.45980834960938,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": null,
"seed": 581008156,
"version": 198,
"versionNonce": 1465727396,
"isDeleted": false,
"boundElements": [
{
"id": "qM0CkaY-Oe_EP3wLBkBY6",
"type": "arrow"
},
{
"id": "Nmr0CDZliIDu8D4OOQDZt",
"type": "arrow"
},
{
"id": "G-tU7aRmuS3cgVKyhA5zS",
"type": "arrow"
}
],
"updated": 1701796114696,
"link": null,
"locked": false,
"text": "Peer A joins room",
"fontSize": 20,
"fontFamily": 1,
"textAlign": "left",
"verticalAlign": "top",
"baseline": 18,
"containerId": null,
"originalText": "Peer A joins room",
"lineHeight": 1.25
},
{
"id": "pCpnuDcRdAGNguH6ZN46D",
"type": "text",
"x": 809.5,
"y": 367,
"width": 328.0596008300781,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": null,
"seed": 1266524708,
"version": 243,
"versionNonce": 2087277092,
"isDeleted": false,
"boundElements": [
{
"id": "PhPP1Gl7Hhs_Fw86-mMfH",
"type": "arrow"
},
{
"id": "I4IGaiJQ83z65T9k_i0o6",
"type": "arrow"
}
],
"updated": 1701796157663,
"link": null,
"locked": false,
"text": "Public/private key does not exist",
"fontSize": 20,
"fontFamily": 1,
"textAlign": "left",
"verticalAlign": "top",
"baseline": 18,
"containerId": null,
"originalText": "Public/private key does not exist",
"lineHeight": 1.25
},
{
"type": "text",
"version": 172,
"versionNonce": 341220764,
"isDeleted": false,
"id": "XL2MhP4VGNszTch_AziSX",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 387.5301513671875,
"y": 372,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 242.939697265625,
"height": 25,
"seed": 1603197468,
"groupIds": [],
"frameId": null,
"roundness": null,
"boundElements": [
{
"id": "sUXGgLuXve4xO9GdjTelm",
"type": "arrow"
},
{
"id": "qM0CkaY-Oe_EP3wLBkBY6",
"type": "arrow"
}
],
"updated": 1701796150848,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "Public/private key exists",
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Public/private key exists",
"lineHeight": 1.25,
"baseline": 18
},
{
"id": "WfRebUu-TDVW8jOWFWg_L",
"type": "text",
"x": 800.5,
"y": 507,
"width": 247.99969482421875,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": null,
"seed": 210172828,
"version": 167,
"versionNonce": 521878556,
"isDeleted": false,
"boundElements": [
{
"id": "I4IGaiJQ83z65T9k_i0o6",
"type": "arrow"
},
{
"id": "G-tU7aRmuS3cgVKyhA5zS",
"type": "arrow"
}
],
"updated": 1701796166390,
"link": null,
"locked": false,
"text": "Create public/private key",
"fontSize": 20,
"fontFamily": 1,
"textAlign": "left",
"verticalAlign": "top",
"baseline": 18,
"containerId": null,
"originalText": "Create public/private key",
"lineHeight": 1.25
},
{
"id": "Elup92sz-AsdCjDa3Q2Kt",
"type": "text",
"x": 611,
"y": 196,
"width": 171.79978942871094,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": null,
"seed": 693478436,
"version": 115,
"versionNonce": 1087822236,
"isDeleted": false,
"boundElements": [
{
"id": "sUXGgLuXve4xO9GdjTelm",
"type": "arrow"
},
{
"id": "PhPP1Gl7Hhs_Fw86-mMfH",
"type": "arrow"
}
],
"updated": 1701796085914,
"link": null,
"locked": false,
"text": "Peer A loads app",
"fontSize": 20,
"fontFamily": 1,
"textAlign": "left",
"verticalAlign": "top",
"baseline": 18,
"containerId": null,
"originalText": "Peer A loads app",
"lineHeight": 1.25
},
{
"id": "PhPP1Gl7Hhs_Fw86-mMfH",
"type": "arrow",
"x": 756.1534504097641,
"y": 234.5,
"width": 158.39189548339425,
"height": 128,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": {
"type": 2
},
"seed": 1182845092,
"version": 410,
"versionNonce": 122558756,
"isDeleted": false,
"boundElements": null,
"updated": 1701796157663,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
158.39189548339425,
128
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "Elup92sz-AsdCjDa3Q2Kt",
"focus": -0.26614316136574645,
"gap": 13.5
},
"endBinding": {
"elementId": "pCpnuDcRdAGNguH6ZN46D",
"focus": -0.21141228237729678,
"gap": 4.5
},
"startArrowhead": null,
"endArrowhead": "arrow"
},
{
"id": "sUXGgLuXve4xO9GdjTelm",
"type": "arrow",
"x": 613.3309404998249,
"y": 228.1601104736328,
"width": 57.45104334143252,
"height": 139.8398895263672,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": {
"type": 2
},
"seed": 1875221020,
"version": 395,
"versionNonce": 186190116,
"isDeleted": false,
"boundElements": null,
"updated": 1701796154495,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
-57.45104334143252,
139.8398895263672
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "Elup92sz-AsdCjDa3Q2Kt",
"focus": 0.8292594487136534,
"gap": 7.1601104736328125
},
"endBinding": {
"elementId": "XL2MhP4VGNszTch_AziSX",
"focus": 0.31674136402284264,
"gap": 4
},
"startArrowhead": null,
"endArrowhead": "arrow"
},
{
"id": "I4IGaiJQ83z65T9k_i0o6",
"type": "arrow",
"x": 956.6558801457027,
"y": 397.5,
"width": 19.52534996956001,
"height": 99.5,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": {
"type": 2
},
"seed": 1881647908,
"version": 490,
"versionNonce": 1184359708,
"isDeleted": false,
"boundElements": null,
"updated": 1701796166390,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
-19.52534996956001,
99.5
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "pCpnuDcRdAGNguH6ZN46D",
"focus": 0.08061573147055415,
"gap": 5.5
},
"endBinding": {
"elementId": "WfRebUu-TDVW8jOWFWg_L",
"focus": 0.06496814515695183,
"gap": 10
},
"startArrowhead": null,
"endArrowhead": "arrow"
},
{
"id": "G-tU7aRmuS3cgVKyhA5zS",
"type": "arrow",
"x": 930.2520235955394,
"y": 537.5,
"width": 144.68835450291658,
"height": 97.43527097022331,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": {
"type": 2
},
"seed": 1727768220,
"version": 1017,
"versionNonce": 1404980764,
"isDeleted": false,
"boundElements": null,
"updated": 1701796166390,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
-144.68835450291658,
97.43527097022331
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "WfRebUu-TDVW8jOWFWg_L",
"focus": -0.227746830600999,
"gap": 5.5
},
"endBinding": {
"elementId": "6NTKCxHqlVnqYY7Mg_5ph",
"focus": 0.684552685489157,
"gap": 10.890822925735051
},
"startArrowhead": null,
"endArrowhead": "arrow"
},
{
"id": "qM0CkaY-Oe_EP3wLBkBY6",
"type": "arrow",
"x": 538.2560837298537,
"y": 406.50000000000006,
"width": 57.76660735538928,
"height": 231.91919350305096,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": {
"type": 2
},
"seed": 30122148,
"version": 476,
"versionNonce": 1609187740,
"isDeleted": false,
"boundElements": null,
"updated": 1701796150914,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
57.76660735538928,
231.91919350305096
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "XL2MhP4VGNszTch_AziSX",
"focus": -0.19084620481175485,
"gap": 9.5
},
"endBinding": {
"elementId": "6NTKCxHqlVnqYY7Mg_5ph",
"focus": -1.0067785899996036,
"gap": 7.00144098588612
},
"startArrowhead": null,
"endArrowhead": "arrow"
},
{
"id": "9I0tvJmk3CfSNT_rpDcjD",
"type": "text",
"x": 618,
"y": 782,
"width": 120.45986938476562,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": null,
"seed": 616035108,
"version": 126,
"versionNonce": 1151333276,
"isDeleted": false,
"boundElements": [
{
"id": "Nmr0CDZliIDu8D4OOQDZt",
"type": "arrow"
},
{
"id": "rOcb5hHXQUtG9cZmjZW4j",
"type": "arrow"
}
],
"updated": 1701795770299,
"link": null,
"locked": false,
"text": "Peer B joins",
"fontSize": 20,
"fontFamily": 1,
"textAlign": "left",
"verticalAlign": "top",
"baseline": 18,
"containerId": null,
"originalText": "Peer B joins",
"lineHeight": 1.25
},
{
"id": "Nmr0CDZliIDu8D4OOQDZt",
"type": "arrow",
"x": 692.6093569244774,
"y": 673,
"width": 13.715313133645168,
"height": 102,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": {
"type": 2
},
"seed": 444991652,
"version": 420,
"versionNonce": 452020132,
"isDeleted": false,
"boundElements": null,
"updated": 1701796114696,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
-13.715313133645168,
102
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "6NTKCxHqlVnqYY7Mg_5ph",
"focus": -0.07117637560824244,
"gap": 9
},
"endBinding": {
"elementId": "9I0tvJmk3CfSNT_rpDcjD",
"focus": -0.03162514750952474,
"gap": 7
},
"startArrowhead": null,
"endArrowhead": "arrow"
},
{
"id": "eYO987gGcc3lvnNXta8eo",
"type": "text",
"x": 433,
"y": 901.5,
"width": 511.0794372558594,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": null,
"seed": 1746315044,
"version": 340,
"versionNonce": 1410801692,
"isDeleted": false,
"boundElements": [
{
"id": "rOcb5hHXQUtG9cZmjZW4j",
"type": "arrow"
},
{
"id": "wQbzc2mdzpjXDRtMmWImv",
"type": "arrow"
}
],
"updated": 1701795770299,
"link": null,
"locked": false,
"text": "Peer B sends public key to Peer A (and vice versa)",
"fontSize": 20,
"fontFamily": 1,
"textAlign": "left",
"verticalAlign": "top",
"baseline": 18,
"containerId": null,
"originalText": "Peer B sends public key to Peer A (and vice versa)",
"lineHeight": 1.25
},
{
"id": "rOcb5hHXQUtG9cZmjZW4j",
"type": "arrow",
"x": 682.8562797662948,
"y": 822.5,
"width": 13.22087500574628,
"height": 74.50000000000023,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": {
"type": 2
},
"seed": 1354817828,
"version": 447,
"versionNonce": 1954512804,
"isDeleted": false,
"boundElements": null,
"updated": 1701795770299,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
13.22087500574628,
74.50000000000023
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "9I0tvJmk3CfSNT_rpDcjD",
"focus": 0.00574753860632095,
"gap": 15.5
},
"endBinding": {
"elementId": "eYO987gGcc3lvnNXta8eo",
"focus": 0.04094647176156674,
"gap": 4.499999999999886
},
"startArrowhead": null,
"endArrowhead": "arrow"
},
{
"type": "text",
"version": 367,
"versionNonce": 888454300,
"isDeleted": false,
"id": "aNntg7iyh5xzW6HgPqL0p",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"angle": 0,
"x": 427.3102111816406,
"y": 1019.5,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"width": 529.139404296875,
"height": 75,
"seed": 1661639580,
"groupIds": [],
"frameId": null,
"roundness": null,
"boundElements": [
{
"id": "wQbzc2mdzpjXDRtMmWImv",
"type": "arrow"
},
{
"id": "GEpmBED3nqLWZgewDCm_a",
"type": "arrow"
}
],
"updated": 1701795770299,
"link": null,
"locked": false,
"fontSize": 20,
"fontFamily": 1,
"text": "Peer A creates random authentication token (UUID),\nencrypts it with Peer B's public key, sends it back to\nPeer B",
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Peer A creates random authentication token (UUID),\nencrypts it with Peer B's public key, sends it back to\nPeer B",
"lineHeight": 1.25,
"baseline": 68
},
{
"id": "wQbzc2mdzpjXDRtMmWImv",
"type": "arrow",
"x": 686,
"y": 939,
"width": 6.5,
"height": 73,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": {
"type": 2
},
"seed": 275208604,
"version": 62,
"versionNonce": 1329064740,
"isDeleted": false,
"boundElements": null,
"updated": 1701795770299,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
6.5,
73
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "eYO987gGcc3lvnNXta8eo",
"focus": 0.01856884975269276,
"gap": 12.5
},
"endBinding": {
"elementId": "aNntg7iyh5xzW6HgPqL0p",
"focus": 0.017270567316911657,
"gap": 7.5
},
"startArrowhead": null,
"endArrowhead": "arrow"
},
{
"id": "U-99cUVkiuZvxfDAIsvkX",
"type": "text",
"x": 426.5,
"y": 1197,
"width": 496.59942626953125,
"height": 50,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": null,
"seed": 254469660,
"version": 190,
"versionNonce": 562547484,
"isDeleted": false,
"boundElements": [
{
"id": "GEpmBED3nqLWZgewDCm_a",
"type": "arrow"
},
{
"id": "CBss-yEjLBpu-bDXydVdO",
"type": "arrow"
}
],
"updated": 1701795886799,
"link": null,
"locked": false,
"text": "Peer B decrypts encrypted token with private key,\nsends it back to Peer A",
"fontSize": 20,
"fontFamily": 1,
"textAlign": "left",
"verticalAlign": "top",
"baseline": 43,
"containerId": null,
"originalText": "Peer B decrypts encrypted token with private key,\nsends it back to Peer A",
"lineHeight": 1.25
},
{
"id": "GEpmBED3nqLWZgewDCm_a",
"type": "arrow",
"x": 682.3336832719862,
"y": 1103,
"width": 0.9097542836393586,
"height": 89.5,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": {
"type": 2
},
"seed": 408630940,
"version": 90,
"versionNonce": 1953281052,
"isDeleted": false,
"boundElements": null,
"updated": 1701795886800,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
0.9097542836393586,
89.5
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "aNntg7iyh5xzW6HgPqL0p",
"focus": 0.03780038261650105,
"gap": 8.5
},
"endBinding": {
"elementId": "U-99cUVkiuZvxfDAIsvkX",
"focus": 0.03517784219351013,
"gap": 4.5
},
"startArrowhead": null,
"endArrowhead": "arrow"
},
{
"id": "GN35oAXxB1_NvicK6GvUO",
"type": "text",
"x": 372,
"y": 1355.5,
"width": 596.9593505859375,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": null,
"seed": 391470236,
"version": 236,
"versionNonce": 109162652,
"isDeleted": false,
"boundElements": [
{
"id": "0XGPIk37nQUJmG-oWjCCl",
"type": "arrow"
},
{
"id": "vtOXuP4tIy_1775LQu5q3",
"type": "arrow"
},
{
"id": "CBss-yEjLBpu-bDXydVdO",
"type": "arrow"
}
],
"updated": 1701796205230,
"link": null,
"locked": false,
"text": "Peer A verifies that decrypted token matches original token",
"fontSize": 20,
"fontFamily": 1,
"textAlign": "left",
"verticalAlign": "top",
"baseline": 18,
"containerId": null,
"originalText": "Peer A verifies that decrypted token matches original token",
"lineHeight": 1.25
},
{
"id": "CBss-yEjLBpu-bDXydVdO",
"type": "arrow",
"x": 686.5569961551132,
"y": 1260,
"width": 2.7505446723693012,
"height": 84,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": {
"type": 2
},
"seed": 1169359012,
"version": 243,
"versionNonce": 325690908,
"isDeleted": false,
"boundElements": null,
"updated": 1701796205689,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
-2.7505446723693012,
84
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "U-99cUVkiuZvxfDAIsvkX",
"focus": -0.05219036737675086,
"gap": 13
},
"endBinding": {
"elementId": "GN35oAXxB1_NvicK6GvUO",
"focus": 0.041958409363176935,
"gap": 11.5
},
"startArrowhead": null,
"endArrowhead": "arrow"
},
{
"id": "ZLBeLHVExZVjpvdKJgQyF",
"type": "text",
"x": 349.5,
"y": 1531.5,
"width": 146.19984436035156,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": null,
"seed": 1397855772,
"version": 18,
"versionNonce": 1971859236,
"isDeleted": false,
"boundElements": [
{
"id": "0XGPIk37nQUJmG-oWjCCl",
"type": "arrow"
},
{
"id": "eGU-d12gTvSi-Wo5whUpP",
"type": "arrow"
}
],
"updated": 1701795909717,
"link": null,
"locked": false,
"text": "Token matches",
"fontSize": 20,
"fontFamily": 1,
"textAlign": "left",
"verticalAlign": "top",
"baseline": 18,
"containerId": null,
"originalText": "Token matches",
"lineHeight": 1.25
},
{
"id": "Pv_jAXPPjqdn4S2sadTKu",
"type": "text",
"x": 922,
"y": 1524,
"width": 220.3797607421875,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": null,
"seed": 982904860,
"version": 54,
"versionNonce": 1088410404,
"isDeleted": false,
"boundElements": [
{
"id": "vtOXuP4tIy_1775LQu5q3",
"type": "arrow"
},
{
"id": "fPjKVFZmBlKnoF4v1QTjB",
"type": "arrow"
}
],
"updated": 1701796319528,
"link": null,
"locked": false,
"text": "Token does not match",
"fontSize": 20,
"fontFamily": 1,
"textAlign": "left",
"verticalAlign": "top",
"baseline": 18,
"containerId": null,
"originalText": "Token does not match",
"lineHeight": 1.25
},
{
"id": "0XGPIk37nQUJmG-oWjCCl",
"type": "arrow",
"x": 622.0786594433414,
"y": 1391.5,
"width": 202.32155548646102,
"height": 133.5,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": {
"type": 2
},
"seed": 1252973732,
"version": 137,
"versionNonce": 764607132,
"isDeleted": false,
"boundElements": null,
"updated": 1701796197667,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
-202.32155548646102,
133.5
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "GN35oAXxB1_NvicK6GvUO",
"focus": 0.04034253583955752,
"gap": 11
},
"endBinding": {
"elementId": "ZLBeLHVExZVjpvdKJgQyF",
"focus": -0.34372348903691313,
"gap": 6.5
},
"startArrowhead": null,
"endArrowhead": "arrow"
},
{
"id": "vtOXuP4tIy_1775LQu5q3",
"type": "arrow",
"x": 734.0734268776582,
"y": 1392,
"width": 284.17771380381305,
"height": 126.5,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": {
"type": 2
},
"seed": 1049179548,
"version": 238,
"versionNonce": 1859672612,
"isDeleted": false,
"boundElements": null,
"updated": 1701796319528,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
284.17771380381305,
126.5
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "GN35oAXxB1_NvicK6GvUO",
"focus": -0.03113542643617114,
"gap": 11.5
},
"endBinding": {
"elementId": "Pv_jAXPPjqdn4S2sadTKu",
"focus": 0.19163581487754397,
"gap": 5.5
},
"startArrowhead": null,
"endArrowhead": "arrow"
},
{
"id": "uAPoRRrzzVMvx-gnrhHTJ",
"type": "text",
"x": 170.5,
"y": 1679,
"width": 429.0926513671875,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": null,
"seed": 911787164,
"version": 140,
"versionNonce": 2078951716,
"isDeleted": false,
"boundElements": [
{
"id": "eGU-d12gTvSi-Wo5whUpP",
"type": "arrow"
}
],
"updated": 1701796075515,
"link": null,
"locked": false,
"text": "✅ Peer B is shown as \"verified\" to Peer A",
"fontSize": 20,
"fontFamily": 1,
"textAlign": "left",
"verticalAlign": "top",
"baseline": 18,
"containerId": null,
"originalText": "✅ Peer B is shown as \"verified\" to Peer A",
"lineHeight": 1.25
},
{
"id": "eGU-d12gTvSi-Wo5whUpP",
"type": "arrow",
"x": 414.5195813408295,
"y": 1560.5,
"width": 13.084995550128383,
"height": 110.5,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": {
"type": 2
},
"seed": 74133916,
"version": 76,
"versionNonce": 1983729700,
"isDeleted": false,
"boundElements": null,
"updated": 1701796075515,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
-13.084995550128383,
110.5
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "ZLBeLHVExZVjpvdKJgQyF",
"focus": 0.08125810578231973,
"gap": 4
},
"endBinding": {
"elementId": "uAPoRRrzzVMvx-gnrhHTJ",
"focus": 0.0646250581978968,
"gap": 8
},
"startArrowhead": null,
"endArrowhead": "arrow"
},
{
"id": "j_XJS2vKBIhWazJuWHJFh",
"type": "text",
"x": 854.5,
"y": 1685,
"width": 449.79266357421875,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": null,
"seed": 2134211876,
"version": 105,
"versionNonce": 2061512860,
"isDeleted": false,
"boundElements": [
{
"id": "fPjKVFZmBlKnoF4v1QTjB",
"type": "arrow"
}
],
"updated": 1701796072965,
"link": null,
"locked": false,
"text": "⛔️ Peer B is shown as \"unverified\" to Peer A",
"fontSize": 20,
"fontFamily": 1,
"textAlign": "left",
"verticalAlign": "top",
"baseline": 18,
"containerId": null,
"originalText": "⛔️ Peer B is shown as \"unverified\" to Peer A",
"lineHeight": 1.25
},
{
"id": "fPjKVFZmBlKnoF4v1QTjB",
"type": "arrow",
"x": 1029.7749141945314,
"y": 1559,
"width": 66.62847467775077,
"height": 117,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"roundness": {
"type": 2
},
"seed": 1780702116,
"version": 179,
"versionNonce": 1604002084,
"isDeleted": false,
"boundElements": null,
"updated": 1701796319529,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
66.62847467775077,
117
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "Pv_jAXPPjqdn4S2sadTKu",
"focus": 0.12925170908205383,
"gap": 10
},
"endBinding": {
"elementId": "j_XJS2vKBIhWazJuWHJFh",
"focus": 0.12607280386087455,
"gap": 9
},
"startArrowhead": null,
"endArrowhead": "arrow"
}
],
"appState": {
"gridSize": null,
"viewBackgroundColor": "#ffffff"
},
"files": {}
}
Display the source blob
Display the rendered blob
Raw
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1153.7926635742188 1679.5" width="2307.5853271484375" height="3359" filter="invert(93%) hue-rotate(180deg)">
<!-- svg-source:excalidraw -->
<defs>
<style class="style-fonts">
@font-face {
font-family: "Virgil";
src: url("https://excalidraw.com/Virgil.woff2");
}
@font-face {
font-family: "Cascadia";
src: url("https://excalidraw.com/Cascadia.woff2");
}
@font-face {
font-family: "Assistant";
src: url("https://excalidraw.com/Assistant-Regular.woff2");
}
</style>
</defs>
<rect x="0" y="0" width="1153.7926635742188" height="1679.5" fill="#ffffff"></rect><g transform="translate(442.5 598.5) rotate(0 86.22990417480469 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Peer A joins room</text></g><g transform="translate(649 326.5) rotate(0 164.02980041503906 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Public/private key does not exist</text></g><g transform="translate(227.0301513671875 331.5) rotate(0 121.4698486328125 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Public/private key exists</text></g><g transform="translate(640 466.5) rotate(0 123.99984741210938 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Create public/private key</text></g><g transform="translate(450.5 155.5) rotate(0 85.89989471435547 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Peer A loads app</text></g><g stroke-linecap="round"><g transform="translate(595.6534504097641 194) rotate(0 79.19594774169713 64)"><path d="M-1.18 -0.19 C24.96 21.22, 131.04 107.15, 157.81 128.52 M0.4 -1.34 C26.85 19.7, 133.75 104.89, 160.21 126.67" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(595.6534504097641 194) rotate(0 79.19594774169713 64)"><path d="M131.83 116.94 C142.4 119.97, 154.46 126.35, 160.21 126.67 M131.83 116.94 C141.04 119.44, 149.2 122.57, 160.21 126.67" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(595.6534504097641 194) rotate(0 79.19594774169713 64)"><path d="M144.73 100.97 C150.36 110, 157.48 122.5, 160.21 126.67 M144.73 100.97 C149.97 108.37, 154.25 116.3, 160.21 126.67" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(452.8309404998249 187.6601104736328) rotate(0 -28.72552167071626 69.9199447631836)"><path d="M0.27 -0.7 C-8.96 22.62, -46.54 115.53, -56.36 138.87 M-1.04 1.55 C-10.25 25.08, -47.52 116.76, -56.74 139.9" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(452.8309404998249 187.6601104736328) rotate(0 -28.72552167071626 69.9199447631836)"><path d="M-55.72 109.91 C-57.37 118.32, -58.05 121.11, -56.74 139.9 M-55.72 109.91 C-56.24 116.78, -56.99 125.69, -56.74 139.9" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(452.8309404998249 187.6601104736328) rotate(0 -28.72552167071626 69.9199447631836)"><path d="M-36.69 117.58 C-42.45 124.34, -47.31 125.45, -56.74 139.9 M-36.69 117.58 C-42.18 122.54, -47.84 129.47, -56.74 139.9" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(796.1558801457027 357) rotate(0 -9.762674984780006 49.75)"><path d="M0.5 -0.6 C-2.67 16.18, -15.68 83.14, -18.88 99.72 M-0.69 1.7 C-3.98 18.18, -16.44 81.35, -19.49 97.71" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(796.1558801457027 357) rotate(0 -9.762674984780006 49.75)"><path d="M-24.23 68.09 C-23.99 78.4, -21.14 88.01, -19.49 97.71 M-24.23 68.09 C-23.22 74.79, -21.88 82.02, -19.49 97.71" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(796.1558801457027 357) rotate(0 -9.762674984780006 49.75)"><path d="M-4.08 71.97 C-10.1 81.15, -13.54 89.55, -19.49 97.71 M-4.08 71.97 C-8.13 77.77, -11.83 84.03, -19.49 97.71" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(769.7520235955394 497) rotate(0 -72.34417725145829 48.71763548511166)"><path d="M-0.14 -0.52 C-24.51 15.65, -121.6 80.5, -145.8 96.84 M-1.67 1.82 C-25.72 18.16, -119.55 81.89, -143.68 98.07" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(769.7520235955394 497) rotate(0 -72.34417725145829 48.71763548511166)"><path d="M-126.06 73.79 C-132.82 79.99, -138.81 88.83, -143.68 98.07 M-126.06 73.79 C-132.17 81.9, -137.03 87.66, -143.68 98.07" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(769.7520235955394 497) rotate(0 -72.34417725145829 48.71763548511166)"><path d="M-114.57 90.79 C-125.13 91.32, -134.94 94.5, -143.68 98.07 M-114.57 90.79 C-124.19 93.61, -132.59 94.14, -143.68 98.07" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(377.7560837298537 366.00000000000006) rotate(0 28.88330367769464 115.95959675152548)"><path d="M0.05 -0.93 C9.92 38.12, 48.72 194.15, 58.23 233.12 M-1.39 1.19 C8.45 40.05, 47.36 193.31, 57.52 231.62" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(377.7560837298537 366.00000000000006) rotate(0 28.88330367769464 115.95959675152548)"><path d="M40.53 206.9 C42.41 213.02, 49.65 216.44, 57.52 231.62 M40.53 206.9 C46.09 215.91, 53.58 226.8, 57.52 231.62" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(377.7560837298537 366.00000000000006) rotate(0 28.88330367769464 115.95959675152548)"><path d="M60.4 201.76 C57.92 209, 60.85 213.54, 57.52 231.62 M60.4 201.76 C58.41 212.56, 58.35 225.4, 57.52 231.62" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g transform="translate(457.5 741.5) rotate(0 60.22993469238281 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Peer B joins</text></g><g stroke-linecap="round"><g transform="translate(532.1093569244774 632.5) rotate(0 -6.857656566822584 51)"><path d="M-0.61 -0.12 C-2.85 16.73, -11.11 84.78, -13.45 101.83 M1.26 -1.23 C-1.11 15.75, -12.01 85.81, -14.26 103.27" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(532.1093569244774 632.5) rotate(0 -6.857656566822584 51)"><path d="M-20.4 73.91 C-18.59 83.15, -16.85 89.89, -14.26 103.27 M-20.4 73.91 C-17.99 82.32, -17.51 91.38, -14.26 103.27" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(532.1093569244774 632.5) rotate(0 -6.857656566822584 51)"><path d="M-0.09 76.84 C-4.37 85.1, -8.69 90.97, -14.26 103.27 M-0.09 76.84 C-3.99 84.42, -9.86 92.56, -14.26 103.27" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g transform="translate(272.5 861) rotate(0 255.5397186279297 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Peer B sends public key to Peer A (and vice versa)</text></g><g stroke-linecap="round"><g transform="translate(522.3562797662948 782) rotate(0 6.61043750287314 37.250000000000114)"><path d="M0.13 0.16 C2.21 12.72, 10.16 62.85, 12.51 75.07 M-1.26 -0.81 C1.21 11.42, 12.31 60.74, 14.85 73.24" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(522.3562797662948 782) rotate(0 6.61043750287314 37.250000000000114)"><path d="M-1.12 47.84 C3.89 54.3, 9.39 64.79, 14.85 73.24 M-1.12 47.84 C1.64 53.51, 5.61 58.51, 14.85 73.24" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(522.3562797662948 782) rotate(0 6.61043750287314 37.250000000000114)"><path d="M18.95 43.52 C17.89 51.3, 17.34 63.1, 14.85 73.24 M18.95 43.52 C17.41 50.23, 17.14 56.14, 14.85 73.24" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g transform="translate(266.8102111816406 979) rotate(0 264.5697021484375 37.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Peer A creates random authentication token (UUID),</text><text x="0" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">encrypts it with Peer B's public key, sends it back to</text><text x="0" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Peer B</text></g><g stroke-linecap="round"><g transform="translate(525.5 898.5) rotate(0 3.25 36.5)"><path d="M0.91 -0.78 C2.09 11.25, 5.21 59.63, 6.2 72.12 M-0.07 1.43 C1.01 13.59, 4.03 61.36, 5.09 73.19" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(525.5 898.5) rotate(0 3.25 36.5)"><path d="M-7.25 45.84 C-5.78 51.38, -3.19 58.61, 5.09 73.19 M-7.25 45.84 C-2.67 57.13, 1.68 67.43, 5.09 73.19" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(525.5 898.5) rotate(0 3.25 36.5)"><path d="M13.22 44.31 C10.09 50.34, 8.09 57.92, 5.09 73.19 M13.22 44.31 C9.68 56.25, 5.93 67.16, 5.09 73.19" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g transform="translate(266 1156.5) rotate(0 248.29971313476562 25)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Peer B decrypts encrypted token with private key,</text><text x="0" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">sends it back to Peer A</text></g><g stroke-linecap="round"><g transform="translate(521.8336832719862 1062.5) rotate(0 0.4548771418196793 44.75)"><path d="M-0.81 -0.92 C-0.42 14.07, 1.32 74.67, 1.53 89.75 M0.97 1.21 C1.32 15.84, 1.16 72.81, 0.91 87.75" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(521.8336832719862 1062.5) rotate(0 0.4548771418196793 44.75)"><path d="M-9.11 59.48 C-8.33 67.25, -4.02 72.12, 0.91 87.75 M-9.11 59.48 C-6.33 67.44, -3.13 77.47, 0.91 87.75" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(521.8336832719862 1062.5) rotate(0 0.4548771418196793 44.75)"><path d="M11.41 59.65 C7.35 67.25, 6.82 72.07, 0.91 87.75 M11.41 59.65 C7.97 67.51, 4.95 77.49, 0.91 87.75" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g transform="translate(211.5 1315) rotate(0 298.47967529296875 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Peer A verifies that decrypted token matches original token</text></g><g stroke-linecap="round"><g transform="translate(526.0569961551132 1219.5) rotate(0 -1.3752723361846506 42)"><path d="M0.2 0.15 C-0.34 14.15, -2.17 69.06, -2.56 83.11 M-1.16 -0.82 C-1.9 13.38, -3.17 70.32, -3.41 84.18" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(526.0569961551132 1219.5) rotate(0 -1.3752723361846506 42)"><path d="M-13.08 55.78 C-9.61 66.18, -7.9 76.97, -3.41 84.18 M-13.08 55.78 C-9.32 66.04, -6.21 75.84, -3.41 84.18" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(526.0569961551132 1219.5) rotate(0 -1.3752723361846506 42)"><path d="M7.43 56.21 C3.62 66.49, -1.96 77.12, -3.41 84.18 M7.43 56.21 C4.25 66.17, 0.41 75.82, -3.41 84.18" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g transform="translate(189 1491) rotate(0 73.09992218017578 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Token matches</text></g><g transform="translate(761.5 1483.5) rotate(0 110.18988037109375 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Token does not match</text></g><g stroke-linecap="round"><g transform="translate(461.5786594433414 1351) rotate(0 -101.16077774323051 66.75)"><path d="M1.18 -0.36 C-32.35 21.89, -167.88 111.22, -201.78 133.54 M0.34 -1.6 C-33.25 20.86, -168.57 112.35, -202.45 135.1" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(461.5786594433414 1351) rotate(0 -101.16077774323051 66.75)"><path d="M-184.81 110.84 C-189.86 118.04, -193.64 123.48, -202.45 135.1 M-184.81 110.84 C-190.07 117.34, -195.48 126.52, -202.45 135.1" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(461.5786594433414 1351) rotate(0 -101.16077774323051 66.75)"><path d="M-173.34 127.85 C-181.3 130.87, -187.97 132.01, -202.45 135.1 M-173.34 127.85 C-181.93 129.15, -190.83 133.14, -202.45 135.1" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(573.5734268776582 1351.5) rotate(0 142.08885690190652 63.25)"><path d="M0.94 -0.84 C48.45 20.6, 237.72 106.24, 284.78 127.5 M-0.03 1.33 C47.4 22.55, 236.53 104.76, 284.15 125.91" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(573.5734268776582 1351.5) rotate(0 142.08885690190652 63.25)"><path d="M254.21 123.97 C261.11 125.28, 272.52 123.3, 284.15 125.91 M254.21 123.97 C263.4 124.14, 274.37 125.78, 284.15 125.91" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(573.5734268776582 1351.5) rotate(0 142.08885690190652 63.25)"><path d="M262.46 105.18 C266.89 111.78, 276 115.03, 284.15 125.91 M262.46 105.18 C269.15 111.34, 277.48 119.02, 284.15 125.91" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g transform="translate(10 1638.5) rotate(0 214.54632568359375 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">✅ Peer B is shown as "verified" to Peer A</text></g><g stroke-linecap="round"><g transform="translate(254.01958134082952 1520) rotate(0 -6.5424977750641915 55.25)"><path d="M-0.11 -0.95 C-2.21 17.4, -10.59 91.24, -12.91 109.83 M-1.62 1.17 C-3.84 19.68, -12.1 92.55, -13.77 111.02" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(254.01958134082952 1520) rotate(0 -6.5424977750641915 55.25)"><path d="M-21.07 81.92 C-20.69 90.23, -18.22 96.42, -13.77 111.02 M-21.07 81.92 C-18.1 91.49, -15.86 100.57, -13.77 111.02" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(254.01958134082952 1520) rotate(0 -6.5424977750641915 55.25)"><path d="M-0.66 84.03 C-5.9 91.75, -9.05 97.35, -13.77 111.02 M-0.66 84.03 C-3.97 92.79, -8 101.22, -13.77 111.02" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g transform="translate(694 1644.5) rotate(0 224.89633178710938 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">⛔️ Peer B is shown as "unverified" to Peer A</text></g><g stroke-linecap="round"><g transform="translate(869.2749141945314 1518.5) rotate(0 33.31423733887539 58.5)"><path d="M0.46 0.79 C11.63 20.34, 55.87 97.29, 67.04 116.61 M-0.76 0.16 C10.28 19.94, 54.99 98.33, 66.31 117.95" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(869.2749141945314 1518.5) rotate(0 33.31423733887539 58.5)"><path d="M43.39 98.59 C51.51 105.02, 56.46 111.57, 66.31 117.95 M43.39 98.59 C50.28 104.68, 56.09 109.1, 66.31 117.95" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(869.2749141945314 1518.5) rotate(0 33.31423733887539 58.5)"><path d="M61.2 88.39 C63.89 97.97, 63.47 107.6, 66.31 117.95 M61.2 88.39 C63.11 97.46, 64.01 104.7, 66.31 117.95" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g transform="translate(273.5 27.5) rotate(0 286.776123046875 22.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Chitchatter Peer Authentication</text></g><g stroke-linecap="round" transform="translate(253 10) rotate(0 307.5 39.75)"><path d="M19.88 0 C220.94 -0.36, 422.72 -0.32, 595.13 0 M19.88 0 C201.5 1.89, 382.36 1.45, 595.13 0 M595.13 0 C607.58 1.92, 616.15 8.02, 615 19.88 M595.13 0 C609.55 1.69, 613.94 6.95, 615 19.88 M615 19.88 C614.92 33.39, 615.72 46.94, 615 59.63 M615 19.88 C614.73 33.9, 615.55 47.68, 615 59.63 M615 59.63 C613.7 71.79, 610.03 80.96, 595.13 79.5 M615 59.63 C615.83 70.64, 610.31 80.32, 595.13 79.5 M595.13 79.5 C446.65 77.98, 296.64 76.88, 19.88 79.5 M595.13 79.5 C394.71 77.72, 193.88 77.38, 19.88 79.5 M19.88 79.5 C8.07 78.38, 1.51 70.99, 0 59.63 M19.88 79.5 C5.9 77.75, -2.19 70.67, 0 59.63 M0 59.63 C-0.27 47.85, 1.48 30.87, 0 19.88 M0 59.63 C-0.68 51.39, 0 43.81, 0 19.88 M0 19.88 C0.15 8.46, 4.87 -1.08, 19.88 0 M0 19.88 C0.68 7.3, 5.81 -0.83, 19.88 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></svg>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment