sesame-door-access.svg (19495B)
1 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="1096px" preserveAspectRatio="none" style="width:789px;height:1096px;background:#FFFFFF;" version="1.1" viewBox="0 0 789 1096" width="789px" zoomAndPan="magnify"><defs/><g><line style="stroke:#586A88;stroke-width:0.5;stroke-dasharray:5.0,5.0;" x1="39" x2="39" y1="52.5938" y2="1045.375"/><line style="stroke:#586A88;stroke-width:0.5;stroke-dasharray:5.0,5.0;" x1="290.6719" x2="290.6719" y1="52.5938" y2="1045.375"/><line style="stroke:#586A88;stroke-width:0.5;stroke-dasharray:5.0,5.0;" x1="546.165" x2="546.165" y1="52.5938" y2="1045.375"/><rect fill="#D3DEFF" height="46.5938" rx="2.5" ry="2.5" style="stroke:#0042B3;stroke-width:0.5;" width="68.6123" x="5" y="5"/><text fill="#00134A" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="32.1699" x="23.2212" y="24.9951">Lock</text><text fill="#00134A" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="54.6123" x="12" y="41.292">(offline)</text><rect fill="#D3DEFF" height="46.5938" rx="2.5" ry="2.5" style="stroke:#0042B3;stroke-width:0.5;" width="68.6123" x="5" y="1044.375"/><text fill="#00134A" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="32.1699" x="23.2212" y="1064.3701">Lock</text><text fill="#00134A" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="54.6123" x="12" y="1080.667">(offline)</text><rect fill="#D3DEFF" height="30.2969" rx="2.5" ry="2.5" style="stroke:#0042B3;stroke-width:0.5;" width="98.1436" x="241.6719" y="21.2969"/><text fill="#00134A" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="84.1436" x="248.6719" y="41.292">Taler Wallet</text><rect fill="#D3DEFF" height="30.2969" rx="2.5" ry="2.5" style="stroke:#0042B3;stroke-width:0.5;" width="98.1436" x="241.6719" y="1044.375"/><text fill="#00134A" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="84.1436" x="248.6719" y="1064.3701">Taler Wallet</text><rect fill="#D3DEFF" height="46.5938" rx="2.5" ry="2.5" style="stroke:#0042B3;stroke-width:0.5;" width="79.96" x="507.165" y="5"/><text fill="#00134A" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="65.96" x="514.165" y="24.9951">Merchant</text><text fill="#00134A" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="59.6436" x="517.3232" y="41.292">backend</text><rect fill="#D3DEFF" height="46.5938" rx="2.5" ry="2.5" style="stroke:#0042B3;stroke-width:0.5;" width="79.96" x="507.165" y="1044.375"/><text fill="#00134A" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="65.96" x="514.165" y="1064.3701">Merchant</text><text fill="#00134A" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="59.6436" x="517.3232" y="1080.667">backend</text><rect fill="#D9E3F9" height="3" style="stroke:#D9E3F9;stroke-width:1;" width="782.3682" x="0" y="83.1602"/><line style="stroke:#586A88;stroke-width:1;" x1="0" x2="782.3682" y1="83.1602" y2="83.1602"/><line style="stroke:#586A88;stroke-width:1;" x1="0" x2="782.3682" y1="86.1602" y2="86.1602"/><rect fill="#D9E3F9" height="23.1328" style="stroke:#586A88;stroke-width:2;" width="127.1978" x="327.5852" y="72.5938"/><text fill="#00134A" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="108.6719" x="333.5852" y="88.6606">read challenge</text><polygon fill="#0042B3" points="278.7437,137.9922,288.7437,141.9922,278.7437,145.9922,282.7437,141.9922" style="stroke:#0042B3;stroke-width:1;"/><line style="stroke:#0042B3;stroke-width:1;" x1="39.3062" x2="284.7437" y1="141.9922" y2="141.9922"/><text fill="#00134A" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="9.0454" x="46.3062" y="129.3599">1</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="112.2393" x="59.3516" y="121.7935">NFC tap: door_id,</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="214.3921" x="59.3516" y="136.9263">merchant URI, challenge (nonce)</text><rect fill="#D9E3F9" height="3" style="stroke:#D9E3F9;stroke-width:1;" width="782.3682" x="0" y="170.5586"/><line style="stroke:#586A88;stroke-width:1;" x1="0" x2="782.3682" y1="170.5586" y2="170.5586"/><line style="stroke:#586A88;stroke-width:1;" x1="0" x2="782.3682" y1="173.5586" y2="173.5586"/><rect fill="#D9E3F9" height="23.1328" style="stroke:#586A88;stroke-width:2;" width="109.6655" x="336.3513" y="159.9922"/><text fill="#00134A" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="91.1396" x="342.3513" y="176.0591">create order</text><polygon fill="#0042B3" points="535.145,225.3906,545.145,229.3906,535.145,233.3906,539.145,229.3906" style="stroke:#0042B3;stroke-width:1;"/><line style="stroke:#0042B3;stroke-width:1;" x1="290.7437" x2="541.145" y1="229.3906" y2="229.3906"/><text fill="#00134A" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="9.0454" x="297.7437" y="216.7583">2</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="160.7163" x="310.7891" y="209.1919">GET /templates/$door_id</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="124.0142" x="310.7891" y="224.3247">(skipped if cached)</text><polygon fill="#0042B3" points="301.7437,254.5234,291.7437,258.5234,301.7437,262.5234,297.7437,258.5234" style="stroke:#0042B3;stroke-width:1;"/><line style="stroke:#0042B3;stroke-width:1;stroke-dasharray:2.0,2.0;" x1="295.7437" x2="546.145" y1="258.5234" y2="258.5234"/><text fill="#00134A" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="9.0454" x="307.7437" y="253.4575">3</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="106.1265" x="320.7891" y="253.4575">template details</text><polygon fill="#0042B3" points="535.145,298.7891,545.145,302.7891,535.145,306.7891,539.145,302.7891" style="stroke:#0042B3;stroke-width:1;"/><line style="stroke:#0042B3;stroke-width:1;" x1="290.7437" x2="541.145" y1="302.7891" y2="302.7891"/><text fill="#00134A" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="9.0454" x="297.7437" y="290.1567">4</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="168.7524" x="310.7891" y="282.5903">POST /templates/$door_id</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="79.606" x="310.7891" y="297.7231">{challenge}</text><polygon fill="#0042B3" points="301.7437,327.9219,291.7437,331.9219,301.7437,335.9219,297.7437,331.9219" style="stroke:#0042B3;stroke-width:1;"/><line style="stroke:#0042B3;stroke-width:1;stroke-dasharray:2.0,2.0;" x1="295.7437" x2="546.145" y1="331.9219" y2="331.9219"/><text fill="#00134A" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="9.0454" x="307.7437" y="326.856">5</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="154.0132" x="320.7891" y="326.856">{order_id, claim token}</text><polygon fill="#0042B3" points="535.145,357.0547,545.145,361.0547,535.145,365.0547,539.145,361.0547" style="stroke:#0042B3;stroke-width:1;"/><line style="stroke:#0042B3;stroke-width:1;" x1="290.7437" x2="541.145" y1="361.0547" y2="361.0547"/><text fill="#00134A" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="9.0454" x="297.7437" y="355.9888">6</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="203.3408" x="310.7891" y="355.9888">POST /orders/$ORDER_ID/claim</text><polygon fill="#0042B3" points="301.7437,386.1875,291.7437,390.1875,301.7437,394.1875,297.7437,390.1875" style="stroke:#0042B3;stroke-width:1;"/><line style="stroke:#0042B3;stroke-width:1;stroke-dasharray:2.0,2.0;" x1="295.7437" x2="546.145" y1="390.1875" y2="390.1875"/><text fill="#00134A" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="9.0454" x="307.7437" y="385.1216">7</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="159.1484" x="320.7891" y="385.1216">contract terms (choices)</text><line style="stroke:#0042B3;stroke-width:1;" x1="290.7437" x2="332.7437" y1="434.4531" y2="434.4531"/><line style="stroke:#0042B3;stroke-width:1;" x1="332.7437" x2="332.7437" y1="434.4531" y2="447.4531"/><line style="stroke:#0042B3;stroke-width:1;" x1="291.7437" x2="332.7437" y1="447.4531" y2="447.4531"/><polygon fill="#0042B3" points="301.7437,443.4531,291.7437,447.4531,301.7437,451.4531,297.7437,447.4531" style="stroke:#0042B3;stroke-width:1;"/><text fill="#00134A" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="9.0454" x="297.7437" y="421.8208">8</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="150.2046" x="310.7891" y="414.2544">select choice matching</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="81.1484" x="310.7891" y="429.3872">a held token</text><rect fill="#D9E3F9" height="3" style="stroke:#D9E3F9;stroke-width:1;" width="782.3682" x="0" y="476.0195"/><line style="stroke:#586A88;stroke-width:1;" x1="0" x2="782.3682" y1="476.0195" y2="476.0195"/><line style="stroke:#586A88;stroke-width:1;" x1="0" x2="782.3682" y1="479.0195" y2="479.0195"/><rect fill="#D9E3F9" height="23.1328" style="stroke:#586A88;stroke-width:2;" width="163.5889" x="309.3896" y="465.4531"/><text fill="#00134A" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="145.063" x="315.3896" y="481.52">pay (redeem token)</text><polygon fill="#0042B3" points="535.145,561.1172,545.145,565.1172,535.145,569.1172,539.145,565.1172" style="stroke:#0042B3;stroke-width:1;"/><line style="stroke:#0042B3;stroke-width:1;" x1="290.7437" x2="541.145" y1="565.1172" y2="565.1172"/><text fill="#00134A" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="9.0454" x="297.7437" y="537.3521">9</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="192.2515" x="310.7891" y="514.6528">POST /orders/$ORDER_ID/pay</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="219.356" x="310.7891" y="529.7856">{coins: [], tokens: [TokenUseSig],</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="180.0068" x="310.7891" y="544.9185">wallet_data: {choice_index,</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="207.3716" x="310.7891" y="560.0513">tokens_evs: [TokenEnvelope]}}</text><line style="stroke:#0042B3;stroke-width:1;" x1="547.145" x2="589.145" y1="624.5156" y2="624.5156"/><line style="stroke:#0042B3;stroke-width:1;" x1="589.145" x2="589.145" y1="624.5156" y2="637.5156"/><line style="stroke:#0042B3;stroke-width:1;" x1="548.145" x2="589.145" y1="637.5156" y2="637.5156"/><polygon fill="#0042B3" points="558.145,633.5156,548.145,637.5156,558.145,641.5156,554.145,637.5156" style="stroke:#0042B3;stroke-width:1;"/><text fill="#00134A" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="18.0908" x="554.145" y="604.3169">10</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="138.6455" x="576.2358" y="589.1841">verify token: h_issue,</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="199.1323" x="576.2358" y="604.3169">ub_sig, token_sig, key validity,</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="172.3833" x="576.2358" y="619.4497">not spent, family in choice</text><line style="stroke:#0042B3;stroke-width:1;" x1="547.145" x2="589.145" y1="681.7813" y2="681.7813"/><line style="stroke:#0042B3;stroke-width:1;" x1="589.145" x2="589.145" y1="681.7813" y2="694.7813"/><line style="stroke:#0042B3;stroke-width:1;" x1="548.145" x2="589.145" y1="694.7813" y2="694.7813"/><polygon fill="#0042B3" points="558.145,690.7813,548.145,694.7813,558.145,698.7813,554.145,694.7813" style="stroke:#0042B3;stroke-width:1;"/><text fill="#00134A" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="18.0908" x="554.145" y="669.1489">11</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="173.3672" x="576.2358" y="661.5825">compute pos_confirmation</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="186.2974" x="576.2358" y="676.7153">(sign challenge / TOTP code)</text><line style="stroke:#0042B3;stroke-width:1;" x1="547.145" x2="589.145" y1="739.0469" y2="739.0469"/><line style="stroke:#0042B3;stroke-width:1;" x1="589.145" x2="589.145" y1="739.0469" y2="752.0469"/><line style="stroke:#0042B3;stroke-width:1;" x1="548.145" x2="589.145" y1="752.0469" y2="752.0469"/><polygon fill="#0042B3" points="558.145,748.0469,548.145,752.0469,558.145,756.0469,554.145,752.0469" style="stroke:#0042B3;stroke-width:1;"/><text fill="#00134A" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="18.0908" x="554.145" y="726.4146">12</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="181.6953" x="576.2358" y="718.8481">blind-sign replacement with</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="175.0811" x="576.2358" y="733.981">the input token's issue key</text><polygon fill="#0042B3" points="301.7437,792.3125,291.7437,796.3125,301.7437,800.3125,297.7437,796.3125" style="stroke:#0042B3;stroke-width:1;"/><line style="stroke:#0042B3;stroke-width:1;stroke-dasharray:2.0,2.0;" x1="295.7437" x2="546.145" y1="796.3125" y2="796.3125"/><text fill="#00134A" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="18.0908" x="307.7437" y="783.6802">13</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="151.1885" x="329.8345" y="776.1138">{sig, pos_confirmation,</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="76.9971" x="329.8345" y="791.2466">token_sigs}</text><rect fill="#D9E3F9" height="3" style="stroke:#D9E3F9;stroke-width:1;" width="782.3682" x="0" y="824.8789"/><line style="stroke:#586A88;stroke-width:1;" x1="0" x2="782.3682" y1="824.8789" y2="824.8789"/><line style="stroke:#586A88;stroke-width:1;" x1="0" x2="782.3682" y1="827.8789" y2="827.8789"/><rect fill="#D9E3F9" height="23.1328" style="stroke:#586A88;stroke-width:2;" width="129.0195" x="326.6743" y="814.3125"/><text fill="#00134A" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="110.4937" x="332.6743" y="830.3794">present to lock</text><polygon fill="#0042B3" points="50.3062,864.5781,40.3062,868.5781,50.3062,872.5781,46.3062,868.5781" style="stroke:#0042B3;stroke-width:1;"/><line style="stroke:#0042B3;stroke-width:1;" x1="44.3062" x2="289.7437" y1="868.5781" y2="868.5781"/><text fill="#00134A" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="18.0908" x="56.3062" y="863.5122">14</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="146.6753" x="78.397" y="863.5122">NFC: pos_confirmation</text><line style="stroke:#0042B3;stroke-width:1;" x1="39.3062" x2="81.3062" y1="927.9766" y2="927.9766"/><line style="stroke:#0042B3;stroke-width:1;" x1="81.3062" x2="81.3062" y1="927.9766" y2="940.9766"/><line style="stroke:#0042B3;stroke-width:1;" x1="40.3062" x2="81.3062" y1="940.9766" y2="940.9766"/><polygon fill="#0042B3" points="50.3062,936.9766,40.3062,940.9766,50.3062,944.9766,46.3062,940.9766" style="stroke:#0042B3;stroke-width:1;"/><text fill="#00134A" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="18.0908" x="46.3062" y="907.7778">15</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="166.6514" x="68.397" y="892.645">verify signature over own</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="144.8535" x="68.397" y="907.7778">nonce (or TOTP code),</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="126.2104" x="68.397" y="922.9106">consume challenge</text><polygon fill="#0042B3" points="278.7437,966.1094,288.7437,970.1094,278.7437,974.1094,282.7437,970.1094" style="stroke:#0042B3;stroke-width:1;"/><line style="stroke:#0042B3;stroke-width:1;stroke-dasharray:2.0,2.0;" x1="39.3062" x2="284.7437" y1="970.1094" y2="970.1094"/><text fill="#00134A" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="18.0908" x="46.3062" y="965.0435">16</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="99.0869" x="68.397" y="965.0435">access granted</text><line style="stroke:#0042B3;stroke-width:1;" x1="290.7437" x2="332.7437" y1="1014.375" y2="1014.375"/><line style="stroke:#0042B3;stroke-width:1;" x1="332.7437" x2="332.7437" y1="1014.375" y2="1027.375"/><line style="stroke:#0042B3;stroke-width:1;" x1="291.7437" x2="332.7437" y1="1027.375" y2="1027.375"/><polygon fill="#0042B3" points="301.7437,1023.375,291.7437,1027.375,301.7437,1031.375,297.7437,1027.375" style="stroke:#0042B3;stroke-width:1;"/><text fill="#00134A" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="18.0908" x="297.7437" y="1001.7427">17</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="173.3989" x="319.8345" y="994.1763">(async) unblind token_sigs</text><text fill="#00134A" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="152.2993" x="319.8345" y="1009.3091">into replacement token</text><!--SRC=[VLHRRzCm57xFhpXCI6jGBu-8IkM53ZG9wDHrue5EaMkV9buTExATZcZgVz-natKjBBmvplakv_EnBs6ntIgf4OGn5XZdw1niQJcVmwUFCBYnvW6vXrjqhCHqd5p24dFKQ9b7U9I-cC83spCOFJ0BbMBQrwKQXu-HT_iSN0IEFemhsa_UISrLBH0yKsX7pZSAnpByORKtkYutQ9EaOjPBBYiYWullXk_MUc1Qd-a5C0UAziwhLe4FVZ6bqCUInxWyB_g1bXUqMkiDuplK8bQMtMwIp6PWaGcWJmBh764sIu8MZ3vtX325dr-_aFrg6YFBf1YkzGi5t2slXoVmWJQQOngPEL5JPCOACagy7Hyn7z5J-7QrWed7aeBqw2RlEmdgt-raLQ40kGNEU84YJOwuqQcz5pG8z4mgzxRGpUAsH-dfQF_Ge_0KUmYT0rTCbk0DXNdudr14aCfYERzQPjVpIGJsy7EZlMKqT1vjwM302oDfBjCJWMEjGnN6ios1adbUI9slDOC2bMYTnVWhri30ea3i_AQzXz1ZcHX2EaPgDuNVzyEM9gnNON7dy5RczpGDBMacc6SKLcijarhW7_hPWZBS7u5NUe_AL7X_E0typD4UhTmshU0KYamwLoEHrPlCoRnpqYvtsC2UAIcaRwX26m-kGks7i6MbL0r8tQNL9yPDMTKqFvLn6Ht5LbgALHeTXb3c-cIy9x1Qh6u8833jOzlGhHMZ2BH8myQn93VnvQ0m2YG_fDPsSEaWTXQQw9kzsEJVrbvo3H6uGtlU5bqGyYQ-5kU77NVYJPx-mtMyy5rHbtteWFdQqWsc7J2FEeHBjni6z5g-va1MYCtL9Ru6rL6Uzj6zjBcb3b6yDTa3vXhDKwXrZF3rZDrQIshtBCxuyna0]--></g></svg>