rpc: add SignMessage and VerifyMessage interface

This commit allows users to sign messages with their node's private key
with the SignMessage interface. The signatures are zbase32 encoded for
human readability/paste-ability.  Others users can verify that a message
was signed by another node in their channel database with the
VerifyMessage interface.
This commit is contained in:
Philip Hayes authored and Olaoluwa Osuntokun committed 2017-05-12 14:21:19 -07:00
1 parent 2486097554
commit 2249215260
7 files changed
+694 -333

No files matched your search

+6
View File
@@ -37,6 +37,12 @@ description):
* Returns a new address, the following address types are supported:
pay-to-public-key-hash (p2pkh), pay-to-witness-key-hash (p2wkh), and
nested-pay-to-witness-key-hash (np2wkh).
* SignMessage
* Signs a message with the node's identity key and returns a
zbase32 encoded signature.
* VerifyMessage
* Verifies a signature signed by another node on a message. The other node
must be an active node in the channel database.
* ConnectPeer
* Connects to a peer identified by a public key and host.
* DisconnectPeer
+485 -332
View File
File diff suppressed because it is too large. Load diff
+18
View File
@@ -38,6 +38,9 @@ service Lightning {
};
}
rpc SignMessage (SignMessageRequest) returns (SignMessageResponse);
rpc VerifyMessage (VerifyMessageRequest) returns (VerifyMessageResponse);
rpc ConnectPeer (ConnectPeerRequest) returns (ConnectPeerResponse) {
option (google.api.http) = {
post: "/v1/peers"
@@ -247,6 +250,21 @@ message NewAddressResponse {
string address = 1 [json_name = "address"];
}
message SignMessageRequest {
bytes msg = 1 [ json_name = "msg" ];
}
message SignMessageResponse {
string signature = 1 [ json_name = "signature" ];
}
message VerifyMessageRequest {
bytes msg = 1 [ json_name = "msg" ];
string signature = 2 [ json_name = "signature" ];
}
message VerifyMessageResponse {
bool valid = 1 [ json_name = "valid" ];
}
message ConnectPeerRequest {
LightningAddress addr = 1;
bool perm = 2;
+38
View File
@@ -1706,6 +1706,23 @@
"lnrpcSetAliasResponse": {
"type": "object"
},
"lnrpcSignMessageRequest": {
"type": "object",
"properties": {
"msg": {
"type": "string",
"format": "byte"
}
}
},
"lnrpcSignMessageResponse": {
"type": "object",
"properties": {
"signature": {
"type": "string"
}
}
},
"lnrpcStopRequest": {
"type": "object"
},
@@ -1754,6 +1771,27 @@
}
}
},
"lnrpcVerifyMessageRequest": {
"type": "object",
"properties": {
"msg": {
"type": "string",
"format": "byte"
},
"signature": {
"type": "string"
}
}
},
"lnrpcVerifyMessageResponse": {
"type": "object",
"properties": {
"valid": {
"type": "boolean",
"format": "boolean"
}
}
},
"lnrpcWalletBalanceRequest": {
"type": "object",
"properties": {