System requirements:
- at least Java Runtime Environment (JRE) 17
-- native libraries: libzkgroup, libsignal-client
+- native library: libsignal-client
- Those are bundled for x86_64 Linux (with recent enough glibc, see #643), for other systems/architectures
+ The native lib is bundled for x86_64 Linux (with recent enough glibc, see #643), for other systems/architectures
see: [Provide native lib for libsignal](https://github.com/AsamK/signal-cli/wiki/Provide-native-lib-for-libsignal)
### Install system-wide on Linux
,
{
"name":"java.util.UUID",
- "methods":[{"name":"<init>","parameterTypes":["long","long"] }]}
+ "methods":[
+ {"name":"<init>","parameterTypes":["long","long"] },
+ {"name":"getLeastSignificantBits","parameterTypes":[] },
+ {"name":"getMostSignificantBits","parameterTypes":[] }
+ ]}
,
{
"name":"jdk.internal.loader.ClassLoaders$PlatformClassLoader"}
{
"pattern":"\\Qcom/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BD\\E"
},
+ {
+ "pattern":"\\Qcom/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE\\E"
+ },
{
"pattern":"\\Qcom/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM\\E"
},
{
"pattern":"\\Qcom/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IT\\E"
},
+ {
+ "pattern":"\\Qcom/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP\\E"
+ },
{
"pattern":"\\Qcom/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MO\\E"
},
"pattern":"\\Qcom/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_US\\E"
},
{
- "pattern":"\\Qjni/x86_64-Linux/libjffi-1.2.so\\E"
+ "pattern":"\\Qcom/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_XK\\E"
},
{
- "pattern":"\\Qlibsignal_jni.so\\E"
+ "pattern":"\\Qjni/x86_64-Linux/libjffi-1.2.so\\E"
},
{
- "pattern":"\\Qlibzkgroup.so\\E"
+ "pattern":"\\Qlibsignal_jni.so\\E"
},
{
"pattern":"\\Qorg/asamk/signal/manager/config/ias.store\\E"
}
dependencies {
- implementation("com.github.turasa:signal-service-java:2.15.3_unofficial_33")
+ implementation("com.github.turasa:signal-service-java:2.15.3_unofficial_34")
api("com.fasterxml.jackson.core", "jackson-databind", "2.13.0")
implementation("com.google.protobuf:protobuf-javalite:3.11.4")
implementation("org.bouncycastle:bcprov-jdk15on:1.69")
package org.asamk.signal.manager.config;
-import org.signal.zkgroup.internal.Native;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.whispersystems.signalservice.api.account.AccountAttributes;
public static final AccountAttributes.Capabilities capabilities;
static {
- boolean zkGroupAvailable;
- try {
- Native.serverPublicParamsCheckValidContentsJNI(new byte[]{});
- zkGroupAvailable = true;
- } catch (Throwable e) {
- logger.warn("Failed to call libzkgroup: {}", e.getMessage());
- zkGroupAvailable = false;
- }
- capabilities = new AccountAttributes.Capabilities(false,
- zkGroupAvailable,
- false,
- zkGroupAvailable,
- true,
- true,
- false);
+ capabilities = new AccountAttributes.Capabilities(false, true, false, true, true, true, false);
try {
TrustStore contactTrustStore = new IasTrustStore();
}
}
- public static boolean isZkgroupAvailable() {
- return ServiceConfig.getCapabilities().isGv2();
- }
-
public static boolean isSignalClientAvailable() {
try {
org.signal.client.internal.Native.DeviceTransfer_GeneratePrivateKey();
+++ /dev/null
-package org.asamk.signal.manager.helper;
-
-import org.signal.zkgroup.groups.GroupSecretParams;
-import org.whispersystems.signalservice.api.groupsv2.GroupsV2AuthorizationString;
-
-import java.io.IOException;
-
-public interface GroupAuthorizationProvider {
-
- GroupsV2AuthorizationString getAuthorizationForToday(GroupSecretParams groupSecretParams) throws IOException;
-}
import org.whispersystems.signalservice.api.push.exceptions.NotFoundException;
import org.whispersystems.signalservice.api.push.exceptions.PushNetworkException;
import org.whispersystems.signalservice.api.services.ProfileService;
-import org.whispersystems.signalservice.internal.ServiceResponse;
import java.io.File;
import java.io.IOException;
Optional<UnidentifiedAccess> unidentifiedAccess,
SignalServiceProfile.RequestType requestType
) {
- var profileService = dependencies.getProfileService();
-
- Single<ServiceResponse<ProfileAndCredential>> responseSingle;
+ final var profileService = dependencies.getProfileService();
final var locale = Utils.getDefaultLocale();
- try {
- responseSingle = profileService.getProfile(address, profileKey, unidentifiedAccess, requestType, locale);
- } catch (NoClassDefFoundError e) {
- // Native zkgroup lib not available for ProfileKey
- responseSingle = profileService.getProfile(address,
- Optional.absent(),
- unidentifiedAccess,
- requestType,
- locale);
- }
- return responseSingle.map(pair -> {
+ return profileService.getProfile(address, profileKey, unidentifiedAccess, requestType, locale).map(pair -> {
var processor = new ProfileService.ProfileResponseProcessor(pair);
if (processor.hasResult()) {
return processor.getResult();
dataPath = getDefaultDataPath();
}
- if (!ServiceConfig.isZkgroupAvailable()) {
- logger.warn("WARNING: Support for new group V2 is disabled,"
- + " because the required native library dependency is missing: libzkgroup");
- }
-
if (!ServiceConfig.isSignalClientAvailable()) {
throw new UserErrorException("Missing required native library dependency: libsignal-client");
}