tls-psk: ignore incoming data if we already sent a key
This commit is contained in:
@@ -80,6 +80,7 @@ public class TransferPresenter implements KeyTransferCallback, LoaderCallbacks<L
|
|||||||
private KeyTransferInteractor keyTransferServerInteractor;
|
private KeyTransferInteractor keyTransferServerInteractor;
|
||||||
|
|
||||||
private boolean wasConnected = false;
|
private boolean wasConnected = false;
|
||||||
|
private boolean sentData = false;
|
||||||
private boolean waitingForWifi = false;
|
private boolean waitingForWifi = false;
|
||||||
|
|
||||||
|
|
||||||
@@ -224,8 +225,12 @@ public class TransferPresenter implements KeyTransferCallback, LoaderCallbacks<L
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDataReceivedOk(String receivedData) {
|
public void onDataReceivedOk(String receivedData) {
|
||||||
Log.d(Constants.TAG, "received key");
|
if (sentData) {
|
||||||
|
Log.d(Constants.TAG, "received data, but we already sent a key! race condition, or other side misbehaving?");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Log.d(Constants.TAG, "received data");
|
||||||
UncachedKeyRing uncachedKeyRing;
|
UncachedKeyRing uncachedKeyRing;
|
||||||
try {
|
try {
|
||||||
uncachedKeyRing = UncachedKeyRing.decodeFromData(receivedData.getBytes());
|
uncachedKeyRing = UncachedKeyRing.decodeFromData(receivedData.getBytes());
|
||||||
@@ -290,6 +295,7 @@ public class TransferPresenter implements KeyTransferCallback, LoaderCallbacks<L
|
|||||||
private void resetAndStartListen() {
|
private void resetAndStartListen() {
|
||||||
waitingForWifi = false;
|
waitingForWifi = false;
|
||||||
wasConnected = false;
|
wasConnected = false;
|
||||||
|
sentData = false;
|
||||||
connectionClear();
|
connectionClear();
|
||||||
|
|
||||||
keyTransferServerInteractor = new KeyTransferInteractor();
|
keyTransferServerInteractor = new KeyTransferInteractor();
|
||||||
@@ -317,6 +323,7 @@ public class TransferPresenter implements KeyTransferCallback, LoaderCallbacks<L
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void connectionSend(byte[] armoredSecretKey, String passthrough) {
|
private void connectionSend(byte[] armoredSecretKey, String passthrough) {
|
||||||
|
sentData = true;
|
||||||
if (keyTransferClientInteractor != null) {
|
if (keyTransferClientInteractor != null) {
|
||||||
keyTransferClientInteractor.sendData(armoredSecretKey, passthrough);
|
keyTransferClientInteractor.sendData(armoredSecretKey, passthrough);
|
||||||
} else if (keyTransferServerInteractor != null) {
|
} else if (keyTransferServerInteractor != null) {
|
||||||
|
|||||||
Reference in New Issue
Block a user