</head><bodyclass="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="mobile-topbar"><buttonclass="sidebar-menu-toggle">☰</button><aclass="sidebar-logo"href="../../halo2_gadgets/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../rust-logo.svg"alt="logo"></div></a><h2class="location"></h2></nav><navclass="sidebar"><aclass="sidebar-logo"href="../../halo2_gadgets/index.html"><divclass="logo-container"><imgclass="rust-logo"src="../../rust-logo.svg"alt="logo"></div></a><h2class="location"><ahref="#">Module sinsemilla</a></h2><divclass="sidebar-elems"><section><divclass="block"><ul><li><ahref="#modules">Modules</a></li><li><ahref="#structs">Structs</a></li><li><ahref="#traits">Traits</a></li></ul></div></section></div></nav><main><divclass="width-limiter"><divclass="sub-container"><aclass="sub-logo-container"href="../../halo2_gadgets/index.html"><imgclass="rust-logo"src="../../rust-logo.svg"alt="logo"></a><navclass="sub"><formclass="search-form"><divclass="search-container"><span></span><inputclass="search-input"name="search"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"><divid="help-button"title="help"tabindex="-1"><buttontype="button">?</button></div><divid="settings-menu"tabindex="-1"><ahref="../../settings.html"title="settings"><imgwidth="22"height="22"alt="Change settings"src="../../wheel.svg"></a></div></div></form></nav></div><sectionid="main-content"class="content"><divclass="main-heading"><h1class="fqn"><spanclass="in-band">Module <ahref="../index.html">halo2_gadgets</a>::<wbr><aclass="mod"href="#">sinsemilla</a><buttonid="copy-path"onclick="copy_path(this)"title="Copy item path to clipboard"><imgsrc="../../clipboard.svg"width="19"height="18"alt="Copy item path"></button></span></h1><spanclass="out-of-band"><aclass="srclink"href="../../src/halo2_gadgets/sinsemilla.rs.html#1-755">source</a> · <aid="toggle-all-docs"href="javascript:void(0)"title="collapse all docs">[<spanclass="inner">−</span>]</a></span></div><detailsclass="rustdoc-toggle top-doc"open><summaryclass="hideme"><span>Expand description</span></summary><divclass="docblock"><p>The <ahref="https://zips.z.cash/protocol/protocol.pdf#concretesinsemillahash">Sinsemilla</a> hash function.</p>
</div></details><h2id="modules"class="small-section-header"><ahref="#modules">Modules</a></h2><divclass="item-table"><divclass="item-row"><divclass="item-left module-item"><aclass="mod"href="chip/index.html"title="halo2_gadgets::sinsemilla::chip mod">chip</a></div><divclass="item-right docblock-short"><p>Chip implementations for the Sinsemilla gadgets.</p>
</div></div><divclass="item-row"><divclass="item-left module-item"><aclass="mod"href="merkle/index.html"title="halo2_gadgets::sinsemilla::merkle mod">merkle</a></div><divclass="item-right docblock-short"><p>Gadgets for implementing a Merkle tree with Sinsemilla.</p>
</div></div><divclass="item-row"><divclass="item-left module-item"><aclass="mod"href="primitives/index.html"title="halo2_gadgets::sinsemilla::primitives mod">primitives</a></div><divclass="item-right docblock-short"><p>Implementation of Sinsemilla outside the circuit.</p>
</div></div></div><h2id="structs"class="small-section-header"><ahref="#structs">Structs</a></h2><divclass="item-table"><divclass="item-row"><divclass="item-left module-item"><aclass="struct"href="struct.CommitDomain.html"title="halo2_gadgets::sinsemilla::CommitDomain struct">CommitDomain</a></div><divclass="item-right docblock-short"><p>Gadget representing a domain in which $\mathsf{SinsemillaCommit}$ and
</div></div><divclass="item-row"><divclass="item-left module-item"><aclass="struct"href="struct.HashDomain.html"title="halo2_gadgets::sinsemilla::HashDomain struct">HashDomain</a></div><divclass="item-right docblock-short"><p>A domain in which $\mathsf{SinsemillaHashToPoint}$ and $\mathsf{SinsemillaHash}$ can
be used.</p>
</div></div><divclass="item-row"><divclass="item-left module-item"><aclass="struct"href="struct.Message.html"title="halo2_gadgets::sinsemilla::Message struct">Message</a></div><divclass="item-right docblock-short"><p>A message to be hashed.</p>
</div></div><divclass="item-row"><divclass="item-left module-item"><aclass="struct"href="struct.MessagePiece.html"title="halo2_gadgets::sinsemilla::MessagePiece struct">MessagePiece</a></div><divclass="item-right docblock-short"><p>A message piece with a bitlength of some multiple of <code>K</code>.</p>
</div></div><divclass="item-row"><divclass="item-left module-item"><aclass="trait"href="trait.HashDomains.html"title="halo2_gadgets::sinsemilla::HashDomains trait">HashDomains</a></div><divclass="item-right docblock-short"><p>Trait allowing circuit’s Sinsemilla HashDomains to be enumerated.</p>
</div></div><divclass="item-row"><divclass="item-left module-item"><aclass="trait"href="trait.SinsemillaInstructions.html"title="halo2_gadgets::sinsemilla::SinsemillaInstructions trait">SinsemillaInstructions</a></div><divclass="item-right docblock-short"><p>The set of circuit instructions required to use the <ahref="https://zcash.github.io/halo2/design/gadgets/sinsemilla.html"><code>Sinsemilla</code></a> gadget.
This trait is bounded on two constant parameters: <code>K</code>, the number of bits
in each word accepted by the Sinsemilla hash, and <code>MAX_WORDS</code>, the maximum
number of words that a single hash instance can process.</p>