This commit is contained in:
intelliot
2023-03-30 17:17:32 +00:00
parent 46a9e12557
commit 18232bf4ac
216 changed files with 13750 additions and 13618 deletions

View File

@@ -256,10 +256,10 @@ $(function() {
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; </div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="comment">// m is non-const so it can be moved from</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> m(<span class="keyword">static_cast&lt;</span><span class="keywordtype">char</span> const*<span class="keyword">&gt;</span>(s.<a class="code" href="classripple_1_1Serializer.html#a7caa5feabdbbeb1e2e89e0d0543b5911">data</a>()), s.<a class="code" href="classripple_1_1Serializer.html#a0c39565dc9b4fde1230586ba826889c0">size</a>());</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">auto</span> r = <a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(std::move(m)))</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">auto</span> r = <a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(std::move(m)))</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">return</span> std::move(*r);</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; Throw&lt;std::runtime_error&gt;(<span class="stringliteral">&quot;Could not create a revocation manifest&quot;</span>);</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">return</span> *<a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">return</span> *<a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>{}); <span class="comment">// Silence compiler warning.</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; </div>
@@ -299,10 +299,10 @@ $(function() {
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> m(</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keyword">static_cast&lt;</span><span class="keywordtype">char</span> const*<span class="keyword">&gt;</span>(s.<a class="code" href="classripple_1_1Serializer.html#a7caa5feabdbbeb1e2e89e0d0543b5911">data</a>()),</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; s.<a class="code" href="classripple_1_1Serializer.html#a0c39565dc9b4fde1230586ba826889c0">size</a>()); <span class="comment">// non-const so can be moved</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">auto</span> r = <a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(std::move(m)))</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">auto</span> r = <a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(std::move(m)))</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span> std::move(*r);</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; Throw&lt;std::runtime_error&gt;(<span class="stringliteral">&quot;Could not create a manifest&quot;</span>);</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">return</span> *<a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">return</span> *<a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>{}); <span class="comment">// Silence compiler warning.</span></div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; </div>
@@ -622,14 +622,14 @@ $(function() {
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="stringliteral">&quot;r7C0kw&quot;</span></div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="stringliteral">&quot;2AiTzSCjIzditQ8=&quot;</span>;</div>
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; </div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> token = <a class="code" href="namespaceripple.html#ae0ca3b7a2ae99eadf8d6d82328c47d8b">loadValidatorToken</a>(tokenBlob);</div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> token = <a class="code" href="namespaceripple.html#ac6efcb88018ad82c1a2be29369eff4cc">loadValidatorToken</a>(tokenBlob);</div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; BEAST_EXPECT(token);</div>
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; BEAST_EXPECT(token-&gt;validationSecret == *valSecret);</div>
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; BEAST_EXPECT(token-&gt;manifest == <a class="code" href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda7f5cb74af5d7f4b82200738fdbdc5a45">manifest</a>);</div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; }</div>
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; {</div>
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/container/vector.html">std::vector&lt;std::string&gt;</a> <span class="keyword">const</span> badToken = {<span class="stringliteral">&quot;bad token&quot;</span>};</div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#ae0ca3b7a2ae99eadf8d6d82328c47d8b">loadValidatorToken</a>(badToken));</div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#ac6efcb88018ad82c1a2be29369eff4cc">loadValidatorToken</a>(badToken));</div>
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; }</div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; }</div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; </div>
@@ -668,11 +668,11 @@ $(function() {
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; };</div>
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; </div>
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="comment">// We understand version 0 manifests:</span></div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; BEAST_EXPECT(<a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(buildManifestObject(0)));</div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; BEAST_EXPECT(<a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(buildManifestObject(0)));</div>
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; </div>
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="comment">// We don&#39;t understand any other versions:</span></div>
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(buildManifestObject(1)));</div>
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(buildManifestObject(2001)));</div>
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(buildManifestObject(1)));</div>
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(buildManifestObject(2001)));</div>
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; }</div>
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; </div>
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keywordtype">void</span></div>
@@ -763,7 +763,7 @@ $(function() {
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; buildManifestObject(++sequence, std::nullopt);</div>
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; </div>
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> m = toString(st);</div>
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code" href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda7f5cb74af5d7f4b82200738fdbdc5a45">manifest</a> = <a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(m);</div>
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code" href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda7f5cb74af5d7f4b82200738fdbdc5a45">manifest</a> = <a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(m);</div>
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; </div>
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; BEAST_EXPECT(<a class="code" href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda7f5cb74af5d7f4b82200738fdbdc5a45">manifest</a>);</div>
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; BEAST_EXPECT(<a class="code" href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda7f5cb74af5d7f4b82200738fdbdc5a45">manifest</a>-&gt;masterKey == pk);</div>
@@ -778,25 +778,25 @@ $(function() {
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> st =</div>
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; buildManifestObject(++sequence, <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>{});</div>
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; </div>
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(toString(st)));</div>
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(toString(st)));</div>
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; }</div>
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; </div>
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; { <span class="comment">// invalid manifest (domain too short)</span></div>
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> st =</div>
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; buildManifestObject(++sequence, <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>{<span class="stringliteral">&quot;a.b&quot;</span>});</div>
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(toString(st)));</div>
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(toString(st)));</div>
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; }</div>
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; { <span class="comment">// invalid manifest (domain too long)</span></div>
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> s(254, <span class="charliteral">&#39;a&#39;</span>);</div>
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> st =</div>
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; buildManifestObject(++sequence, s + <span class="stringliteral">&quot;.example.com&quot;</span>);</div>
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(toString(st)));</div>
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(toString(st)));</div>
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; }</div>
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; { <span class="comment">// invalid manifest (domain component too long)</span></div>
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a> s(72, <span class="charliteral">&#39;a&#39;</span>);</div>
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> st =</div>
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; buildManifestObject(++sequence, s + <span class="stringliteral">&quot;.example.com&quot;</span>);</div>
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(toString(st)));</div>
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(toString(st)));</div>
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; }</div>
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; </div>
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> st = buildManifestObject(</div>
@@ -805,7 +805,7 @@ $(function() {
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; {</div>
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <span class="comment">// valid manifest with domain</span></div>
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> m = toString(st);</div>
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code" href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda7f5cb74af5d7f4b82200738fdbdc5a45">manifest</a> = <a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(m);</div>
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code" href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda7f5cb74af5d7f4b82200738fdbdc5a45">manifest</a> = <a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(m);</div>
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; </div>
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; BEAST_EXPECT(<a class="code" href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda7f5cb74af5d7f4b82200738fdbdc5a45">manifest</a>);</div>
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; BEAST_EXPECT(<a class="code" href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda7f5cb74af5d7f4b82200738fdbdc5a45">manifest</a>-&gt;masterKey == pk);</div>
@@ -821,7 +821,7 @@ $(function() {
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; badSigSt[<a class="code" href="namespaceripple.html#a586714bf3cbbbb406d6f169742bce0d5">sfSequence</a>] = sequence + 1;</div>
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; </div>
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> m = toString(badSigSt);</div>
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code" href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda7f5cb74af5d7f4b82200738fdbdc5a45">manifest</a> = <a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(m);</div>
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code" href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda7f5cb74af5d7f4b82200738fdbdc5a45">manifest</a> = <a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(m);</div>
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; </div>
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; BEAST_EXPECT(<a class="code" href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda7f5cb74af5d7f4b82200738fdbdc5a45">manifest</a>);</div>
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; BEAST_EXPECT(<a class="code" href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda7f5cb74af5d7f4b82200738fdbdc5a45">manifest</a>-&gt;masterKey == pk);</div>
@@ -835,55 +835,55 @@ $(function() {
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <span class="comment">// reject missing sequence</span></div>
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keyword">auto</span> badSt = st;</div>
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; BEAST_EXPECT(badSt.delField(<a class="code" href="namespaceripple.html#a586714bf3cbbbb406d6f169742bce0d5">sfSequence</a>));</div>
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(toString(badSt)));</div>
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(toString(badSt)));</div>
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; }</div>
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; {</div>
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="comment">// reject missing public key</span></div>
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <span class="keyword">auto</span> badSt = st;</div>
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; BEAST_EXPECT(badSt.delField(<a class="code" href="namespaceripple.html#a16991de33a4e83d355de9c387c712a4e">sfPublicKey</a>));</div>
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(toString(badSt)));</div>
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(toString(badSt)));</div>
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; }</div>
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; {</div>
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="comment">// reject invalid public key type</span></div>
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; <span class="keyword">auto</span> badSt = st;</div>
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; badSt[<a class="code" href="namespaceripple.html#a16991de33a4e83d355de9c387c712a4e">sfPublicKey</a>] = <a class="code" href="namespaceripple.html#aabe37451093c21757855542d68fba3ce">makeSlice</a>(badKey);</div>
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(toString(badSt)));</div>
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(toString(badSt)));</div>
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; }</div>
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; {</div>
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; <span class="comment">// reject short public key</span></div>
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <span class="keyword">auto</span> badSt = st;</div>
<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; badSt[<a class="code" href="namespaceripple.html#a16991de33a4e83d355de9c387c712a4e">sfPublicKey</a>] = <a class="code" href="namespaceripple.html#aabe37451093c21757855542d68fba3ce">makeSlice</a>(shortKey);</div>
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(toString(badSt)));</div>
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(toString(badSt)));</div>
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; }</div>
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; {</div>
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <span class="comment">// reject missing signing public key</span></div>
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <span class="keyword">auto</span> badSt = st;</div>
<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; BEAST_EXPECT(badSt.delField(<a class="code" href="namespaceripple.html#a590913040d5c9a68f3bf1d4da20311ad">sfSigningPubKey</a>));</div>
<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(toString(badSt)));</div>
<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(toString(badSt)));</div>
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; }</div>
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; {</div>
<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; <span class="comment">// reject invalid signing public key type</span></div>
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keyword">auto</span> badSt = st;</div>
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; badSt[<a class="code" href="namespaceripple.html#a590913040d5c9a68f3bf1d4da20311ad">sfSigningPubKey</a>] = <a class="code" href="namespaceripple.html#aabe37451093c21757855542d68fba3ce">makeSlice</a>(badKey);</div>
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(toString(badSt)));</div>
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(toString(badSt)));</div>
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; }</div>
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; {</div>
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <span class="comment">// reject short signing public key</span></div>
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <span class="keyword">auto</span> badSt = st;</div>
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; badSt[<a class="code" href="namespaceripple.html#a590913040d5c9a68f3bf1d4da20311ad">sfSigningPubKey</a>] = <a class="code" href="namespaceripple.html#aabe37451093c21757855542d68fba3ce">makeSlice</a>(shortKey);</div>
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(toString(badSt)));</div>
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(toString(badSt)));</div>
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; }</div>
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; {</div>
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="comment">// reject missing signature</span></div>
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <span class="keyword">auto</span> badSt = st;</div>
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; BEAST_EXPECT(badSt.delField(<a class="code" href="namespaceripple.html#aebd6b4047aa2e572fbdc8c4247128e5a">sfMasterSignature</a>));</div>
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(toString(badSt)));</div>
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(toString(badSt)));</div>
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; }</div>
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; {</div>
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; <span class="comment">// reject missing signing key signature</span></div>
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <span class="keyword">auto</span> badSt = st;</div>
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; BEAST_EXPECT(badSt.delField(<a class="code" href="namespaceripple.html#a61932ff70203e248b70ca3b215667435">sfSignature</a>));</div>
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(toString(badSt)));</div>
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(toString(badSt)));</div>
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; }</div>
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; {</div>
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; <span class="comment">// reject matching master &amp; ephemeral keys</span></div>
@@ -901,7 +901,7 @@ $(function() {
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; </div>
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <a class="code" href="namespaceripple.html#a93d957d4aa50cd0c2b37f05453a0dd68">sign</a>(st, <a class="code" href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda7f5cb74af5d7f4b82200738fdbdc5a45">HashPrefix::manifest</a>, sKeyType, sk);</div>
<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; </div>
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(toString(st)));</div>
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(toString(st)));</div>
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; }</div>
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; }</div>
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; </div>
@@ -919,7 +919,7 @@ $(function() {
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <span class="keyword">true</span>);</div>
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; </div>
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> m = toString(st);</div>
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code" href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda7f5cb74af5d7f4b82200738fdbdc5a45">manifest</a> = <a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(m);</div>
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> <a class="code" href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda7f5cb74af5d7f4b82200738fdbdc5a45">manifest</a> = <a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(m);</div>
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; </div>
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; BEAST_EXPECT(<a class="code" href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda7f5cb74af5d7f4b82200738fdbdc5a45">manifest</a>);</div>
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; BEAST_EXPECT(<a class="code" href="namespaceripple.html#ad5143ceada01141772ae4aab984f94bda7f5cb74af5d7f4b82200738fdbdc5a45">manifest</a>-&gt;masterKey == pk);</div>
@@ -937,7 +937,7 @@ $(function() {
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; <span class="keyword">true</span>,</div>
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; <span class="keyword">false</span>);</div>
<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; </div>
<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(toString(st)));</div>
<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(toString(st)));</div>
<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; }</div>
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; { <span class="comment">// can&#39;t specify an ephemeral signature</span></div>
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> st = buildManifestObject(</div>
@@ -946,7 +946,7 @@ $(function() {
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; <span class="keyword">false</span>,</div>
<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; <span class="keyword">true</span>);</div>
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; </div>
<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(toString(st)));</div>
<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(toString(st)));</div>
<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; }</div>
<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; { <span class="comment">// can&#39;t specify an ephemeral key &amp; signature</span></div>
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; <span class="keyword">auto</span> <span class="keyword">const</span> st = buildManifestObject(</div>
@@ -955,7 +955,7 @@ $(function() {
<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; <span class="keyword">false</span>,</div>
<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; <span class="keyword">false</span>);</div>
<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; </div>
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(toString(st)));</div>
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(toString(st)));</div>
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; }</div>
<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; }</div>
<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; }</div>
@@ -991,7 +991,7 @@ $(function() {
<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; <a class="code" href="classripple_1_1Serializer.html">Serializer</a> s;</div>
<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; st.<a class="code" href="classripple_1_1STObject.html#a7adccac3a1b54244ae210afe7c5916e8">add</a>(s);</div>
<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; </div>
<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(</div>
<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(</div>
<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <a class="codeRef" href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a>(<span class="keyword">static_cast&lt;</span><span class="keywordtype">char</span> const*<span class="keyword">&gt;</span>(s.<a class="code" href="classripple_1_1Serializer.html#a7caa5feabdbbeb1e2e89e0d0543b5911">data</a>()), s.<a class="code" href="classripple_1_1Serializer.html#a0c39565dc9b4fde1230586ba826889c0">size</a>()));</div>
<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; };</div>
<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; </div>
@@ -1127,7 +1127,7 @@ $(function() {
<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; <a class="code" href="namespaceripple.html#a8a16d6f665a032453ec4cbfca01929b6a3e4d891a5df3d6d0d7dd9432a1bc6470">ManifestDisposition::accepted</a>);</div>
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; BEAST_EXPECT(</div>
<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; cache.<a class="code" href="classripple_1_1ManifestCache.html#a882c588d2f26d7d61ae3ffe4212cbae0">applyManifest</a>(<a class="code" href="classripple_1_1test_1_1Manifest__test.html#adb24862414659fab9c78397d605af5cc">clone</a>(s_b0)) == <a class="code" href="namespaceripple.html#a8a16d6f665a032453ec4cbfca01929b6a36f34fd8319cf30f8e132ef294c616af">ManifestDisposition::stale</a>);</div>
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">deserializeManifest</a>(fake));</div>
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; BEAST_EXPECT(!<a class="code" href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">deserializeManifest</a>(fake));</div>
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; BEAST_EXPECT(</div>
<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; cache.<a class="code" href="classripple_1_1ManifestCache.html#a882c588d2f26d7d61ae3ffe4212cbae0">applyManifest</a>(<a class="code" href="classripple_1_1test_1_1Manifest__test.html#adb24862414659fab9c78397d605af5cc">clone</a>(s_b1)) ==</div>
<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; <a class="code" href="namespaceripple.html#a8a16d6f665a032453ec4cbfca01929b6afedb2d84cafe20862cb4399751a8a7e3">ManifestDisposition::invalid</a>);</div>
@@ -1167,10 +1167,11 @@ $(function() {
<div class="ttc" id="abasic_string_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/string/basic_string.html">std::string</a></div><div class="ttdoc">STL class.</div></div>
<div class="ttc" id="aequal_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/equal.html">std::equal</a></div><div class="ttdeci">T equal(T... args)</div></div>
<div class="ttc" id="aclassripple_1_1test_1_1Manifest__test_html_a986d11c10712c59be363eab558913773"><div class="ttname"><a href="classripple_1_1test_1_1Manifest__test.html#a986d11c10712c59be363eab558913773">ripple::test::Manifest_test::getDatabasePath</a></div><div class="ttdeci">static boost::filesystem::path getDatabasePath()</div><div class="ttdef"><b>Definition:</b> <a href="Manifest__test_8cpp_source.html#l00080">Manifest_test.cpp:80</a></div></div>
<div class="ttc" id="aclassripple_1_1ManifestCache_html_adbe8167cfd5ac328a9bf8b85c319ddc1"><div class="ttname"><a href="classripple_1_1ManifestCache.html#adbe8167cfd5ac328a9bf8b85c319ddc1">ripple::ManifestCache::getMasterKey</a></div><div class="ttdeci">PublicKey getMasterKey(PublicKey const &amp;pk) const</div><div class="ttdoc">Returns ephemeral signing key's master public key.</div><div class="ttdef"><b>Definition:</b> <a href="app_2misc_2impl_2Manifest_8cpp_source.html#l00299">app/misc/impl/Manifest.cpp:299</a></div></div>
<div class="ttc" id="aclassripple_1_1ManifestCache_html_adbe8167cfd5ac328a9bf8b85c319ddc1"><div class="ttname"><a href="classripple_1_1ManifestCache.html#adbe8167cfd5ac328a9bf8b85c319ddc1">ripple::ManifestCache::getMasterKey</a></div><div class="ttdeci">PublicKey getMasterKey(PublicKey const &amp;pk) const</div><div class="ttdoc">Returns ephemeral signing key's master public key.</div><div class="ttdef"><b>Definition:</b> <a href="app_2misc_2impl_2Manifest_8cpp_source.html#l00303">app/misc/impl/Manifest.cpp:303</a></div></div>
<div class="ttc" id="aexception_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/error/exception.html">std::exception</a></div><div class="ttdoc">STL class.</div></div>
<div class="ttc" id="astructripple_1_1DatabaseCon_1_1Setup_html"><div class="ttname"><a href="structripple_1_1DatabaseCon_1_1Setup.html">ripple::DatabaseCon::Setup</a></div><div class="ttdef"><b>Definition:</b> <a href="DatabaseCon_8h_source.html#l00084">DatabaseCon.h:84</a></div></div>
<div class="ttc" id="anamespaceripple_html_a5b37d2021c21c06e89ffc7d7f55cc354"><div class="ttname"><a href="namespaceripple.html#a5b37d2021c21c06e89ffc7d7f55cc354">ripple::sfGeneric</a></div><div class="ttdeci">const SField sfGeneric(access, 0)</div><div class="ttdef"><b>Definition:</b> <a href="SField_8h_source.html#l00327">SField.h:327</a></div></div>
<div class="ttc" id="anamespaceripple_html_ac6efcb88018ad82c1a2be29369eff4cc"><div class="ttname"><a href="namespaceripple.html#ac6efcb88018ad82c1a2be29369eff4cc">ripple::loadValidatorToken</a></div><div class="ttdeci">std::optional&lt; ValidatorToken &gt; loadValidatorToken(std::vector&lt; std::string &gt; const &amp;blob, beast::Journal journal)</div><div class="ttdef"><b>Definition:</b> <a href="app_2misc_2impl_2Manifest_8cpp_source.html#l00244">app/misc/impl/Manifest.cpp:244</a></div></div>
<div class="ttc" id="astructripple_1_1Manifest_html"><div class="ttname"><a href="structripple_1_1Manifest.html">ripple::Manifest</a></div><div class="ttdef"><b>Definition:</b> <a href="Manifest_8h_source.html#l00080">Manifest.h:80</a></div></div>
<div class="ttc" id="areserve_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/reserve.html">std::vector::reserve</a></div><div class="ttdeci">T reserve(T... args)</div></div>
<div class="ttc" id="anamespaceripple_html_a586714bf3cbbbb406d6f169742bce0d5"><div class="ttname"><a href="namespaceripple.html#a586714bf3cbbbb406d6f169742bce0d5">ripple::sfSequence</a></div><div class="ttdeci">const SF_UINT32 sfSequence</div></div>
@@ -1193,7 +1194,7 @@ $(function() {
<div class="ttc" id="aclassripple_1_1test_1_1Manifest__test_html_a581f79111a64b3a2ca1fd05651a7689c"><div class="ttname"><a href="classripple_1_1test_1_1Manifest__test.html#a581f79111a64b3a2ca1fd05651a7689c">ripple::test::Manifest_test::Manifest_test</a></div><div class="ttdeci">Manifest_test()</div><div class="ttdef"><b>Definition:</b> <a href="Manifest__test_8cpp_source.html#l00086">Manifest_test.cpp:86</a></div></div>
<div class="ttc" id="anamespaceripple_html_a749483c19248acfb0e4679a9560faaa2"><div class="ttname"><a href="namespaceripple.html#a749483c19248acfb0e4679a9560faaa2">ripple::makeTestWalletDB</a></div><div class="ttdeci">std::unique_ptr&lt; DatabaseCon &gt; makeTestWalletDB(DatabaseCon::Setup const &amp;setup, std::string const &amp;dbname)</div><div class="ttdoc">makeTestWalletDB Opens a test wallet database with an arbitrary name.</div><div class="ttdef"><b>Definition:</b> <a href="Wallet_8cpp_source.html#l00034">Wallet.cpp:34</a></div></div>
<div class="ttc" id="asort_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/algorithm/sort.html">std::sort</a></div><div class="ttdeci">T sort(T... args)</div></div>
<div class="ttc" id="aclassripple_1_1ManifestCache_html_ad38243694bc875ac8bff27e7370ef307"><div class="ttname"><a href="classripple_1_1ManifestCache.html#ad38243694bc875ac8bff27e7370ef307">ripple::ManifestCache::save</a></div><div class="ttdeci">void save(DatabaseCon &amp;dbCon, std::string const &amp;dbTable, std::function&lt; bool(PublicKey const &amp;)&gt; const &amp;isTrusted)</div><div class="ttdoc">Save cached manifests to database.</div><div class="ttdef"><b>Definition:</b> <a href="app_2misc_2impl_2Manifest_8cpp_source.html#l00573">app/misc/impl/Manifest.cpp:573</a></div></div>
<div class="ttc" id="aclassripple_1_1ManifestCache_html_ad38243694bc875ac8bff27e7370ef307"><div class="ttname"><a href="classripple_1_1ManifestCache.html#ad38243694bc875ac8bff27e7370ef307">ripple::ManifestCache::save</a></div><div class="ttdeci">void save(DatabaseCon &amp;dbCon, std::string const &amp;dbTable, std::function&lt; bool(PublicKey const &amp;)&gt; const &amp;isTrusted)</div><div class="ttdoc">Save cached manifests to database.</div><div class="ttdef"><b>Definition:</b> <a href="app_2misc_2impl_2Manifest_8cpp_source.html#l00577">app/misc/impl/Manifest.cpp:577</a></div></div>
<div class="ttc" id="aclassripple_1_1Serializer_html_a7caa5feabdbbeb1e2e89e0d0543b5911"><div class="ttname"><a href="classripple_1_1Serializer.html#a7caa5feabdbbeb1e2e89e0d0543b5911">ripple::Serializer::data</a></div><div class="ttdeci">void const * data() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="Serializer_8h_source.html#l00075">Serializer.h:75</a></div></div>
<div class="ttc" id="apush_back_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/vector/push_back.html">std::vector::push_back</a></div><div class="ttdeci">T push_back(T... args)</div></div>
<div class="ttc" id="aclassripple_1_1test_1_1Manifest__test_html_a6d25b563af7348e06624a99adb9593e1"><div class="ttname"><a href="classripple_1_1test_1_1Manifest__test.html#a6d25b563af7348e06624a99adb9593e1">ripple::test::Manifest_test::makeRevocationString</a></div><div class="ttdeci">std::string makeRevocationString(SecretKey const &amp;sk, KeyType type, bool invalidSig=false)</div><div class="ttdef"><b>Definition:</b> <a href="Manifest__test_8cpp_source.html#l00136">Manifest_test.cpp:136</a></div></div>
@@ -1212,13 +1213,12 @@ $(function() {
<div class="ttc" id="anamespaceripple_html_ac2e5e1557daef529932fd0a047d5c5d6"><div class="ttname"><a href="namespaceripple.html#ac2e5e1557daef529932fd0a047d5c5d6">ripple::derivePublicKey</a></div><div class="ttdeci">PublicKey derivePublicKey(KeyType type, SecretKey const &amp;sk)</div><div class="ttdoc">Derive the public key from a secret key.</div><div class="ttdef"><b>Definition:</b> <a href="SecretKey_8cpp_source.html#l00313">SecretKey.cpp:313</a></div></div>
<div class="ttc" id="anamespaceripple_html_aebd6b4047aa2e572fbdc8c4247128e5a"><div class="ttname"><a href="namespaceripple.html#aebd6b4047aa2e572fbdc8c4247128e5a">ripple::sfMasterSignature</a></div><div class="ttdeci">const SF_VL sfMasterSignature</div></div>
<div class="ttc" id="aarray_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/container/array.html">std::array</a></div><div class="ttdoc">STL class.</div></div>
<div class="ttc" id="aclassripple_1_1ManifestCache_html_a6494e744b90cbecd735b460fcd7be82f"><div class="ttname"><a href="classripple_1_1ManifestCache.html#a6494e744b90cbecd735b460fcd7be82f">ripple::ManifestCache::revoked</a></div><div class="ttdeci">bool revoked(PublicKey const &amp;pk) const</div><div class="ttdoc">Returns true if master key has been revoked in a manifest.</div><div class="ttdef"><b>Definition:</b> <a href="app_2misc_2impl_2Manifest_8cpp_source.html#l00347">app/misc/impl/Manifest.cpp:347</a></div></div>
<div class="ttc" id="aclassripple_1_1ManifestCache_html_a6494e744b90cbecd735b460fcd7be82f"><div class="ttname"><a href="classripple_1_1ManifestCache.html#a6494e744b90cbecd735b460fcd7be82f">ripple::ManifestCache::revoked</a></div><div class="ttdeci">bool revoked(PublicKey const &amp;pk) const</div><div class="ttdoc">Returns true if master key has been revoked in a manifest.</div><div class="ttdef"><b>Definition:</b> <a href="app_2misc_2impl_2Manifest_8cpp_source.html#l00351">app/misc/impl/Manifest.cpp:351</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1Manifest__test_html_aed5bf624c92367f446299cceb12dbeab"><div class="ttname"><a href="classripple_1_1test_1_1Manifest__test.html#aed5bf624c92367f446299cceb12dbeab">ripple::test::Manifest_test::testLoadStore</a></div><div class="ttdeci">void testLoadStore(ManifestCache &amp;m)</div><div class="ttdef"><b>Definition:</b> <a href="Manifest__test_8cpp_source.html#l00251">Manifest_test.cpp:251</a></div></div>
<div class="ttc" id="anamespaceripple_html_a4051033596516e3ebd7c996004ed08f0"><div class="ttname"><a href="namespaceripple.html#a4051033596516e3ebd7c996004ed08f0">ripple::randomSeed</a></div><div class="ttdeci">Seed randomSeed()</div><div class="ttdoc">Create a seed using secure random numbers.</div><div class="ttdef"><b>Definition:</b> <a href="Seed_8cpp_source.html#l00059">Seed.cpp:59</a></div></div>
<div class="ttc" id="aclassripple_1_1Serializer_html_a394c3299f6cfcebdaa4bc98ec0c602d6"><div class="ttname"><a href="classripple_1_1Serializer.html#a394c3299f6cfcebdaa4bc98ec0c602d6">ripple::Serializer::slice</a></div><div class="ttdeci">Slice slice() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="Serializer_8h_source.html#l00063">Serializer.h:63</a></div></div>
<div class="ttc" id="anamespaceripple_html_ae0ca3b7a2ae99eadf8d6d82328c47d8b"><div class="ttname"><a href="namespaceripple.html#ae0ca3b7a2ae99eadf8d6d82328c47d8b">ripple::loadValidatorToken</a></div><div class="ttdeci">std::optional&lt; ValidatorToken &gt; loadValidatorToken(std::vector&lt; std::string &gt; const &amp;blob)</div><div class="ttdef"><b>Definition:</b> <a href="app_2misc_2impl_2Manifest_8cpp_source.html#l00242">app/misc/impl/Manifest.cpp:242</a></div></div>
<div class="ttc" id="anamespaceripple_html_a16bc1df1e559042ebb40c73b573de885"><div class="ttname"><a href="namespaceripple.html#a16bc1df1e559042ebb40c73b573de885">ripple::generateSecretKey</a></div><div class="ttdeci">SecretKey generateSecretKey(KeyType type, Seed const &amp;seed)</div><div class="ttdoc">Generate a new secret key deterministically.</div><div class="ttdef"><b>Definition:</b> <a href="SecretKey_8cpp_source.html#l00291">SecretKey.cpp:291</a></div></div>
<div class="ttc" id="aclassripple_1_1ManifestCache_html_a8409a7089c3e04f972f1513a54576133"><div class="ttname"><a href="classripple_1_1ManifestCache.html#a8409a7089c3e04f972f1513a54576133">ripple::ManifestCache::getSigningKey</a></div><div class="ttdeci">PublicKey getSigningKey(PublicKey const &amp;pk) const</div><div class="ttdoc">Returns master key's current signing key.</div><div class="ttdef"><b>Definition:</b> <a href="app_2misc_2impl_2Manifest_8cpp_source.html#l00287">app/misc/impl/Manifest.cpp:287</a></div></div>
<div class="ttc" id="aclassripple_1_1ManifestCache_html_a8409a7089c3e04f972f1513a54576133"><div class="ttname"><a href="classripple_1_1ManifestCache.html#a8409a7089c3e04f972f1513a54576133">ripple::ManifestCache::getSigningKey</a></div><div class="ttdeci">PublicKey getSigningKey(PublicKey const &amp;pk) const</div><div class="ttdoc">Returns master key's current signing key.</div><div class="ttdef"><b>Definition:</b> <a href="app_2misc_2impl_2Manifest_8cpp_source.html#l00291">app/misc/impl/Manifest.cpp:291</a></div></div>
<div class="ttc" id="ainteger_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/integer.html">std::uint16_t</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:34</a></div></div>
<div class="ttc" id="aclassripple_1_1SecretKey_html"><div class="ttname"><a href="classripple_1_1SecretKey.html">ripple::SecretKey</a></div><div class="ttdoc">A secret key.</div><div class="ttdef"><b>Definition:</b> <a href="SecretKey_8h_source.html#l00036">SecretKey.h:36</a></div></div>
@@ -1236,7 +1236,7 @@ $(function() {
<div class="ttc" id="anamespaceripple_html_ac52a0a522fc11bdd47fce39bd29f97bc"><div class="ttname"><a href="namespaceripple.html#ac52a0a522fc11bdd47fce39bd29f97bc">ripple::randomKeyPair</a></div><div class="ttdeci">std::pair&lt; PublicKey, SecretKey &gt; randomKeyPair(KeyType type)</div><div class="ttdoc">Create a key pair using secure random numbers.</div><div class="ttdef"><b>Definition:</b> <a href="SecretKey_8cpp_source.html#l00368">SecretKey.cpp:368</a></div></div>
<div class="ttc" id="aclassripple_1_1test_1_1Manifest__test_html_a87f9ccf6d4884f4d8761bacfbc87bc3d"><div class="ttname"><a href="classripple_1_1test_1_1Manifest__test.html#a87f9ccf6d4884f4d8761bacfbc87bc3d">ripple::test::Manifest_test::testGetKeys</a></div><div class="ttdeci">void testGetKeys()</div><div class="ttdef"><b>Definition:</b> <a href="Manifest__test_8cpp_source.html#l00454">Manifest_test.cpp:454</a></div></div>
<div class="ttc" id="astructripple_1_1test_1_1jtx_1_1seq_html"><div class="ttname"><a href="structripple_1_1test_1_1jtx_1_1seq.html">ripple::test::jtx::seq</a></div><div class="ttdoc">Set the sequence number on a JTx.</div><div class="ttdef"><b>Definition:</b> <a href="seq_8h_source.html#l00033">seq.h:33</a></div></div>
<div class="ttc" id="aclassripple_1_1ManifestCache_html"><div class="ttname"><a href="classripple_1_1ManifestCache.html">ripple::ManifestCache</a></div><div class="ttdoc">Remembers manifests with the highest sequence number.</div><div class="ttdef"><b>Definition:</b> <a href="Manifest_8h_source.html#l00225">Manifest.h:225</a></div></div>
<div class="ttc" id="aclassripple_1_1ManifestCache_html"><div class="ttname"><a href="classripple_1_1ManifestCache.html">ripple::ManifestCache</a></div><div class="ttdoc">Remembers manifests with the highest sequence number.</div><div class="ttdef"><b>Definition:</b> <a href="Manifest_8h_source.html#l00231">Manifest.h:231</a></div></div>
<div class="ttc" id="aclassripple_1_1STObject_html_a7adccac3a1b54244ae210afe7c5916e8"><div class="ttname"><a href="classripple_1_1STObject.html#a7adccac3a1b54244ae210afe7c5916e8">ripple::STObject::add</a></div><div class="ttdeci">void add(Serializer &amp;s) const override</div><div class="ttdef"><b>Definition:</b> <a href="STObject_8cpp_source.html#l00085">STObject.cpp:85</a></div></div>
<div class="ttc" id="aclassripple_1_1STObject_html"><div class="ttname"><a href="classripple_1_1STObject.html">ripple::STObject</a></div><div class="ttdef"><b>Definition:</b> <a href="STObject_8h_source.html#l00051">STObject.h:51</a></div></div>
<div class="ttc" id="anamespaceripple_html_a8a16d6f665a032453ec4cbfca01929b6a36f34fd8319cf30f8e132ef294c616af"><div class="ttname"><a href="namespaceripple.html#a8a16d6f665a032453ec4cbfca01929b6a36f34fd8319cf30f8e132ef294c616af">ripple::ManifestDisposition::stale</a></div><div class="ttdeci">@ stale</div><div class="ttdoc">Sequence is too old.</div></div>
@@ -1253,11 +1253,11 @@ $(function() {
<div class="ttc" id="anamespaceripple_html_af9776f187d3686a7fba4c2d2fbeebdf4"><div class="ttname"><a href="namespaceripple.html#af9776f187d3686a7fba4c2d2fbeebdf4">ripple::to_string</a></div><div class="ttdeci">std::string to_string(Manifest const &amp;m)</div><div class="ttdoc">Format the specified manifest to a string for debugging purposes.</div><div class="ttdef"><b>Definition:</b> <a href="app_2misc_2impl_2Manifest_8cpp_source.html#l00041">app/misc/impl/Manifest.cpp:41</a></div></div>
<div class="ttc" id="aclassripple_1_1Serializer_html_a55ebab5e9bf8d8231da8f3c796150719"><div class="ttname"><a href="classripple_1_1Serializer.html#a55ebab5e9bf8d8231da8f3c796150719">ripple::Serializer::add32</a></div><div class="ttdeci">int add32(std::uint32_t i)</div><div class="ttdef"><b>Definition:</b> <a href="Serializer_8cpp_source.html#l00038">Serializer.cpp:38</a></div></div>
<div class="ttc" id="anamespaceripple_html_a86e358ce3f06ff049af13c2342791cf8"><div class="ttname"><a href="namespaceripple.html#a86e358ce3f06ff049af13c2342791cf8">ripple::strHex</a></div><div class="ttdeci">std::string strHex(FwdIt begin, FwdIt end)</div><div class="ttdef"><b>Definition:</b> <a href="strHex_8h_source.html#l00030">strHex.h:30</a></div></div>
<div class="ttc" id="anamespaceripple_html_a12a05294e1d72bbcf9718dc99195ad19"><div class="ttname"><a href="namespaceripple.html#a12a05294e1d72bbcf9718dc99195ad19">ripple::deserializeManifest</a></div><div class="ttdeci">std::optional&lt; Manifest &gt; deserializeManifest(Slice s, beast::Journal journal)</div><div class="ttdoc">Constructs Manifest from serialized string.</div><div class="ttdef"><b>Definition:</b> <a href="app_2misc_2impl_2Manifest_8cpp_source.html#l00053">app/misc/impl/Manifest.cpp:53</a></div></div>
<div class="ttc" id="amax_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/numeric_limits/max.html">std::numeric_limits::max</a></div><div class="ttdeci">T max(T... args)</div></div>
<div class="ttc" id="aclassripple_1_1ManifestCache_html_ac42643e71e254d658a38a61a070864c6"><div class="ttname"><a href="classripple_1_1ManifestCache.html#ac42643e71e254d658a38a61a070864c6">ripple::ManifestCache::load</a></div><div class="ttdeci">bool load(DatabaseCon &amp;dbCon, std::string const &amp;dbTable, std::string const &amp;configManifest, std::vector&lt; std::string &gt; const &amp;configRevocation)</div><div class="ttdoc">Populate manifest cache with manifests in database and config.</div><div class="ttdef"><b>Definition:</b> <a href="app_2misc_2impl_2Manifest_8cpp_source.html#l00516">app/misc/impl/Manifest.cpp:516</a></div></div>
<div class="ttc" id="aclassripple_1_1ManifestCache_html_ac42643e71e254d658a38a61a070864c6"><div class="ttname"><a href="classripple_1_1ManifestCache.html#ac42643e71e254d658a38a61a070864c6">ripple::ManifestCache::load</a></div><div class="ttdeci">bool load(DatabaseCon &amp;dbCon, std::string const &amp;dbTable, std::string const &amp;configManifest, std::vector&lt; std::string &gt; const &amp;configRevocation)</div><div class="ttdoc">Populate manifest cache with manifests in database and config.</div><div class="ttdef"><b>Definition:</b> <a href="app_2misc_2impl_2Manifest_8cpp_source.html#l00520">app/misc/impl/Manifest.cpp:520</a></div></div>
<div class="ttc" id="anamespaceripple_html_a3cb8c107255b52f0702f97a3c3929a43"><div class="ttname"><a href="namespaceripple.html#a3cb8c107255b52f0702f97a3c3929a43">ripple::sfDomain</a></div><div class="ttdeci">const SF_VL sfDomain</div></div>
<div class="ttc" id="aclassripple_1_1ManifestCache_html_a882c588d2f26d7d61ae3ffe4212cbae0"><div class="ttname"><a href="classripple_1_1ManifestCache.html#a882c588d2f26d7d61ae3ffe4212cbae0">ripple::ManifestCache::applyManifest</a></div><div class="ttdeci">ManifestDisposition applyManifest(Manifest m)</div><div class="ttdoc">Add manifest to cache.</div><div class="ttdef"><b>Definition:</b> <a href="app_2misc_2impl_2Manifest_8cpp_source.html#l00359">app/misc/impl/Manifest.cpp:359</a></div></div>
<div class="ttc" id="anamespaceripple_html_a1e486c608fa3ad43cc19fc37bb1f425d"><div class="ttname"><a href="namespaceripple.html#a1e486c608fa3ad43cc19fc37bb1f425d">ripple::deserializeManifest</a></div><div class="ttdeci">std::optional&lt; Manifest &gt; deserializeManifest(Slice s)</div><div class="ttdoc">Constructs Manifest from serialized string.</div><div class="ttdef"><b>Definition:</b> <a href="app_2misc_2impl_2Manifest_8cpp_source.html#l00053">app/misc/impl/Manifest.cpp:53</a></div></div>
<div class="ttc" id="aclassripple_1_1ManifestCache_html_a882c588d2f26d7d61ae3ffe4212cbae0"><div class="ttname"><a href="classripple_1_1ManifestCache.html#a882c588d2f26d7d61ae3ffe4212cbae0">ripple::ManifestCache::applyManifest</a></div><div class="ttdeci">ManifestDisposition applyManifest(Manifest m)</div><div class="ttdoc">Add manifest to cache.</div><div class="ttdef"><b>Definition:</b> <a href="app_2misc_2impl_2Manifest_8cpp_source.html#l00363">app/misc/impl/Manifest.cpp:363</a></div></div>
<div class="ttc" id="anumeric_limits_html"><div class="ttname"><a href="http://en.cppreference.com/w/cpp/types/numeric_limits.html">std::numeric_limits</a></div></div>
<div class="ttc" id="anamespaceripple_html_a16991de33a4e83d355de9c387c712a4e"><div class="ttname"><a href="namespaceripple.html#a16991de33a4e83d355de9c387c712a4e">ripple::sfPublicKey</a></div><div class="ttdeci">const SF_VL sfPublicKey</div></div>
<div class="ttc" id="aclassripple_1_1test_1_1Manifest__test_html_a5ee8c33f4afb5283eb3ffec9292762ad"><div class="ttname"><a href="classripple_1_1test_1_1Manifest__test.html#a5ee8c33f4afb5283eb3ffec9292762ad">ripple::test::Manifest_test::testValidatorToken</a></div><div class="ttdeci">void testValidatorToken()</div><div class="ttdef"><b>Definition:</b> <a href="Manifest__test_8cpp_source.html#l00513">Manifest_test.cpp:513</a></div></div>