diff options
-rw-r--r-- | docs/double_ratchet.svg | 1007 |
1 files changed, 1007 insertions, 0 deletions
diff --git a/docs/double_ratchet.svg b/docs/double_ratchet.svg new file mode 100644 index 0000000..26ee8c3 --- /dev/null +++ b/docs/double_ratchet.svg @@ -0,0 +1,1007 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="892.75781" + height="561" + id="svg2" + version="1.1" + inkscape:version="0.48.4 r9939" + sodipodi:docname="Axolotl.svg"> + <defs + id="defs4"> + <marker + inkscape:stockid="Arrow2Lend" + orient="auto" + refY="0" + refX="0" + id="Arrow2Lend" + style="overflow:visible"> + <path + id="path4029" + style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + 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" + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + inkscape:connector-curvature="0" /> + </marker> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.98994949" + inkscape:cx="630.66152" + inkscape:cy="166.30515" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="1855" + inkscape:window-height="1056" + inkscape:window-x="65" + inkscape:window-y="24" + inkscape:window-maximized="1" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0.5,0.5)"> + <g + id="g2991"> + <rect + ry="8" + rx="8" + y="0" + x="0" + height="48" + width="256" + id="rect2985" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + <text + sodipodi:linespacing="125%" + id="text2987" + y="32" + x="8" + style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + style="font-size:24px" + y="32" + x="8" + id="tspan2989" + sodipodi:role="line">Initial Shared Secret</tspan></text> + </g> + <g + id="g4701" + transform="translate(192,100)"> + <g + id="hkdf_chain_keys"> + <rect + ry="8" + rx="8" + y="0" + x="0" + height="80" + width="256" + id="rect3023" + style="fill:none;stroke:#000000" /> + <g + id="g3031"> + <rect + style="fill:none;stroke:#000000" + id="rect3019" + width="64" + height="24" + x="0" + y="0" + rx="8" + ry="8" /> + <text + xml:space="preserve" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="32" + y="18" + id="text3025" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3027" + x="32" + y="18">Secret</tspan></text> + </g> + <text + sodipodi:linespacing="125%" + id="text3052" + y="48" + x="128" + style="font-size:24px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="48" + x="128" + id="tspan3054" + sodipodi:role="line">HKDF</tspan></text> + <g + transform="translate(0,56)" + id="g3073"> + <rect + ry="8" + rx="8" + y="0" + x="0" + height="24" + width="128" + id="rect3075" + style="fill:none;stroke:#000000" /> + <text + sodipodi:linespacing="125%" + id="text3077" + y="18" + x="64" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="18" + x="64" + id="tspan3079" + sodipodi:role="line">Root Key</tspan></text> + </g> + <g + id="g3081" + transform="translate(128,56)"> + <rect + style="fill:none;stroke:#000000" + id="rect3083" + width="128" + height="24" + x="0" + y="0" + rx="8" + ry="8" /> + <text + xml:space="preserve" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="64" + y="18" + id="text3085" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3087" + x="64" + y="18">Chain Key</tspan></text> + </g> + <g + id="g4802" + transform="translate(192,0)"> + <rect + style="fill:none;stroke:#000000" + id="rect4804" + width="64" + height="24" + x="0" + y="0" + rx="8" + ry="8" /> + <text + xml:space="preserve" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="32" + y="18" + id="text4806" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4808" + x="32" + y="18">Info</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" + d="m 32,-60 0,56" + id="path4810" + inkscape:connector-curvature="0" /> + <text + sodipodi:linespacing="125%" + id="text4812" + y="-64" + x="32" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="-64" + x="32" + id="tspan4814" + sodipodi:role="line">"OLM_ROOT"</tspan></text> + </g> + <g + transform="translate(64,0)" + id="g4830"> + <rect + ry="8" + rx="8" + y="0" + x="0" + height="24" + width="64" + id="rect4832" + style="fill:none;stroke:#000000" /> + <text + sodipodi:linespacing="125%" + id="text4834" + y="18" + x="32" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="18" + x="32" + id="tspan4836" + sodipodi:role="line">Salt</tspan></text> + <path + inkscape:connector-curvature="0" + id="path4838" + d="m 32,-28 0,24" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" /> + <text + xml:space="preserve" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="32" + y="-32" + id="text4840" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4842" + x="32" + y="-32">""</tspan></text> + </g> + </g> + <g + id="hmac_chain_key" + transform="translate(128,160)"> + <rect + style="fill:none;stroke:#000000" + id="rect3147" + width="128" + height="80" + x="0" + y="0" + rx="8" + ry="8" /> + <g + id="g3149"> + <rect + ry="8" + rx="8" + y="0" + x="0" + height="24" + width="64" + id="rect3151" + style="fill:none;stroke:#000000" /> + <text + sodipodi:linespacing="125%" + id="text3153" + y="18" + x="32" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="18" + x="32" + id="tspan3155" + sodipodi:role="line">Key</tspan></text> + </g> + <g + id="g3157" + transform="translate(64,0)"> + <rect + style="fill:none;stroke:#000000" + id="rect3159" + width="64" + height="24" + x="0" + y="0" + rx="8" + ry="8" /> + <text + xml:space="preserve" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="32" + y="18" + id="text3161" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3163" + x="32" + y="18">Data</tspan></text> + </g> + <text + xml:space="preserve" + style="font-size:24px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="64" + y="48" + id="text3173" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3175" + x="64" + y="48">HMAC</tspan></text> + <g + transform="translate(0,56)" + id="g3185"> + <rect + ry="8" + rx="8" + y="0" + x="0" + height="24" + width="128" + id="rect3187" + style="fill:none;stroke:#000000" /> + <text + sodipodi:linespacing="125%" + id="text3189" + y="18" + x="64" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="18" + x="64" + id="tspan3191" + sodipodi:role="line">Chain Key</tspan></text> + </g> + <text + sodipodi:linespacing="125%" + id="text3225" + y="-32" + x="96" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="-32" + x="96" + id="tspan3227" + sodipodi:role="line">"\x02"</tspan></text> + <path + inkscape:connector-curvature="0" + id="path3231" + d="m 96,-28 0,24" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" /> + <path + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" + d="m 32,-76 0,72" + id="path4639" + inkscape:connector-curvature="0" /> + </g> + <g + transform="translate(320,56)" + id="hmac_message_key"> + <path + inkscape:connector-curvature="0" + id="path4641" + d="m -60,12 56,0" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" /> + <text + xml:space="preserve" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="96" + y="-32" + id="text4633" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4635" + x="96" + y="-32">"\x01"</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" + d="m 96,-28 0,24" + id="path4630" + inkscape:connector-curvature="0" /> + <rect + ry="8" + rx="8" + y="0" + x="0" + height="80" + width="128" + id="rect3195" + style="fill:none;stroke:#000000" /> + <g + id="g3197"> + <rect + style="fill:none;stroke:#000000" + id="rect3199" + width="64" + height="24" + x="0" + y="0" + rx="8" + ry="8" /> + <text + xml:space="preserve" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="32" + y="18" + id="text3201" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3203" + x="32" + y="18">Key</tspan></text> + </g> + <g + transform="translate(64,0)" + id="g3205"> + <rect + ry="8" + rx="8" + y="0" + x="0" + height="24" + width="64" + id="rect3207" + style="fill:none;stroke:#000000" /> + <text + sodipodi:linespacing="125%" + id="text3209" + y="18" + x="32" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="18" + x="32" + id="tspan3211" + sodipodi:role="line">Data</tspan></text> + </g> + <text + sodipodi:linespacing="125%" + id="text3213" + y="48" + x="64" + style="font-size:24px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="48" + x="64" + id="tspan3215" + sodipodi:role="line">HMAC</tspan></text> + <g + id="g3217" + transform="translate(0,56)"> + <rect + style="fill:none;stroke:#000000" + id="rect3219" + width="128" + height="24" + x="0" + y="0" + rx="8" + ry="8" /> + <text + xml:space="preserve" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="64" + y="18" + id="text3221" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3223" + x="64" + y="18">Message Key</tspan></text> + </g> + </g> + <g + transform="translate(320,168)" + id="hkdf_message_keys"> + <rect + style="fill:none;stroke:#000000" + id="rect3091" + width="320" + height="80" + x="0" + y="0" + rx="8" + ry="8" /> + <g + id="g3093"> + <rect + ry="8" + rx="8" + y="0" + x="0" + height="24" + width="128" + id="rect3095" + style="fill:none;stroke:#000000" /> + <text + sodipodi:linespacing="125%" + id="text3097" + y="18" + x="64" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="18" + x="64" + id="tspan3099" + sodipodi:role="line">Secret</tspan></text> + <path + inkscape:connector-curvature="0" + id="path4644" + d="m 64,-28 0,24" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" /> + </g> + <g + id="g3101" + transform="translate(128,0)"> + <rect + style="fill:none;stroke:#000000" + id="rect3103" + width="64" + height="24" + x="0" + y="0" + rx="8" + ry="8" /> + <text + xml:space="preserve" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="32" + y="18" + id="text3105" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3107" + x="32" + y="18">Salt</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" + d="m 32,-28 0,24" + id="path4660" + inkscape:connector-curvature="0" /> + <text + sodipodi:linespacing="125%" + id="text3225-6" + y="-32" + x="32" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="-32" + x="32" + id="tspan3227-8" + sodipodi:role="line">""</tspan></text> + </g> + <g + transform="translate(256,0)" + id="g3109"> + <rect + ry="8" + rx="8" + y="0" + x="0" + height="24" + width="64" + id="rect3111" + style="fill:none;stroke:#000000" /> + <text + sodipodi:linespacing="125%" + id="text3113" + y="18" + x="32" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="18" + x="32" + id="tspan3115" + sodipodi:role="line">Info</tspan></text> + <path + inkscape:connector-curvature="0" + id="path4664" + d="m 32,-60 0,56" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" /> + <text + xml:space="preserve" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="32" + y="-64" + id="text4693" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4695" + x="32" + y="-64">"OLM_KEYS"</tspan></text> + </g> + <text + xml:space="preserve" + style="font-size:24px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="160" + y="48" + id="text3117" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3119" + x="160" + y="48">HKDF</tspan></text> + <g + id="g3121" + transform="translate(0,56)"> + <rect + style="fill:none;stroke:#000000" + id="rect3123" + width="128" + height="24" + x="0" + y="0" + rx="8" + ry="8" /> + <text + xml:space="preserve" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="64" + y="18" + id="text3125" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3127" + x="64" + y="18">Cipher Key</tspan></text> + </g> + <g + transform="translate(128,56)" + id="g3129"> + <rect + ry="8" + rx="8" + y="0" + x="0" + height="24" + width="128" + id="rect3131" + style="fill:none;stroke:#000000" /> + <text + sodipodi:linespacing="125%" + id="text3133" + y="18" + x="64" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="18" + x="64" + id="tspan3135" + sodipodi:role="line">Mac Key</tspan></text> + </g> + <g + id="g3137" + transform="translate(256,56)"> + <rect + style="fill:none;stroke:#000000" + id="rect3139" + width="64" + height="24" + x="0" + y="0" + rx="8" + ry="8" /> + <text + xml:space="preserve" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="32" + y="18" + id="text3141" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan3143" + x="32" + y="18">IV</tspan></text> + </g> + </g> + <path + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" + d="m 32,-48 0,44" + id="path5157" + inkscape:connector-curvature="0" /> + </g> + <g + id="g4858" + transform="translate(192,480)"> + <g + id="g4860"> + <rect + style="fill:none;stroke:#000000" + id="rect4862" + width="256" + height="80" + x="0" + y="0" + rx="8" + ry="8" /> + <g + id="g4864"> + <rect + ry="8" + rx="8" + y="0" + x="0" + height="24" + width="64" + id="rect4866" + style="fill:none;stroke:#000000" /> + <text + sodipodi:linespacing="125%" + id="text4868" + y="18" + x="32" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="18" + x="32" + id="tspan4870" + sodipodi:role="line">Secret</tspan></text> + </g> + <text + xml:space="preserve" + style="font-size:24px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="128" + y="48" + id="text4872" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4874" + x="128" + y="48">HKDF</tspan></text> + <g + id="g4876" + transform="translate(0,56)"> + <rect + style="fill:none;stroke:#000000" + id="rect4878" + width="128" + height="24" + x="0" + y="0" + rx="8" + ry="8" /> + <text + xml:space="preserve" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="64" + y="18" + id="text4880" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4882" + x="64" + y="18">Root Key</tspan></text> + </g> + <g + transform="translate(128,56)" + id="g4884"> + <rect + ry="8" + rx="8" + y="0" + x="0" + height="24" + width="128" + id="rect4886" + style="fill:none;stroke:#000000" /> + <text + sodipodi:linespacing="125%" + id="text4888" + y="18" + x="64" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="18" + x="64" + id="tspan4890" + sodipodi:role="line">Chain Key</tspan></text> + </g> + <g + transform="translate(192,0)" + id="g4892"> + <rect + ry="8" + rx="8" + y="0" + x="0" + height="24" + width="64" + id="rect4894" + style="fill:none;stroke:#000000" /> + <text + sodipodi:linespacing="125%" + id="text4896" + y="18" + x="32" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="18" + x="32" + id="tspan4898" + sodipodi:role="line">Info</tspan></text> + <path + inkscape:connector-curvature="0" + id="path4900" + d="m 32,-60 0,56" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" /> + <text + xml:space="preserve" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="32" + y="-64" + id="text4902" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4904" + x="32" + y="-64">"OLM_RATCHET"</tspan></text> + </g> + <g + id="g4906" + transform="translate(64,0)"> + <rect + style="fill:none;stroke:#000000" + id="rect4908" + width="64" + height="24" + x="0" + y="0" + rx="8" + ry="8" /> + <text + xml:space="preserve" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="32" + y="18" + id="text4910" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4912" + x="32" + y="18">Salt</tspan></text> + <path + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" + d="M 32,-296 32,-4" + id="path5070" + inkscape:connector-curvature="0" /> + </g> + <path + inkscape:connector-curvature="0" + id="path5154" + d="m 32,-96 0,92" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)" /> + </g> + </g> + <text + xml:space="preserve" + style="font-size:24px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="20" + y="150" + id="text5162" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan5164" + x="20" + y="140">Alice's Chain</tspan></text> + <text + xml:space="preserve" + style="font-size:24px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="20" + y="530" + id="text5166" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan5168" + x="20" + y="528.07648">Bob's Chain</tspan></text> + </g> + <g + id="g5074" + transform="translate(0.5,300.5)"> + <rect + style="fill:none;stroke:#000000" + id="rect5076" + width="256" + height="80" + x="0" + y="0" + rx="8" + ry="8" /> + <g + id="g5078"> + <rect + ry="8" + rx="8" + y="0" + x="0" + height="24" + width="128" + id="rect5080" + style="fill:none;stroke:#000000" /> + <text + sodipodi:linespacing="125%" + id="text5082" + y="18" + x="64" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="18" + x="64" + id="tspan5084" + sodipodi:role="line">Bob's Key</tspan></text> + </g> + <g + id="g5086" + transform="translate(128,0)"> + <rect + style="fill:none;stroke:#000000" + id="rect5088" + width="128" + height="24" + x="0" + y="0" + rx="8" + ry="8" /> + <text + xml:space="preserve" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="64" + y="18" + id="text5090" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan5092" + x="64" + y="18">Alice's Key</tspan></text> + </g> + <text + xml:space="preserve" + style="font-size:24px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + x="128" + y="48" + id="text5094" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan5096" + x="128" + y="48">ECDH</tspan></text> + <g + transform="translate(0,56)" + id="g5098"> + <rect + ry="8" + rx="8" + y="0" + x="0" + height="24" + width="256" + id="rect5100" + style="fill:none;stroke:#000000" /> + <text + sodipodi:linespacing="125%" + id="text5102" + y="18" + x="128" + style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" + xml:space="preserve"><tspan + y="18" + x="128" + id="tspan5104" + sodipodi:role="line">Shared Secret</tspan></text> + </g> + </g> +</svg> |