Add libsignal-net CDSI implementation.

This commit is contained in:
Alex Konradi
2024-03-01 14:45:37 -05:00
committed by Alex Hart
parent 46c8b3b690
commit 56eae8c7bf
5 changed files with 66 additions and 12 deletions

View File

@@ -126,7 +126,8 @@ object ContactDiscoveryRefreshV2 {
SignalDatabase.recipients.getAllServiceIdProfileKeyPairs(),
Optional.ofNullable(token),
BuildConfig.CDSI_MRENCLAVE,
timeoutMs
timeoutMs,
if (FeatureFlags.useLibsignalNetForCdsiLookup()) BuildConfig.LIBSIGNAL_NET_ENV else null
) { tokenToSave ->
stopwatch.split("network-pre-token")
if (!isPartialRefresh) {

View File

@@ -123,6 +123,7 @@ public final class FeatureFlags {
private static final String RETRY_RECEIPT_MAX_COUNT = "android.retryReceipt.maxCount";
private static final String RETRY_RECEIPT_MAX_COUNT_RESET_AGE = "android.retryReceipt.maxCountResetAge";
private static final String PREKEY_FORCE_REFRESH_INTERVAL = "android.prekeyForceRefreshInterval";
private static final String CDSI_LIBSIGNAL_NET = "android.cds.libsignal";
/**
* We will only store remote values for flags in this set. If you want a flag to be controllable
@@ -198,7 +199,8 @@ public final class FeatureFlags {
VIDEO_RECORD_1X_ZOOM,
RETRY_RECEIPT_MAX_COUNT,
RETRY_RECEIPT_MAX_COUNT_RESET_AGE,
PREKEY_FORCE_REFRESH_INTERVAL
PREKEY_FORCE_REFRESH_INTERVAL,
CDSI_LIBSIGNAL_NET
);
@VisibleForTesting
@@ -271,7 +273,8 @@ public final class FeatureFlags {
VIDEO_RECORD_1X_ZOOM,
RETRY_RECEIPT_MAX_COUNT,
RETRY_RECEIPT_MAX_COUNT_RESET_AGE,
PREKEY_FORCE_REFRESH_INTERVAL
PREKEY_FORCE_REFRESH_INTERVAL,
CDSI_LIBSIGNAL_NET
);
/**
@@ -706,6 +709,11 @@ public final class FeatureFlags {
return getLong(PREKEY_FORCE_REFRESH_INTERVAL, TimeUnit.HOURS.toMillis(1));
}
/** Make CDSI lookups via libsignal-net instead of native websocket. */
public static boolean useLibsignalNetForCdsiLookup() {
return getBoolean(CDSI_LIBSIGNAL_NET, false);
}
/** Only for rendering debug info. */
public static synchronized @NonNull Map<String, Object> getMemoryValues() {
return new TreeMap<>(REMOTE_VALUES);