Merge remote-tracking branch 'origin/main' into dev

This commit is contained in:
Hendrik Eeckhaut
2023-08-09 09:44:05 +02:00
34 changed files with 1029 additions and 14 deletions

1
.gitignore vendored
View File

@@ -1 +1,2 @@
book
.DS_Store

View File

@@ -14,4 +14,9 @@ Then build and serve
```bash
mdbook serve
```
```
## Diagrams
All diagrams are made with [draw.io](https://app.diagrams.net/). The diagram source files are stored in the `diagrams` folder.
The diagram sources can be converted to `png` with the `convert_all.sh` script in the diagrams folder.

View File

@@ -0,0 +1 @@
<mxfile host="app.diagrams.net" modified="2022-06-03T01:45:18.560Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36" etag="7kz6cC5QjGoVDeZ1rP9-" version="18.2.1" type="device"><diagram id="L_tK45wmRM6DJ-EOD-vB" name="Page-1">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</diagram></mxfile>

26
diagrams/convert_all.sh Executable file
View File

@@ -0,0 +1,26 @@
#!/bin/bash
# Convert all diagrams in the diagrams folder to pngs in the mdbook src/png-diagrams folder
SOURCE_DIR=$(dirname "$0")
TARGET_DIR=$(realpath "$(dirname "$0")/../src/png-diagrams/")
OS=$(uname)
case "$OS" in
"Darwin") # Mac
DRAW_IO="/Applications/draw.io.app/Contents/MacOS/draw.io"
;;
"Linux") # Linux
DRAW_IO="drawio"
;;
esac
if ! command -v "$DRAW_IO" &>/dev/null; then
echo "Error: draw.io executable not found. Please install draw.io and make sure it's in your PATH."
exit 1
fi
pushd "$SOURCE_DIR" >/dev/null
for file in *.drawio; do
"$DRAW_IO" -x -f png --scale 2.5 -o "${TARGET_DIR}/${file%.drawio}.png" "$file"
done
popd >/dev/null

View File

@@ -0,0 +1 @@
<mxfile host="app.diagrams.net" modified="2022-06-04T08:51:11.798Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36" etag="oL7MEAuQHYHFvtbwb_oL" version="19.0.0" type="device"><diagram id="CEkUc7t8Aq7GvisyquvB" name="Page-1">5VrbcpswEP0aP6YDAmL7Mc2lmbaZtpN0EvelI4MKuAIxQvjSr68I4mqMscEWaZ+MVgtIZ4/OroRH2rW3/kBh4DwQC+ERUKz1SLsZAaAqU8B/YssmsRjTcWKwqWsJp9zw6P5B6Z3CGrkWCkuOjBDM3KBsNInvI5OVbJBSsiq7/SK4/NYA2mjL8GhCvG19di3mJNaJoeT2e+TaTvpmVRE9c2j+timJfPE+n/go6fFg+hjhGjrQIqvC+7TbkXZNCWHJlbe+RjiGNUUsue9uR282ZIp81uYG/BHP7qMZtZ7vpvZirtpPTLnQJmJwbJNigSwOjWgSyhxiEx/i29z6/nW+KH6swluLyAtSf0hNbsnv+kxIwM1q7IYY24jIw4gRbnKYh0UvnwPdvBQbs/jx74y0ebMWr0tam6yVsknjrWQu8QR2YiRMIYmoKbx+mJ8mT+Him7fCj+76ylj+fFhdpCyE1EasyS8PJV8diHiID4/fSBGGzF2WBwIFTe3ML48XvxAhqw9f0yiXEEfiTV5gXpiEoq2w5kGLIV45LkOPAXzFYMUXdTkcO3FbIsrQukri0sxFr57yXkiCni6mVWGBCZNTWFu60h2reqrrjVRHeE5Wp2b52mUvKXP5dYHjvJVTPG7kDB/YytDbrgztTCujPtqG/GinkSsEa1aK1VAjJ1PS9FpJgy4ZnKJpk/MpWn2cmhWtTfLuImKZcM0KPXtErIelcAzzjYM0a2u5SROx8UCqsyzkYzkx70X+2pJA7xjy11uvKIWbgkNAXJ+FhSd/jQ25uGRikorLpVGu5iv++mWjP79IRpCTL5tKBz5Oh8ZHcBQfx4MlZC3swJDCSP0wRoJmBh/KyO8hol/mi3i3DxQM5wgnj2U4zKsBcUhQ09OYOIt4Ct5LrCu0al2hnqyu4M0CroeUGjt2mi41Izdh0aAwPOdus7GSKAAWMbfI0AGhJb2SBc27tRNXsmohh7TejiulFHLUdvyoc6lxyyoG6LWZSlYpC4DMCB9buIJhFAqtgy6lUKgmfjBtLhSqhUXF/zSlq6525t+/eShUx61aBNXpmfSjcZiFfBpQwlNet2RqwdDJfHvIrKCSWbOUKS2zXkrVXUkH3UcthMkbzaya3Mz6prfgrYMuJbPqulFWk0nlE+8+/32ZuDlzd87EjZAXlNwnHP/NsJS8etovX8m3v4x0/9DbN2rVneU5UatXRznfSHrcJR6qcw3F2xl0rlOwUhb8z0V66/Cd5qh4R/yaTmNN7MYTAu0OZPfvLXo5kd2SrBrgW1fx5z2RbcQ6U/wjkQa9n333i/TpTiJrkOam/P93SX2T/79Ru/0L</diagram></mxfile>

View File

@@ -0,0 +1,131 @@
<mxfile host="Electron" modified="2023-08-01T12:50:38.332Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.5 Chrome/114.0.5735.243 Electron/25.3.1 Safari/537.36" etag="tLbQ2Tcs3b02EW_tnZjy" version="21.6.5" type="device">
<diagram name="Page-1" id="E1Tv2Iv79u1PMs5fWFh_">
<mxGraphModel dx="748" dy="686" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="HxEEL8P-OPklS3m3PPNj-1" value="Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="70" y="190" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-2" target="HxEEL8P-OPklS3m3PPNj-3" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-2" value="User A" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="230" y="190" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-3" value="User B" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="390" y="190" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-4" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-1" target="HxEEL8P-OPklS3m3PPNj-2" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="410" y="360" as="sourcePoint" />
<mxPoint x="460" y="310" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-6" value="TLS" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HxEEL8P-OPklS3m3PPNj-4" vertex="1" connectable="0">
<mxGeometry x="-0.1464" y="-1" relative="1" as="geometry">
<mxPoint y="-11" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-7" value="data" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" parent="1" vertex="1">
<mxGeometry x="150" y="230" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-8" value="data&lt;br&gt;⁉️" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" parent="1" vertex="1">
<mxGeometry x="310" y="230" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-9" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li&gt;Authenticity ⁉️&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Integrity ⁉️&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Too much info&amp;nbsp;&lt;/span&gt;⁉️&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" parent="1" vertex="1">
<mxGeometry x="346" y="250" width="136" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-18" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li&gt;Authenticity ✅&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Integrity&amp;nbsp;✅&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Too much info&amp;nbsp;&lt;/span&gt;⁉️&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" parent="1" vertex="1">
<mxGeometry x="350" y="525" width="136" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-24" value="Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="230" y="465" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-25" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-24" target="HxEEL8P-OPklS3m3PPNj-28" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-26" value="TLS" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HxEEL8P-OPklS3m3PPNj-25" vertex="1" connectable="0">
<mxGeometry x="-0.1121" y="2" relative="1" as="geometry">
<mxPoint x="6" y="-8" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-27" value="User A" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="70" y="355" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-28" value="User B" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="390" y="465" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-29" value="" style="endArrow=none;html=1;rounded=0;startArrow=classic;startFill=1;endFill=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-33" target="HxEEL8P-OPklS3m3PPNj-27" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="110" y="395" as="sourcePoint" />
<mxPoint x="450" y="485" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-30" value="grant access" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HxEEL8P-OPklS3m3PPNj-29" vertex="1" connectable="0">
<mxGeometry x="-0.0036" y="-1" relative="1" as="geometry">
<mxPoint y="-13" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-31" value="data" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" parent="1" vertex="1">
<mxGeometry x="310" y="505" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-33" target="HxEEL8P-OPklS3m3PPNj-24" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-33" value="OAuth&lt;br&gt;Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="230" y="355" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-34" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;censoring possible&lt;/span&gt;&amp;nbsp;⁉️&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;sees all requests&lt;/span&gt;&amp;nbsp;⁉️&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" parent="1" vertex="1">
<mxGeometry x="272" y="365" width="148" height="40" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-37" value="Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="70" y="620" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-39" target="HxEEL8P-OPklS3m3PPNj-40" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-49" value="ZKP" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HxEEL8P-OPklS3m3PPNj-38" vertex="1" connectable="0">
<mxGeometry x="-0.2352" y="1" relative="1" as="geometry">
<mxPoint x="12" y="-9" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-39" value="User A" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="230" y="620" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-40" value="User B" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="390" y="620" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-41" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-37" target="HxEEL8P-OPklS3m3PPNj-39" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="410" y="790" as="sourcePoint" />
<mxPoint x="460" y="740" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-42" value="TLS" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HxEEL8P-OPklS3m3PPNj-41" vertex="1" connectable="0">
<mxGeometry x="-0.1464" y="-1" relative="1" as="geometry">
<mxPoint y="-11" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-43" value="🔐&lt;br&gt;signed&lt;br&gt;data&lt;br&gt;" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" parent="1" vertex="1">
<mxGeometry x="150" y="660" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-44" value="🔐redacted&lt;br&gt;signed&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;data" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" parent="1" vertex="1">
<mxGeometry x="310" y="660" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-45" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Authenticity ✅&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Integrity&amp;nbsp;✅&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Only required info&amp;nbsp;✅&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" parent="1" vertex="1">
<mxGeometry x="346" y="673" width="164" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-46" value="No Data Provenance" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="160" width="120" height="20" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-47" value="Status Quo&amp;nbsp;" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="325" width="120" height="20" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-48" value="Desired solution" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="590" width="120" height="20" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

1
diagrams/gc-types.drawio Normal file
View File

@@ -0,0 +1 @@
<mxfile host="Electron" modified="2023-01-18T18:21:57.200Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.2.3 Chrome/102.0.5005.167 Electron/19.0.11 Safari/537.36" etag="60YorzGP6y3ohCO94Poq" version="20.2.3" type="device"><diagram id="kpe8PfQCO1v1qYzAWRtj" name="Page-1">7V1bc9o4FP41PDZjWb4+5tJ2d6edyUxmd5unjotVcGsQY0Qh++tXxrLBkghKCj6yyRNICGF/R5/O0bmYEb6dbT4WyWL6maYkH7lOuhnhu5HrIowc/lL2PFU9YYSrjkmRpWLQruMh+4+ITvG9ySpLybI1kFGas2zR7hzT+ZyMWasvKQq6bg/7TvP2ry6SCVE6HsZJrvb+m6VsWvV6QbT3wR8km0zFT2PsiCufJfVoMXQ5TVK6rrq2Y/D7Eb4tKGXVu9nmluQlejUw1UQfDnzaXEBB5szkC9n9+O7L5x8/l3/7K/rucf3rL+a8i9xqml9JvhK3LK6WPdUYFHQ1T0k5Cxrhm/U0Y+RhkYzLT9dc6rxvyma5+DhNltNm7Pcsz29pTgventM5/8bNkhX0Z4NlOUhcACkY2Ry8NdQAxpcaoTPCiic+RHwhFrfuiFUWeH7VXu9khn0xZronrliMS8QymTRT74DkbwSWL8A1jIeIqxc7Zrgi91zABv4QgEXIkVZsoK5YFGiQrftODqwfKTiSlO+FokkLNqUTOk/y97vemx3SDm/txnyidCHQ+kEYexIbe7JitI0+x6t4+lJ+/8qvm49ium3jbtNqPYlWda3lBT4vAX4/dFWMyXM3XuuVpJgQ9sxAz9PLtCB5wrJf7Ss5vXzQEBZ+jNvr3kfqjqJd9/G51r0BrOUdZ9wm+JR8I/k9XWYso3P+0TfKGJ2VUNWq3dnHtWwkeTYph445PqRoC6Ce9lqMYSVnyrkW5e/ONpPSpLoiObdrinLcVU4n2fjrJGFkufe+JN6CFIm4qGSebonJ6o7YOY/omva+6JwutywD2+VNdJVYkG2yw2+yM5VdbJvsvDfZmZp5oW2yCxXZ/TlfrBjvulaEyG+ctfGvbALJUNDYDooMZcHNsjTdWpA6I6VtVbbslBMIJYraMoli1fTWWSD4XCKJDork5kJEghrAbZGJwfGdzNPr0sNUYpony2U2bgumDdnI8MCiYrQHge6oXfcZn0LEL9zTbM72WCEdSCNXgrY6R4lv7buZpIlkM7GhWz1Rdc5SJtqKqbnt37DnHUV0/2YF+cjFsbgQOoWeJAJH1TqdsqleS1C+hZZn4SpsPA0HnAvb1j0pMn73pWxP7XFAph6HA2LuxuGA1JOxKsa2kI54HFSPwj6xUvI9WeXsRIdVScmHGs+lq6GAvOudjgJIwQ6QAi44BdxeUED1MKhitJUC/FxhGwc0RtQlqwFsyAEXlAOqp6ZPHHBt4wC2iQPwesDrBQdUj1d/TCHkeLZxwLOJA/B6wDfkAAblgBp475EeQNZxwLeJA/B6IOgFB4JecyCwjQOBTRyA1wOhIQdA81CQGkHqkS2ErPMLhTZxAF4PRL3ggBqy6xEHXOv8QiqcKimGFW2T3RJyvN842iYlGDShno6iba4aKP1n+1aWnx2RthPQJ5QQb4JtUME1bFXi7jvnCnkRsBbBxgE20PBCfZmtfY8rNm898t+PwhtnFN59Fa/VB71RMrHfZkkQqSzBnbIktoklHaa3Y1PvEgJ1sWJdXcceF5DgAuohFyLLuOCpxuqFcMHUy4RA3UxYdTNpueD2jwtKJjo8GYATM+DIYOpuQqBnbaz6m7RGEu4jGTzbyOBqwP6tkzjZZOxLvej5+8fdmuet3SovG2dY5N6BjbyjY/4hK/jFx3w/aE8kFy6f+ZjvqUkgZVLttrpDWSCDOepH+Dg9Oz3qD6L2OZazkzWodlv6rDO3egerUlIOj6tnUChmP7ByQQN8qb5nsA8MzF8uPy7h9dUpniTMoFtFqu41WyW6HLlBMiuX+9a4FAVg/Dec6/EWt/rjyc72HKLKDaXjoa+JTSFdcOp8JrHh+WMATlrf1zw2p1OsdYFADdYDcALCY60rcdRgPQQnEzjYNdEuwYkBD7bqxDiiYz+sylkvU8N6IbSG9Q2eBTIwc1ZK//DlrA1zcxa1J0Ld+oV83QlPE6kYgnHkQm9rlxMhhcf6giJw8GAfOWGhIRlH4GBfah5M7Y07Gu6s3HtQ4c5Ad1I4uNpt9Zkqzmj45zyGwEWHcAvfOBkSduEfSYastYDXQy2AJHsfPM4fAldewZHBNSVDAEoG1YWhJYPfRzLYlhocApdgwZHB9AEkVc0fGBl0/iGN8zToIxlsyw0Oraom6ZIMpk8iqYr/wMhwxONWkyHsIRlc23KDgyNuIGdANil42CYwDLQPweaBB9sw0j4EnQoPtmGofQh7NjjYdTjzEvwI4N7k0NBpM4g9GxxsQ6fAIPZscLCPHDrRkPZsaLAjdc+uMnYe+EnsLWnH3fsjzUbNauIpXqcyUwlyXGaXlcysSC3Q/f1Lt1IzKMl4YYFf7bpBV46DW86bK4zDIw4c7ZNA6prB+v3jaFc/ePaKwcjUKVr9dSpUChnC8hMtX1sSgbD0B1NBKM105iSySE1saooL75OsGO4GEcnZIdDPEooMSuGGlYoZH1KsLy/R9SVZet2ySOc+uyzRvfohanVSVD1RiLoVnc4/9HtKWaNBnWc1aEuNh2017jnua9T4KZWyafJW9b/bYErZlVSp/9qCf0W9+/Kef+Y1Wd9Iv/PQ4rC9KYeRetKNu1Swsc5h1jtYEcKd4cqbBaVsf3WXf/L5maakHPE/</diagram></mxfile>

View File

@@ -0,0 +1,286 @@
<mxfile host="app.diagrams.net" modified="2023-03-24T09:51:40.108Z" agent="Mozilla/5.0 (X11; Linux x86_64; rv:111.0) Gecko/20100101 Firefox/111.0" etag="h3CG53iG5ZOzR4rXlG7G" version="21.1.0">
<diagram name="Page-1" id="eszlM19UStC2sOhDblEI">
<mxGraphModel dx="1759" dy="928" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="yljYMQVLApDA5sVLynB2-1" value="TLSNotary Protocol Overview" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1">
<mxGeometry x="260" y="30" width="330" height="60" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-3" value="Web Server" style="text;html=1;strokeColor=default;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="170" y="110" width="90" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-4" value="User" style="text;html=1;strokeColor=default;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="380" y="110" width="90" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-5" value="Notary" style="text;html=1;strokeColor=default;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="590" y="110" width="90" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-8" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="472" y="170" width="130" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-6" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="yljYMQVLApDA5sVLynB2-8">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="120" y="30" as="sourcePoint" />
<mxPoint y="30" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-7" value="&lt;font style=&quot;font-size: 10px;&quot;&gt;Notary Public Key Share&lt;br&gt;&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="yljYMQVLApDA5sVLynB2-8">
<mxGeometry width="130" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-11" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="380" y="240" as="sourcePoint" />
<mxPoint x="260" y="240" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-12" value="&lt;div style=&quot;font-size: 10px;&quot;&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;Combined PK =&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-size: 10px;&quot;&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;User Public Key Share +&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-size: 10px;&quot;&gt;&lt;font style=&quot;font-size: 10px;&quot;&gt;Notary Public Key Share&lt;font style=&quot;font-size: 10px;&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="260" y="200" width="130" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-13" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="264" y="280" as="sourcePoint" />
<mxPoint x="384" y="280" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-14" value="Web Server Public Key" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="264" y="250" width="110" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-15" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="475" y="320" as="sourcePoint" />
<mxPoint x="595" y="320" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-16" value="Web Server Public Key" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="475" y="290" width="110" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-17" value="&lt;b&gt;Key Exchange&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;" vertex="1" parent="1">
<mxGeometry x="454" y="360" width="152" height="120" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-18" value="Point Addition" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="473.75" y="400" width="112.5" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-20" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="420" y="411" as="sourcePoint" />
<mxPoint x="454" y="411" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-21" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="453" y="454" as="sourcePoint" />
<mxPoint x="419" y="454" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-22" value="&lt;div style=&quot;font-size: 11px;&quot;&gt;PMSLabel&lt;/div&gt;&lt;div style=&quot;font-size: 11px;&quot;&gt;Computation&lt;br style=&quot;font-size: 11px;&quot;&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="473.75" y="440" width="112.5" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-23" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="639" y="411" as="sourcePoint" />
<mxPoint x="605" y="410.58" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-24" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="607" y="454.58" as="sourcePoint" />
<mxPoint x="641" y="454.58" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-25" value="&lt;b&gt;Session Key Derivation&lt;br&gt;&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;" vertex="1" parent="1">
<mxGeometry x="455" y="521" width="152" height="120" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-26" value="Master Key" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="474.75" y="561" width="112.5" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-27" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="421" y="572" as="sourcePoint" />
<mxPoint x="455" y="572" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-28" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="454" y="615" as="sourcePoint" />
<mxPoint x="420" y="615" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-29" value="Session Key" style="rounded=1;whiteSpace=wrap;html=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="474.75" y="601" width="112.5" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-30" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="640" y="572" as="sourcePoint" />
<mxPoint x="606" y="571.5799999999999" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-31" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="608" y="615.5799999999999" as="sourcePoint" />
<mxPoint x="642" y="615.5799999999999" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-33" value="&lt;b&gt;Encrypt Request&lt;br&gt;&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;" vertex="1" parent="1">
<mxGeometry x="457" y="680" width="152" height="120" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-34" value="Encrypt" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="476.75" y="720" width="112.5" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-35" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="423" y="721" as="sourcePoint" />
<mxPoint x="457" y="721" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-36" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="456" y="777" as="sourcePoint" />
<mxPoint x="422" y="777" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-37" value="Compute MAC" style="rounded=1;whiteSpace=wrap;html=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="476.75" y="760" width="112.5" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-38" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="642" y="721" as="sourcePoint" />
<mxPoint x="608" y="720.5799999999999" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-39" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="610" y="774.5799999999999" as="sourcePoint" />
<mxPoint x="644" y="774.5799999999999" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-40" value="PMS EC Additive Share" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="294" y="396" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-41" value="&lt;b&gt;Decrypt Response&lt;br&gt;&lt;/b&gt;" style="rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;" vertex="1" parent="1">
<mxGeometry x="454" y="880" width="152" height="120" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-42" value="Decrypt" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="473.75" y="920" width="112.5" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-45" value="Verify MAC" style="rounded=1;whiteSpace=wrap;html=1;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="473.75" y="960" width="112.5" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-46" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="639" y="931" as="sourcePoint" />
<mxPoint x="605" y="930.5799999999999" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-47" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="607" y="974.5799999999999" as="sourcePoint" />
<mxPoint x="641" y="974.5799999999999" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-48" value="PMS EC Additive Share" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="640" y="396" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-49" value="Encoded PMS" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="305" y="440" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-50" value="Encoded PMS" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="630" y="440" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-51" value="Encoded PMS" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="305" y="558" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-52" value="Encoded PMS" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="630" y="558" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-53" value="Encoded Session Keys" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="305" y="601" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-54" value="Encoded Session Keys" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="640" y="601" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-55" value="Encoded Session Keys" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="305" y="704" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-56" value="Encoded Session Keys" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="640" y="708" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-57" value="Encrypted Request" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="305" y="765" width="115" height="35" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-58" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="422" y="747" as="sourcePoint" />
<mxPoint x="456" y="747" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-61" value="Request" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="308" y="731" width="115" height="35" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-62" value="Encrypted Request" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="630" y="757.5" width="115" height="35" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-63" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="422" y="917" as="sourcePoint" />
<mxPoint x="456" y="917" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-64" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="455" y="973" as="sourcePoint" />
<mxPoint x="421" y="973" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-65" value="Encoded Session Keys" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="304" y="900" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-66" value="Response" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="330" y="954" width="115" height="35" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-67" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="421" y="943" as="sourcePoint" />
<mxPoint x="455" y="943" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-68" value="Encrypted Response" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="290" y="924" width="132" height="35" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-69" value="Encrypted Response" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="640" y="957.5" width="132" height="35" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-70" value="Encoded Session Keys" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="640" y="910" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-71" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="380" y="840" as="sourcePoint" />
<mxPoint x="260" y="840" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-72" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="260" y="870" as="sourcePoint" />
<mxPoint x="380" y="870" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-73" value="Encrypted Request" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="257" y="813" width="130" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-74" value="Encrypted Response" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="261" y="845" width="130" height="30" as="geometry" />
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-75" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="600" y="1060" as="sourcePoint" />
<mxPoint x="457" y="1060" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="yljYMQVLApDA5sVLynB2-76" value="Sign Transcript" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="471" y="1030" width="120" height="30" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@@ -0,0 +1 @@
<mxfile host="app.diagrams.net" modified="2022-07-12T05:02:59.309Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36" etag="9Thzvw0-MVdKURfvbQUH" version="20.0.4" type="device"><diagram id="kcIGn_kX_1L25iIxUXLg" name="Page-1">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</diagram></mxfile>

198
diagrams/overview.drawio Normal file
View File

@@ -0,0 +1,198 @@
<mxfile host="Electron" modified="2023-08-01T13:32:38.607Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.5 Chrome/114.0.5735.243 Electron/25.3.1 Safari/537.36" etag="J53KrDbPkxDRDJ4fZzPF" version="21.6.5" type="device">
<diagram id="Ta_ITRcVz4Bdm_ywW9Xz" name="Page-1">
<mxGraphModel dx="1309" dy="1200" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1700" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="lWufevYBVzTER42Q3oKB-60" value="" style="group" parent="1" vertex="1" connectable="0">
<mxGeometry x="540" y="120" width="460" height="470" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-35" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="lWufevYBVzTER42Q3oKB-60" vertex="1">
<mxGeometry width="460" height="470" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-36" value="Notarization Phase" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1;fontSize=21;" parent="lWufevYBVzTER42Q3oKB-60" vertex="1">
<mxGeometry x="130" y="10" width="200" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-55" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fontSize=12;startArrow=none;startFill=0;endArrow=classic;endFill=1;fillColor=#000000;" parent="lWufevYBVzTER42Q3oKB-60" source="lWufevYBVzTER42Q3oKB-38" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="160" y="234.75862068965512" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-38" value="&lt;b&gt;Notary&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="lWufevYBVzTER42Q3oKB-60" vertex="1">
<mxGeometry x="40" y="195" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-47" value="&lt;b&gt;User&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="lWufevYBVzTER42Q3oKB-60" vertex="1">
<mxGeometry x="340" y="195" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-53" value="" style="group" parent="lWufevYBVzTER42Q3oKB-60" vertex="1" connectable="0">
<mxGeometry x="160" y="90" width="150" height="290" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-49" value="" style="rounded=0;whiteSpace=wrap;html=1;fontSize=21;" parent="lWufevYBVzTER42Q3oKB-53" vertex="1">
<mxGeometry width="140" height="290" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-50" value="Notarized Transcript" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1" parent="lWufevYBVzTER42Q3oKB-53" vertex="1">
<mxGeometry x="5" width="130" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-41" value="" style="rounded=0;whiteSpace=wrap;html=1;align=left;" parent="lWufevYBVzTER42Q3oKB-53" vertex="1">
<mxGeometry x="10" y="40" width="120" height="160" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-42" value="&lt;b&gt;Transcript&lt;/b&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="lWufevYBVzTER42Q3oKB-53" vertex="1">
<mxGeometry x="20" y="40" width="100" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-43" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="lWufevYBVzTER42Q3oKB-53" vertex="1">
<mxGeometry x="20" y="100" width="100" height="90" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-44" value="Encrypted Data" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="lWufevYBVzTER42Q3oKB-53" vertex="1">
<mxGeometry x="25" y="70" width="90" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-45" value="1010101010101&lt;br&gt;0101010101010&lt;br&gt;1010101110101&lt;br&gt;0101010010101&lt;br&gt;0010101010101&lt;br&gt;0101011001011" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;whiteSpace=wrap;" parent="lWufevYBVzTER42Q3oKB-53" vertex="1">
<mxGeometry x="40" y="100" width="60" height="90" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-51" value="&lt;b&gt;Signature&lt;/b&gt;" style="rounded=0;whiteSpace=wrap;html=1;fontSize=12;" parent="lWufevYBVzTER42Q3oKB-53" vertex="1">
<mxGeometry x="10" y="250" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-52" value="&lt;b&gt;Metadata&lt;/b&gt;" style="rounded=0;whiteSpace=wrap;html=1;fontSize=12;" parent="lWufevYBVzTER42Q3oKB-53" vertex="1">
<mxGeometry x="10" y="210" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-48" value="" style="sketch=0;html=1;aspect=fixed;strokeColor=none;shadow=0;align=center;verticalAlign=top;fillColor=#2D9C5E;shape=mxgraph.gcp2.check;fontSize=21;" parent="lWufevYBVzTER42Q3oKB-53" vertex="1">
<mxGeometry x="100" y="30" width="50" height="40" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-56" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=12;startArrow=none;startFill=0;endArrow=classic;endFill=1;fillColor=#000000;" parent="lWufevYBVzTER42Q3oKB-60" source="lWufevYBVzTER42Q3oKB-49" target="lWufevYBVzTER42Q3oKB-47" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-63" value="" style="shape=singleArrow;whiteSpace=wrap;html=1;fontSize=12;arrowWidth=0.45714285714285713;arrowSize=0.58;fillColor=#CCCCCC;" parent="1" vertex="1">
<mxGeometry x="480" y="320" width="50" height="70" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-57" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="1070" y="120" width="600" height="470" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-58" value="Selective Disclosure Phase" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1;fontSize=21;" parent="1" vertex="1">
<mxGeometry x="1229.9969565217389" y="130" width="327.8260869565217" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-4" value="&lt;b&gt;Verifier&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="1569.9991304347825" y="310" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-111" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=12;fontColor=#000000;startArrow=none;startFill=0;endArrow=classic;endFill=1;fillColor=#000000;" parent="1" source="lWufevYBVzTER42Q3oKB-87" target="lWufevYBVzTER42Q3oKB-90" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-87" value="&lt;b&gt;User&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="1090.0017391304348" y="315" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-112" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=12;fontColor=#000000;startArrow=none;startFill=0;endArrow=classic;endFill=1;fillColor=#000000;" parent="1" source="lWufevYBVzTER42Q3oKB-100" target="lWufevYBVzTER42Q3oKB-4" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-90" value="" style="rounded=0;whiteSpace=wrap;html=1;fontSize=21;" parent="1" vertex="1">
<mxGeometry x="1200" y="210" width="140" height="290" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-91" value="Notarized Transcript" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="1205" y="210" width="130" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-92" value="" style="rounded=0;whiteSpace=wrap;html=1;align=left;" parent="1" vertex="1">
<mxGeometry x="1210" y="250" width="120" height="160" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-93" value="&lt;b&gt;Transcript&lt;/b&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="1220" y="250" width="100" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-94" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="1220" y="310" width="100" height="90" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-95" value="Encrypted Data" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="1225" y="280" width="90" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-96" value="&lt;font color=&quot;#cccccc&quot;&gt;1010101010101&lt;br&gt;0101010101010&lt;br&gt;1010&lt;/font&gt;&lt;b&gt;1011101&lt;/b&gt;&lt;font color=&quot;#cccccc&quot;&gt;01&lt;br&gt;0101010010101&lt;br&gt;0010101010101&lt;br&gt;0101011001011&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;whiteSpace=wrap;" parent="1" vertex="1">
<mxGeometry x="1240" y="310" width="60" height="90" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-97" value="&lt;b&gt;Signature&lt;/b&gt;" style="rounded=0;whiteSpace=wrap;html=1;fontSize=12;" parent="1" vertex="1">
<mxGeometry x="1210" y="460" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-106" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;fontColor=#000000;startArrow=none;startFill=0;endArrow=classic;endFill=1;fillColor=#000000;" parent="1" source="lWufevYBVzTER42Q3oKB-98" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1470" y="350" as="targetPoint" />
<Array as="points">
<mxPoint x="1370" y="435" />
<mxPoint x="1370" y="350" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-98" value="&lt;b&gt;Metadata&lt;/b&gt;" style="rounded=0;whiteSpace=wrap;html=1;fontSize=12;" parent="1" vertex="1">
<mxGeometry x="1210" y="420" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-100" value="&lt;b&gt;ZK Proof&lt;/b&gt;" style="rounded=0;whiteSpace=wrap;html=1;fontSize=12;fillColor=default;" parent="1" vertex="1">
<mxGeometry x="1410" y="320" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-107" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontSize=12;fontColor=#000000;startArrow=none;startFill=0;endArrow=classic;endFill=1;fillColor=#000000;" parent="1" source="lWufevYBVzTER42Q3oKB-97" target="lWufevYBVzTER42Q3oKB-100" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1370" y="475" />
<mxPoint x="1370" y="350" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-105" value="" style="endArrow=classic;html=1;rounded=0;fontSize=12;fontColor=#000000;fillColor=#000000;edgeStyle=orthogonalEdgeStyle;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.444;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="lWufevYBVzTER42Q3oKB-96" target="lWufevYBVzTER42Q3oKB-100" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="920" y="370" as="sourcePoint" />
<mxPoint x="970" y="320" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="7FoGzQ1kGSNo0XInAhHn-1" value="" style="shape=singleArrow;whiteSpace=wrap;html=1;fontSize=12;arrowWidth=0.45714285714285713;arrowSize=0.58;fillColor=#CCCCCC;" vertex="1" parent="1">
<mxGeometry x="1010" y="320" width="50" height="70" as="geometry" />
</mxCell>
<mxCell id="7FoGzQ1kGSNo0XInAhHn-2" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="30" y="120" width="440" height="470" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-31" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="7FoGzQ1kGSNo0XInAhHn-2" vertex="1">
<mxGeometry width="440" height="470" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-33" value="Request Phase" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1;fontSize=21;" parent="7FoGzQ1kGSNo0XInAhHn-2" vertex="1">
<mxGeometry x="120" y="10" width="200" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-1" value="&lt;b&gt;Server&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="7FoGzQ1kGSNo0XInAhHn-2" vertex="1">
<mxGeometry x="20" y="80" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-2" value="&lt;b&gt;User&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="7FoGzQ1kGSNo0XInAhHn-2" vertex="1">
<mxGeometry x="180" y="80" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-23" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;endArrow=classic;endFill=1;" parent="7FoGzQ1kGSNo0XInAhHn-2" source="lWufevYBVzTER42Q3oKB-1" target="lWufevYBVzTER42Q3oKB-2" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-29" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;endArrow=classic;endFill=1;" parent="7FoGzQ1kGSNo0XInAhHn-2" source="lWufevYBVzTER42Q3oKB-3" target="lWufevYBVzTER42Q3oKB-2" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-3" value="&lt;b&gt;Notary&lt;/b&gt;" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="7FoGzQ1kGSNo0XInAhHn-2" vertex="1">
<mxGeometry x="340" y="80" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-30" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=classic;startFill=1;endArrow=none;endFill=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="7FoGzQ1kGSNo0XInAhHn-2" source="lWufevYBVzTER42Q3oKB-11" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="300" y="120" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-24" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=classic;startFill=1;endArrow=none;endFill=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="7FoGzQ1kGSNo0XInAhHn-2" source="lWufevYBVzTER42Q3oKB-11" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="140" y="120" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-39" value="" style="group" parent="7FoGzQ1kGSNo0XInAhHn-2" vertex="1" connectable="0">
<mxGeometry x="160" y="230" width="120" height="160" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-10" value="" style="rounded=0;whiteSpace=wrap;html=1;align=left;" parent="lWufevYBVzTER42Q3oKB-39" vertex="1">
<mxGeometry width="120" height="160" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-11" value="Transcript" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" parent="lWufevYBVzTER42Q3oKB-39" vertex="1">
<mxGeometry x="10" width="100" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-26" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="lWufevYBVzTER42Q3oKB-39" vertex="1">
<mxGeometry x="10" y="60" width="100" height="90" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-27" value="Encrypted Data" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="lWufevYBVzTER42Q3oKB-39" vertex="1">
<mxGeometry x="15" y="30" width="90" height="30" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-28" value="1010101010101&lt;br&gt;0101010101010&lt;br&gt;1010101110101&lt;br&gt;0101010010101&lt;br&gt;0010101010101&lt;br&gt;0101011001011" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;whiteSpace=wrap;" parent="lWufevYBVzTER42Q3oKB-39" vertex="1">
<mxGeometry x="30" y="60" width="60" height="90" as="geometry" />
</mxCell>
<mxCell id="lWufevYBVzTER42Q3oKB-32" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="7FoGzQ1kGSNo0XInAhHn-2" source="lWufevYBVzTER42Q3oKB-2" target="lWufevYBVzTER42Q3oKB-11" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

76
diagrams/overview2.drawio Normal file
View File

@@ -0,0 +1,76 @@
<mxfile host="Electron" modified="2023-07-31T09:56:29.009Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.5 Chrome/114.0.5735.243 Electron/25.3.1 Safari/537.36" version="21.6.5" etag="9WZp-M7jsxI9gkbHdLvW" type="device">
<diagram name="Page-1" id="OGyZDZ-4g5QOT8xqb29B">
<mxGraphModel dx="2032" dy="1214" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="2" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="gjHeZdjlkoXC6GVvdKDz-1" target="gjHeZdjlkoXC6GVvdKDz-4" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="gjHeZdjlkoXC6GVvdKDz-1" value="Server" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;" parent="1" vertex="1">
<mxGeometry x="112" y="259" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="gjHeZdjlkoXC6GVvdKDz-2" value="" style="sketch=0;outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#3F8624;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.certificate_manager;" parent="1" vertex="1">
<mxGeometry x="162" y="304" width="30.26" height="40" as="geometry" />
</mxCell>
<mxCell id="3" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="gjHeZdjlkoXC6GVvdKDz-4" target="gjHeZdjlkoXC6GVvdKDz-8" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="gjHeZdjlkoXC6GVvdKDz-4" value="encrypted data" style="shape=message;html=1;html=1;outlineConnect=0;labelPosition=center;verticalLabelPosition=bottom;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="252" y="273.75" width="60" height="40" as="geometry" />
</mxCell>
<mxCell id="gjHeZdjlkoXC6GVvdKDz-5" value="" style="sketch=0;outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#3F8624;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.certificate_manager;" parent="1" vertex="1">
<mxGeometry x="312" y="274" width="22.7" height="30" as="geometry" />
</mxCell>
<mxCell id="6" style="edgeStyle=elbowEdgeStyle;rounded=0;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="gjHeZdjlkoXC6GVvdKDz-6" target="gjHeZdjlkoXC6GVvdKDz-9" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="410" y="370" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="gjHeZdjlkoXC6GVvdKDz-6" value="Notary" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;" parent="1" vertex="1">
<mxGeometry x="381" y="390" width="58" height="70" as="geometry" />
</mxCell>
<mxCell id="gjHeZdjlkoXC6GVvdKDz-7" value="" style="sketch=0;outlineConnect=0;fillColor=#FF99FF;strokeColor=#b85450;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.certificate_manager;" parent="1" vertex="1">
<mxGeometry x="418" y="440" width="30.26" height="40" as="geometry" />
</mxCell>
<mxCell id="5" style="edgeStyle=elbowEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="gjHeZdjlkoXC6GVvdKDz-8" target="gjHeZdjlkoXC6GVvdKDz-9" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="530" y="360" as="targetPoint" />
<Array as="points">
<mxPoint x="410" y="350" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="gjHeZdjlkoXC6GVvdKDz-8" value="User" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="372" y="255" width="75.5" height="77.5" as="geometry" />
</mxCell>
<mxCell id="7" style="edgeStyle=none;rounded=0;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="gjHeZdjlkoXC6GVvdKDz-9" target="gjHeZdjlkoXC6GVvdKDz-10" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="gjHeZdjlkoXC6GVvdKDz-9" value="signed data" style="shape=message;html=1;html=1;outlineConnect=0;labelPosition=center;verticalLabelPosition=bottom;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="530" y="338.75" width="60" height="40" as="geometry" />
</mxCell>
<mxCell id="gjHeZdjlkoXC6GVvdKDz-10" value="Verifier" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
<mxGeometry x="660" y="320" width="77.5" height="77.5" as="geometry" />
</mxCell>
<mxCell id="gjHeZdjlkoXC6GVvdKDz-11" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#030303;" parent="1" vertex="1">
<mxGeometry x="548" y="341" width="24" height="6.25" as="geometry" />
</mxCell>
<mxCell id="gjHeZdjlkoXC6GVvdKDz-12" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#030303;" parent="1" vertex="1">
<mxGeometry x="565" y="362" width="20" height="6.25" as="geometry" />
</mxCell>
<mxCell id="gjHeZdjlkoXC6GVvdKDz-13" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#030303;" parent="1" vertex="1">
<mxGeometry x="536" y="369.25" width="20" height="6.25" as="geometry" />
</mxCell>
<mxCell id="gjHeZdjlkoXC6GVvdKDz-14" value="" style="sketch=0;outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#3F8624;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.certificate_manager;" parent="1" vertex="1">
<mxGeometry x="590" y="338.25" width="22.7" height="30" as="geometry" />
</mxCell>
<mxCell id="gjHeZdjlkoXC6GVvdKDz-15" value="" style="sketch=0;outlineConnect=0;fillColor=#FF99FF;strokeColor=#b85450;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.certificate_manager;" parent="1" vertex="1">
<mxGeometry x="612.7" y="338.25" width="24.02" height="31.75" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

73
diagrams/overview3.drawio Normal file
View File

@@ -0,0 +1,73 @@
<mxfile host="Electron" modified="2023-07-31T13:54:50.992Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.5 Chrome/114.0.5735.243 Electron/25.3.1 Safari/537.36" etag="ULuF8GtXYlD2jlOd8ATy" version="21.6.5" type="device">
<diagram id="kcIGn_kX_1L25iIxUXLg" name="Page-1">
<mxGraphModel dx="830" dy="486" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="GdnXkJGOJiVmK7E47u4y-44" value="" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;dashed=1;dashPattern=8 8;" vertex="1" parent="1">
<mxGeometry x="170" y="220" width="140" height="285" as="geometry" />
</mxCell>
<mxCell id="EZAqd18MQriHtEKbU3QA-1" value="User" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="200" y="260" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="EZAqd18MQriHtEKbU3QA-2" value="Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="10" y="330" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="EZAqd18MQriHtEKbU3QA-3" value="Notary" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="200" y="410" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-40" value="signed&lt;br style=&quot;font-size: 11px;&quot;&gt;transcript" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.document;fontSize=11;shadow=1;" vertex="1" parent="1">
<mxGeometry x="250" y="348" width="50" height="60" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-43" value="Verifier" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="410" y="260" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-45" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=-0.008;entryY=0.515;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1.028;exitY=0.462;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="EZAqd18MQriHtEKbU3QA-2" target="GdnXkJGOJiVmK7E47u4y-44">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="350" y="490" as="sourcePoint" />
<mxPoint x="400" y="440" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-46" value="notarized request" style="whiteSpace=wrap;html=1;fillColor=none;strokeColor=none;fontSize=11;" vertex="1" parent="1">
<mxGeometry x="100" y="336.5" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-47" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="EZAqd18MQriHtEKbU3QA-3" target="EZAqd18MQriHtEKbU3QA-1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="350" y="490" as="sourcePoint" />
<mxPoint x="400" y="440" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-48" value="redacted signed&lt;br style=&quot;font-size: 11px;&quot;&gt;transcript" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.document;fontSize=11;shadow=1;" vertex="1" parent="1">
<mxGeometry x="330" y="310" width="50" height="60" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-49" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="EZAqd18MQriHtEKbU3QA-1" target="GdnXkJGOJiVmK7E47u4y-43">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="350" y="490" as="sourcePoint" />
<mxPoint x="400" y="440" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-50" value="&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-size: 11px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(251, 251, 251); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;selective disclosure&lt;/span&gt;" style="text;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="330" y="262" width="50" height="40" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-53" value="&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-size: 11px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(251, 251, 251); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;Multi party computation&lt;/span&gt;" style="text;whiteSpace=wrap;html=1;align=center;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="177" y="215" width="125" height="40" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-54" value="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="122" y="341" width="13" height="13" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-55" value="2" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="220" y="371.5" width="13" height="13" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-56" value="3" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="344.5" y="256" width="13" height="13" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-58" value="4" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="425" y="310" width="13" height="13" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-59" value="&lt;span style=&quot;color: rgb(0, 0, 0); font-family: Helvetica; font-size: 11px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(251, 251, 251); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;&quot;&gt;verify&lt;/span&gt;" style="text;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="438" y="302" width="40" height="20" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@@ -0,0 +1,213 @@
<mxfile host="Electron" modified="2023-08-01T13:33:06.700Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.5 Chrome/114.0.5735.243 Electron/25.3.1 Safari/537.36" etag="h-yNfCY2aOArdqLaUR1r" version="21.6.5" type="device">
<diagram id="kcIGn_kX_1L25iIxUXLg" name="Page-1">
<mxGraphModel dx="903" dy="828" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="EZAqd18MQriHtEKbU3QA-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="EZAqd18MQriHtEKbU3QA-50" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="440" y="600" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="EZAqd18MQriHtEKbU3QA-1" value="User" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="400" y="200" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="EZAqd18MQriHtEKbU3QA-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="EZAqd18MQriHtEKbU3QA-56" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="200" y="600" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="EZAqd18MQriHtEKbU3QA-2" value="Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="160" y="200" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="EZAqd18MQriHtEKbU3QA-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="GdnXkJGOJiVmK7E47u4y-14" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="680" y="600" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="EZAqd18MQriHtEKbU3QA-3" value="Notary" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="640" y="200" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="EZAqd18MQriHtEKbU3QA-29" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.642;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="200" y="359.52" as="sourcePoint" />
<mxPoint x="510" y="359.014" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-28" value="public key" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EZAqd18MQriHtEKbU3QA-29" vertex="1" connectable="0">
<mxGeometry x="0.016" y="2" relative="1" as="geometry">
<mxPoint x="-28" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="EZAqd18MQriHtEKbU3QA-36" value="" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;" parent="1" target="GdnXkJGOJiVmK7E47u4y-1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="679.88" y="329.26" as="sourcePoint" />
<mxPoint x="640" y="329" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-26" value="public key" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EZAqd18MQriHtEKbU3QA-36" vertex="1" connectable="0">
<mxGeometry x="0.0604" y="-2" relative="1" as="geometry">
<mxPoint x="7" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="EZAqd18MQriHtEKbU3QA-37" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;" parent="1" target="GdnXkJGOJiVmK7E47u4y-1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="440.63" y="329.26" as="sourcePoint" />
<mxPoint x="510" y="329" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-25" value="public key" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="EZAqd18MQriHtEKbU3QA-37" vertex="1" connectable="0">
<mxGeometry x="-0.3719" y="1" relative="1" as="geometry">
<mxPoint x="7" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="EZAqd18MQriHtEKbU3QA-44" value="Multi-party&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;request" style="rounded=0;whiteSpace=wrap;html=1;shadow=1;sketch=0;strokeColor=#000000;fillColor=#99CCFF;" parent="1" vertex="1">
<mxGeometry x="512" y="450" width="100" height="60" as="geometry" />
</mxCell>
<mxCell id="EZAqd18MQriHtEKbU3QA-46" value="" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0;entryDx=0;entryDy=0;" parent="1" source="EZAqd18MQriHtEKbU3QA-51" target="EZAqd18MQriHtEKbU3QA-44" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="680" y="510" as="sourcePoint" />
<mxPoint x="450" y="500" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="EZAqd18MQriHtEKbU3QA-47" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" parent="1" source="EZAqd18MQriHtEKbU3QA-50" target="EZAqd18MQriHtEKbU3QA-44" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="450" y="480" as="sourcePoint" />
<mxPoint x="510" y="430" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-1" value="Multi-party&lt;br&gt;key exchange" style="rounded=0;whiteSpace=wrap;html=1;shadow=1;sketch=0;strokeColor=#000000;fillColor=#99CCFF;" parent="1" vertex="1">
<mxGeometry x="510" y="313" width="100" height="67" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-8" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" target="EZAqd18MQriHtEKbU3QA-51" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="610" y="379.52" as="sourcePoint" />
<mxPoint x="670" y="379.52" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-12" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.01;exitY=0.633;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="512" y="479.76" as="sourcePoint" />
<mxPoint x="200" y="479.76" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-30" value="encrypted request" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];spacingBottom=5;" parent="GdnXkJGOJiVmK7E47u4y-12" vertex="1" connectable="0">
<mxGeometry x="0.308" y="1" relative="1" as="geometry">
<mxPoint x="22" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-13" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="200" y="500" as="sourcePoint" />
<mxPoint x="510" y="500" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-31" value="encrypted response" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];spacingBottom=5;" parent="GdnXkJGOJiVmK7E47u4y-13" vertex="1" connectable="0">
<mxGeometry x="-0.1407" y="-1" relative="1" as="geometry">
<mxPoint x="-3" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-15" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="EZAqd18MQriHtEKbU3QA-51" target="GdnXkJGOJiVmK7E47u4y-14" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="680" y="760" as="targetPoint" />
<mxPoint x="680" y="280" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-14" value="Notarize" style="rounded=0;whiteSpace=wrap;html=1;shadow=1;sketch=0;" parent="1" vertex="1">
<mxGeometry x="630" y="530" width="100" height="43" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-16" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="630" y="560" as="sourcePoint" />
<mxPoint x="440" y="560" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-20" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="GdnXkJGOJiVmK7E47u4y-1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="517" y="346.26" as="sourcePoint" />
<mxPoint x="200" y="346.26" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-24" value="&lt;p style=&quot;line-height: 120%;&quot;&gt;combined public key&lt;/p&gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;spacingBottom=8;" parent="GdnXkJGOJiVmK7E47u4y-20" vertex="1" connectable="0">
<mxGeometry x="0.5352" y="-3" relative="1" as="geometry">
<mxPoint x="58" y="-3" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-21" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="EZAqd18MQriHtEKbU3QA-2" target="EZAqd18MQriHtEKbU3QA-56" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="200" y="760" as="targetPoint" />
<mxPoint x="200" y="280" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="EZAqd18MQriHtEKbU3QA-56" value="Session Key" style="sketch=0;pointerEvents=1;shadow=1;dashed=0;html=1;strokeColor=default;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.security.key_permissions;fillColor=#FFFF00;fontSize=11;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="195" y="403" width="10" height="23" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-22" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="EZAqd18MQriHtEKbU3QA-1" target="EZAqd18MQriHtEKbU3QA-50" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="440" y="760" as="targetPoint" />
<mxPoint x="440" y="280" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="EZAqd18MQriHtEKbU3QA-50" value="Session Key Share" style="sketch=0;pointerEvents=1;shadow=1;dashed=0;html=1;strokeColor=default;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.security.key_permissions;fillColor=#FFFF00;fontSize=11;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="435" y="403" width="10" height="23" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-23" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="EZAqd18MQriHtEKbU3QA-3" target="EZAqd18MQriHtEKbU3QA-51" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="680" y="500" as="targetPoint" />
<mxPoint x="680" y="280" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="EZAqd18MQriHtEKbU3QA-51" value="Session Key Share" style="sketch=0;pointerEvents=1;shadow=1;dashed=0;html=1;strokeColor=default;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;align=center;shape=mxgraph.office.security.key_permissions;fillColor=#FFFF00;fontSize=11;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="675" y="403" width="10" height="23" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-29" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" target="EZAqd18MQriHtEKbU3QA-50" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="510" y="380" as="sourcePoint" />
<mxPoint x="450" y="392" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-32" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="1" target="GdnXkJGOJiVmK7E47u4y-14" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="612" y="489.52" as="sourcePoint" />
<mxPoint x="672" y="500" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-39" value="encrypted&lt;br&gt;response" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1" vertex="1" connectable="0">
<mxGeometry x="650.0033333333331" y="498" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-40" value="notarized&lt;br&gt;transcript" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.document" parent="1" vertex="1">
<mxGeometry x="520" y="570" width="55" height="70" as="geometry" />
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-41" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="440" y="460" as="sourcePoint" />
<mxPoint x="510" y="460" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="GdnXkJGOJiVmK7E47u4y-42" value="request" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];spacingBottom=5;" parent="GdnXkJGOJiVmK7E47u4y-41" vertex="1" connectable="0">
<mxGeometry x="-0.1407" y="-1" relative="1" as="geometry">
<mxPoint x="-3" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="ecrsGYnIi1MkhdEf1Ya3-1" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="140" y="520" as="sourcePoint" />
<mxPoint x="720" y="520" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ecrsGYnIi1MkhdEf1Ya3-3" value="Request" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;horizontal=0;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="120" y="389" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="ecrsGYnIi1MkhdEf1Ya3-4" value="Notarize" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;horizontal=0;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="120" y="540" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="ecrsGYnIi1MkhdEf1Ya3-5" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="140" y="300" as="sourcePoint" />
<mxPoint x="720" y="300" as="targetPoint" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

1
diagrams/protocol.drawio Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
<mxfile host="app.diagrams.net" modified="2022-07-12T05:41:23.096Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36" etag="TI2nD-Opnp1nnzWseBNg" version="20.0.4" type="device" pages="2"><diagram id="3qa5J4Up4GtHv7x0exYA" name="notarized">7Vxbd9o4EP41eWyO78BjQkja3SbNKU13uy97FFsYN7ZFZBGgv35lLIFtDYEsvqUJeQgayWB9cx+NOTGH0fKKotn0mng4PDE0b3liXpwYhm47Gv+XUlYZpd83MoJPA08s2hLGwS8siOI6fx54OCksZISELJgViS6JY+yyAg1RShbFZRMSFr91hnysEMYuClXqX4HHpoLa07TtxEcc+FP51bqciZBcLQjJFHlkkSOZoxNzSAlh2btoOcRhip4EJrvucsfs5s4ojtkhF0zi+RXWb+4Wfef60+RqNP7xz/0Hs599zBMK52LL4m7ZSmJAyTz2cPop2ol5vpgGDI9nyE1nF5zrnDZlUchHOn87CcJwSEJC19eak8nEcF1OTxglDzg34zn3ju3wGXUfYmtPmDK8zJHEvq4wiTCjK75EzFoDgbGUMjFcbFm2YcM0xy1HMgsJMfE3H70Fkr8RWL4AV71XM652+pfSScxy9OwF4e2sX9Xg3esX8dYdAHAdANw26gJ8s4nKAOfACntkaCoDhutXRXCWxNcwbQVOfQDAaZkVwLm6j/84f7gZXT9Gj1/O775Hrn/9wawczi7Jr62VANcB+dUgwJ3aADcAwJ2Qf+/5fQF253Geeow1cB+StYCe8QUckeUaHDnP3/np/28UxYlLgxmTn8fv717OKkzlCLIi54qciEmMS+wUJBQGfsyHLucL5vTzlB8Bd6VnYiIKPC/9GlBUisJUVr4qeO70Tu29XHcAptenZNbrtVm2XlQh21LB1PsAmnoVLgCG01bgHJIoCljEt5l0X9J1Q47FTQIh3sv5ZJXFHuQUZOyqkHs46LQUZmCPh91iSCibEp/EKBxtqSXYtms+EzIT/PuJGVsJMNGckSJ3OYZ09be4fj34kQ5ObTm8WOYnL1ZilDBE2VmaS2wlYE27DNJtiys8ucINUZIEbkYUS/TndC4hc+riZ+Ra5j2I+pg9s04YjxTKZyWD4hCx4KmY4UBMXl/K94VWuQUzEghtEp98mxJywYxVMgz9UlqyZ72p2SUBy+5gK26brfx/U6FGN5oiki+yvFVoqlECrgfoKeSfaouppUF919PD9NQ4UFGdbiiqXZQ3mQzvVNTSeqsRRVXDYl0RytY1ddC6pjrvmvoSTTUP1FQZ5Latqk5JVculvj3r7UZU1VRU9ch0pgZVdYCcr2FV7b2r6ktU1TpUVQfdUNVeSeCsPapaXt+IqqqFB7N7qmq2rao1lpSzXL+58owF2b3ayjOw4VPQHGPKd/QVxR6JOid+FpR+2XaD4ucogH3kUCVT9IAvEEMKYh0qaNVawAJludECVuWHpu0ZBsM+1DDYFaAJeiNLrdveUsKIS8LvmCYBiatFtwZjAZ041+arYBBVlz4MZlNMx3MOTucBNJuMy2EAVf+0PT0Yu1McvQIUodJ+oyHTQPVZGHncp7wRZ9Xbb12bPWJUg4hvQYR5ChfNui/OrVfAdcjTV3EqP8ZJ6tjG2KU4TSff8sl83y7Gd1A3UV1KM730k9WvH4Mncz6P/RX5ePPzi8z7WqrQbAYtVGhKxZO9JRtYaYQTyJdsdufXjRdozJKJFnXLnQWa0nqZF1ZVoHkWQiVZHqaaO+G628GYTmlj0wDzDbWxGXZN5lvmZTkYz2azMIWPG983lET3S4fsUIchxJna4hKVMUeKczFjvtewiR2FeXxGw32t36/IcZXbCB2gb7MHwNqvLdxTYB1FKAiPw7YKpMpVhwGAlN1ouqcgdcsd44JQr3NgmXrbYKkFGhmxJjMUy4j1K36c88wii3w/Ez+Ic3FtfuErMLpaFXw0S/2mkHmoq275XOPJ72V1TftAq6tX8bQHiKv6sMeZ6/IM7xtH4cjiZQ32RDbutGdP1Kz6K55QnEw7CpjRNmBqOgAb4GRG4kTUHsbztQy+cRuslU+PQHMBnevVZoV19Vz5LsH0Uwcjj37bgi9v6PdyWVbriYK+L6TbVdtciLtLLUxMaIRCsL5ZiAWvcFpPuaWEg49frz2qJBEvuxZIEiANq88aqUFhl4MXu/VkCDgT6Kj5tlrPsoE65m9gvu32Mw5D9YufsY/CG3TsMXUNcui0nnAAT4efeR5dh8ddA6v1ZEPqaCE9y2cWG0/eSZddicIrD022njUYam23o27HbjJrgM99FKiGYcA32NVWU6htp9FWU7Uanh03jmZp3xNF4Z941TnYbOh8sVHYzN11mePaQ24IQ5Qv895/vUGGsuZpr2iSoR/50Y3TmmwyIuTyzrtz/iXj6ys2eLj8db45xWy4UWQZsM2TPPx9rk2Ej7ZdIulANol04vGfSppLpKnc+zyQ2Up3iVVqAJT9Dru6S8rrreLjQvV0l1hq8rA2OFzm/BixOe1eb0n5F3t0SPuhs7T6XKbqMzMQj43ImkDPaB09tf6YodflBicFRqC7tyoY+XD704CZ4m9/YdEc/Qc=</diagram><diagram id="BUbIXdflcml9okfC_udS" name="transcript">7Vxde6I6EP41XnYfIIB42dpuu2e7ffrU7Z6ze5dClGyB0BBXPb/+BAkKJNb2yJdt7YVmEpC8M+9kZpI6AONweUlh7H8jHgoGhuYtB+B8YBg60DX+lkpWmWRo6plgRrEnBm0FE/wvEkJx3WyOPZSUBjJCAobjstAlUYRcVpJBSsmiPGxKgvK3xnCGJMHEhYEs/Rt7zBfSoaZtO64Qnvn5V+t5Twjz0UKQ+NAji4IIXAzAmBLCsk/hcoyCFL0cmOy6zzt6N09GUcRecsGPm3tw+XV19xecPv5yv9wsrjE+MbK7/IHBXMxYPCxb5RBQMo88lN5EG4CzhY8ZmsTQTXsXXOlc5rMw4C2df5ziIBiTgND1tWBqpX+pnESsIM9eXJ4wSh5Rocdev3iPeDBEGVrunLG+wZFbICIhYnTFh4gLho6AXhifbov2YqvKjaX5BS1auc6gMJ/Z5t5bgPkHgfEr8AZ1481xFawxNBn/8fpVE5qjMpoGsCQ09ZECTRM0hab5lq3X0ip46wrr1VR4203hbSnwtgP+tWcPJdTtp3nq1da4nSRr8zzlA/jsl2ts8n7+aZa+f6cwSlyKY5bfjz/eQ94r6ZRjysqKKysiIhGqaFOIYIBnEW+6XAeIy89SDWHu7k9FR4g9L/0apaWUbalKvTpUbg8/WXuVbit03hjF7ON1WJZeJpBlyljqjgJMvTH3P5TQHJMwxCzkU0r6b+e6kbfFQ+p1qMmsGr1SUSpP15jVO5IukMfjQtEklPlkRiIYXGylFdS2Y64JiYX6fiPGVgJLOGekrFyOF139I65fN36mjU9W3jxfFjvPV6KVMEjZaRrsbg1gLfuM01mLK7x8hBvAJMFuJhRD9A3j0nk+r0gOC5lTFz0D3ygbx59hhthz0aejtgyKAsjwn/KDqJS8vpRPDK4KA2KCBZvEnW9TQSGQMSt+wakEznvGA82qGFj2BFtz20zl/1vgSPIUmmSTr3K8dTDVqAA3VPBUtTo15k91GZQPor6CqHqeU+9jKjA6YapVNjhb28PUynizDabmGBaoqktW2TlVR51TVQ4cP6j6GqqCl1J12AlV7QpVq9WoPeOtVqgql18OTGcaoKqtSPlapqr5QdWDqGq9kKrmDstomKrDisGZe6haHd8KVeVaE+gfVUHnVG2wPpNl++3VZ0yV42u3PqPLBZoJonyWdzDySNg7AzRVGZhltWmAjoTYFccq8eEjOocMSpD1qKjVaBFLac2tFrF0uYZwtL7BsF7qG6ym4MwpVIDzlhJGXBL8QDTBJKoX3QbcheF0vV4ZcrI8xrGP6GTOwek9gKDz2DznsHILYeL6KDwCFFX1/XZRlBPBKwQ9vqq8k+VquN+9trrNaMhb+d9xiHgeF8b9t+fO6+BGUzvzE5SkK9sEuRSlOeV73p13rHKEpzpO1BRpft0b92E8fjof0pvfy59n2l307UQuM7dZptk0jrVMY4jceW+ZJkuyWy/TgIqPFtXLnWWayvg8N2y0TGPI9YcsYR6n1J1y8vYwqpNOsmkK/606yZa72fr9t1x3OI3jIIWPe993lEc7lb121SFDlWaaC0zk+saB9lxOmh80BJAtaY/3aMjRHKempat6ltBWnN0cKnB1GsNVLk5chBAHh4FbB1TVysNIAZXVZnCX23ax8MAXxwWhXu/QAnrnaMkVhjxsTWIY5WHrHXqa8/QiC3+vyQxHheC2OPAIHK9WhyJB5eCpykO0Wr4EcqXjDXheYL3Q827Arh9Yufhx6ro80fvOYTiwiNmAS8kP8XToUuTixB2aUpT4PUXM6Byx3fWIshNOYhIloggxma+t8J37Ya26kaT0GKo9vuY8sZzk3SeIfulh+OF0bvlyJvcGVi2z83wBqPKwokfZVeRciKdLPUxEaAgDZaGzFA9eorSucksJBx8drz+qJSGvri0qS1AxrDlvJGeOfQ5frM4zIlPOH3vqvs3Oc21TlT0evfu2uk86TDmbu0YzGNzAQzesG7BDu/OUw1TkaJ5H1+Fx38DqPNswVflZMbPYrOS9XLJrIbz0P5SdZw2mnAP2dNmxOs8aTDnDGgeYT6ev505VJ3haPXdq7jqpexGnZ6AoDL6iVe9ws1Q7jTXhxpvbH5PJ9ne3v8kDLv4D</diagram></mxfile>

View File

@@ -9,7 +9,7 @@ Since during the `Equality Check` all of the Notary's secrets are revealed to Us
## Introduction
Malicious secure 2-party computation with garbled circuits typically comes at the expense of dramatically lower efficiency compared to execution in the semi-honest model. One technique, called Dual Execution [[MF06]](https://www.iacr.org/archive/pkc2006/39580468/39580468.pdf) [[HKE12]](https://www.cs.umd.edu/~jkatz/papers/SP12.pdf), achieves malicious security with a minimal 2x overhead. However, it comes with the concession that a malicious adversary may learn $k$ bits of the other's input with probability $2^{-k}$.
Malicious secure 2-party computation with garbled circuits typically comes at the expense of dramatically lower efficiency compared to execution in the semi-honest model. One technique, called Dual Execution [\[MF06\]](https://www.iacr.org/archive/pkc2006/39580468/39580468.pdf) [\[HKE12\]](https://www.cs.umd.edu/~jkatz/papers/SP12.pdf), achieves malicious security with a minimal 2x overhead. However, it comes with the concession that a malicious adversary may learn $k$ bits of the other's input with probability $2^{-k}$.
We present a variant of Dual Execution which provides different trade-offs. Our variant ensures complete privacy _for one party_, by sacrificing privacy entirely for the other. Hence the name, Dual Execution with Asymmetric Privacy (DEAP). During the execution phase of the protocol both parties have private inputs. The party with complete privacy learns the authentic output prior to the final stage of the protocol. In the final stage, prior to the equality check, one party reveals their private input. This allows a series of consistency checks to be performed which guarantees that the equality check can not cause leakage.
@@ -31,7 +31,7 @@ We assume that it is acceptable for either party to cause the protocol to abort
### Committed Oblivious Transfer
In the last phase of our protocol Bob must open all oblivious transfers he sent to Alice. To achieve this, we require a very relaxed flavor of committed oblivious transfer. For more detail on these relaxations see section 2 of [Zero-Knowledge Using Garbled Circuits [JKO13]](https://eprint.iacr.org/2013/073.pdf).
In the last phase of our protocol Bob must open all oblivious transfers he sent to Alice. To achieve this, we require a very relaxed flavor of committed oblivious transfer. For more detail on these relaxations see section 2 of [Zero-Knowledge Using Garbled Circuits \[JKO13\]](https://eprint.iacr.org/2013/073.pdf).
### Notation
@@ -86,7 +86,7 @@ Bob, even if malicious, has learned nothing except the purported output $v^A$ an
Alice, if honest, has learned the correct output $v$ thanks to the authenticity property of garbled circuits. Alice, if malicious, has potentially learned Bob's entire input $y$.
[^1]: This is a significant deviation from standard DualEx protocols such as [[HKE12]](https://www.cs.umd.edu/~jkatz/papers/SP12.pdf). Typically the output labels are _not_ returned to the Generator, instead, output authenticity is established during a secure equality check at the end. See the [section below](#malicious-alice) for more detail.
[^1]: This is a significant deviation from standard DualEx protocols such as [\[HKE12\]](https://www.cs.umd.edu/~jkatz/papers/SP12.pdf). Typically the output labels are _not_ returned to the Generator, instead, output authenticity is established during a secure equality check at the end. See the [section below](#malicious-alice) for more detail.
### Equality Check
@@ -103,13 +103,13 @@ Bob is now convinced that $v^A$ is correct, ie $f(x, y) = v^A$. Bob is also assu
### Malicious Alice
[On the Leakage of Corrupted Garbled Circuits [DPB18]](https://eprint.iacr.org/2018/743.pdf) is recommended reading on this topic.
[On the Leakage of Corrupted Garbled Circuits \[DPB18\]](https://eprint.iacr.org/2018/743.pdf) is recommended reading on this topic.
During the first execution, Alice has some degrees of freedom in how she garbles $G_A$. According to [DPB18], when using a modern garbling scheme such as [ZRE15], these corruptions can be analyzed as two distinct classes: detectable and undetectable.
During the first execution, Alice has some degrees of freedom in how she garbles $G_A$. According to \[DPB18\], when using a modern garbling scheme such as \[ZRE15\], these corruptions can be analyzed as two distinct classes: detectable and undetectable.
Recall that our scheme assumes Bob's input is an ephemeral secret which can be revealed at the end. For this reason, we are entirely unconcerned about the detectable variety. Simply providing Bob with the output labels commitment $\mathsf{com}_{[V]_A}$ is sufficient to detect these types of corruptions. In this context, our primary concern is regarding the _correctness_ of the output of $G_A$.
[DPB18] shows that any undetectable corruption made to $G_A$ is constrained to the arbitrary insertion or removal of NOT gates in the circuit, such that $G_A$ computes $f_A$ instead of $f$. Note that any corruption of $d_A$ has an equivalent effect. [DPB18] also shows that Alice's ability to exploit this is constrained by the topology of the circuit.
\[DPB18\] shows that any undetectable corruption made to $G_A$ is constrained to the arbitrary insertion or removal of NOT gates in the circuit, such that $G_A$ computes $f_A$ instead of $f$. Note that any corruption of $d_A$ has an equivalent effect. \[DPB18\] also shows that Alice's ability to exploit this is constrained by the topology of the circuit.
Recall that in the final stage of our protocol Bob checks that the output of $G_A$ matches the output of $G_B$, or more specifically:
@@ -125,9 +125,9 @@ To address this, Alice is forced to choose $f_A$, $x_1$ and $x_2$ prior to Bob r
### Malicious Bob
[Zero-Knowledge Using Garbled Circuits [JKO13]](https://eprint.iacr.org/2013/073.pdf) is recommended reading on this topic.
[Zero-Knowledge Using Garbled Circuits \[JKO13\]](https://eprint.iacr.org/2013/073.pdf) is recommended reading on this topic.
The last stage of our variant is functionally equivalent to the protocol described in [JKO13]. After Alice evaluates $G_B$ and commits to $[v]_B$, Bob opens his garbled circuit and all OTs entirely. Following this, Alice performs a series of consistency checks to detect any malicious behavior. These consistency checks do _not_ depend on any of Alice's inputs, so any attempted selective failure attack by Bob would be futile.
The last stage of our variant is functionally equivalent to the protocol described in \[JKO13\]. After Alice evaluates $G_B$ and commits to $[v]_B$, Bob opens his garbled circuit and all OTs entirely. Following this, Alice performs a series of consistency checks to detect any malicious behavior. These consistency checks do _not_ depend on any of Alice's inputs, so any attempted selective failure attack by Bob would be futile.
Bob's only options are to behave honestly, or cause Alice to abort without leaking any information.

View File

@@ -2,7 +2,7 @@
In TLS, the first step towards obtaining TLS session keys is to compute a shared secret between the client and the server by running the [ECDH protocol](https://en.wikipedia.org/wiki/Elliptic-curve_DiffieHellman). The resulting shared secret in TLS terms is called the pre-master secret `PMS`.
<img src="https://raw.githubusercontent.com/tlsnotary/docs-assets/main/diagrams/key_exchange.png" width="800">
<img src="../../png-diagrams/key_exchange.png" width="800">
Using the notation from Wikipedia, below is the 3-party ECDH protocol between the `Server` the `Requester` and the `Notary`, enabling the `Requester` and the `Notary` to arrive at shares of `PMS`.

View File

@@ -43,7 +43,7 @@ Ideal functionality for ONESHOTENC:
We now describe the protocol at a high level. It is based on Figure 1 of the [Dual-Execution (DualEx) technique](https://www.cs.virginia.edu/~evans/pubs/oakland2012/quidproquotocols.pdf) with a relaxation (see Step 3 below). We overcome DualEx's inherent leakage by introducing a consistency check which the User performs on the Notary, thus removing the ability to leak the User's input. It is still possible for a malicious User to leak the Notary's input (i.e. the AES key share), but it gives her no meaningful advantage as per the first observation above.
### Part 1
To set up for dual-execution, the parties set up the OTs. Because we have a privacy-free step later, the Notary's OT needs to be opened up later, so we have the notary do a "committed OT" (see section 2 of [JKO13](https://eprint.iacr.org/2013/073)), so that he can be forced to open the labels later on.
To set up for dual-execution, the parties set up the OTs. Because we have a privacy-free step later, the Notary's OT needs to be opened up later, so we have the notary do a "committed OT" (see section 2 of \[JKO13\](https://eprint.iacr.org/2013/073)), so that he can be forced to open the labels later on.
In the first step of the protocol, the User has to get her AES ciphertext from the Notary. The User does not trust the Notary (for privacy or integrity), and the User's data is far more sensitive to leakage than the Notary's. So the parties do an ordinary DualEx:

View File

@@ -3,4 +3,4 @@
The following diagram is a high-level protocol overview introducing the main components of
TLSNotary.
![TLSNotary Overview](tlsnotary_overview.png)
![TLSNotary Overview](./png-diagrams/intro-diagram.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 449 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 415 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 770 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 KiB

View File

@@ -20,7 +20,7 @@ The `Notary` is the party of which the authenticity of the `Transcript` relies o
The `Server` can be any server which supports TLS. The TLSNotary protocol is entirely transparent to the `Server`, thus it can not be censored nor does it have to support any additional functionality.
<img src="https://raw.githubusercontent.com/tlsnotary/docs-assets/main/diagrams/tls12-multiround.png">
<img src="../../png-diagrams/tls12-multiround.png">
## Transcript
@@ -29,4 +29,4 @@ The primary artifact generated from this phase is called the `Transcript`. It co
> Note that the server ephemeral key does not reveal the identity of the server to the `Notary`.
<img src="https://raw.githubusercontent.com/tlsnotary/docs-assets/main/diagrams/transcript.png">
<img src="../../png-diagrams/transcript.png">

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB