writeups/2023/dcq/res/sha-diagram.svg

121 lines
16 KiB
XML
Raw Normal View History

2023-06-05 03:24:16 +00:00
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="215" height="107.6875" viewBox="0 0 215 107.6875">
<defs>
<g>
<g id="glyph-0-0">
<path d="M 1.125 0 L 1.125 -8.5625 L 6.0625 -8.5625 L 6.0625 0 Z M 1.734375 -0.609375 L 5.453125 -0.609375 L 5.453125 -7.953125 L 1.734375 -7.953125 Z M 1.734375 -0.609375 "/>
</g>
<g id="glyph-0-1">
<path d="M 3.296875 0.125 C 2.492188 0.125 1.851562 -0.148438 1.375 -0.703125 C 0.894531 -1.265625 0.65625 -2.097656 0.65625 -3.203125 C 0.65625 -4.304688 0.894531 -5.140625 1.375 -5.703125 C 1.863281 -6.265625 2.507812 -6.546875 3.3125 -6.546875 C 3.8125 -6.546875 4.21875 -6.453125 4.53125 -6.265625 C 4.84375 -6.085938 5.097656 -5.867188 5.296875 -5.609375 L 5.375 -5.609375 C 5.363281 -5.710938 5.347656 -5.863281 5.328125 -6.0625 C 5.304688 -6.269531 5.296875 -6.429688 5.296875 -6.546875 L 5.296875 -9.125 L 6.359375 -9.125 L 6.359375 0 L 5.515625 0 L 5.359375 -0.859375 L 5.296875 -0.859375 C 5.109375 -0.585938 4.851562 -0.351562 4.53125 -0.15625 C 4.21875 0.03125 3.804688 0.125 3.296875 0.125 Z M 3.46875 -0.75 C 4.144531 -0.75 4.617188 -0.9375 4.890625 -1.3125 C 5.171875 -1.6875 5.3125 -2.25 5.3125 -3 L 5.3125 -3.1875 C 5.3125 -3.988281 5.179688 -4.601562 4.921875 -5.03125 C 4.660156 -5.457031 4.171875 -5.671875 3.453125 -5.671875 C 2.890625 -5.671875 2.460938 -5.441406 2.171875 -4.984375 C 1.890625 -4.535156 1.75 -3.9375 1.75 -3.1875 C 1.75 -2.414062 1.890625 -1.816406 2.171875 -1.390625 C 2.460938 -0.960938 2.894531 -0.75 3.46875 -0.75 Z M 3.46875 -0.75 "/>
</g>
<g id="glyph-0-2">
<path d="M 3.453125 -6.546875 C 4.234375 -6.546875 4.8125 -6.375 5.1875 -6.03125 C 5.570312 -5.6875 5.765625 -5.132812 5.765625 -4.375 L 5.765625 0 L 4.984375 0 L 4.78125 -0.90625 L 4.734375 -0.90625 C 4.453125 -0.5625 4.15625 -0.300781 3.84375 -0.125 C 3.539062 0.0390625 3.117188 0.125 2.578125 0.125 C 1.992188 0.125 1.507812 -0.0234375 1.125 -0.328125 C 0.738281 -0.640625 0.546875 -1.125 0.546875 -1.78125 C 0.546875 -2.425781 0.796875 -2.921875 1.296875 -3.265625 C 1.804688 -3.617188 2.585938 -3.8125 3.640625 -3.84375 L 4.734375 -3.875 L 4.734375 -4.265625 C 4.734375 -4.796875 4.613281 -5.164062 4.375 -5.375 C 4.144531 -5.582031 3.816406 -5.6875 3.390625 -5.6875 C 3.054688 -5.6875 2.738281 -5.632812 2.4375 -5.53125 C 2.132812 -5.4375 1.847656 -5.328125 1.578125 -5.203125 L 1.265625 -5.984375 C 1.546875 -6.140625 1.875 -6.269531 2.25 -6.375 C 2.632812 -6.488281 3.035156 -6.546875 3.453125 -6.546875 Z M 3.765625 -3.109375 C 2.960938 -3.078125 2.40625 -2.945312 2.09375 -2.71875 C 1.789062 -2.5 1.640625 -2.1875 1.640625 -1.78125 C 1.640625 -1.414062 1.75 -1.148438 1.96875 -0.984375 C 2.1875 -0.816406 2.46875 -0.734375 2.8125 -0.734375 C 3.363281 -0.734375 3.816406 -0.878906 4.171875 -1.171875 C 4.535156 -1.472656 4.71875 -1.9375 4.71875 -2.5625 L 4.71875 -3.140625 Z M 3.765625 -3.109375 "/>
</g>
<g id="glyph-0-3">
<path d="M 3.171875 -0.75 C 3.328125 -0.75 3.488281 -0.757812 3.65625 -0.78125 C 3.820312 -0.8125 3.957031 -0.84375 4.0625 -0.875 L 4.0625 -0.078125 C 3.957031 -0.015625 3.800781 0.03125 3.59375 0.0625 C 3.382812 0.101562 3.179688 0.125 2.984375 0.125 C 2.648438 0.125 2.335938 0.0664062 2.046875 -0.046875 C 1.765625 -0.171875 1.535156 -0.375 1.359375 -0.65625 C 1.191406 -0.945312 1.109375 -1.351562 1.109375 -1.875 L 1.109375 -5.609375 L 0.1875 -5.609375 L 0.1875 -6.125 L 1.109375 -6.546875 L 1.53125 -7.90625 L 2.15625 -7.90625 L 2.15625 -6.4375 L 4.015625 -6.4375 L 4.015625 -5.609375 L 2.15625 -5.609375 L 2.15625 -1.890625 C 2.15625 -1.503906 2.25 -1.21875 2.4375 -1.03125 C 2.625 -0.84375 2.867188 -0.75 3.171875 -0.75 Z M 3.171875 -0.75 "/>
</g>
<g id="glyph-0-4">
<path d="M 4.078125 -6.546875 C 4.867188 -6.546875 5.503906 -6.269531 5.984375 -5.71875 C 6.472656 -5.164062 6.71875 -4.335938 6.71875 -3.234375 C 6.71875 -2.128906 6.472656 -1.289062 5.984375 -0.71875 C 5.503906 -0.15625 4.863281 0.125 4.0625 0.125 C 3.570312 0.125 3.164062 0.03125 2.84375 -0.15625 C 2.519531 -0.34375 2.265625 -0.5625 2.078125 -0.8125 L 2 -0.8125 C 2.019531 -0.675781 2.035156 -0.503906 2.046875 -0.296875 C 2.066406 -0.0859375 2.078125 0.0859375 2.078125 0.234375 L 2.078125 2.875 L 1.015625 2.875 L 1.015625 -6.4375 L 1.890625 -6.4375 L 2.03125 -5.5625 L 2.078125 -5.5625 C 2.265625 -5.832031 2.515625 -6.0625 2.828125 -6.25 C 3.140625 -6.445312 3.554688 -6.546875 4.078125 -6.546875 Z M 3.890625 -5.65625 C 3.234375 -5.65625 2.769531 -5.472656 2.5 -5.109375 C 2.226562 -4.742188 2.085938 -4.1875 2.078125 -3.4375 L 2.078125 -3.234375 C 2.078125 -2.441406 2.207031 -1.828125 2.46875 -1.390625 C 2.726562 -0.960938 3.207031 -0.75 3.90625 -0.75 C 4.300781 -0.75 4.625 -0.859375 4.875 -1.078125 C 5.125 -1.296875 5.3125 -1.585938 5.4375 -1.953125 C 5.5625 -2.328125 5.625 -2.753906 5.625 -3.234375 C 5.625 -3.972656 5.484375 -4.5625 5.203125 -5 C 4.921875 -5.4375 4.484375 -5.65625 3.890625 -5.65625 Z M 3.890625 -5.65625 "/>
</g>
<g id="glyph-0-5">
<path d="M 1.5625 -8.84375 C 1.71875 -8.84375 1.859375 -8.785156 1.984375 -8.671875 C 2.109375 -8.566406 2.171875 -8.398438 2.171875 -8.171875 C 2.171875 -7.953125 2.109375 -7.785156 1.984375 -7.671875 C 1.859375 -7.554688 1.71875 -7.5 1.5625 -7.5 C 1.382812 -7.5 1.234375 -7.554688 1.109375 -7.671875 C 0.992188 -7.785156 0.9375 -7.953125 0.9375 -8.171875 C 0.9375 -8.398438 0.992188 -8.566406 1.109375 -8.671875 C 1.234375 -8.785156 1.382812 -8.84375 1.5625 -8.84375 Z M 2.078125 -6.4375 L 2.078125 0 L 1.015625 0 L 1.015625 -6.4375 Z M 2.078125 -6.4375 "/>
</g>
<g id="glyph-0-6">
<path d="M 4.109375 -6.546875 C 4.878906 -6.546875 5.457031 -6.359375 5.84375 -5.984375 C 6.238281 -5.617188 6.4375 -5.019531 6.4375 -4.1875 L 6.4375 0 L 5.40625 0 L 5.40625 -4.109375 C 5.40625 -5.140625 4.921875 -5.65625 3.953125 -5.65625 C 3.242188 -5.65625 2.753906 -5.457031 2.484375 -5.0625 C 2.210938 -4.664062 2.078125 -4.09375 2.078125 -3.34375 L 2.078125 0 L 1.015625 0 L 1.015625 -6.4375 L 1.875 -6.4375 L 2.03125 -5.5625 L 2.09375 -5.5625 C 2.300781 -5.894531 2.585938 -6.140625 2.953125 -6.296875 C 3.316406 -6.460938 3.703125 -6.546875 4.109375 -6.546875 Z M 4.109375 -6.546875 "/>
</g>
<g id="glyph-0-7">
<path d="M 3.296875 -6.546875 C 3.722656 -6.546875 4.101562 -6.46875 4.4375 -6.3125 C 4.78125 -6.15625 5.070312 -5.910156 5.3125 -5.578125 L 5.375 -5.578125 L 5.515625 -6.4375 L 6.359375 -6.4375 L 6.359375 0.109375 C 6.359375 1.023438 6.125 1.710938 5.65625 2.171875 C 5.1875 2.640625 4.460938 2.875 3.484375 2.875 C 2.535156 2.875 1.757812 2.738281 1.15625 2.46875 L 1.15625 1.5 C 1.789062 1.832031 2.585938 2 3.546875 2 C 4.097656 2 4.53125 1.835938 4.84375 1.515625 C 5.15625 1.191406 5.3125 0.75 5.3125 0.1875 L 5.3125 -0.0625 C 5.3125 -0.15625 5.316406 -0.289062 5.328125 -0.46875 C 5.335938 -0.65625 5.347656 -0.785156 5.359375 -0.859375 L 5.296875 -0.859375 C 4.867188 -0.203125 4.207031 0.125 3.3125 0.125 C 2.476562 0.125 1.828125 -0.164062 1.359375 -0.75 C 0.890625 -1.332031 0.65625 -2.148438 0.65625 -3.203125 C 0.65625 -4.222656 0.890625 -5.035156 1.359375 -5.640625 C 1.828125 -6.242188 2.472656 -6.546875 3.296875 -6.546875 Z M 3.4375 -5.65625 C 2.90625 -5.65625 2.488281 -5.441406 2.1875 -5.015625 C 1.894531 -4.585938 1.75 -3.976562 1.75 -3.1875 C 1.75 -2.394531 1.894531 -1.789062 2.1875 -1.375 C 2.476562 -0.957031 2.90625 -0.75 3.46875 -0.75 C 4.113281 -0.75 4.582031 -0.921875 4.875 -1.265625 C 5.175781 -1.609375 5.328125 -2.171875 5.328125 -2.953125 L 5.328125 -3.203125 C 5.328125 -4.085938 5.175781 -4.71875 4.875 -5.09375 C 4.570312 -5.46875 4.09375 -5.65625 3.4375 -5.65625 Z M 3.4375 -5.65625 "/>
</g>
<g id="glyph-0-8">
</g>
<g id="glyph-0-9">
<path d="M 2.078125 0 L 1.015625 0 L 1.015625 -9.125 L 2.078125 -9.125 Z M 2.078125 0 "/>
</g>
<g id="glyph-0-10">
<path d="M 3.5 -6.546875 C 4.050781 -6.546875 4.523438 -6.425781 4.921875 -6.1875 C 5.316406 -5.945312 5.617188 -5.609375 5.828125 -5.171875 C 6.046875 -4.742188 6.15625 -4.234375 6.15625 -3.640625 L 6.15625 -3.015625 L 1.75 -3.015625 C 1.769531 -2.285156 1.957031 -1.726562 2.3125 -1.34375 C 2.664062 -0.96875 3.160156 -0.78125 3.796875 -0.78125 C 4.210938 -0.78125 4.578125 -0.816406 4.890625 -0.890625 C 5.203125 -0.972656 5.53125 -1.082031 5.875 -1.21875 L 5.875 -0.296875 C 5.539062 -0.148438 5.210938 -0.046875 4.890625 0.015625 C 4.578125 0.0859375 4.195312 0.125 3.75 0.125 C 3.144531 0.125 2.609375 0 2.140625 -0.25 C 1.671875 -0.5 1.304688 -0.867188 1.046875 -1.359375 C 0.785156 -1.847656 0.65625 -2.453125 0.65625 -3.171875 C 0.65625 -3.867188 0.773438 -4.46875 1.015625 -4.96875 C 1.253906 -5.476562 1.585938 -5.867188 2.015625 -6.140625 C 2.441406 -6.410156 2.9375 -6.546875 3.5 -6.546875 Z M 3.484375 -5.6875 C 2.984375 -5.6875 2.585938 -5.523438 2.296875 -5.203125 C 2.003906 -4.878906 1.832031 -4.429688 1.78125 -3.859375 L 5.046875 -3.859375 C 5.046875 -4.398438 4.921875 -4.835938 4.671875 -5.171875 C 4.421875 -5.515625 4.023438 -5.6875 3.484375 -5.6875 Z M 3.484375 -5.6875 "/>
</g>
<g id="glyph-0-11">
<path d="M 2.078125 -6.4375 C 2.078125 -6.125 2.054688 -5.828125 2.015625 -5.546875 L 2.09375 -5.546875 C 2.300781 -5.867188 2.582031 -6.113281 2.9375 -6.28125 C 3.289062 -6.457031 3.675781 -6.546875 4.09375 -6.546875 C 4.875 -6.546875 5.457031 -6.359375 5.84375 -5.984375 C 6.238281 -5.609375 6.4375 -5.007812 6.4375 -4.1875 L 6.4375 0 L 5.40625 0 L 5.40625 -4.109375 C 5.40625 -5.140625 4.921875 -5.65625 3.953125 -5.65625 C 3.234375 -5.65625 2.738281 -5.453125 2.46875 -5.046875 C 2.207031 -4.648438 2.078125 -4.078125 2.078125 -3.328125 L 2.078125 0 L 1.015625 0 L 1.015625 -9.125 L 2.078125 -9.125 Z M 2.078125 -6.4375 "/>
</g>
<g id="glyph-0-12">
<path d="M 5.203125 -1.78125 C 5.203125 -1.15625 4.96875 -0.679688 4.5 -0.359375 C 4.039062 -0.0351562 3.421875 0.125 2.640625 0.125 C 2.191406 0.125 1.804688 0.0859375 1.484375 0.015625 C 1.160156 -0.0546875 0.875 -0.15625 0.625 -0.28125 L 0.625 -1.25 C 0.882812 -1.125 1.191406 -1.003906 1.546875 -0.890625 C 1.910156 -0.785156 2.28125 -0.734375 2.65625 -0.734375 C 3.195312 -0.734375 3.585938 -0.816406 3.828125 -0.984375 C 4.066406 -1.160156 4.1875 -1.394531 4.1875 -1.6875 C 4.1875 -1.84375 4.140625 -1.984375 4.046875 -2.109375 C 3.960938 -2.234375 3.804688 -2.359375 3.578125 -2.484375 C 3.347656 -2.617188 3.023438 -2.765625 2.609375 -2.921875 C 2.191406 -3.085938 1.832031 -3.25 1.53125 -3.40625 C 1.238281 -3.5625 1.007812 -3.75 0.84375 -3.96875 C 0.6875 -4.195312 0.609375 -4.488281 0.609375 -4.84375 C 0.609375 -5.382812 0.828125 -5.800781 1.265625 -6.09375 C 1.710938 -6.394531 2.300781 -6.546875 3.03125 -6.546875 C 3.414062 -6.546875 3.773438 -6.507812 4.109375 -6.4375 C 4.453125 -6.363281 4.773438 -6.257812 5.078125 -6.125 L 4.71875 -5.28125 C 4.445312 -5.394531 4.160156 -5.488281 3.859375 -5.5625 C 3.566406 -5.644531 3.265625 -5.6875 2.953125 -5.6875 C 2.515625 -5.6875 2.179688 -5.613281 1.953125 -5.46875 C 1.734375 -5.332031 1.625 -5.144531 1.625 -4.90625 C 1.625 -4.726562 1.675781 -4.578125 1.78125 -4.453125 C 1.882812 -4.328125 2.054688 -4.207031 2.296875 -4.09375 C 2.535156 -3.976562 2.863281 -3.84375 3.28125 -3.6875 C 3.6875 -3.53125 4.03125 -3.367188 4.3125 -3.203125 C 4.601562 -3.046875 4.820312 -2.851562 4.96875 -2.625 C 5.125 -2.40625 5.203125 -2.125 5.203125 -1.78125 Z M 5.203125 -1.78125 "/>
</g>
</g>
<clipPath id="clip-0">
<path clip-rule="nonzero" d="M 0 0 L 12 0 L 12 12 L 0 12 Z M 0 0 "/>
</clipPath>
<clipPath id="clip-1">
<rect x="0" y="0" width="12" height="12"/>
</clipPath>
<g id="source-11" clip-path="url(#clip-1)">
<g clip-path="url(#clip-0)">
<path fill="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(78.431373%, 31.372549%, 31.372549%)" stroke-opacity="0.5" stroke-miterlimit="10" d="M 13 -13 L -1 1 M 13 -7 L -1 7 M 13 -1 L -1 13 M 13 5 L -1 19 M 13 11 L -1 25 "/>
</g>
</g>
<pattern id="pattern-0" patternUnits="userSpaceOnUse" x="0" y="0" width="12" height="12" viewBox="0 0 12 12">
<use xlink:href="#source-11"/>
</pattern>
<clipPath id="clip-2">
<path clip-rule="nonzero" d="M 0 0 L 12 0 L 12 12 L 0 12 Z M 0 0 "/>
</clipPath>
<clipPath id="clip-3">
<rect x="0" y="0" width="12" height="12"/>
</clipPath>
<g id="source-14" clip-path="url(#clip-3)">
<g clip-path="url(#clip-2)">
<path fill="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(78.431373%, 31.372549%, 31.372549%)" stroke-opacity="0.5" stroke-miterlimit="10" d="M 13 -13 L -1 1 M 13 -7 L -1 7 M 13 -1 L -1 13 M 13 5 L -1 19 M 13 11 L -1 25 "/>
</g>
</g>
<pattern id="pattern-1" patternUnits="userSpaceOnUse" x="0" y="0" width="12" height="12" viewBox="0 0 12 12">
<use xlink:href="#source-14"/>
</pattern>
</defs>
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" d="M 0 0 L 215 0 L 215 107.6875 L 0 107.6875 Z M 0 0 "/>
<path fill="none" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke="rgb(58.823529%, 58.823529%, 58.823529%)" stroke-opacity="1" stroke-miterlimit="10" d="M 20.5 20.5 L 64.5 20.5 L 64.5 55.5 L 20.5 55.5 Z M 20.5 20.5 "/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-1" x="30" y="42.828125"/>
<use xlink:href="#glyph-0-2" x="37" y="42.828125"/>
<use xlink:href="#glyph-0-3" x="44" y="42.828125"/>
<use xlink:href="#glyph-0-2" x="48" y="42.828125"/>
</g>
<path fill-rule="evenodd" fill="url(#pattern-0)" d="M 65 20 L 129.5 20 L 129.5 55.84375 L 65 55.84375 Z M 65 20 "/>
<path fill="none" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke="rgb(78.431373%, 31.372549%, 31.372549%)" stroke-opacity="1" stroke-miterlimit="10" d="M 65.5 20.5 L 129.5 20.5 L 129.5 55.5 L 65.5 55.5 Z M 65.5 20.5 "/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-4" x="75" y="42.828125"/>
<use xlink:href="#glyph-0-2" x="82" y="42.828125"/>
<use xlink:href="#glyph-0-1" x="89" y="42.828125"/>
<use xlink:href="#glyph-0-1" x="96" y="42.828125"/>
<use xlink:href="#glyph-0-5" x="103" y="42.828125"/>
<use xlink:href="#glyph-0-6" x="106" y="42.828125"/>
<use xlink:href="#glyph-0-7" x="113" y="42.828125"/>
</g>
<path fill-rule="evenodd" fill="url(#pattern-1)" d="M 130 20 L 194.5 20 L 194.5 55.84375 L 130 55.84375 Z M 130 20 "/>
<path fill="none" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke="rgb(78.431373%, 31.372549%, 31.372549%)" stroke-opacity="1" stroke-miterlimit="10" d="M 130.5 20.5 L 194.5 20.5 L 194.5 55.5 L 130.5 55.5 Z M 130.5 20.5 "/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-1" x="140" y="42.828125"/>
<use xlink:href="#glyph-0-2" x="147" y="42.828125"/>
<use xlink:href="#glyph-0-3" x="154" y="42.828125"/>
<use xlink:href="#glyph-0-2" x="158" y="42.828125"/>
<use xlink:href="#glyph-0-8" x="165" y="42.828125"/>
<use xlink:href="#glyph-0-9" x="168" y="42.828125"/>
<use xlink:href="#glyph-0-10" x="171" y="42.828125"/>
<use xlink:href="#glyph-0-6" x="178" y="42.828125"/>
</g>
<path fill="none" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 20.5 71.5 L 20.5 66.5 "/>
<path fill="none" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 20.5 71.5 L 195.5 71.5 "/>
<path fill="none" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 195.5 71.5 L 195.5 66.5 "/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-11" x="73" y="84.171875"/>
<use xlink:href="#glyph-0-2" x="80" y="84.171875"/>
<use xlink:href="#glyph-0-12" x="87" y="84.171875"/>
<use xlink:href="#glyph-0-11" x="93" y="84.171875"/>
<use xlink:href="#glyph-0-10" x="100" y="84.171875"/>
<use xlink:href="#glyph-0-1" x="107" y="84.171875"/>
<use xlink:href="#glyph-0-8" x="114" y="84.171875"/>
<use xlink:href="#glyph-0-1" x="117" y="84.171875"/>
<use xlink:href="#glyph-0-2" x="124" y="84.171875"/>
<use xlink:href="#glyph-0-3" x="131" y="84.171875"/>
<use xlink:href="#glyph-0-2" x="135" y="84.171875"/>
</g>
</svg>