multi: refactor SignDigestCompact into SignMessageCompact
To make it possible to use a remote lnrpc server as a signer for our wallet, we need to change our main interface to sign the message instead of the message's digest. Otherwise we'd need to alter the lnrpc.SignMessage RPC to accept a digest instead of only the message which has security implications.
This commit is contained in:
17 files changed
+2407
-2373
No files matched your search
@@ -10,7 +10,6 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/btcsuite/btcd/chaincfg"
|
||||
"github.com/btcsuite/btcd/chaincfg/chainhash"
|
||||
"github.com/btcsuite/btcd/wire"
|
||||
"github.com/btcsuite/btcutil"
|
||||
"github.com/davecgh/go-spew/spew"
|
||||
@@ -426,14 +425,11 @@ func AddInvoice(ctx context.Context, cfg *AddInvoiceConfig,
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
payReqString, err := payReq.Encode(
|
||||
zpay32.MessageSigner{
|
||||
SignCompact: func(msg []byte) ([]byte, error) {
|
||||
hash := chainhash.HashB(msg)
|
||||
return cfg.NodeSigner.SignDigestCompact(hash)
|
||||
},
|
||||
payReqString, err := payReq.Encode(zpay32.MessageSigner{
|
||||
SignCompact: func(msg []byte) ([]byte, error) {
|
||||
return cfg.NodeSigner.SignMessageCompact(msg, false)
|
||||
},
|
||||
)
|
||||
})
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
+2297
-2284
File diff suppressed because it is too large.
Load diff
@@ -1086,6 +1086,12 @@ message SignMessageRequest {
|
||||
base64.
|
||||
*/
|
||||
bytes msg = 1;
|
||||
|
||||
/*
|
||||
Instead of the default double-SHA256 hashing of the message before signing,
|
||||
only use one round of hashing instead.
|
||||
*/
|
||||
bool single_hash = 2;
|
||||
}
|
||||
message SignMessageResponse {
|
||||
// The signature for the given message
|
||||
|
||||
@@ -6187,6 +6187,10 @@
|
||||
"type": "string",
|
||||
"format": "byte",
|
||||
"description": "The message to be signed. When using REST, this field must be encoded as\nbase64."
|
||||
},
|
||||
"single_hash": {
|
||||
"type": "boolean",
|
||||
"description": "Instead of the default double-SHA256 hashing of the message before signing,\nonly use one round of hashing instead."
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
Reference in new issue
Block a user