Update to libsignal-client 0.5.1

This commit is contained in:
Greyson Parrelli
2021-05-06 16:32:01 -04:00
parent 56ea11cdff
commit 03b65ce6dc
9 changed files with 25 additions and 16 deletions

View File

@@ -375,7 +375,7 @@ dependencies {
implementation project(':device-transfer')
implementation 'org.signal:zkgroup-android:0.7.0'
implementation 'org.whispersystems:signal-client-android:0.1.7'
implementation 'org.whispersystems:signal-client-android:0.5.1'
implementation 'com.google.protobuf:protobuf-javalite:3.10.0'
implementation('com.mobilecoin:android-sdk:1.0.0') {

View File

@@ -6,6 +6,7 @@ import org.whispersystems.libsignal.IdentityKey;
import org.whispersystems.libsignal.IdentityKeyPair;
import org.whispersystems.libsignal.InvalidKeyIdException;
import org.whispersystems.libsignal.SignalProtocolAddress;
import org.whispersystems.libsignal.groups.state.SenderKeyRecord;
import org.whispersystems.libsignal.state.IdentityKeyStore;
import org.whispersystems.libsignal.state.PreKeyRecord;
import org.whispersystems.libsignal.state.PreKeyStore;
@@ -18,6 +19,7 @@ import org.whispersystems.signalservice.api.SignalServiceProtocolStore;
import org.whispersystems.signalservice.api.SignalServiceSessionStore;
import java.util.List;
import java.util.UUID;
public class SignalProtocolStoreImpl implements SignalServiceProtocolStore {
@@ -137,4 +139,14 @@ public class SignalProtocolStoreImpl implements SignalServiceProtocolStore {
public void removeSignedPreKey(int signedPreKeyId) {
signedPreKeyStore.removeSignedPreKey(signedPreKeyId);
}
@Override
public void storeSenderKey(SignalProtocolAddress sender, UUID distributionId, SenderKeyRecord record) {
}
@Override
public SenderKeyRecord loadSenderKey(SignalProtocolAddress sender, UUID distributionId) {
return null;
}
}

View File

@@ -60,8 +60,8 @@ public class TextSecureSessionStore implements SignalServiceSessionStore {
SessionRecord sessionRecord = DatabaseFactory.getSessionDatabase(context).load(recipientId, address.getDeviceId());
return sessionRecord != null &&
sessionRecord.getSessionState().hasSenderChain() &&
sessionRecord.getSessionState().getSessionVersion() == CiphertextMessage.CURRENT_VERSION;
sessionRecord.hasSenderChain() &&
sessionRecord.getSessionVersion() == CiphertextMessage.CURRENT_VERSION;
} else {
return false;
}

View File

@@ -10,7 +10,6 @@ import org.signal.core.util.Conversions;
import org.signal.core.util.logging.Log;
import org.thoughtcrime.securesms.database.SessionDatabase;
import org.whispersystems.libsignal.state.SessionRecord;
import org.whispersystems.libsignal.state.SessionState;
import org.whispersystems.signalservice.api.push.SignalServiceAddress;
import java.io.File;
@@ -64,9 +63,7 @@ class SessionStoreMigrationHelper {
if (versionMarker == SINGLE_STATE_VERSION) {
Log.i(TAG, "Migrating single state version: " + sessionFile.getAbsolutePath());
SessionState sessionState = new SessionState(serialized);
sessionRecord = new SessionRecord(sessionState);
sessionRecord = new SessionRecord(serialized);
} else if (versionMarker >= ARCHIVE_STATES_VERSION) {
Log.i(TAG, "Migrating session: " + sessionFile.getAbsolutePath());
sessionRecord = new SessionRecord(serialized);

View File

@@ -519,11 +519,11 @@ dependencyVerification {
['org.threeten:threetenbp:1.3.6',
'f4c23ffaaed717c3b99c003e0ee02d6d66377fd47d866fec7d971bd8644fc1a7'],
['org.whispersystems:signal-client-android:0.1.7',
'1fade2c159934cd34782474fc4a1010b822e7cd22026ac5da1b25098c99ad6f6'],
['org.whispersystems:signal-client-android:0.5.1',
'c5b523163612fedcf71a5fb51a85cb5a4f545329ec6cf7d4fc885e830466c2e3'],
['org.whispersystems:signal-client-java:0.1.7',
'59dd701f9564c2130177ddaca374d14ce54927075955288f85ff8f55565a78f0'],
['org.whispersystems:signal-client-java:0.5.1',
'682a8094d38a91c8759071b77177ed8196a7137314fdfbb17e819c9ca57a0397'],
['pl.tajchert:waitingdots:0.1.0',
'2835d49e0787dbcb606c5a60021ced66578503b1e9fddcd7a5ef0cd5f095ba2c'],

View File

@@ -21,7 +21,7 @@ dependencies {
api 'com.googlecode.libphonenumber:libphonenumber:8.12.17'
api 'com.fasterxml.jackson.core:jackson-databind:2.9.9.2'
api 'org.whispersystems:signal-client-java:0.1.7'
api 'org.whispersystems:signal-client-java:0.5.1'
api 'com.squareup.okhttp3:okhttp:3.12.10'
implementation 'org.threeten:threetenbp:1.3.6'

View File

@@ -192,7 +192,7 @@ public class SignalServiceCipher {
} else if (envelope.isUnidentifiedSender()) {
SignalSealedSessionCipher sealedSessionCipher = new SignalSealedSessionCipher(sessionLock, new SealedSessionCipher(signalProtocolStore, localAddress.getUuid().orNull(), localAddress.getNumber().orNull(), 1));
DecryptionResult result = sealedSessionCipher.decrypt(certificateValidator, ciphertext, envelope.getServerReceivedTimestamp());
SignalServiceAddress resultAddress = new SignalServiceAddress(UuidUtil.parse(result.getSenderUuid().orNull()), result.getSenderE164());
SignalServiceAddress resultAddress = new SignalServiceAddress(UuidUtil.parse(result.getSenderUuid()), result.getSenderE164());
SignalProtocolAddress protocolAddress = getPreferredProtocolAddress(signalProtocolStore, resultAddress, result.getDeviceId());
paddedMessage = result.getPaddedMessage();

View File

@@ -21,7 +21,7 @@ public class RemoteAttestationKeys {
byte[] publicKeys = ByteUtil.combine(keyPair.getPublicKey().getPublicKeyBytes(), serverPublicEphemeral, serverPublicStatic);
HKDFv3 generator = new HKDFv3();
byte[] keys = generator.deriveSecrets(masterSecret, publicKeys, null, clientKey.length + serverKey.length);
byte[] keys = generator.deriveSecrets(masterSecret, publicKeys, new byte[0], clientKey.length + serverKey.length);
System.arraycopy(keys, 0, clientKey, 0, clientKey.length);
System.arraycopy(keys, clientKey.length, serverKey, 0, serverKey.length);

View File

@@ -30,7 +30,7 @@ dependencyVerification {
['org.threeten:threetenbp:1.3.6',
'f4c23ffaaed717c3b99c003e0ee02d6d66377fd47d866fec7d971bd8644fc1a7'],
['org.whispersystems:signal-client-java:0.1.7',
'59dd701f9564c2130177ddaca374d14ce54927075955288f85ff8f55565a78f0'],
['org.whispersystems:signal-client-java:0.5.1',
'682a8094d38a91c8759071b77177ed8196a7137314fdfbb17e819c9ca57a0397'],
]
}