<span class="ident">hash_ty</span>: <span class="ident">EcdsaSighashType</span>,
<span class="ident">secp</span>: <span class="kw-2">&</span><span class="ident">SecpCtx</span>,
) {
- <span class="kw">let</span> <span class="ident">sig</span> <span class="op">=</span> <span class="ident">secp</span>.<span class="ident">sign_ecdsa</span>(
- <span class="kw-2">&</span><span class="ident">Message::from_slice</span>(<span class="kw-2">&</span><span class="ident">hash</span>.<span class="ident">into_inner</span>()[..]).<span class="ident">unwrap</span>(),
- <span class="ident">secret_key</span>,
- );
+ <span class="kw">let</span> <span class="ident">msg</span> <span class="op">=</span> <span class="kw-2">&</span><span class="ident">Message::from_slice</span>(<span class="kw-2">&</span><span class="ident">hash</span>.<span class="ident">into_inner</span>()[..]).<span class="ident">unwrap</span>();
+ <span class="kw">let</span> <span class="ident">sig</span> <span class="op">=</span> <span class="ident">secp</span>.<span class="ident">sign_ecdsa</span>(<span class="ident">msg</span>, <span class="ident">secret_key</span>);
+ <span class="ident">secp</span>.<span class="ident">verify_ecdsa</span>(<span class="ident">msg</span>, <span class="kw-2">&</span><span class="ident">sig</span>, <span class="kw-2">&</span><span class="ident">pubkey</span>.<span class="ident">inner</span>)
+ .<span class="ident">expect</span>(<span class="string">"invalid or corrupted ecdsa signature"</span>);
<span class="kw">let</span> <span class="ident">final_signature</span> <span class="op">=</span> <span class="ident">ecdsa::EcdsaSig</span> { <span class="ident">sig</span>, <span class="ident">hash_ty</span> };
<span class="ident">psbt_input</span>.<span class="ident">partial_sigs</span>.<span class="ident">insert</span>(<span class="ident">pubkey</span>, <span class="ident">final_signature</span>);
<span class="prelude-val">Some</span>(<span class="kw">_</span>) => <span class="ident">keypair</span>, <span class="comment">// no tweak for script spend</span>
};
- <span class="kw">let</span> <span class="ident">sig</span> <span class="op">=</span> <span class="ident">secp</span>.<span class="ident">sign_schnorr</span>(
- <span class="kw-2">&</span><span class="ident">Message::from_slice</span>(<span class="kw-2">&</span><span class="ident">hash</span>.<span class="ident">into_inner</span>()[..]).<span class="ident">unwrap</span>(),
- <span class="kw-2">&</span><span class="ident">keypair</span>,
- );
+ <span class="kw">let</span> <span class="ident">msg</span> <span class="op">=</span> <span class="kw-2">&</span><span class="ident">Message::from_slice</span>(<span class="kw-2">&</span><span class="ident">hash</span>.<span class="ident">into_inner</span>()[..]).<span class="ident">unwrap</span>();
+ <span class="kw">let</span> <span class="ident">sig</span> <span class="op">=</span> <span class="ident">secp</span>.<span class="ident">sign_schnorr</span>(<span class="ident">msg</span>, <span class="kw-2">&</span><span class="ident">keypair</span>);
+ <span class="ident">secp</span>.<span class="ident">verify_schnorr</span>(<span class="kw-2">&</span><span class="ident">sig</span>, <span class="ident">msg</span>, <span class="kw-2">&</span><span class="ident">XOnlyPublicKey::from_keypair</span>(<span class="kw-2">&</span><span class="ident">keypair</span>))
+ .<span class="ident">expect</span>(<span class="string">"invalid or corrupted schnorr signature"</span>);
<span class="kw">let</span> <span class="ident">final_signature</span> <span class="op">=</span> <span class="ident">schnorr::SchnorrSig</span> { <span class="ident">sig</span>, <span class="ident">hash_ty</span> };