Skip to content

Instantly share code, notes, and snippets.

@jeremyckahn
Last active December 5, 2023 17:25
Show Gist options
  • Select an option

  • Save jeremyckahn/32a066915e2aceb937e89e97cf3c81b0 to your computer and use it in GitHub Desktop.

Select an option

Save jeremyckahn/32a066915e2aceb937e89e97cf3c81b0 to your computer and use it in GitHub Desktop.

Revisions

  1. jeremyckahn revised this gist Dec 5, 2023. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion chitchatter-peer-authentication.svg
    Loading
    Sorry, something went wrong. Reload?
    Sorry, we cannot display this file.
    Sorry, this file is invalid so it cannot be displayed.
  2. jeremyckahn revised this gist Dec 5, 2023. 1 changed file with 21 additions and 0 deletions.
    21 changes: 21 additions & 0 deletions chitchatter-peer-authentication.svg
    Loading
    Sorry, something went wrong. Reload?
    Sorry, we cannot display this file.
    Sorry, this file is invalid so it cannot be displayed.
  3. jeremyckahn renamed this gist Dec 5, 2023. 1 changed file with 0 additions and 0 deletions.
  4. jeremyckahn created this gist Dec 5, 2023.
    1,370 changes: 1,370 additions & 0 deletions chitchatter-peer-authentication.excalidraw
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,1370 @@
    {
    "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": {}
    }