mirror of
https://github.com/oxen-io/session-android.git
synced 2025-04-02 18:22:18 +00:00
Fix up build gradle.
This commit is contained in:
parent
c4ead7b1b0
commit
01f5ff7c86
@ -6,6 +6,7 @@ import android.support.annotation.NonNull;
|
|||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.support.annotation.WorkerThread;
|
import android.support.annotation.WorkerThread;
|
||||||
|
|
||||||
|
import org.signal.libsignal.metadata.SignalProtos;
|
||||||
import org.signal.libsignal.metadata.certificate.CertificateValidator;
|
import org.signal.libsignal.metadata.certificate.CertificateValidator;
|
||||||
import org.signal.libsignal.metadata.certificate.InvalidCertificateException;
|
import org.signal.libsignal.metadata.certificate.InvalidCertificateException;
|
||||||
import network.loki.messenger.BuildConfig;
|
import network.loki.messenger.BuildConfig;
|
||||||
@ -20,6 +21,7 @@ import org.whispersystems.libsignal.ecc.ECPublicKey;
|
|||||||
import org.whispersystems.libsignal.util.guava.Optional;
|
import org.whispersystems.libsignal.util.guava.Optional;
|
||||||
import org.whispersystems.signalservice.api.crypto.UnidentifiedAccess;
|
import org.whispersystems.signalservice.api.crypto.UnidentifiedAccess;
|
||||||
import org.whispersystems.signalservice.api.crypto.UnidentifiedAccessPair;
|
import org.whispersystems.signalservice.api.crypto.UnidentifiedAccessPair;
|
||||||
|
import org.whispersystems.signalservice.api.push.SignalServiceAddress;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
@ -48,7 +50,7 @@ public class UnidentifiedAccessUtil {
|
|||||||
try {
|
try {
|
||||||
byte[] theirUnidentifiedAccessKey = getTargetUnidentifiedAccessKey(recipient);
|
byte[] theirUnidentifiedAccessKey = getTargetUnidentifiedAccessKey(recipient);
|
||||||
byte[] ourUnidentifiedAccessKey = getSelfUnidentifiedAccessKey(context);
|
byte[] ourUnidentifiedAccessKey = getSelfUnidentifiedAccessKey(context);
|
||||||
byte[] ourUnidentifiedAccessCertificate = TextSecurePreferences.getUnidentifiedAccessCertificate(context);
|
byte[] ourUnidentifiedAccessCertificate = getUnidentifiedAccessCertificate(context);
|
||||||
|
|
||||||
if (TextSecurePreferences.isUniversalUnidentifiedAccess(context)) {
|
if (TextSecurePreferences.isUniversalUnidentifiedAccess(context)) {
|
||||||
ourUnidentifiedAccessKey = Util.getSecretBytes(16);
|
ourUnidentifiedAccessKey = Util.getSecretBytes(16);
|
||||||
@ -83,7 +85,7 @@ public class UnidentifiedAccessUtil {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
byte[] ourUnidentifiedAccessKey = getSelfUnidentifiedAccessKey(context);
|
byte[] ourUnidentifiedAccessKey = getSelfUnidentifiedAccessKey(context);
|
||||||
byte[] ourUnidentifiedAccessCertificate = TextSecurePreferences.getUnidentifiedAccessCertificate(context);
|
byte[] ourUnidentifiedAccessCertificate = getUnidentifiedAccessCertificate(context);
|
||||||
|
|
||||||
if (TextSecurePreferences.isUniversalUnidentifiedAccess(context)) {
|
if (TextSecurePreferences.isUniversalUnidentifiedAccess(context)) {
|
||||||
ourUnidentifiedAccessKey = Util.getSecretBytes(16);
|
ourUnidentifiedAccessKey = Util.getSecretBytes(16);
|
||||||
@ -125,4 +127,17 @@ public class UnidentifiedAccessUtil {
|
|||||||
throw new AssertionError("Unknown mode: " + recipient.getUnidentifiedAccessMode().getMode());
|
throw new AssertionError("Unknown mode: " + recipient.getUnidentifiedAccessMode().getMode());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static @Nullable byte[] getUnidentifiedAccessCertificate(Context context) {
|
||||||
|
String ourNumber = TextSecurePreferences.getLocalNumber(context);
|
||||||
|
if (ourNumber != null) {
|
||||||
|
SignalProtos.SenderCertificate certificate = SignalProtos.SenderCertificate.newBuilder()
|
||||||
|
.setSender(ourNumber)
|
||||||
|
.setSenderDevice(SignalServiceAddress.DEFAULT_DEVICE_ID)
|
||||||
|
.build();
|
||||||
|
return certificate.toByteArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -280,26 +280,7 @@ public abstract class PushSendJob extends SendJob {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void rotateSenderCertificateIfNecessary() throws IOException {
|
protected void rotateSenderCertificateIfNecessary() throws IOException {
|
||||||
try {
|
// Loki - We don't need verification on sender certificates
|
||||||
byte[] certificateBytes = TextSecurePreferences.getUnidentifiedAccessCertificate(context);
|
|
||||||
|
|
||||||
if (certificateBytes == null) {
|
|
||||||
throw new InvalidCertificateException("No certificate was present.");
|
|
||||||
}
|
|
||||||
|
|
||||||
SenderCertificate certificate = new SenderCertificate(certificateBytes);
|
|
||||||
|
|
||||||
if (System.currentTimeMillis() > (certificate.getExpiration() - CERTIFICATE_EXPIRATION_BUFFER)) {
|
|
||||||
throw new InvalidCertificateException("Certificate is expired, or close to it. Expires on: " + certificate.getExpiration() + ", currently: " + System.currentTimeMillis());
|
|
||||||
}
|
|
||||||
|
|
||||||
Log.d(TAG, "Certificate is valid.");
|
|
||||||
} catch (InvalidCertificateException e) {
|
|
||||||
Log.w(TAG, "Certificate was invalid at send time. Fetching a new one.", e);
|
|
||||||
RotateCertificateJob certificateJob = new RotateCertificateJob(context);
|
|
||||||
ApplicationContext.getInstance(context).injectDependencies(certificateJob);
|
|
||||||
certificateJob.onRun();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected SignalServiceSyncMessage buildSelfSendSyncMessage(@NonNull Context context, @NonNull SignalServiceDataMessage message, Optional<UnidentifiedAccessPair> syncAccess) {
|
protected SignalServiceSyncMessage buildSelfSendSyncMessage(@NonNull Context context, @NonNull SignalServiceDataMessage message, Optional<UnidentifiedAccessPair> syncAccess) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user