diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3ea90167cb..29ac66539f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -13,7 +13,7 @@ androidx-window = "1.3.0" glide = "4.15.1" gradle = "8.9.0" kotlin = "2.1.0" -libsignal-client = "0.73.2" +libsignal-client = "0.74.0" mp4parser = "1.9.39" android-gradle-plugin = "8.7.2" accompanist = "0.28.0" diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 7fcbfe9d08..ac764e0142 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -7216,20 +7216,20 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - + + + - - + + - - - + + + - - + + diff --git a/libsignal-service/src/main/java/org/whispersystems/signalservice/api/crypto/SignalSealedSessionCipher.java b/libsignal-service/src/main/java/org/whispersystems/signalservice/api/crypto/SignalSealedSessionCipher.java index 8259872d7a..6e1ed63e0e 100644 --- a/libsignal-service/src/main/java/org/whispersystems/signalservice/api/crypto/SignalSealedSessionCipher.java +++ b/libsignal-service/src/main/java/org/whispersystems/signalservice/api/crypto/SignalSealedSessionCipher.java @@ -21,6 +21,7 @@ import org.signal.libsignal.protocol.InvalidRegistrationIdException; import org.signal.libsignal.protocol.NoSessionException; import org.signal.libsignal.protocol.SignalProtocolAddress; import org.signal.libsignal.protocol.UntrustedIdentityException; +import org.signal.libsignal.protocol.UsePqRatchet; import org.signal.libsignal.protocol.state.SessionRecord; import org.signal.libsignal.protocol.state.SignalProtocolStore; import org.whispersystems.signalservice.api.SignalSessionLock; @@ -67,7 +68,7 @@ public class SignalSealedSessionCipher { public SealedSessionCipher.DecryptionResult decrypt(CertificateValidator validator, byte[] ciphertext, long timestamp) throws InvalidMetadataMessageException, InvalidMetadataVersionException, ProtocolInvalidMessageException, ProtocolInvalidKeyException, ProtocolNoSessionException, ProtocolLegacyMessageException, ProtocolInvalidVersionException, ProtocolDuplicateMessageException, ProtocolInvalidKeyIdException, ProtocolUntrustedIdentityException, SelfSendException { try (SignalSessionLock.Lock unused = lock.acquire()) { - return cipher.decrypt(validator, ciphertext, timestamp); + return cipher.decrypt(validator, ciphertext, timestamp, UsePqRatchet.NO); } } diff --git a/libsignal-service/src/main/java/org/whispersystems/signalservice/api/crypto/SignalSessionBuilder.java b/libsignal-service/src/main/java/org/whispersystems/signalservice/api/crypto/SignalSessionBuilder.java index d1499c2e23..a2f3107c26 100644 --- a/libsignal-service/src/main/java/org/whispersystems/signalservice/api/crypto/SignalSessionBuilder.java +++ b/libsignal-service/src/main/java/org/whispersystems/signalservice/api/crypto/SignalSessionBuilder.java @@ -3,6 +3,7 @@ package org.whispersystems.signalservice.api.crypto; import org.signal.libsignal.protocol.InvalidKeyException; import org.signal.libsignal.protocol.SessionBuilder; import org.signal.libsignal.protocol.UntrustedIdentityException; +import org.signal.libsignal.protocol.UsePqRatchet; import org.signal.libsignal.protocol.state.PreKeyBundle; import org.whispersystems.signalservice.api.SignalSessionLock; @@ -21,7 +22,7 @@ public class SignalSessionBuilder { public void process(PreKeyBundle preKey) throws InvalidKeyException, UntrustedIdentityException { try (SignalSessionLock.Lock unused = lock.acquire()) { - builder.process(preKey); + builder.process(preKey, UsePqRatchet.NO); } } } diff --git a/libsignal-service/src/main/java/org/whispersystems/signalservice/api/crypto/SignalSessionCipher.java b/libsignal-service/src/main/java/org/whispersystems/signalservice/api/crypto/SignalSessionCipher.java index 201302a266..12a7129798 100644 --- a/libsignal-service/src/main/java/org/whispersystems/signalservice/api/crypto/SignalSessionCipher.java +++ b/libsignal-service/src/main/java/org/whispersystems/signalservice/api/crypto/SignalSessionCipher.java @@ -9,6 +9,7 @@ import org.signal.libsignal.protocol.LegacyMessageException; import org.signal.libsignal.protocol.NoSessionException; import org.signal.libsignal.protocol.SessionCipher; import org.signal.libsignal.protocol.UntrustedIdentityException; +import org.signal.libsignal.protocol.UsePqRatchet; import org.signal.libsignal.protocol.message.CiphertextMessage; import org.signal.libsignal.protocol.message.PreKeySignalMessage; import org.signal.libsignal.protocol.message.SignalMessage; @@ -35,7 +36,7 @@ public class SignalSessionCipher { public byte[] decrypt(PreKeySignalMessage ciphertext) throws DuplicateMessageException, LegacyMessageException, InvalidMessageException, InvalidKeyIdException, InvalidKeyException, org.signal.libsignal.protocol.UntrustedIdentityException { try (SignalSessionLock.Lock unused = lock.acquire()) { - return cipher.decrypt(ciphertext); + return cipher.decrypt(ciphertext, UsePqRatchet.NO); } } diff --git a/microbenchmark/src/androidTest/java/org/signal/util/SignalClient.kt b/microbenchmark/src/androidTest/java/org/signal/util/SignalClient.kt index 898af331dc..b860037443 100644 --- a/microbenchmark/src/androidTest/java/org/signal/util/SignalClient.kt +++ b/microbenchmark/src/androidTest/java/org/signal/util/SignalClient.kt @@ -9,6 +9,7 @@ import org.signal.libsignal.metadata.certificate.SenderCertificate import org.signal.libsignal.metadata.certificate.ServerCertificate import org.signal.libsignal.protocol.SessionBuilder import org.signal.libsignal.protocol.SignalProtocolAddress +import org.signal.libsignal.protocol.UsePqRatchet import org.signal.libsignal.protocol.ecc.Curve import org.signal.libsignal.protocol.ecc.ECKeyPair import org.signal.libsignal.protocol.ecc.ECPublicKey @@ -74,7 +75,7 @@ class SignalClient { */ fun initializeSession(to: SignalClient) { val address = SignalProtocolAddress(to.aci.toString(), 1) - SessionBuilder(store, address).process(to.createPreKeyBundle()) + SessionBuilder(store, address).process(to.createPreKeyBundle(), UsePqRatchet.NO) } fun initializedGroupSession(distributionId: DistributionId): SenderKeyDistributionMessage {