From 945921fa9a372e4f604edef1d6ad7c8a7357e0dd Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Thu, 5 Oct 2023 14:17:54 -0400 Subject: [PATCH] Fix compilation of microbenchmarks. --- .../InMemorySignalServiceAccountDataStore.kt | 16 ++++ .../java/org/signal/util/SignalClient.kt | 84 +++++++++---------- 2 files changed, 57 insertions(+), 43 deletions(-) diff --git a/microbenchmark/src/androidTest/java/org/signal/util/InMemorySignalServiceAccountDataStore.kt b/microbenchmark/src/androidTest/java/org/signal/util/InMemorySignalServiceAccountDataStore.kt index 80545d1d04..b2166ba898 100644 --- a/microbenchmark/src/androidTest/java/org/signal/util/InMemorySignalServiceAccountDataStore.kt +++ b/microbenchmark/src/androidTest/java/org/signal/util/InMemorySignalServiceAccountDataStore.kt @@ -142,6 +142,14 @@ class InMemorySignalServiceAccountDataStore : SignalServiceAccountDataStore { kyberPreKeys.remove(kyberPreKeyId) } + override fun deleteAllStaleOneTimeEcPreKeys(threshold: Long, minCount: Int) { + error("Not used") + } + + override fun markAllOneTimeEcPreKeysStaleIfNecessary(staleTime: Long) { + error("Not used") + } + override fun storeLastResortKyberPreKey(kyberPreKeyId: Int, kyberPreKeyRecord: KyberPreKeyRecord) { error("Not used") } @@ -150,6 +158,14 @@ class InMemorySignalServiceAccountDataStore : SignalServiceAccountDataStore { error("Not used") } + override fun markAllOneTimeKyberPreKeysStaleIfNecessary(staleTime: Long) { + error("Not used") + } + + override fun deleteAllStaleOneTimeKyberPreKeys(threshold: Long, minCount: Int) { + error("Not used") + } + override fun loadLastResortKyberPreKeys(): List { error("Not used") } diff --git a/microbenchmark/src/androidTest/java/org/signal/util/SignalClient.kt b/microbenchmark/src/androidTest/java/org/signal/util/SignalClient.kt index 09607c72cd..a2b7d46665 100644 --- a/microbenchmark/src/androidTest/java/org/signal/util/SignalClient.kt +++ b/microbenchmark/src/androidTest/java/org/signal/util/SignalClient.kt @@ -1,6 +1,6 @@ package org.signal.util -import com.google.protobuf.ByteString +import okio.ByteString.Companion.toByteString import org.signal.libsignal.internal.Native import org.signal.libsignal.internal.NativeHandleGuard import org.signal.libsignal.metadata.certificate.CertificateValidator @@ -22,8 +22,10 @@ import org.whispersystems.signalservice.api.crypto.SignalServiceCipher import org.whispersystems.signalservice.api.crypto.UnidentifiedAccess import org.whispersystems.signalservice.api.push.ServiceId.ACI import org.whispersystems.signalservice.api.push.SignalServiceAddress +import org.whispersystems.signalservice.internal.push.Content +import org.whispersystems.signalservice.internal.push.DataMessage +import org.whispersystems.signalservice.internal.push.Envelope import org.whispersystems.signalservice.internal.push.OutgoingPushMessage -import org.whispersystems.signalservice.internal.push.SignalServiceProtos import org.whispersystems.signalservice.internal.util.Util import org.whispersystems.util.Base64 import java.util.Optional @@ -78,17 +80,15 @@ class SignalClient { SessionBuilder(store, address).process(to.preKeyBundle) } - fun encryptUnsealedSender(to: SignalClient): SignalServiceProtos.Envelope { + fun encryptUnsealedSender(to: SignalClient): Envelope { val sentTimestamp = System.currentTimeMillis() - val message = SignalServiceProtos.DataMessage.newBuilder() - .setBody("Test Message") - .setTimestamp(sentTimestamp) - .build() - - val content = SignalServiceProtos.Content.newBuilder() - .setDataMessage(message) - .build() + val content = Content( + dataMessage = DataMessage( + body = "Test Message", + timestamp = sentTimestamp + ) + ) val outgoingPushMessage: OutgoingPushMessage = cipher.encrypt( SignalProtocolAddress(to.aci.toString(), 1), @@ -98,30 +98,28 @@ class SignalClient { val encryptedContent: ByteArray = Base64.decode(outgoingPushMessage.content) - return SignalServiceProtos.Envelope.newBuilder() - .setSourceServiceId(aci.toString()) - .setSourceDevice(1) - .setDestinationServiceId(to.aci.toString()) - .setTimestamp(sentTimestamp) - .setServerTimestamp(sentTimestamp) - .setServerGuid(UUID.randomUUID().toString()) - .setType(SignalServiceProtos.Envelope.Type.valueOf(outgoingPushMessage.type)) - .setUrgent(true) - .setContent(ByteString.copyFrom(encryptedContent)) - .build() + return Envelope( + sourceServiceId = aci.toString(), + sourceDevice = 1, + destinationServiceId = to.aci.toString(), + timestamp = sentTimestamp, + serverTimestamp = sentTimestamp, + serverGuid = UUID.randomUUID().toString(), + type = Envelope.Type.fromValue(outgoingPushMessage.type), + urgent = true, + content = encryptedContent.toByteString() + ) } - fun encryptSealedSender(to: SignalClient): SignalServiceProtos.Envelope { + fun encryptSealedSender(to: SignalClient): Envelope { val sentTimestamp = System.currentTimeMillis() - val message = SignalServiceProtos.DataMessage.newBuilder() - .setBody("Test Message") - .setTimestamp(sentTimestamp) - .build() - - val content = SignalServiceProtos.Content.newBuilder() - .setDataMessage(message) - .build() + val content = Content( + dataMessage = DataMessage( + body = "Test Message", + timestamp = sentTimestamp + ) + ) val outgoingPushMessage: OutgoingPushMessage = cipher.encrypt( SignalProtocolAddress(to.aci.toString(), 1), @@ -131,20 +129,20 @@ class SignalClient { val encryptedContent: ByteArray = Base64.decode(outgoingPushMessage.content) - return SignalServiceProtos.Envelope.newBuilder() - .setSourceServiceId(aci.toString()) - .setSourceDevice(1) - .setDestinationServiceId(to.aci.toString()) - .setTimestamp(sentTimestamp) - .setServerTimestamp(sentTimestamp) - .setServerGuid(UUID.randomUUID().toString()) - .setType(SignalServiceProtos.Envelope.Type.valueOf(outgoingPushMessage.type)) - .setUrgent(true) - .setContent(ByteString.copyFrom(encryptedContent)) - .build() + return Envelope( + sourceServiceId = aci.toString(), + sourceDevice = 1, + destinationServiceId = to.aci.toString(), + timestamp = sentTimestamp, + serverTimestamp = sentTimestamp, + serverGuid = UUID.randomUUID().toString(), + type = Envelope.Type.fromValue(outgoingPushMessage.type), + urgent = true, + content = encryptedContent.toByteString() + ) } - fun decryptMessage(envelope: SignalServiceProtos.Envelope) { + fun decryptMessage(envelope: Envelope) { cipher.decrypt(envelope, System.currentTimeMillis()) } }