This commit is contained in:
bthomee
2025-05-20 18:10:54 +00:00
parent 39d241def5
commit 90cc35d381
3215 changed files with 96027 additions and 70734 deletions

View File

@@ -164,9 +164,9 @@ $(function() {
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="keywordflow">if</span> ((buf[1] &amp; 0x80) == 0)</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keywordflow">return</span> std::nullopt;</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> }</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;Slice&gt;</a> number = <a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>(buf.<a class="code hl_function" href="classripple_1_1Slice.html#a86b04f444930887410acd22b367efc8c">data</a>(), len);</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;Slice&gt;</a> <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a6840880b5bbd85a095acdf318411a5d5">number</a> = <a class="code hl_class" href="classripple_1_1Slice.html">Slice</a>(buf.<a class="code hl_function" href="classripple_1_1Slice.html#a86b04f444930887410acd22b367efc8c">data</a>(), len);</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> buf += len;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="keywordflow">return</span> number;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceripple_1_1test_1_1jtx.html#a6840880b5bbd85a095acdf318411a5d5">number</a>;</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span>}</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> </div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="keyword">static</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div>
@@ -192,7 +192,7 @@ $(function() {
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span>}</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/utility/optional.html">std::optional&lt;ECDSACanonicality&gt;</a></div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"><a class="line" href="namespaceripple.html#a06c04baee32e460076ce4d9df3ffd98f"> 129</a></span><a class="code hl_function" href="namespaceripple.html#a06c04baee32e460076ce4d9df3ffd98f">ecdsaCanonicality</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a> <span class="keyword">const</span>&amp; sig)</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"><a class="line" href="namespaceripple.html#a06c04baee32e460076ce4d9df3ffd98f"> 129</a></span><a class="code hl_function" href="namespaceripple.html#a06c04baee32e460076ce4d9df3ffd98f">ecdsaCanonicality</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a> <span class="keyword">const</span>&amp; <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>)</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span>{</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keyword">using </span>uint264 =</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> boost::multiprecision::number&lt;boost::multiprecision::cpp_int_backend&lt;</div>
@@ -207,11 +207,11 @@ $(function() {
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> </div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="comment">// The format of a signature should be:</span></div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="comment">// &lt;30&gt; &lt;len&gt; [ &lt;02&gt; &lt;lenR&gt; &lt;R&gt; ] [ &lt;02&gt; &lt;lenS&gt; &lt;S&gt; ]</span></div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="keywordflow">if</span> ((sig.<a class="code hl_function" href="classripple_1_1Slice.html#aa6faa586508e0f849d4591d807353825">size</a>() &lt; 8) || (sig.<a class="code hl_function" href="classripple_1_1Slice.html#aa6faa586508e0f849d4591d807353825">size</a>() &gt; 72))</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="keywordflow">if</span> ((<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>.size() &lt; 8) || (<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>.size() &gt; 72))</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <span class="keywordflow">return</span> std::nullopt;</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> <span class="keywordflow">if</span> ((sig[0] != 0x30) || (sig[1] != (sig.<a class="code hl_function" href="classripple_1_1Slice.html#aa6faa586508e0f849d4591d807353825">size</a>() - 2)))</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> <span class="keywordflow">if</span> ((<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>[0] != 0x30) || (<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>[1] != (<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>.size() - 2)))</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="keywordflow">return</span> std::nullopt;</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <a class="code hl_class" href="classripple_1_1Slice.html">Slice</a> p = sig + 2;</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <a class="code hl_class" href="classripple_1_1Slice.html">Slice</a> p = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a> + 2;</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <span class="keyword">auto</span> r = <a class="code hl_function" href="namespaceripple.html#a5bd51f6d2ddf8b6714a173096ebf946b">sigPart</a>(p);</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> <span class="keyword">auto</span> s = <a class="code hl_function" href="namespaceripple.html#a5bd51f6d2ddf8b6714a173096ebf946b">sigPart</a>(p);</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <span class="keywordflow">if</span> (!r || !s || !p.<a class="code hl_function" href="classripple_1_1Slice.html#a38d951bc2f27aaf89c3fdb5914c7e169">empty</a>())</div>
@@ -234,9 +234,9 @@ $(function() {
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span>}</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> </div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span><span class="keyword">static</span> <span class="keywordtype">bool</span></div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"><a class="line" href="namespaceripple.html#ae301df62c738814e031244626b80c8d4"> 171</a></span><a class="code hl_function" href="namespaceripple.html#ae301df62c738814e031244626b80c8d4">ed25519Canonical</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a> <span class="keyword">const</span>&amp; sig)</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"><a class="line" href="namespaceripple.html#ae301df62c738814e031244626b80c8d4"> 171</a></span><a class="code hl_function" href="namespaceripple.html#ae301df62c738814e031244626b80c8d4">ed25519Canonical</a>(<a class="code hl_class" href="classripple_1_1Slice.html">Slice</a> <span class="keyword">const</span>&amp; <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>)</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span>{</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keywordflow">if</span> (sig.<a class="code hl_function" href="classripple_1_1Slice.html#aa6faa586508e0f849d4591d807353825">size</a>() != 64)</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keywordflow">if</span> (<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>.size() != 64)</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <span class="comment">// Big-endian Order, the Ed25519 subgroup order</span></div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint8_t</a> <span class="keyword">const</span> Order[] = {</div>
@@ -246,7 +246,7 @@ $(function() {
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> };</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> <span class="comment">// Take the second half of signature</span></div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <span class="comment">// and byte-reverse it to big-endian.</span></div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> <span class="keyword">auto</span> <span class="keyword">const</span> le = sig.<a class="code hl_function" href="classripple_1_1Slice.html#a86b04f444930887410acd22b367efc8c">data</a>() + 32;</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> <span class="keyword">auto</span> <span class="keyword">const</span> le = <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>.data() + 32;</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> <a class="code hl_classRef" href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint8_t</a> S[32];</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> <a class="code hl_functionRef" href="http://en.cppreference.com/w/cpp/algorithm/reverse_copy.html">std::reverse_copy</a>(le, le + 32, S);</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> <span class="comment">// Must be less than Order</span></div>
@@ -304,12 +304,12 @@ $(function() {
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"><a class="line" href="namespaceripple.html#a1ca5a15d8ff4637d8436cfcc7df7e69c"> 238</a></span><a class="code hl_function" href="namespaceripple.html#a1ca5a15d8ff4637d8436cfcc7df7e69c">verifyDigest</a>(</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> <a class="code hl_class" href="classripple_1_1PublicKey.html">PublicKey</a> <span class="keyword">const</span>&amp; publicKey,</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> <a class="code hl_class" href="classripple_1_1base__uint.html">uint256</a> <span class="keyword">const</span>&amp; <a class="code hl_function" href="namespaceripple.html#a91e9fe7a4e92dba79c3812fd3edcaacc">digest</a>,</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> <a class="code hl_class" href="classripple_1_1Slice.html">Slice</a> <span class="keyword">const</span>&amp; sig,</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> <a class="code hl_class" href="classripple_1_1Slice.html">Slice</a> <span class="keyword">const</span>&amp; <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>,</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> <span class="keywordtype">bool</span> mustBeFullyCanonical) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span>{</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="namespaceripple.html#a798e187ba7443d8f951b810a12d50976">publicKeyType</a>(publicKey) != <a class="code hl_enumvalue" href="namespaceripple.html#a9de744cfdefe1132969eb982e57e4ddea82c2b7829b8129e5a2d53665ba4b4757">KeyType::secp256k1</a>)</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> <a class="code hl_function" href="namespaceripple.html#aefd2f77338ce3c9a2fffc4f0b289b483">LogicError</a>(<span class="stringliteral">&quot;sign: secp256k1 required for digest signing&quot;</span>);</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> <span class="keyword">auto</span> <span class="keyword">const</span> canonicality = <a class="code hl_function" href="namespaceripple.html#a06c04baee32e460076ce4d9df3ffd98f">ecdsaCanonicality</a>(sig);</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> <span class="keyword">auto</span> <span class="keyword">const</span> canonicality = <a class="code hl_function" href="namespaceripple.html#a06c04baee32e460076ce4d9df3ffd98f">ecdsaCanonicality</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>);</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> <span class="keywordflow">if</span> (!canonicality)</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> <span class="keywordflow">if</span> (mustBeFullyCanonical &amp;&amp;</div>
@@ -328,8 +328,8 @@ $(function() {
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> <span class="keywordflow">if</span> (secp256k1_ecdsa_signature_parse_der(</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> <a class="code hl_function" href="namespaceripple.html#a00e18a10d625a1dd7c5fff26960a6d16">secp256k1Context</a>(),</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> &amp;sig_imp,</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> const*<span class="keyword">&gt;</span>(sig.data()),</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> sig.size()) != 1)</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> <span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> const*<span class="keyword">&gt;</span>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>.data()),</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>.size()) != 1)</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> <span class="keywordflow">if</span> (*canonicality != <a class="code hl_enumvalue" href="namespaceripple.html#a286745fec5429abb3893001b4982522ba3e23eeda3fe3fb70d1e274eab59199d1">ECDSACanonicality::fullyCanonical</a>)</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> {</div>
@@ -354,7 +354,7 @@ $(function() {
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"><a class="line" href="namespaceripple.html#a3549cb4c3d81efe240ad20c147e48ac7"> 288</a></span><a class="code hl_function" href="namespaceripple.html#a3549cb4c3d81efe240ad20c147e48ac7">verify</a>(</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> <a class="code hl_class" href="classripple_1_1PublicKey.html">PublicKey</a> <span class="keyword">const</span>&amp; publicKey,</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> <a class="code hl_class" href="classripple_1_1Slice.html">Slice</a> <span class="keyword">const</span>&amp; m,</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> <a class="code hl_class" href="classripple_1_1Slice.html">Slice</a> <span class="keyword">const</span>&amp; sig,</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> <a class="code hl_class" href="classripple_1_1Slice.html">Slice</a> <span class="keyword">const</span>&amp; <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>,</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> <span class="keywordtype">bool</span> mustBeFullyCanonical) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span>{</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> <span class="keywordflow">if</span> (<span class="keyword">auto</span> <span class="keyword">const</span> type = <a class="code hl_function" href="namespaceripple.html#a798e187ba7443d8f951b810a12d50976">publicKeyType</a>(publicKey))</div>
@@ -362,11 +362,11 @@ $(function() {
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> <span class="keywordflow">if</span> (*type == <a class="code hl_enumvalue" href="namespaceripple.html#a9de744cfdefe1132969eb982e57e4ddea82c2b7829b8129e5a2d53665ba4b4757">KeyType::secp256k1</a>)</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> {</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> <span class="keywordflow">return</span> <a class="code hl_function" href="namespaceripple.html#a1ca5a15d8ff4637d8436cfcc7df7e69c">verifyDigest</a>(</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> publicKey, <a class="code hl_function" href="namespaceripple.html#ae3f5bc352766a1a8dbf5270eb7dbc2e7">sha512Half</a>(m), sig, mustBeFullyCanonical);</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> publicKey, <a class="code hl_function" href="namespaceripple.html#ae3f5bc352766a1a8dbf5270eb7dbc2e7">sha512Half</a>(m), <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>, mustBeFullyCanonical);</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> }</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*type == <a class="code hl_enumvalue" href="namespaceripple.html#a9de744cfdefe1132969eb982e57e4ddea8183aa2c95dc1385c8f58bf1917fcb0b">KeyType::ed25519</a>)</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> {</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="namespaceripple.html#ae301df62c738814e031244626b80c8d4">ed25519Canonical</a>(sig))</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> <span class="keywordflow">if</span> (!<a class="code hl_function" href="namespaceripple.html#ae301df62c738814e031244626b80c8d4">ed25519Canonical</a>(<a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>))</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> </div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> <span class="comment">// We internally prefix Ed25519 keys with a 0xED</span></div>
@@ -374,7 +374,7 @@ $(function() {
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> <span class="comment">// so when verifying the signature, we need to</span></div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> <span class="comment">// first strip that prefix.</span></div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> <span class="keywordflow">return</span> ed25519_sign_open(</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> m.data(), m.size(), publicKey.data() + 1, sig.data()) ==</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> m.data(), m.size(), publicKey.data() + 1, <a class="code hl_class" href="classripple_1_1test_1_1jtx_1_1sig.html">sig</a>.data()) ==</div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> 0;</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> }</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> }</div>
@@ -410,11 +410,13 @@ $(function() {
<div class="ttc" id="aclassripple_1_1Slice_html_aa6faa586508e0f849d4591d807353825"><div class="ttname"><a href="classripple_1_1Slice.html#aa6faa586508e0f849d4591d807353825">ripple::Slice::size</a></div><div class="ttdeci">std::size_t size() const noexcept</div><div class="ttdoc">Returns the number of bytes in the storage.</div><div class="ttdef"><b>Definition:</b> <a href="Slice_8h_source.html#l00081">Slice.h:81</a></div></div>
<div class="ttc" id="aclassripple_1_1base__uint_html"><div class="ttname"><a href="classripple_1_1base__uint.html">ripple::base_uint&lt; 256 &gt;</a></div></div>
<div class="ttc" id="aclassripple_1_1base__uint_html_a0b4a0b3b3751537097e813911d06c072"><div class="ttname"><a href="classripple_1_1base__uint.html#a0b4a0b3b3751537097e813911d06c072">ripple::base_uint&lt; 160, detail::NodeIDTag &gt;::bytes</a></div><div class="ttdeci">static std::size_t constexpr bytes</div><div class="ttdef"><b>Definition:</b> <a href="base__uint_8h_source.html#l00108">base_uint.h:108</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1jtx_1_1sig_html"><div class="ttname"><a href="classripple_1_1test_1_1jtx_1_1sig.html">ripple::test::jtx::sig</a></div><div class="ttdoc">Set the regular signature on a JTx.</div><div class="ttdef"><b>Definition:</b> <a href="sig_8h_source.html#l00034">sig.h:35</a></div></div>
<div class="ttc" id="acstdint_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/cstdint.html">cstdint</a></div></div>
<div class="ttc" id="acstring_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/header/cstring.html">cstring</a></div></div>
<div class="ttc" id="ainteger_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint8_t</a></div></div>
<div class="ttc" id="alexicographical_compare_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/lexicographical_compare.html">std::lexicographical_compare</a></div><div class="ttdeci">T lexicographical_compare(T... args)</div></div>
<div class="ttc" id="amemcpy_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/byte/memcpy.html">std::memcpy</a></div><div class="ttdeci">T memcpy(T... args)</div></div>
<div class="ttc" id="anamespaceripple_1_1test_1_1jtx_html_a6840880b5bbd85a095acdf318411a5d5"><div class="ttname"><a href="namespaceripple_1_1test_1_1jtx.html#a6840880b5bbd85a095acdf318411a5d5">ripple::test::jtx::number</a></div><div class="ttdeci">static Number number(STAmount const &amp;a)</div><div class="ttdef"><b>Definition:</b> <a href="AMM_8cpp_source.html#l00035">AMM.cpp:35</a></div></div>
<div class="ttc" id="anamespaceripple_html"><div class="ttname"><a href="namespaceripple.html">ripple</a></div><div class="ttdoc">Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.</div><div class="ttdef"><b>Definition:</b> <a href="algorithm_8h_source.html#l00026">algorithm.h:26</a></div></div>
<div class="ttc" id="anamespaceripple_html_a00e18a10d625a1dd7c5fff26960a6d16"><div class="ttname"><a href="namespaceripple.html#a00e18a10d625a1dd7c5fff26960a6d16">ripple::secp256k1Context</a></div><div class="ttdeci">secp256k1_context const * secp256k1Context()</div><div class="ttdef"><b>Definition:</b> <a href="secp256k1_8h_source.html#l00029">secp256k1.h:29</a></div></div>
<div class="ttc" id="anamespaceripple_html_a06c04baee32e460076ce4d9df3ffd98f"><div class="ttname"><a href="namespaceripple.html#a06c04baee32e460076ce4d9df3ffd98f">ripple::ecdsaCanonicality</a></div><div class="ttdeci">std::optional&lt; ECDSACanonicality &gt; ecdsaCanonicality(Slice const &amp;sig)</div><div class="ttdoc">Determines the canonicality of a signature.</div><div class="ttdef"><b>Definition:</b> <a href="PublicKey_8cpp_source.html#l00129">PublicKey.cpp:129</a></div></div>