transaction with the signature as defined within the passed SignDescriptor.</p><divclass="fullcomment"><divclass="comment cmt"><p>ComputeInputScript generates a complete InputIndex for the passed
transaction with the signature as defined within the passed SignDescriptor.
This method should be capable of generating the proper input script for
both regular p2wkh output and p2wkh outputs nested within a regular p2sh
output.
Note that when using this method to sign inputs belonging to the wallet,
the only items of the SignDescriptor that need to be populated are pkScript
in the TxOut field, the value in that same field, and finally the input
derivation between the ephemeral public key in the request and the node's
key specified in the key_desc parameter.</p><divclass="fullcomment"><divclass="comment cmt"><p>DeriveSharedKey returns a shared secret key by performing Diffie-Hellman key
derivation between the ephemeral public key in the request and the node's
key specified in the key_desc parameter. Either a key locator or a raw
public key is expected in the key_desc, if neither is supplied, defaults to
the node's identity private key:
P_shared = privKeyNode * ephemeralPubkey
The resulting shared public key is serialized in the compressed format and
hashed with sha256, resulting in the final key length of 256bit.
</p></div></div></li><liclass="indented0 "name="signrpc.Signer#signMessage"group="Ungrouped"fullComment="yes"data-isabs="true"visbl="pub"><aid="signMessage(in:signrpc.SignMessageReq):scala.concurrent.Future[signrpc.SignMessageResp]"class="anchorToMember"></a><aid="signMessage(SignMessageReq):Future[SignMessageResp]"class="anchorToMember"></a><spanclass="permalink"><ahref="../signrpc/Signer.html#signMessage(in:signrpc.SignMessageReq):scala.concurrent.Future[signrpc.SignMessageResp]"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier">abstract </span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">signMessage</span><spanclass="params">(<spanname="in">in: <ahref="SignMessageReq.html"name="signrpc.SignMessageReq"id="signrpc.SignMessageReq"class="extype">SignMessageReq</a></span>)</span><spanclass="result">: <ahref="https://www.scala-lang.org/api/2.13.8/scala/concurrent/Future.html#scala.concurrent.Future"name="scala.concurrent.Future"id="scala.concurrent.Future"class="extype">Future</a>[<ahref="SignMessageResp.html"name="signrpc.SignMessageResp"id="signrpc.SignMessageResp"class="extype">SignMessageResp</a>]</span></span><pclass="shortcomment cmt">SignMessage signs a message with the key specified in the key locator.</p><divclass="fullcomment"><divclass="comment cmt"><p>SignMessage signs a message with the key specified in the key locator. The
</p></div></div></li><liclass="indented0 "name="signrpc.Signer#signOutputRaw"group="Ungrouped"fullComment="yes"data-isabs="true"visbl="pub"><aid="signOutputRaw(in:signrpc.SignReq):scala.concurrent.Future[signrpc.SignResp]"class="anchorToMember"></a><aid="signOutputRaw(SignReq):Future[SignResp]"class="anchorToMember"></a><spanclass="permalink"><ahref="../signrpc/Signer.html#signOutputRaw(in:signrpc.SignReq):scala.concurrent.Future[signrpc.SignResp]"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier">abstract </span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">signOutputRaw</span><spanclass="params">(<spanname="in">in: <ahref="SignReq.html"name="signrpc.SignReq"id="signrpc.SignReq"class="extype">SignReq</a></span>)</span><spanclass="result">: <ahref="https://www.scala-lang.org/api/2.13.8/scala/concurrent/Future.html#scala.concurrent.Future"name="scala.concurrent.Future"id="scala.concurrent.Future"class="extype">Future</a>[<ahref="SignResp.html"name="signrpc.SignResp"id="signrpc.SignResp"class="extype">SignResp</a>]</span></span><pclass="shortcomment cmt">SignOutputRaw is a method that can be used to generated a signature for a
set of inputs/outputs to a transaction.</p><divclass="fullcomment"><divclass="comment cmt"><p>SignOutputRaw is a method that can be used to generated a signature for a
set of inputs/outputs to a transaction. Each request specifies details
concerning how the outputs should be signed, which keys they should be
signed with, and also any optional tweaks. The return value is a fixed
64-byte signature (the same format as we use on the wire in Lightning).
If we are unable to sign using the specified keys, then an error will be
</p></div></div></li><liclass="indented0 "name="signrpc.Signer#verifyMessage"group="Ungrouped"fullComment="yes"data-isabs="true"visbl="pub"><aid="verifyMessage(in:signrpc.VerifyMessageReq):scala.concurrent.Future[signrpc.VerifyMessageResp]"class="anchorToMember"></a><aid="verifyMessage(VerifyMessageReq):Future[VerifyMessageResp]"class="anchorToMember"></a><spanclass="permalink"><ahref="../signrpc/Signer.html#verifyMessage(in:signrpc.VerifyMessageReq):scala.concurrent.Future[signrpc.VerifyMessageResp]"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier">abstract </span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">verifyMessage</span><spanclass="params">(<spanname="in">in: <ahref="VerifyMessageReq.html"name="signrpc.VerifyMessageReq"id="signrpc.VerifyMessageReq"class="extype">VerifyMessageReq</a></span>)</span><spanclass="result">: <ahref="https://www.scala-lang.org/api/2.13.8/scala/concurrent/Future.html#scala.concurrent.Future"name="scala.concurrent.Future"id="scala.concurrent.Future"class="extype">Future</a>[<ahref="VerifyMessageResp.html"name="signrpc.VerifyMessageResp"id="signrpc.VerifyMessageResp"class="extype">VerifyMessageResp</a>]</span></span><pclass="shortcomment cmt">VerifyMessage verifies a signature over a message using the public key