diff options
| author | J08nY | 2025-02-24 15:45:11 +0100 |
|---|---|---|
| committer | J08nY | 2025-02-24 15:45:11 +0100 |
| commit | 822c5a997167b615eec49e740101ab53bde2829f (patch) | |
| tree | 478d325d9714ecff831713ae67b192cf39b6ce2f /docs | |
| parent | b582d30c622b1b9fa5fe234975d2842a23d927ac (diff) | |
| download | ECTester-822c5a997167b615eec49e740101ab53bde2829f.tar.gz ECTester-822c5a997167b615eec49e740101ab53bde2829f.tar.zst ECTester-822c5a997167b615eec49e740101ab53bde2829f.zip | |
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/architecture.pdf | bin | 0 -> 12892 bytes | |||
| -rw-r--r-- | docs/architecture.svg | 391 |
2 files changed, 391 insertions, 0 deletions
diff --git a/docs/architecture.pdf b/docs/architecture.pdf Binary files differnew file mode 100644 index 0000000..af109af --- /dev/null +++ b/docs/architecture.pdf diff --git a/docs/architecture.svg b/docs/architecture.svg new file mode 100644 index 0000000..56f1c85 --- /dev/null +++ b/docs/architecture.svg @@ -0,0 +1,391 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="116.18518mm" + height="79.610497mm" + viewBox="0 0 116.18518 79.610497" + version="1.1" + id="svg1" + xml:space="preserve" + inkscape:version="1.4 (e7c3feb100, 2024-10-09)" + sodipodi:docname="architecture.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview + id="namedview1" + pagecolor="#ffffff" + bordercolor="#999999" + borderopacity="1" + inkscape:showpageshadow="false" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="true" + inkscape:deskcolor="#d1d1d1" + inkscape:document-units="mm" + inkscape:zoom="2.8284271" + inkscape:cx="433.81001" + inkscape:cy="246.60349" + inkscape:window-width="1920" + inkscape:window-height="1125" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="g7-1" + inkscape:clip-to-page="false" + labelstyle="default" /><defs + id="defs1"><marker + style="overflow:visible" + id="Triangle" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Triangle arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"><path + transform="scale(0.5)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="M 5.77,0 -2.88,5 V -5 Z" + id="path135" /></marker><marker + inkscape:isstock="true" + style="overflow:visible" + id="Arrow2Mend" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"><path + transform="scale(-0.6)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + id="path887" /></marker><marker + inkscape:isstock="true" + style="overflow:visible" + id="marker1138" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend"><path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path1136" /></marker><marker + inkscape:isstock="true" + style="overflow:visible" + id="Arrow1Mend" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend"><path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path869" /></marker><marker + style="overflow:visible" + id="Triangle-0" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Triangle arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"><path + transform="scale(0.5)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="M 5.77,0 -2.88,5 V -5 Z" + id="path135-8" /></marker><marker + style="overflow:visible" + id="Triangle-6" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Triangle arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"><path + transform="scale(0.5)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="M 5.77,0 -2.88,5 V -5 Z" + id="path135-2" /></marker><marker + style="overflow:visible" + id="Triangle-6-9" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Triangle arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"><path + transform="scale(0.5)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="M 5.77,0 -2.88,5 V -5 Z" + id="path135-2-9" /></marker><marker + style="overflow:visible" + id="Triangle-1" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Triangle arrow" + markerWidth="1" + markerHeight="1" + viewBox="0 0 1 1" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"><path + transform="scale(0.5)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="M 5.77,0 -2.88,5 V -5 Z" + id="path135-9" /></marker></defs><g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-39.362004,-24.513694)"><g + transform="matrix(0.28586171,0,0,0.28586171,31.74187,28.050558)" + inkscape:label="Layer 1" + id="layer1-3" + inkscape:highlight-color="#cf72a3"><text + id="text832" + y="62.779079" + x="78.647041" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:42.3333px;line-height:1.25;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + xml:space="preserve"><tspan + style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:42.3333px;font-family:Metropolis;-inkscape-font-specification:'Metropolis Ultra-Bold';stroke-width:0.264583" + y="62.779079" + x="78.647041" + id="tspan830" + sodipodi:role="line">EC</tspan></text><text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:42.3333px;line-height:1.25;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="182.21022" + y="62.779079" + id="text832-2"><tspan + sodipodi:role="line" + id="tspan830-9" + x="182.21022" + y="62.779079" + style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:42.3333px;font-family:Metropolis;-inkscape-font-specification:'Metropolis Ultra-Bold';stroke-width:0.264583">Tester</tspan></text><path + id="path856" + d="M 111.17603,96.586813 V 6.4351743" + style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Mend)" /><path + id="path858" + d="M 83.348106,67.860214 H 259.44811" + style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1138)" /><circle + r="2.3940837" + cy="17.822157" + cx="131.84666" + id="path1242" + style="fill:#000000;stroke-width:1.5;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none" /><circle + style="fill:#000000;stroke-width:1.5;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none" + id="path1242-2" + cx="172.33257" + cy="31.304388" + r="2.3940837" /><circle + style="fill:#000000;stroke-width:1.5;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none" + id="path1242-7" + cx="223.64252" + cy="16.69183" + r="5.1091008" /><ellipse + ry="2.3952644" + rx="2.3940837" + transform="scale(1,-1)" + style="fill:#000000;stroke-width:1.5;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none" + id="path1242-6" + cx="131.76807" + cy="-87.85804" /><ellipse + ry="2.3952644" + rx="2.3940837" + transform="scale(1,-1)" + cy="-74.369148" + cx="172.25397" + id="path1242-2-1" + style="fill:#000000;stroke-width:1.5;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none" /><ellipse + ry="5.1116204" + rx="5.1091008" + transform="scale(1,-1)" + cy="-88.988922" + cx="223.56392" + id="path1242-7-3" + style="fill:#000000;stroke-width:1.5;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none" /><circle + r="4.2930355" + cy="48.575287" + cx="94.490883" + id="path1242-2-2" + style="fill:#000000;stroke-width:1.5;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none" /></g><rect + style="fill:none;stroke:#878787;stroke-width:0.362219;stroke-dasharray:none;stroke-dashoffset:2.89775;stroke-opacity:1" + id="rect1" + width="74.515152" + height="79.248276" + x="39.543114" + y="24.694803" /><text + xml:space="preserve" + style="font-size:7.05556px;line-height:1.25;font-family:Metropolis;-inkscape-font-specification:Metropolis;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:0.472813;stroke-width:0.264583" + x="48.99971" + y="31.703497" + id="text1"><tspan + sodipodi:role="line" + id="tspan1" + style="fill:#000000;fill-opacity:0.472813;stroke-width:0.264583" + x="48.99971" + y="31.703497">Host</tspan></text><rect + style="fill:none;stroke:#3c3c3c;stroke-width:0.362219;stroke-dasharray:1.08666, 1.08666;stroke-dashoffset:0;stroke-opacity:1" + id="rect1-5" + width="29.904758" + height="13.684691" + x="44.090816" + y="86.217743" /><text + xml:space="preserve" + style="font-size:4.93889px;line-height:1.25;font-family:Metropolis;-inkscape-font-specification:Metropolis;text-align:center;text-anchor:middle;fill:#3b3b3b;fill-opacity:1;stroke-width:0.264583" + x="46.746399" + y="90.629982" + id="text1-9"><tspan + sodipodi:role="line" + style="font-weight:bold;font-size:4.93889px;text-align:start;text-anchor:start;fill:#3b3b3b;fill-opacity:1;stroke-width:0.264583" + x="46.746399" + y="90.629982" + id="tspan2" + dy="1.24" + dx="-0.07 0.07">Native</tspan><tspan + sodipodi:role="line" + style="font-weight:bold;font-size:4.93889px;text-align:start;text-anchor:start;fill:#3b3b3b;fill-opacity:1;stroke-width:0.264583" + x="46.746399" + y="96.803596" + id="tspan3" + dy="0 0">library</tspan></text><rect + style="fill:none;stroke:#3b3b3b;stroke-width:0.362219;stroke-dasharray:1.08666, 1.08666;stroke-dashoffset:0;stroke-opacity:1" + id="rect1-5-5" + width="29.904758" + height="13.684691" + x="78.818047" + y="86.217743" /><text + xml:space="preserve" + style="font-size:4.93889px;line-height:1.25;font-family:Metropolis;-inkscape-font-specification:Metropolis;text-align:center;text-anchor:middle;fill:#3c3c3c;fill-opacity:1;stroke-width:0.264583" + x="81.683533" + y="90.605293" + id="text1-9-4"><tspan + sodipodi:role="line" + style="font-weight:bold;font-size:4.93889px;text-align:start;text-anchor:start;fill:#3c3c3c;fill-opacity:1;stroke-width:0.264583" + x="81.683533" + y="90.605293" + id="tspan2-8" + dx="0" + dy="1.24">Java</tspan><tspan + sodipodi:role="line" + style="font-weight:bold;font-size:4.93889px;text-align:start;text-anchor:start;fill:#3c3c3c;fill-opacity:1;stroke-width:0.264583" + x="81.683533" + y="96.778908" + dy="0 0" + id="tspan3-1">library</tspan></text><g + id="g7" + transform="translate(0,-5.2208019)"><rect + style="fill:none;stroke:#878787;stroke-width:0.362219;stroke-dasharray:1.08666, 1.08666;stroke-dashoffset:0;stroke-opacity:1" + id="rect1-5-2" + width="29.904758" + height="13.684691" + x="44.090816" + y="71.828934" /><text + xml:space="preserve" + style="font-size:4.93889px;line-height:1.25;font-family:Metropolis;-inkscape-font-specification:Metropolis;text-align:center;text-anchor:middle;fill:#878787;fill-opacity:1;stroke-width:0.264583" + x="46.746399" + y="80.36779" + id="text1-9-1"><tspan + sodipodi:role="line" + style="font-size:4.93889px;text-align:start;text-anchor:start;fill:#878787;fill-opacity:1;stroke-width:0.264583" + x="46.746399" + y="80.36779" + id="tspan3-5">JNI shim</tspan></text></g><text + xml:space="preserve" + style="font-size:3.52778px;line-height:1.25;font-family:Metropolis;-inkscape-font-specification:Metropolis;text-align:center;text-anchor:middle;fill:#3c3c3c;fill-opacity:1;stroke-width:0.264583" + x="126.13512" + y="97.167488" + id="text1-9-1-8"><tspan + sodipodi:role="line" + style="font-size:3.52778px;text-align:start;text-anchor:start;fill:#3c3c3c;fill-opacity:1;stroke-width:0.264583" + x="126.13512" + y="97.167488" + id="tspan3-5-7">Custom applet</tspan></text><path + style="fill:none;stroke:#878787;stroke-width:0.362;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.08599997,1.08599997;stroke-dashoffset:0;stroke-opacity:1" + d="M 39.543114,58.130175 H 114.05827" + id="path6" /><path + style="fill:none;stroke:#888888;stroke-width:0.362;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Triangle)" + d="M 59.043195,61.78344 V 58.130175" + id="path7" /><path + style="fill:none;stroke:#888888;stroke-width:0.362;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Triangle-0)" + d="M 59.043198,84.805255 V 80.473933" + id="path7-0" /><path + style="fill:none;stroke:#888888;stroke-width:0.362001;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Triangle-6)" + d="M 93.770438,81.39173 V 58.311179" + id="path7-8" /><g + id="g7-4" + transform="translate(78.063208,-36.179641)"><rect + style="fill:none;stroke:#878787;stroke-width:0.362219;stroke-dasharray:1.08666, 1.08666;stroke-dashoffset:0;stroke-opacity:1" + id="rect1-5-2-7" + width="33.212051" + height="13.684691" + x="44.090816" + y="71.828934" /><text + xml:space="preserve" + style="font-size:4.93889px;line-height:1.25;font-family:Metropolis;-inkscape-font-specification:Metropolis;text-align:center;text-anchor:middle;fill:#878787;fill-opacity:1;stroke-width:0.264583" + x="46.746399" + y="80.36779" + id="text1-9-1-2"><tspan + sodipodi:role="line" + style="font-size:4.93889px;text-align:start;text-anchor:start;fill:#878787;fill-opacity:1;stroke-width:0.264583" + x="46.746399" + y="80.36779" + id="tspan3-5-4">Card reader</tspan></text></g><path + style="fill:none;stroke:#888888;stroke-width:0.362;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Triangle-6-9)" + d="M 138.76007,84.758958 V 49.515098" + id="path7-8-8" /><g + id="g7-1" + transform="translate(79.716864,14.388809)"><rect + style="fill:none;stroke:#3b3b3b;stroke-width:0.362219;stroke-dasharray:1.08666, 1.08666;stroke-dashoffset:0;stroke-opacity:1" + id="rect1-5-2-0" + width="29.904758" + height="13.684691" + x="44.090816" + y="71.828934" /><text + xml:space="preserve" + style="font-size:4.93889px;line-height:1.25;font-family:Metropolis;-inkscape-font-specification:Metropolis;text-align:center;text-anchor:middle;fill:#3a3a3a;fill-opacity:1;stroke-width:0.264583" + x="46.473286" + y="77.515755" + id="text1-9-1-3"><tspan + sodipodi:role="line" + style="font-weight:bold;font-size:4.93889px;text-align:start;text-anchor:start;fill:#3a3a3a;fill-opacity:1;stroke-width:0.264583" + x="46.473286" + y="77.515755" + id="tspan3-5-40">JavaCard</tspan></text></g><path + style="fill:none;stroke:#888888;stroke-width:0.362;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Triangle-1)" + d="m 120.75368,42.491639 h -6.5143" + id="path7-9" /><text + xml:space="preserve" + style="font-size:3.52778px;line-height:1.25;font-family:Metropolis;-inkscape-font-specification:Metropolis;text-align:center;text-anchor:middle;fill:#3c3c3c;fill-opacity:1;stroke-width:0.264583" + x="82.93837" + y="85.051697" + id="text1-9-1-8-9"><tspan + sodipodi:role="line" + style="font-size:3.52778px;text-align:start;text-anchor:start;fill:#3c3c3c;fill-opacity:1;stroke-width:0.264583" + x="82.93837" + y="85.051697" + id="tspan3-5-7-6">JCA Provider</tspan></text><text + xml:space="preserve" + style="font-size:3.52778px;line-height:1.25;font-family:Metropolis;-inkscape-font-specification:Metropolis;text-align:center;text-anchor:middle;fill:#888888;fill-opacity:1;stroke-width:0.264583" + x="48.21114" + y="65.633949" + id="text1-9-1-8-9-6"><tspan + sodipodi:role="line" + style="font-size:3.52778px;text-align:start;text-anchor:start;fill:#888888;fill-opacity:1;stroke-width:0.264583" + x="48.21114" + y="65.633949" + id="tspan3-5-7-6-1">JCA Provider</tspan></text></g></svg> |
