mirror of
https://github.com/bisq-network/bisq.git
synced 2025-02-24 15:10:44 +01:00
Set addressPrefixHash to empty bytes.
We have added the capability in 1.4.0 and have enforced 1.5.1 so no traders can use that old version anymore so the capability check is not needed anymore.
This commit is contained in:
parent
e69a3f646c
commit
1886b4eb9d
3 changed files with 9 additions and 46 deletions
|
@ -41,7 +41,6 @@ import bisq.network.p2p.storage.payload.ProtectedStoragePayload;
|
|||
|
||||
import bisq.common.UserThread;
|
||||
import bisq.common.app.Capabilities;
|
||||
import bisq.common.app.Capability;
|
||||
import bisq.common.crypto.CryptoException;
|
||||
import bisq.common.crypto.KeyRing;
|
||||
import bisq.common.crypto.PubKeyRing;
|
||||
|
@ -426,9 +425,10 @@ public class P2PService implements SetupListener, MessageListener, ConnectionLis
|
|||
try {
|
||||
// Prefix is not needed for direct messages but as old code is doing the verification we still need to
|
||||
// send it if peer has not updated.
|
||||
PrefixedSealedAndSignedMessage sealedMsg = getPrefixedSealedAndSignedMessage(peersNodeAddress,
|
||||
pubKeyRing,
|
||||
message);
|
||||
PrefixedSealedAndSignedMessage sealedMsg = new PrefixedSealedAndSignedMessage(
|
||||
networkNode.getNodeAddress(),
|
||||
encryptionService.encryptAndSign(pubKeyRing, message),
|
||||
UUID.randomUUID().toString());
|
||||
|
||||
SettableFuture<Connection> future = networkNode.sendMessage(peersNodeAddress, sealedMsg);
|
||||
Futures.addCallback(future, new FutureCallback<>() {
|
||||
|
@ -452,24 +452,6 @@ public class P2PService implements SetupListener, MessageListener, ConnectionLis
|
|||
}
|
||||
}
|
||||
|
||||
private PrefixedSealedAndSignedMessage getPrefixedSealedAndSignedMessage(NodeAddress peersNodeAddress,
|
||||
PubKeyRing pubKeyRing,
|
||||
NetworkEnvelope message) throws CryptoException {
|
||||
byte[] addressPrefixHash;
|
||||
if (peerManager.peerHasCapability(peersNodeAddress, Capability.NO_ADDRESS_PRE_FIX)) {
|
||||
// The peer has an updated version so we do not need to send the prefix.
|
||||
// We cannot use null as not updated nodes would get a nullPointer at protobuf serialisation.
|
||||
addressPrefixHash = new byte[0];
|
||||
} else {
|
||||
addressPrefixHash = peersNodeAddress.getAddressPrefixHash();
|
||||
}
|
||||
return new PrefixedSealedAndSignedMessage(
|
||||
networkNode.getNodeAddress(),
|
||||
encryptionService.encryptAndSign(pubKeyRing, message),
|
||||
addressPrefixHash,
|
||||
UUID.randomUUID().toString());
|
||||
}
|
||||
|
||||
private boolean capabilityRequiredAndCapabilityNotSupported(NodeAddress peersNodeAddress, NetworkEnvelope message) {
|
||||
if (!(message instanceof CapabilityRequiringPayload))
|
||||
return false;
|
||||
|
|
|
@ -44,9 +44,8 @@ public final class PrefixedSealedAndSignedMessage extends NetworkEnvelope implem
|
|||
|
||||
public PrefixedSealedAndSignedMessage(NodeAddress senderNodeAddress,
|
||||
SealedAndSigned sealedAndSigned,
|
||||
byte[] addressPrefixHash,
|
||||
String uid) {
|
||||
this(senderNodeAddress, sealedAndSigned, addressPrefixHash, uid, Version.getP2PMessageVersion());
|
||||
this(senderNodeAddress, sealedAndSigned, new byte[0], uid, Version.getP2PMessageVersion());
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -43,7 +43,6 @@ import bisq.network.p2p.storage.payload.ProtectedStoragePayload;
|
|||
|
||||
import bisq.common.UserThread;
|
||||
import bisq.common.app.Capabilities;
|
||||
import bisq.common.app.Capability;
|
||||
import bisq.common.crypto.CryptoException;
|
||||
import bisq.common.crypto.KeyRing;
|
||||
import bisq.common.crypto.PubKeyRing;
|
||||
|
@ -199,8 +198,10 @@ public class MailboxMessageService implements SetupListener, RequestDataManager.
|
|||
"Encrypt message:\nmessage={}"
|
||||
+ "\nEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE\n", message);
|
||||
|
||||
PrefixedSealedAndSignedMessage prefixedSealedAndSignedMessage = getPrefixedSealedAndSignedMessage(peer,
|
||||
peersPubKeyRing, message);
|
||||
PrefixedSealedAndSignedMessage prefixedSealedAndSignedMessage = new PrefixedSealedAndSignedMessage(
|
||||
networkNode.getNodeAddress(),
|
||||
encryptionService.encryptAndSign(peersPubKeyRing, message),
|
||||
UUID.randomUUID().toString());
|
||||
|
||||
log.debug("sendEncryptedMailboxMessage msg={}, peersNodeAddress={}", message, peer);
|
||||
SettableFuture<Connection> future = networkNode.sendMessage(peer, prefixedSealedAndSignedMessage);
|
||||
|
@ -544,25 +545,6 @@ public class MailboxMessageService implements SetupListener, RequestDataManager.
|
|||
persistenceManager.requestPersistence();
|
||||
}
|
||||
|
||||
// TODO avoid code duplication
|
||||
private PrefixedSealedAndSignedMessage getPrefixedSealedAndSignedMessage(NodeAddress peersNodeAddress,
|
||||
PubKeyRing pubKeyRing,
|
||||
NetworkEnvelope message) throws CryptoException {
|
||||
byte[] addressPrefixHash;
|
||||
if (peerManager.peerHasCapability(peersNodeAddress, Capability.NO_ADDRESS_PRE_FIX)) {
|
||||
// The peer has an updated version so we do not need to send the prefix.
|
||||
// We cannot use null as not updated nodes would get a nullPointer at protobuf serialisation.
|
||||
addressPrefixHash = new byte[0];
|
||||
} else {
|
||||
addressPrefixHash = peersNodeAddress.getAddressPrefixHash();
|
||||
}
|
||||
return new PrefixedSealedAndSignedMessage(
|
||||
networkNode.getNodeAddress(),
|
||||
encryptionService.encryptAndSign(pubKeyRing, message),
|
||||
addressPrefixHash,
|
||||
UUID.randomUUID().toString());
|
||||
}
|
||||
|
||||
// TODO avoid code duplication
|
||||
private boolean capabilityRequiredAndCapabilityNotSupported(NodeAddress peersNodeAddress, NetworkEnvelope message) {
|
||||
if (!(message instanceof CapabilityRequiringPayload))
|
||||
|
|
Loading…
Add table
Reference in a new issue