Clarify address length & prefix

The type prefix is not part of the 20-byte AccountID, but it is used
when calculating both the checksum and the base58 address itself, so I
have updated the diagram accordingly.

Fixes #1405.
This commit is contained in:
mDuo13
2023-09-26 12:08:15 -07:00
parent 448dd5cfc6
commit 8754393215
2 changed files with 137 additions and 118 deletions

View File

@@ -4,10 +4,10 @@
<element>
<id>UMLObject</id>
<coordinates>
<x>40</x>
<y>70</y>
<x>100</x>
<y>340</y>
<w>220</w>
<h>70</h>
<h>80</h>
</coordinates>
<panel_attributes>Master Public Key
--
@@ -18,8 +18,8 @@
<element>
<id>UMLObject</id>
<coordinates>
<x>340</x>
<y>160</y>
<x>430</x>
<y>340</y>
<w>180</w>
<h>80</h>
</coordinates>
@@ -31,33 +31,34 @@
<element>
<id>Relation</id>
<coordinates>
<x>250</x>
<y>70</y>
<w>220</w>
<x>310</x>
<y>350</y>
<w>140</w>
<h>160</h>
</coordinates>
<panel_attributes>lt=&lt;-
RIPEMD160 of SHA-256
RIPEMD160 of
SHA-256
</panel_attributes>
<additional_attributes>90.0;110.0;40.0;110.0;40.0;40.0;10.0;40.0</additional_attributes>
<additional_attributes>120.0;20.0;10.0;20.0</additional_attributes>
</element>
<element>
<id>UMLObject</id>
<coordinates>
<x>670</x>
<y>160</y>
<x>960</x>
<y>320</y>
<w>180</w>
<h>80</h>
</coordinates>
<panel_attributes>Address
--
Type Prefix (1 byte)
AccountID (20 bytes)
Checksum (4 bytes)</panel_attributes>
<additional_attributes/>
@@ -65,9 +66,9 @@ Checksum (4 bytes)</panel_attributes>
<element>
<id>UMLObject</id>
<coordinates>
<x>40</x>
<y>160</y>
<w>190</w>
<x>430</x>
<y>210</y>
<w>180</w>
<h>80</h>
</coordinates>
<panel_attributes>Type Prefix
@@ -76,22 +77,11 @@ Checksum (4 bytes)</panel_attributes>
("r" in XRPL base58)</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>220</x>
<y>200</y>
<w>140</w>
<h>30</h>
</coordinates>
<panel_attributes>lt=&lt;-</panel_attributes>
<additional_attributes>120.0;10.0;10.0;10.0</additional_attributes>
</element>
<element>
<id>UMLObject</id>
<coordinates>
<x>380</x>
<y>290</y>
<x>670</x>
<y>350</y>
<w>100</w>
<h>70</h>
</coordinates>
@@ -103,32 +93,32 @@ Checksum (4 bytes)</panel_attributes>
<element>
<id>Relation</id>
<coordinates>
<x>470</x>
<y>200</y>
<x>760</x>
<y>360</y>
<w>120</w>
<h>140</h>
<h>40</h>
</coordinates>
<panel_attributes>lt=&lt;-</panel_attributes>
<additional_attributes>100.0;10.0;80.0;10.0;80.0;120.0;10.0;120.0</additional_attributes>
<additional_attributes>100.0;10.0;80.0;10.0;80.0;20.0;10.0;20.0</additional_attributes>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>510</x>
<y>180</y>
<w>80</w>
<h>30</h>
<x>630</x>
<y>290</y>
<w>250</w>
<h>80</h>
</coordinates>
<panel_attributes>lt=&lt;-</panel_attributes>
<additional_attributes>60.0;10.0;10.0;10.0</additional_attributes>
<additional_attributes>230.0;60.0;210.0;60.0;210.0;10.0;10.0;10.0</additional_attributes>
</element>
<element>
<id>UMLState</id>
<coordinates>
<x>570</x>
<y>180</y>
<x>860</x>
<y>330</y>
<w>100</w>
<h>40</h>
<h>60</h>
</coordinates>
<panel_attributes>base58
type=sender</panel_attributes>
@@ -137,20 +127,20 @@ type=sender</panel_attributes>
<element>
<id>Relation</id>
<coordinates>
<x>400</x>
<y>230</y>
<w>130</w>
<x>630</x>
<y>290</y>
<w>180</w>
<h>80</h>
</coordinates>
<panel_attributes>lt=&lt;-
SHA-256 twice</panel_attributes>
<additional_attributes>10.0;60.0;10.0;10.0</additional_attributes>
<additional_attributes>60.0;60.0;60.0;10.0;10.0;10.0</additional_attributes>
</element>
<element>
<id>Text</id>
<coordinates>
<x>40</x>
<y>30</y>
<x>100</x>
<y>210</y>
<w>280</w>
<h>30</h>
</coordinates>
@@ -158,4 +148,26 @@ SHA-256 twice</panel_attributes>
style=wordwrap</panel_attributes>
<additional_attributes/>
</element>
<element>
<id>Relation</id>
<coordinates>
<x>610</x>
<y>200</y>
<w>50</w>
<h>240</h>
</coordinates>
<panel_attributes>lt=..</panel_attributes>
<additional_attributes>10.0;10.0;30.0;10.0;30.0;220.0;10.0;220.0</additional_attributes>
</element>
<element>
<id>Text</id>
<coordinates>
<x>510</x>
<y>300</y>
<w>30</w>
<h>30</h>
</coordinates>
<panel_attributes>+</panel_attributes>
<additional_attributes/>
</element>
</diagram>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.0//EN'
'http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'>
<svg fill-opacity="1" xmlns:xlink="http://www.w3.org/1999/xlink" color-rendering="auto" color-interpolation="auto" text-rendering="auto" stroke="black" stroke-linecap="square" width="850" stroke-miterlimit="10" shape-rendering="auto" stroke-opacity="1" fill="black" stroke-dasharray="none" font-weight="normal" stroke-width="1" viewBox="20 10 850 370" height="370" xmlns="http://www.w3.org/2000/svg" font-family="'Dialog'" font-style="normal" stroke-linejoin="miter" font-size="12px" stroke-dashoffset="0" image-rendering="auto"
<svg fill-opacity="1" xmlns:xlink="http://www.w3.org/1999/xlink" color-rendering="auto" color-interpolation="auto" text-rendering="auto" stroke="black" stroke-linecap="square" width="1080" stroke-miterlimit="10" shape-rendering="auto" stroke-opacity="1" fill="black" stroke-dasharray="none" font-weight="normal" stroke-width="1" viewBox="80 180 1080 350" height="350" xmlns="http://www.w3.org/2000/svg" font-family="'Dialog'" font-style="normal" stroke-linejoin="miter" font-size="12px" stroke-dashoffset="0" image-rendering="auto"
><!--Generated by the Batik Graphics2D SVG Generator--><defs id="genericDefs"
/><g
><defs id="defs1"
@@ -9,92 +9,95 @@
><path d="M0 0 L2147483647 0 L2147483647 2147483647 L0 2147483647 L0 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath2"
><path d="M0 0 L0 30 L280 30 L280 0 Z"
><path d="M0 0 L0 30 L30 30 L30 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath3"
><path d="M0 0 L0 40 L100 40 L100 0 Z"
><path d="M0 0 L0 30 L280 30 L280 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath4"
><path d="M0 0 L0 70 L100 70 L100 0 Z"
><path d="M0 0 L0 60 L100 60 L100 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath5"
><path d="M0 0 L0 80 L190 80 L190 0 Z"
><path d="M0 0 L0 70 L100 70 L100 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath6"
><path d="M0 0 L0 80 L180 80 L180 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath7"
><path d="M0 0 L0 70 L220 70 L220 0 Z"
><path d="M0 0 L0 80 L220 80 L220 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath8"
><path d="M0 0 L0 80 L130 80 L130 0 Z"
><path d="M0 0 L0 240 L50 240 L50 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath9"
><path d="M0 0 L0 30 L80 30 L80 0 Z"
><path d="M0 0 L0 80 L250 80 L250 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath10"
><path d="M0 0 L0 140 L120 140 L120 0 Z"
><path d="M0 0 L0 40 L120 40 L120 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath11"
><path d="M0 0 L0 30 L140 30 L140 0 Z"
/></clipPath
><clipPath clipPathUnits="userSpaceOnUse" id="clipPath12"
><path d="M0 0 L0 160 L220 160 L220 0 Z"
><path d="M0 0 L0 160 L140 160 L140 0 Z"
/></clipPath
></defs
><g font-size="14px" font-weight="bold" font-family="sans-serif" transform="translate(40,30)"
><g font-family="sans-serif" font-size="14px" transform="translate(510,300)"
><text x="5" xml:space="preserve" y="18.1094" clip-path="url(#clipPath2)" stroke="none"
>+</text
></g
><g font-size="14px" font-weight="bold" font-family="sans-serif" transform="translate(100,210)"
><text x="5" xml:space="preserve" y="18.1094" clip-path="url(#clipPath3)" stroke="none"
>Address Encoding</text
></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(570,180)" stroke-opacity="0" stroke="rgb(255,255,255)"
><path d="M0.5 0.5 L80.5 0.5 L99 20.5 L80.5 39 L0.5 39 Z" stroke="none" clip-path="url(#clipPath3)"
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(860,330)" stroke-opacity="0" stroke="rgb(255,255,255)"
><path d="M0.5 0.5 L80.5 0.5 L99 30.5 L80.5 59 L0.5 59 Z" stroke="none" clip-path="url(#clipPath4)"
/></g
><g transform="translate(570,180)"
><path fill="none" d="M0.5 0.5 L80.5 0.5 L99 20.5 L80.5 39 L0.5 39 Z" clip-path="url(#clipPath3)"
/><text x="24" font-size="14px" y="25.0547" clip-path="url(#clipPath3)" font-family="sans-serif" stroke="none" xml:space="preserve"
><g transform="translate(860,330)"
><path fill="none" d="M0.5 0.5 L80.5 0.5 L99 30.5 L80.5 59 L0.5 59 Z" clip-path="url(#clipPath4)"
/><text x="24" font-size="14px" y="35.0547" clip-path="url(#clipPath4)" font-family="sans-serif" stroke="none" xml:space="preserve"
>base58</text
></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(380,290)" stroke-opacity="0" stroke="rgb(255,255,255)"
><rect x="0.5" width="98.5" height="68.5" y="0.5" clip-path="url(#clipPath4)" stroke="none"
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(670,350)" stroke-opacity="0" stroke="rgb(255,255,255)"
><rect x="0.5" width="98.5" height="68.5" y="0.5" clip-path="url(#clipPath5)" stroke="none"
/></g
><g transform="translate(380,290)"
><rect fill="none" x="0.5" width="98.5" height="68.5" y="0.5" clip-path="url(#clipPath4)"
/><text x="13" font-size="14px" y="29.5" clip-path="url(#clipPath4)" font-family="sans-serif" stroke="none" xml:space="preserve"
><g transform="translate(670,350)"
><rect fill="none" x="0.5" width="98.5" height="68.5" y="0.5" clip-path="url(#clipPath5)"
/><text x="13" font-size="14px" y="29.5" clip-path="url(#clipPath5)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Checksum</text
><path fill="none" d="M1 35.5 L99 35.5" clip-path="url(#clipPath4)"
/><text x="18" font-size="14px" y="50.6094" clip-path="url(#clipPath4)" font-family="sans-serif" stroke="none" xml:space="preserve"
><path fill="none" d="M1 35.5 L99 35.5" clip-path="url(#clipPath5)"
/><text x="18" font-size="14px" y="50.6094" clip-path="url(#clipPath5)" font-family="sans-serif" stroke="none" xml:space="preserve"
>(4 bytes)</text
></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(40,160)" stroke-opacity="0" stroke="rgb(255,255,255)"
><rect x="0.5" width="188.5" height="78.5" y="0.5" clip-path="url(#clipPath5)" stroke="none"
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(430,210)" stroke-opacity="0" stroke="rgb(255,255,255)"
><rect x="0.5" width="178.5" height="78.5" y="0.5" clip-path="url(#clipPath6)" stroke="none"
/></g
><g transform="translate(40,160)"
><rect fill="none" x="0.5" width="188.5" height="78.5" y="0.5" clip-path="url(#clipPath5)"
/><text x="55" font-size="14px" y="26.4453" clip-path="url(#clipPath5)" font-family="sans-serif" stroke="none" xml:space="preserve"
><g transform="translate(430,210)"
><rect fill="none" x="0.5" width="178.5" height="78.5" y="0.5" clip-path="url(#clipPath6)"
/><text x="50" font-size="14px" y="26.4453" clip-path="url(#clipPath6)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Type Prefix</text
><path fill="none" d="M1 32.4453 L189 32.4453" clip-path="url(#clipPath5)"
/><text x="77" font-size="14px" y="47.5547" clip-path="url(#clipPath5)" font-family="sans-serif" stroke="none" xml:space="preserve"
><path fill="none" d="M1 32.4453 L179 32.4453" clip-path="url(#clipPath6)"
/><text x="72" font-size="14px" y="47.5547" clip-path="url(#clipPath6)" font-family="sans-serif" stroke="none" xml:space="preserve"
>0x00</text
><text x="23" font-size="14px" y="63.6641" clip-path="url(#clipPath5)" font-family="sans-serif" stroke="none" xml:space="preserve"
><text x="18" font-size="14px" y="63.6641" clip-path="url(#clipPath6)" font-family="sans-serif" stroke="none" xml:space="preserve"
>("r" in XRPL base58)</text
></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(670,160)" stroke-opacity="0" stroke="rgb(255,255,255)"
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(960,320)" stroke-opacity="0" stroke="rgb(255,255,255)"
><rect x="0.5" width="178.5" height="78.5" y="0.5" clip-path="url(#clipPath6)" stroke="none"
/></g
><g transform="translate(670,160)"
><g transform="translate(960,320)"
><rect fill="none" x="0.5" width="178.5" height="78.5" y="0.5" clip-path="url(#clipPath6)"
/><text x="61" font-size="14px" y="26.4453" clip-path="url(#clipPath6)" font-family="sans-serif" stroke="none" xml:space="preserve"
/><text x="61" font-size="14px" y="18.3906" clip-path="url(#clipPath6)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Address</text
><path fill="none" d="M1 32.4453 L179 32.4453" clip-path="url(#clipPath6)"
/><text x="16" font-size="14px" y="47.5547" clip-path="url(#clipPath6)" font-family="sans-serif" stroke="none" xml:space="preserve"
><path fill="none" d="M1 24.3906 L179 24.3906" clip-path="url(#clipPath6)"
/><text x="20" font-size="14px" y="39.5" clip-path="url(#clipPath6)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Type Prefix (1 byte)</text
><text x="16" font-size="14px" y="55.6094" clip-path="url(#clipPath6)" font-family="sans-serif" stroke="none" xml:space="preserve"
>AccountID (20 bytes)</text
><text x="19" font-size="14px" y="63.6641" clip-path="url(#clipPath6)" font-family="sans-serif" stroke="none" xml:space="preserve"
><text x="19" font-size="14px" y="71.7188" clip-path="url(#clipPath6)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Checksum (4 bytes)</text
></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(340,160)" stroke-opacity="0" stroke="rgb(255,255,255)"
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(430,340)" stroke-opacity="0" stroke="rgb(255,255,255)"
><rect x="0.5" width="178.5" height="78.5" y="0.5" clip-path="url(#clipPath6)" stroke="none"
/></g
><g transform="translate(340,160)"
><g transform="translate(430,340)"
><rect fill="none" x="0.5" width="178.5" height="78.5" y="0.5" clip-path="url(#clipPath6)"
/><text x="51" font-size="14px" y="34.5" clip-path="url(#clipPath6)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Account ID</text
@@ -102,46 +105,50 @@
/><text x="54" font-size="14px" y="55.6094" clip-path="url(#clipPath6)" font-family="sans-serif" stroke="none" xml:space="preserve"
>(20 bytes)</text
></g
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(40,70)" stroke-opacity="0" stroke="rgb(255,255,255)"
><rect x="0.5" width="218.5" height="68.5" y="0.5" clip-path="url(#clipPath7)" stroke="none"
><g fill="rgb(255,255,255)" fill-opacity="0" transform="translate(100,340)" stroke-opacity="0" stroke="rgb(255,255,255)"
><rect x="0.5" width="218.5" height="78.5" y="0.5" clip-path="url(#clipPath7)" stroke="none"
/></g
><g transform="translate(40,70)"
><rect fill="none" x="0.5" width="218.5" height="68.5" y="0.5" clip-path="url(#clipPath7)"
/><text x="47" font-size="14px" y="21.4453" clip-path="url(#clipPath7)" font-family="sans-serif" stroke="none" xml:space="preserve"
><g transform="translate(100,340)"
><rect fill="none" x="0.5" width="218.5" height="78.5" y="0.5" clip-path="url(#clipPath7)"
/><text x="47" font-size="14px" y="26.4453" clip-path="url(#clipPath7)" font-family="sans-serif" stroke="none" xml:space="preserve"
>Master Public Key</text
><path fill="none" d="M1 27.4453 L219 27.4453" clip-path="url(#clipPath7)"
/><text x="33" font-size="14px" y="42.5547" clip-path="url(#clipPath7)" font-family="sans-serif" stroke="none" xml:space="preserve"
><path fill="none" d="M1 32.4453 L219 32.4453" clip-path="url(#clipPath7)"
/><text x="33" font-size="14px" y="47.5547" clip-path="url(#clipPath7)" font-family="sans-serif" stroke="none" xml:space="preserve"
>33 bytes (secp256k1)</text
><text x="12" font-size="14px" y="58.6641" clip-path="url(#clipPath7)" font-family="sans-serif" stroke="none" xml:space="preserve"
><text x="12" font-size="14px" y="63.6641" clip-path="url(#clipPath7)" font-family="sans-serif" stroke="none" xml:space="preserve"
>0xED + 32 bytes (Ed25519)</text
></g
><g transform="translate(400,230)"
><path fill="none" d="M10.5 59.5 L10.5 10.5" clip-path="url(#clipPath8)"
/><path fill="none" d="M17 48.7417 L10.5 60 L4 48.7417" clip-path="url(#clipPath8)"
/><text x="14" font-size="14px" y="43.0547" clip-path="url(#clipPath8)" font-family="sans-serif" stroke="none" xml:space="preserve"
><g stroke-dasharray="1,2" stroke-miterlimit="5" transform="translate(610,200)" stroke-linecap="butt"
><path fill="none" d="M10.5 10.5 L30.5 10.5" clip-path="url(#clipPath8)"
/><path fill="none" d="M30.5 10.5 L30.5 220.5" clip-path="url(#clipPath8)"
/><path fill="none" d="M30.5 220.5 L10.5 220.5" clip-path="url(#clipPath8)"
/></g
><g transform="translate(630,290)"
><path fill="none" d="M60.5 59.5 L60.5 10.5" clip-path="url(#clipPath6)"
/><path fill="none" d="M60.5 10.5 L10.5 10.5" clip-path="url(#clipPath6)"
/><path fill="none" d="M67 48.7417 L60.5 60 L54 48.7417" clip-path="url(#clipPath6)"
/><text x="64" font-size="14px" y="43.0547" clip-path="url(#clipPath6)" font-family="sans-serif" stroke="none" xml:space="preserve"
>SHA-256 twice</text
></g
><g transform="translate(510,180)"
><path fill="none" d="M59.5 10.5 L10.5 10.5" clip-path="url(#clipPath9)"
/><path fill="none" d="M48.7417 4 L60 10.5 L48.7417 17" clip-path="url(#clipPath9)"
><g transform="translate(630,290)"
><path fill="none" d="M229.5 60.5 L210.5 60.5" clip-path="url(#clipPath9)"
/><path fill="none" d="M210.5 60.5 L210.5 10.5" clip-path="url(#clipPath9)"
/><path fill="none" d="M210.5 10.5 L10.5 10.5" clip-path="url(#clipPath9)"
/><path fill="none" d="M218.7417 54 L230 60.5 L218.7417 67" clip-path="url(#clipPath9)"
/></g
><g transform="translate(470,200)"
><g transform="translate(760,360)"
><path fill="none" d="M99.5 10.5 L80.5 10.5" clip-path="url(#clipPath10)"
/><path fill="none" d="M80.5 10.5 L80.5 120.5" clip-path="url(#clipPath10)"
/><path fill="none" d="M80.5 120.5 L10.5 120.5" clip-path="url(#clipPath10)"
/><path fill="none" d="M80.5 10.5 L80.5 20.5" clip-path="url(#clipPath10)"
/><path fill="none" d="M80.5 20.5 L10.5 20.5" clip-path="url(#clipPath10)"
/><path fill="none" d="M88.7417 4 L100 10.5 L88.7417 17" clip-path="url(#clipPath10)"
/></g
><g transform="translate(220,200)"
><path fill="none" d="M119.5 10.5 L10.5 10.5" clip-path="url(#clipPath11)"
/><path fill="none" d="M108.7417 4 L120 10.5 L108.7417 17" clip-path="url(#clipPath11)"
/></g
><g transform="translate(250,70)"
><path fill="none" d="M89.5 110.5 L40.5 110.5" clip-path="url(#clipPath12)"
/><path fill="none" d="M40.5 110.5 L40.5 40.5" clip-path="url(#clipPath12)"
/><path fill="none" d="M40.5 40.5 L10.5 40.5" clip-path="url(#clipPath12)"
/><path fill="none" d="M78.7417 104 L90 110.5 L78.7417 117" clip-path="url(#clipPath12)"
/><text x="44" font-size="14px" y="66.9453" clip-path="url(#clipPath12)" font-family="sans-serif" stroke="none" xml:space="preserve"
>RIPEMD160 of SHA-256</text
><g transform="translate(310,350)"
><path fill="none" d="M119.5 20.5 L10.5 20.5" clip-path="url(#clipPath11)"
/><path fill="none" d="M108.7417 14 L120 20.5 L108.7417 27" clip-path="url(#clipPath11)"
/><text x="16.2153" font-size="14px" y="48.2188" clip-path="url(#clipPath11)" font-family="sans-serif" stroke="none" xml:space="preserve"
>RIPEMD160 of </text
><text x="35.5166" font-size="14px" y="64.3281" clip-path="url(#clipPath11)" font-family="sans-serif" stroke="none" xml:space="preserve"
>SHA-256</text
></g
></g
></svg

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB