[bisq-network/bisq] Message sign verify functionality compatible with Bitcoin core & electrum (#5375)
Mawu Eli
notifications at github.com
Wed Mar 31 02:26:01 CEST 2021
@wallclockbuilder approved this pull request.
ACK
### Sign
- Is Bisq compatible with Electrum?
![1 1electrum message - address - signature](https://user-images.githubusercontent.com/2033945/113071667-1805c100-917a-11eb-8181-fbb63bc6d3f3.png)
Message signed by address in Electrum
![1 2bisq compatible with electrum](https://user-images.githubusercontent.com/2033945/113071673-19cf8480-917a-11eb-908f-1a398fd2205d.png)
Same message signed by Bisq with the same address resulted in the same signature.
### Verify
- Can Bisq Verify A message signed by Electrum?
![2electrum signed](https://user-images.githubusercontent.com/2033945/113071679-1b994800-917a-11eb-8416-7886361a7c29.png)
Message signed by electrum. Will Bisq be able to verify it?
![2 1bisq verification setup](https://user-images.githubusercontent.com/2033945/113071675-1a681b00-917a-11eb-89b9-bdd5a791ceae.png)
Load signed message details from Electrum into Bisq. Will it verify?
![2 2bisq signature verified](https://user-images.githubusercontent.com/2033945/113071676-1b994800-917a-11eb-9e77-3577348a1432.png)
Bisq verifies signature from Electrum successfully
### Unhappy path
![3 1bisq - wrong message - setup](https://user-images.githubusercontent.com/2033945/113071680-1c31de80-917a-11eb-935b-d456111b4754.png)
Modify message. Will Bisq be fooled?
![3 2bisq wrong signature - message changed](https://user-images.githubusercontent.com/2033945/113071681-1cca7500-917a-11eb-99c2-01cb99ff525b.png)
Bisq successfully detects wrong signature due to modified message.
![4 1bisq wrong address setup](https://user-images.githubusercontent.com/2033945/113071684-1d630b80-917a-11eb-9ace-2964a19924dd.png)
Tamper with address. Will bisq be able to tell?
![4 2bisq wrong signature - addess changed](https://user-images.githubusercontent.com/2033945/113071685-1dfba200-917a-11eb-8323-a62b858eff5e.png)
Bisq successfully detects wrong signature due to wrong address.
![5 1bisq wrong signature setup](https://user-images.githubusercontent.com/2033945/113071686-1e943880-917a-11eb-939c-bb64aad3de34.png)
Tamper with signature. Will bisq be able to tell?
![5 2bisq wrong signature - signature changed](https://user-images.githubusercontent.com/2033945/113071687-1f2ccf00-917a-11eb-92ae-622a2e61d31f.png)
Bisq successfully rejects wrong signature.
> + myGridPane.add(new Label(""), 0, ++rowIndexB); // spacer
+ Button buttonSign = new AutoTooltipButton("Sign");
+ Button buttonVerify = new AutoTooltipButton("Verify");
+ HBox buttonBox = new HBox(12, buttonSign, buttonVerify);
+ buttonBox.setAlignment(Pos.BASELINE_CENTER);
+ buttonBox.setPrefWidth(800);
+ myGridPane.add(buttonBox, 0, ++rowIndexB);
+
+ buttonSign.setOnAction(e -> {
+ String walletInfo = walletsManager.getWalletsAsString(true);
+ String privKeyHex = findPrivForPubOrAddress(walletInfo, address.getText());
+ if (privKeyHex == null) {
+ messageSig.setText("");
+ new Popup().information("Key not found in wallet").show();
+ } else {
+ ECKey myPrivateKey = ECKey.fromPrivate(Utils.HEX.decode(privKeyHex));
[Tested](https://github.com/bitcoinj/bitcoinj/blob/68097e11f673ddaf16ec4e2f71f7e676d581f350/core/src/test/java/org/bitcoinj/core/ECKeyTest.java#L210) by BitcoinJ.
> +
+ buttonSign.setOnAction(e -> {
+ String walletInfo = walletsManager.getWalletsAsString(true);
+ String privKeyHex = findPrivForPubOrAddress(walletInfo, address.getText());
+ if (privKeyHex == null) {
+ messageSig.setText("");
+ new Popup().information("Key not found in wallet").show();
+ } else {
+ ECKey myPrivateKey = ECKey.fromPrivate(Utils.HEX.decode(privKeyHex));
+ String signatureBase64 = myPrivateKey.signMessage(messageText.getText());
+ messageSig.setText(signatureBase64);
+ }
+ });
+ buttonVerify.setOnAction(e -> {
+ try {
+ ECKey key = ECKey.signedMessageToKey(messageText.getText(), messageSig.getText());
[Tested](https://github.com/bitcoinj/bitcoinj/blob/68097e11f673ddaf16ec4e2f71f7e676d581f350/core/src/test/java/org/bitcoinj/core/ECKeyTest.java#L226) by Bitcoinj.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/bisq-network/bisq/pull/5375#pullrequestreview-624792402
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bisq.network/pipermail/bisq-github/attachments/20210330/dd3e7f28/attachment.htm>
More information about the bisq-github
mailing list