Browse Source

Add idea about retrieving all nodes in the mixnet

Thanks dvn for the reminder.
master
juga 11 months ago
parent
commit
e2cc2bf6c4
3 changed files with 83 additions and 10 deletions
  1. +12
    -8
      docs/source/_static/mixnet_gns_components.svg
  2. +13
    -2
      docs/source/design/gns.rst
  3. +58
    -0
      docs/source/mixnet_gns_components.puml

+ 12
- 8
docs/source/_static/mixnet_gns_components.svg View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="416px" preserveAspectRatio="none" style="width:1304px;height:416px;" version="1.1" viewBox="0 0 1304 416" width="1304px" zoomAndPan="magnify"><defs><filter height="300%" id="f8trcps4qzdke" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><!--MD5=[3daa8d6928fc49ee032578c2e238d80e]
entity Authority--><rect fill="#FEFECE" filter="url(#f8trcps4qzdke)" height="160.375" style="stroke: #A80036; stroke-width: 1.5;" width="560" x="306" y="8"/><rect fill="#FEFECE" height="10" style="stroke: #A80036; stroke-width: 1.5;" width="15" x="846" y="13"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="844" y="15"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="844" y="19"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="61" x="321" y="40.9951">Authority</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="115" x="321" y="57.292">Has the records:</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="115" x="321" y="73.5889">- PKEY, n1, 1111</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="115" x="321" y="89.8857">- PKEY, n2, 2221</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="0" x="325" y="106.1826"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="276" x="321" y="122.4795">Can query the records (in its root zone):</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="520" x="321" y="138.7764">- n1.root -&gt; TXT, n1, email=root@n1.pep.example;layer=1;openpgp=AAAA</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="184" x="321" y="155.0732">- n2.root -&gt; A, n2, 10.0.0.2</text><!--MD5=[f042970fa631b194e0ab6c1248938917]
entity N1--><rect fill="#FEFECE" filter="url(#f8trcps4qzdke)" height="160.375" style="stroke: #A80036; stroke-width: 1.5;" width="628" x="6" y="245"/><rect fill="#FEFECE" height="10" style="stroke: #A80036; stroke-width: 1.5;" width="15" x="614" y="250"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="612" y="252"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="612" y="256"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="19" x="21" y="277.9951">N1</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="115" x="21" y="294.292">Has the records:</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="157" x="21" y="310.5889">- PKEY, authority, 0000</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="445" x="21" y="326.8857">- TXT, n1, email=root@n1.pep.example;layer=1;openpgp=AAAA</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="0" x="25" y="343.1826"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="276" x="21" y="359.4795">Can query the records (in its root zone):</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="520" x="21" y="375.7764">- n1.root -&gt; TXT, n1, email=root@n1.pep.example;layer=1;openpgp=AAAA</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="588" x="21" y="392.0732">- n2.authority.root -&gt; TXT, n2, email=root@n2.pep.example;layer=1;openpgp=BBBB</text><!--MD5=[4b5ab69de11007997fdc27e7483449f4]
entity N2--><rect fill="#FEFECE" filter="url(#f8trcps4qzdke)" height="160.375" style="stroke: #A80036; stroke-width: 1.5;" width="624" x="669" y="245"/><rect fill="#FEFECE" height="10" style="stroke: #A80036; stroke-width: 1.5;" width="15" x="1273" y="250"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="1271" y="252"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="1271" y="256"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="19" x="684" y="277.9951">N2</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="115" x="684" y="294.292">Has the records:</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="157" x="684" y="310.5889">- PKEY, authority, 0000</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="449" x="684" y="326.8857">- TXT, n2, email=root@n2.pep.example;layer=1;openpgp=BBBB</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="0" x="688" y="343.1826"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="276" x="684" y="359.4795">Can query the records (in its root zone):</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="524" x="684" y="375.7764">- n2.root -&gt; TXT, n2, email=root@n2.pep.example;layer=1;openpgp=BBBB</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="584" x="684" y="392.0732">- n1.authority.root -&gt; TXT, n1, email=root@n1.pep.example;layer=1;openpgp=AAAA</text><!--MD5=[a3bcdd42f3b359be92cba7c757fb6510]
link Authority to N1--><path d="M414.1244,168.1044 C401.8432,177.2491 390.2738,187.2089 380,198 C368.4189,210.1641 358.7265,224.9757 350.7446,240.1297 " fill="none" id="Authority-&gt;N1" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="348.3222,244.8411,355.9948,238.6661,350.6085,240.3944,348.8801,235.0081,348.3222,244.8411" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="381" y="211.0669">n1.root</text><!--MD5=[478e86cab0b04192df6bcbe64a4b087d]
link N1 to Authority--><path d="M409.9627,244.8452 C436.3893,221.2997 465.3567,195.4905 492.0268,171.728 " fill="none" id="N1-&gt;Authority" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="495.9445,168.2374,486.5639,171.238,492.2113,171.5636,491.8857,177.211,495.9445,168.2374" style="stroke: #A80036; stroke-width: 1.0;"/><ellipse cx="467" cy="207.0664" fill="none" rx="3" ry="3" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="91" x="474" y="211.0669">.authority.root</text><!--MD5=[327723372fcc9f4d0a7402045980df41]
link Authority to N2--><path d="M719.4536,168.0721 C759.3094,191.9857 803.0675,218.2405 843.1965,242.3179 " fill="none" id="Authority-&gt;N2" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="847.5682,244.9409,841.9089,236.8804,843.2808,242.3683,837.7928,243.7402,847.5682,244.9409" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="796" y="211.0669">n2.root</text><!--MD5=[4ffae381981a331506b36106f3627a07]
link N2 to Authority--><path d="M908.5966,244.8614 C890.8551,227.9922 871.1423,211.3001 851,198 C836.1815,188.2152 820.3513,179.0225 804.0786,170.4467 " fill="none" id="N2-&gt;Authority" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="799.4776,168.0442,805.6041,175.7557,803.9098,170.3585,809.3069,168.6642,799.4776,168.0442" style="stroke: #A80036; stroke-width: 1.0;"/><ellipse cx="877" cy="207.0664" fill="none" rx="3" ry="3" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="91" x="884" y="211.0669">.authority.root</text><!--MD5=[fa9ebe00ee9b7c464620861f4401fd4c]
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="465px" preserveAspectRatio="none" style="width:1304px;height:465px;" version="1.1" viewBox="0 0 1304 465" width="1304px" zoomAndPan="magnify"><defs><filter height="300%" id="fj0jd1y3t2hoy" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><!--MD5=[3daa8d6928fc49ee032578c2e238d80e]
entity Authority--><rect fill="#FEFECE" filter="url(#fj0jd1y3t2hoy)" height="192.9688" style="stroke: #A80036; stroke-width: 1.5;" width="560" x="306" y="8"/><rect fill="#FEFECE" height="10" style="stroke: #A80036; stroke-width: 1.5;" width="15" x="846" y="13"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="844" y="15"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="844" y="19"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="61" x="321" y="40.9951">Authority</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="115" x="321" y="57.292">Has the records:</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="115" x="321" y="73.5889">- PKEY, n1, 1111</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="115" x="321" y="89.8857">- PKEY, n2, 2221</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="152" x="321" y="106.1826">- TXT, mixnet, "n1, n2"</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="0" x="325" y="122.4795"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="276" x="321" y="138.7764">Can query the records (in its root zone):</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="520" x="321" y="155.0732">- n1.root -&gt; TXT, n1, email=root@n1.pep.example;layer=1;openpgp=AAAA</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="184" x="321" y="171.3701">- n2.root -&gt; A, n2, 10.0.0.2</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="251" x="321" y="187.667">- mixnet.root -&gt; TXT, mixnet, "n1,n2"</text><!--MD5=[f042970fa631b194e0ab6c1248938917]
entity N1--><rect fill="#FEFECE" filter="url(#fj0jd1y3t2hoy)" height="176.6719" style="stroke: #A80036; stroke-width: 1.5;" width="628" x="6" y="278"/><rect fill="#FEFECE" height="10" style="stroke: #A80036; stroke-width: 1.5;" width="15" x="614" y="283"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="612" y="285"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="612" y="289"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="19" x="21" y="310.9951">N1</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="115" x="21" y="327.292">Has the records:</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="157" x="21" y="343.5889">- PKEY, authority, 0000</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="445" x="21" y="359.8857">- TXT, n1, email=root@n1.pep.example;layer=1;openpgp=AAAA</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="0" x="25" y="376.1826"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="276" x="21" y="392.4795">Can query the records (in its root zone):</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="520" x="21" y="408.7764">- n1.root -&gt; TXT, n1, email=root@n1.pep.example;layer=1;openpgp=AAAA</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="315" x="21" y="425.0732">- mixnet.authority.root -&gt; TXT, mixnet, "n1,n2"</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="588" x="21" y="441.3701">- n2.authority.root -&gt; TXT, n2, email=root@n2.pep.example;layer=1;openpgp=BBBB</text><!--MD5=[4b5ab69de11007997fdc27e7483449f4]
entity N2--><rect fill="#FEFECE" filter="url(#fj0jd1y3t2hoy)" height="176.6719" style="stroke: #A80036; stroke-width: 1.5;" width="624" x="669" y="278"/><rect fill="#FEFECE" height="10" style="stroke: #A80036; stroke-width: 1.5;" width="15" x="1273" y="283"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="1271" y="285"/><rect fill="#FEFECE" height="2" style="stroke: #A80036; stroke-width: 1.5;" width="4" x="1271" y="289"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="19" x="684" y="310.9951">N2</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="115" x="684" y="327.292">Has the records:</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="157" x="684" y="343.5889">- PKEY, authority, 0000</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="449" x="684" y="359.8857">- TXT, n2, email=root@n2.pep.example;layer=1;openpgp=BBBB</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="0" x="688" y="376.1826"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="276" x="684" y="392.4795">Can query the records (in its root zone):</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="524" x="684" y="408.7764">- n2.root -&gt; TXT, n2, email=root@n2.pep.example;layer=1;openpgp=BBBB</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="315" x="684" y="425.0732">- mixnet.authority.root -&gt; TXT, mixnet, "n1,n2"</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="584" x="684" y="441.3701">- n1.authority.root -&gt; TXT, n1, email=root@n1.pep.example;layer=1;openpgp=AAAA</text><!--MD5=[a3bcdd42f3b359be92cba7c757fb6510]
link Authority to N1--><path d="M410.6322,201.0822 C399.6145,210.4355 389.2545,220.4158 380,231 C369.1803,243.3743 360.024,258.0118 352.3748,273.0122 " fill="none" id="Authority-&gt;N1" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="350.0491,277.677,357.6444,271.4072,352.28,273.2023,350.4849,267.8378,350.0491,277.677" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="381" y="244.0669">n1.root</text><!--MD5=[478e86cab0b04192df6bcbe64a4b087d]
link N1 to Authority--><path d="M409.9685,277.8844 C433.801,254.4103 459.6996,228.9011 484.1159,204.852 " fill="none" id="N1-&gt;Authority" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="487.7072,201.3147,478.4883,204.7805,484.145,204.8233,484.1021,210.48,487.7072,201.3147" style="stroke: #A80036; stroke-width: 1.0;"/><ellipse cx="459" cy="240.0664" fill="none" rx="3" ry="3" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="91" x="466" y="244.0669">.authority.root</text><!--MD5=[327723372fcc9f4d0a7402045980df41]
link Authority to N2--><path d="M731.6808,201.1288 C768.1271,225.3033 807.1069,251.1582 843.1595,275.0716 " fill="none" id="Authority-&gt;N2" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="847.5413,277.978,842.2523,269.6698,843.3746,275.2142,837.8302,276.3364,847.5413,277.978" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="46" x="796" y="244.0669">n2.root</text><!--MD5=[4ffae381981a331506b36106f3627a07]
link N2 to Authority--><path d="M904.8442,277.7257 C888.1145,261.0162 869.7606,244.5566 851,231 C837.8936,221.5291 823.9668,212.4632 809.6241,203.8473 " fill="none" id="N2-&gt;Authority" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="805.1601,201.1878,810.8446,209.2306,809.4555,203.7469,814.9392,202.3579,805.1601,201.1878" style="stroke: #A80036; stroke-width: 1.0;"/><ellipse cx="877" cy="240.0664" fill="none" rx="3" ry="3" style="stroke: #000000; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="91" x="884" y="244.0669">.authority.root</text><!--MD5=[fc38f41c19e9cde3d7843d8ea3b407f8]
@startuml
skinparam componentStyle rectangle
@ -14,10 +14,12 @@ Authority
Has the records:
- PKEY, n1, 1111
- PKEY, n2, 2221
- TXT, mixnet, "n1, n2"
Can query the records (in its root zone):
- n1.root -> TXT, n1, email=root@n1.pep.example;layer=1;openpgp=AAAA
- n2.root -> A, n2, 10.0.0.2
- mixnet.root -> TXT, mixnet, "n1,n2"
]
component N1 [
@ -28,6 +30,7 @@ Has the records:
Can query the records (in its root zone):
- n1.root -> TXT, n1, email=root@n1.pep.example;layer=1;openpgp=AAAA
- mixnet.authority.root -> TXT, mixnet, "n1,n2"
- n2.authority.root -> TXT, n2, email=root@n2.pep.example;layer=1;openpgp=BBBB
]
@ -39,6 +42,7 @@ Has the records:
Can query the records (in its root zone):
- n2.root -> TXT, n2, email=root@n2.pep.example;layer=1;openpgp=BBBB
- mixnet.authority.root -> TXT, mixnet, "n1,n2"
- n1.authority.root -> TXT, n1, email=root@n1.pep.example;layer=1;openpgp=AAAA
]


+ 13
- 2
docs/source/design/gns.rst View File

@ -80,7 +80,18 @@ Node discovery by the client
A mixnet client would need to know which are the mixnet nodes in the network.
It would need to also have a local GNS node to query records to the authority.
But is it possible to ask the authority a list of all records?.
Since it is only possible to ask a record to the authority, but it is not
possible to ask all the records the authority knows about, the authority would
need to store in a record (called eg. mixnet) a list of all the mixnet (GNS)
nodes.
After retrieving that list, the client could ask the authority about a
node record.
A TXT record with the list of nodes could look like::
n1,n2
Which means we can then ask the authority about ``n1`` and ``n2`` records.
GNS records
~~~~~~~~~~~
@ -104,7 +115,7 @@ It'd have the form::
TXT records are limited to 255 characters, and a OpenPGP key can be way
longer than that. But it's possible to add several records with the same name,
and they key can be splitted in several.
When querying the TXT record, the key can be reconstracted concatening all the
When querying the TXT record, the key can be reconstructed concatening all the
query results.
References:


+ 58
- 0
docs/source/mixnet_gns_components.puml View File

@ -0,0 +1,58 @@
@startuml
skinparam componentStyle rectangle
component Authority [
Authority
' - A, authority, 10.0.0.0
Has the records:
- PKEY, n1, 1111
- PKEY, n2, 2221
- TXT, mixnet, "n1, n2"
Can query the records (in its root zone):
' - authority.root -> 10.0.0.0
' - n1.root -> A, n1, 10.0.0.1
- n1.root -> TXT, n1, email=root@n1.pep.example;layer=1;openpgp=AAAA
- n2.root -> A, n2, 10.0.0.2
- mixnet.root -> TXT, mixnet, "n1,n2"
]
component N1 [
N1
Has the records:
' - N1, n1, 10.0.0.1
- PKEY, authority, 0000
- TXT, n1, email=root@n1.pep.example;layer=1;openpgp=AAAA
Can query the records (in its root zone):
' - n1.root -> A, n1, 10.0.0.1
- n1.root -> TXT, n1, email=root@n1.pep.example;layer=1;openpgp=AAAA
' - authority.root -> A, authority, 10.0.0.0
- mixnet.authority.root -> TXT, mixnet, "n1,n2"
' - n2.authority.root -> A, n2, 10.0.0.2
- n2.authority.root -> TXT, n2, email=root@n2.pep.example;layer=1;openpgp=BBBB
]
component N2 [
N2
Has the records:
' - A, n2, 10.0.0.2
- PKEY, authority, 0000
- TXT, n2, email=root@n2.pep.example;layer=1;openpgp=BBBB
Can query the records (in its root zone):
' - n2.root -> A, n2, 10.0.0.1
- n2.root -> TXT, n2, email=root@n2.pep.example;layer=1;openpgp=BBBB
' - authority.root -> A, authority, 10.0.0.0
- mixnet.authority.root -> TXT, mixnet, "n1,n2"
' - n1.authority.root -> A, n2, 10.0.0.1
- n1.authority.root -> TXT, n1, email=root@n1.pep.example;layer=1;openpgp=AAAA
]
[Authority] --> [N1] : n1.root
[Authority] --> [N2] : n2.root
[N1] --> [Authority] : *.authority.root
[N2] --> [Authority] : *.authority.root
@enduml

Loading…
Cancel
Save