Switch back to mainline SQLCipher with true WAL mode.

fork-5.53.8
Greyson Parrelli 2021-09-01 12:21:59 -04:00
rodzic 0b53ba8950
commit fa26eb2017
35 zmienionych plików z 113 dodań i 154 usunięć

Wyświetl plik

@ -509,7 +509,7 @@ dependencies {
implementation 'com.codewaves.stickyheadergrid:stickyheadergrid:0.9.4'
implementation 'com.github.dmytrodanylyk.circular-progress-button:library:1.1.3-S2'
implementation "net.zetetic:android-database-sqlcipher:4.4.3"
implementation 'org.signal:android-database-sqlcipher:4.4.3-S2'
implementation "androidx.sqlite:sqlite:2.1.0"
implementation ('com.googlecode.ez-vcard:ez-vcard:0.9.11') {

Wyświetl plik

@ -11,9 +11,9 @@ import androidx.annotation.Nullable;
import com.facebook.flipper.plugins.databases.DatabaseDescriptor;
import com.facebook.flipper.plugins.databases.DatabaseDriver;
import net.sqlcipher.DatabaseUtils;
import net.sqlcipher.database.SQLiteDatabase;
import net.sqlcipher.database.SQLiteStatement;
import net.zetetic.database.DatabaseUtils;
import net.zetetic.database.sqlcipher.SQLiteDatabase;
import net.zetetic.database.sqlcipher.SQLiteStatement;
import org.signal.core.util.logging.Log;
import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper;

Wyświetl plik

@ -13,7 +13,7 @@ import androidx.documentfile.provider.DocumentFile;
import com.annimon.stream.function.Predicate;
import com.google.protobuf.ByteString;
import net.sqlcipher.database.SQLiteDatabase;
import net.zetetic.database.sqlcipher.SQLiteDatabase;
import org.greenrobot.eventbus.EventBus;
import org.signal.core.util.Conversions;

Wyświetl plik

@ -11,7 +11,7 @@ import android.util.Pair;
import androidx.annotation.NonNull;
import net.sqlcipher.database.SQLiteDatabase;
import net.zetetic.database.sqlcipher.SQLiteDatabase;
import org.greenrobot.eventbus.EventBus;
import org.signal.core.util.Conversions;

Wyświetl plik

@ -20,7 +20,7 @@ import android.content.Context;
import androidx.annotation.NonNull;
import net.sqlcipher.database.SQLiteDatabase;
import net.zetetic.database.sqlcipher.SQLiteDatabase;
import org.thoughtcrime.securesms.contacts.ContactsDatabase;
import org.thoughtcrime.securesms.crypto.AttachmentSecret;
@ -214,7 +214,7 @@ public class DatabaseFactory {
return getInstance(context).groupCallRingDatabase;
}
public static net.sqlcipher.database.SQLiteDatabase getBackupDatabase(Context context) {
public static net.zetetic.database.sqlcipher.SQLiteDatabase getBackupDatabase(Context context) {
return getInstance(context).databaseHelper.getRawReadableDatabase();
}
@ -304,7 +304,7 @@ public class DatabaseFactory {
databaseHelper.getSignalWritableDatabase();
}
public net.sqlcipher.database.SQLiteDatabase getRawDatabase() {
public net.zetetic.database.sqlcipher.SQLiteDatabase getRawDatabase() {
return databaseHelper.getRawWritableDatabase();
}

Wyświetl plik

@ -9,9 +9,9 @@ import androidx.annotation.NonNull;
import com.annimon.stream.Stream;
import net.sqlcipher.database.SQLiteDatabaseHook;
import net.sqlcipher.database.SQLiteOpenHelper;
import net.sqlcipher.database.SQLiteDatabase;
import net.zetetic.database.sqlcipher.SQLiteDatabaseHook;
import net.zetetic.database.sqlcipher.SQLiteOpenHelper;
import net.zetetic.database.sqlcipher.SQLiteDatabase;
import org.signal.core.util.concurrent.SignalExecutors;
import org.signal.core.util.logging.Log;
@ -89,8 +89,7 @@ public class JobDatabase extends SQLiteOpenHelper implements SignalDatabase {
private static volatile JobDatabase instance;
private final Application application;
private final DatabaseSecret databaseSecret;
private final Application application;
public static @NonNull JobDatabase getInstance(@NonNull Application context) {
if (instance == null) {
@ -105,10 +104,9 @@ public class JobDatabase extends SQLiteOpenHelper implements SignalDatabase {
}
public JobDatabase(@NonNull Application application, @NonNull DatabaseSecret databaseSecret) {
super(application, DATABASE_NAME, null, DATABASE_VERSION, new SqlCipherDatabaseHook(), new SqlCipherErrorHandler(DATABASE_NAME));
super(application, DATABASE_NAME, databaseSecret.asString(), null, DATABASE_VERSION, 0, new SqlCipherErrorHandler(DATABASE_NAME), new SqlCipherDatabaseHook());
this.application = application;
this.databaseSecret = databaseSecret;
this.application = application;
}
@Override
@ -430,12 +428,4 @@ public class JobDatabase extends SQLiteOpenHelper implements SignalDatabase {
}
}
}
private SQLiteDatabase getReadableDatabase() {
return super.getReadableDatabase(databaseSecret.asString());
}
private SQLiteDatabase getWritableDatabase() {
return super.getWritableDatabase(databaseSecret.asString());
}
}

Wyświetl plik

@ -6,9 +6,9 @@ import android.database.Cursor;
import androidx.annotation.NonNull;
import net.sqlcipher.database.SQLiteDatabase;
import net.sqlcipher.database.SQLiteDatabaseHook;
import net.sqlcipher.database.SQLiteOpenHelper;
import net.zetetic.database.sqlcipher.SQLiteDatabase;
import net.zetetic.database.sqlcipher.SQLiteDatabaseHook;
import net.zetetic.database.sqlcipher.SQLiteOpenHelper;
import org.signal.core.util.concurrent.SignalExecutors;
import org.signal.core.util.logging.Log;
@ -47,8 +47,7 @@ public class KeyValueDatabase extends SQLiteOpenHelper implements SignalDatabase
private static volatile KeyValueDatabase instance;
private final Application application;
private final DatabaseSecret databaseSecret;
private final Application application;
public static @NonNull KeyValueDatabase getInstance(@NonNull Application context) {
if (instance == null) {
@ -63,10 +62,9 @@ public class KeyValueDatabase extends SQLiteOpenHelper implements SignalDatabase
}
private KeyValueDatabase(@NonNull Application application, @NonNull DatabaseSecret databaseSecret) {
super(application, DATABASE_NAME, null, DATABASE_VERSION, new SqlCipherDatabaseHook(), new SqlCipherErrorHandler(DATABASE_NAME));
super(application, DATABASE_NAME, databaseSecret.asString(), null, DATABASE_VERSION, 0,new SqlCipherErrorHandler(DATABASE_NAME), new SqlCipherDatabaseHook());
this.application = application;
this.databaseSecret = databaseSecret;
this.application = application;
}
@Override
@ -223,14 +221,6 @@ public class KeyValueDatabase extends SQLiteOpenHelper implements SignalDatabase
}
}
private SQLiteDatabase getReadableDatabase() {
return super.getReadableDatabase(databaseSecret.asString());
}
private SQLiteDatabase getWritableDatabase() {
return super.getWritableDatabase(databaseSecret.asString());
}
private enum Type {
BLOB(0), BOOLEAN(1), FLOAT(2), INTEGER(3), LONG(4), STRING(5);

Wyświetl plik

@ -3,8 +3,8 @@ package org.thoughtcrime.securesms.database
import android.annotation.SuppressLint
import android.app.Application
import android.content.ContentValues
import net.sqlcipher.database.SQLiteDatabase
import net.sqlcipher.database.SQLiteOpenHelper
import net.zetetic.database.sqlcipher.SQLiteDatabase
import net.zetetic.database.sqlcipher.SQLiteOpenHelper
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.crypto.DatabaseSecret
import org.thoughtcrime.securesms.crypto.DatabaseSecretProvider
@ -29,10 +29,12 @@ class LocalMetricsDatabase private constructor(
) : SQLiteOpenHelper(
application,
DATABASE_NAME,
databaseSecret.asString(),
null,
DATABASE_VERSION,
SqlCipherDatabaseHook(),
SqlCipherErrorHandler(DATABASE_NAME)
0,
SqlCipherErrorHandler(DATABASE_NAME),
SqlCipherDatabaseHook()
),
SignalDatabase {
@ -238,12 +240,6 @@ class LocalMetricsDatabase private constructor(
}
}
private val readableDatabase: SQLiteDatabase
get() = getReadableDatabase(databaseSecret.asString())
private val writableDatabase: SQLiteDatabase
get() = getWritableDatabase(databaseSecret.asString())
data class EventMetrics(
val name: String,
val count: Long,

Wyświetl plik

@ -4,8 +4,8 @@ import android.annotation.SuppressLint
import android.app.Application
import android.content.ContentValues
import android.database.Cursor
import net.sqlcipher.database.SQLiteDatabase
import net.sqlcipher.database.SQLiteOpenHelper
import net.zetetic.database.sqlcipher.SQLiteDatabase
import net.zetetic.database.sqlcipher.SQLiteOpenHelper
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.crypto.DatabaseSecret
import org.thoughtcrime.securesms.crypto.DatabaseSecretProvider
@ -32,10 +32,12 @@ class LogDatabase private constructor(
) : SQLiteOpenHelper(
application,
DATABASE_NAME,
databaseSecret.asString(),
null,
DATABASE_VERSION,
SqlCipherDatabaseHook(),
SqlCipherErrorHandler(DATABASE_NAME)
0,
SqlCipherErrorHandler(DATABASE_NAME),
SqlCipherDatabaseHook()
),
SignalDatabase {
@ -227,12 +229,6 @@ class LogDatabase private constructor(
}
}
private val readableDatabase: SQLiteDatabase
get() = getReadableDatabase(databaseSecret.asString())
private val writableDatabase: SQLiteDatabase
get() = getWritableDatabase(databaseSecret.asString())
interface Reader : Iterator<String>, Closeable
class CursorReader(private val cursor: Cursor) : Reader {

Wyświetl plik

@ -6,8 +6,8 @@ import android.database.Cursor;
import androidx.annotation.NonNull;
import net.sqlcipher.database.SQLiteDatabase;
import net.sqlcipher.database.SQLiteOpenHelper;
import net.zetetic.database.sqlcipher.SQLiteDatabase;
import net.zetetic.database.sqlcipher.SQLiteOpenHelper;
import org.signal.core.util.concurrent.SignalExecutors;
import org.signal.core.util.logging.Log;
@ -50,8 +50,7 @@ public class MegaphoneDatabase extends SQLiteOpenHelper implements SignalDatabas
private static volatile MegaphoneDatabase instance;
private final Application application;
private final DatabaseSecret databaseSecret;
private final Application application;
public static @NonNull MegaphoneDatabase getInstance(@NonNull Application context) {
if (instance == null) {
@ -66,10 +65,9 @@ public class MegaphoneDatabase extends SQLiteOpenHelper implements SignalDatabas
}
public MegaphoneDatabase(@NonNull Application application, @NonNull DatabaseSecret databaseSecret) {
super(application, DATABASE_NAME, null, DATABASE_VERSION, new SqlCipherDatabaseHook(), new SqlCipherErrorHandler(DATABASE_NAME));
super(application, DATABASE_NAME, databaseSecret.asString(), null, DATABASE_VERSION, 0, new SqlCipherErrorHandler(DATABASE_NAME), new SqlCipherDatabaseHook());
this.application = application;
this.databaseSecret = databaseSecret;
this.application = application;
}
@Override
@ -220,12 +218,4 @@ public class MegaphoneDatabase extends SQLiteOpenHelper implements SignalDatabas
}
}
}
private SQLiteDatabase getReadableDatabase() {
return super.getReadableDatabase(databaseSecret.asString());
}
private SQLiteDatabase getWritableDatabase() {
return super.getWritableDatabase(databaseSecret.asString());
}
}

Wyświetl plik

@ -12,7 +12,7 @@ import com.annimon.stream.Stream;
import com.google.android.mms.pdu_alt.NotificationInd;
import com.google.protobuf.InvalidProtocolBufferException;
import net.sqlcipher.database.SQLiteStatement;
import net.zetetic.database.sqlcipher.SQLiteStatement;
import org.signal.core.util.logging.Log;
import org.thoughtcrime.securesms.database.documents.Document;

Wyświetl plik

@ -29,7 +29,7 @@ import com.annimon.stream.Stream;
import com.google.android.mms.pdu_alt.NotificationInd;
import com.google.android.mms.pdu_alt.PduHeaders;
import net.sqlcipher.database.SQLiteStatement;
import net.zetetic.database.sqlcipher.SQLiteStatement;
import org.json.JSONArray;
import org.json.JSONException;

Wyświetl plik

@ -24,7 +24,7 @@ import androidx.annotation.Nullable;
import com.annimon.stream.Stream;
import net.sqlcipher.database.SQLiteQueryBuilder;
import net.zetetic.database.sqlcipher.SQLiteQueryBuilder;
import org.signal.core.util.logging.Log;
import org.thoughtcrime.securesms.database.MessageDatabase.SyncMessageId;

Wyświetl plik

@ -6,7 +6,7 @@ import android.database.Cursor;
import androidx.annotation.NonNull;
import net.sqlcipher.database.SQLiteDatabase;
import net.zetetic.database.sqlcipher.SQLiteDatabase;
import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper;
import org.thoughtcrime.securesms.database.model.PendingRetryReceiptModel;

Wyświetl plik

@ -14,7 +14,7 @@ import com.annimon.stream.Stream;
import com.google.protobuf.ByteString;
import com.google.protobuf.InvalidProtocolBufferException;
import net.sqlcipher.database.SQLiteConstraintException;
import net.zetetic.database.sqlcipher.SQLiteConstraintException;
import org.jetbrains.annotations.NotNull;
import org.signal.core.util.logging.Log;

Wyświetl plik

@ -4,9 +4,9 @@ package org.thoughtcrime.securesms.database;
import android.content.ContentValues;
import android.database.Cursor;
import net.sqlcipher.SQLException;
import net.sqlcipher.database.SQLiteStatement;
import net.sqlcipher.database.SQLiteTransactionListener;
import net.zetetic.database.SQLException;
import net.zetetic.database.sqlcipher.SQLiteStatement;
import net.zetetic.database.sqlcipher.SQLiteTransactionListener;
import org.signal.core.util.tracing.Tracer;
@ -15,7 +15,7 @@ import java.util.Locale;
import java.util.Map;
/**
* This is a wrapper around {@link net.sqlcipher.database.SQLiteDatabase}. There's difficulties
* This is a wrapper around {@link net.zetetic.database.sqlcipher.SQLiteDatabase}. There's difficulties
* making a subclass, so instead we just match the interface. Callers should just need to change
* their import statements.
*/
@ -34,10 +34,10 @@ public class SQLiteDatabase {
private static final String NAME_LOCK = "LOCK";
private final net.sqlcipher.database.SQLiteDatabase wrapped;
private final net.zetetic.database.sqlcipher.SQLiteDatabase wrapped;
private final Tracer tracer;
public SQLiteDatabase(net.sqlcipher.database.SQLiteDatabase wrapped) {
public SQLiteDatabase(net.zetetic.database.sqlcipher.SQLiteDatabase wrapped) {
this.wrapped = wrapped;
this.tracer = Tracer.getInstance();
}
@ -98,7 +98,7 @@ public class SQLiteDatabase {
return result;
}
public net.sqlcipher.database.SQLiteDatabase getSqlCipherDatabase() {
public net.zetetic.database.sqlcipher.SQLiteDatabase getSqlCipherDatabase() {
return wrapped;
}
@ -129,7 +129,7 @@ public class SQLiteDatabase {
return traceSql("query(9)", table, selection, false, () -> wrapped.query(distinct, table, columns, selection, selectionArgs, groupBy, having, orderBy, limit));
}
public Cursor queryWithFactory(net.sqlcipher.database.SQLiteDatabase.CursorFactory cursorFactory, boolean distinct, String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit) {
public Cursor queryWithFactory(net.zetetic.database.sqlcipher.SQLiteDatabase.CursorFactory cursorFactory, boolean distinct, String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit) {
return traceSql("queryWithFactory()", table, selection, false, () -> wrapped.queryWithFactory(cursorFactory, distinct, table, columns, selection, selectionArgs, groupBy, having, orderBy, limit));
}
@ -149,7 +149,7 @@ public class SQLiteDatabase {
return traceSql("rawQuery(2b)", sql, false,() -> wrapped.rawQuery(sql, args));
}
public Cursor rawQueryWithFactory(net.sqlcipher.database.SQLiteDatabase.CursorFactory cursorFactory, String sql, String[] selectionArgs, String editTable) {
public Cursor rawQueryWithFactory(net.zetetic.database.sqlcipher.SQLiteDatabase.CursorFactory cursorFactory, String sql, String[] selectionArgs, String editTable) {
return traceSql("rawQueryWithFactory()", sql, false, () -> wrapped.rawQueryWithFactory(cursorFactory, sql, selectionArgs, editTable));
}

Wyświetl plik

@ -7,7 +7,7 @@ import android.database.Cursor;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import net.sqlcipher.database.SQLiteStatement;
import net.zetetic.database.sqlcipher.SQLiteStatement;
import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper;

Wyświetl plik

@ -1,10 +1,10 @@
package org.thoughtcrime.securesms.database;
import net.sqlcipher.database.SQLiteDatabase;
import net.zetetic.database.sqlcipher.SQLiteDatabase;
/**
* Simple interface for common methods across our various
* {@link net.sqlcipher.database.SQLiteOpenHelper}s.
* {@link net.zetetic.database.sqlcipher.SQLiteOpenHelper}s.
*/
public interface SignalDatabase {
SQLiteDatabase getSqlCipherDatabase();

Wyświetl plik

@ -28,7 +28,7 @@ import androidx.annotation.Nullable;
import com.annimon.stream.Stream;
import com.google.android.mms.pdu_alt.NotificationInd;
import net.sqlcipher.database.SQLiteStatement;
import net.zetetic.database.sqlcipher.SQLiteStatement;
import org.signal.core.util.logging.Log;
import org.thoughtcrime.securesms.database.documents.IdentityKeyMismatch;

Wyświetl plik

@ -25,7 +25,7 @@ import androidx.annotation.Nullable;
import com.annimon.stream.Stream;
import net.sqlcipher.database.SQLiteStatement;
import net.zetetic.database.sqlcipher.SQLiteStatement;
import org.signal.core.util.logging.Log;
import org.thoughtcrime.securesms.groups.GroupId;

Wyświetl plik

@ -1,7 +1,7 @@
package org.thoughtcrime.securesms.database;
import net.sqlcipher.database.SQLiteDatabase;
import net.sqlcipher.database.SQLiteDatabaseHook;
import net.zetetic.database.sqlcipher.SQLiteConnection;
import net.zetetic.database.sqlcipher.SQLiteDatabaseHook;
/**
* Standard hook for setting common SQLCipher PRAGMAs.
@ -9,18 +9,16 @@ import net.sqlcipher.database.SQLiteDatabaseHook;
public class SqlCipherDatabaseHook implements SQLiteDatabaseHook {
@Override
public void preKey(SQLiteDatabase db) {
db.rawExecSQL("PRAGMA cipher_default_kdf_iter = 1;");
db.rawExecSQL("PRAGMA cipher_default_page_size = 4096;");
public void preKey(SQLiteConnection connection) {
connection.execute("PRAGMA cipher_default_kdf_iter = 1;", null, null);
connection.execute("PRAGMA cipher_default_page_size = 4096;", null, null);
}
@Override
public void postKey(SQLiteDatabase db) {
db.rawExecSQL("PRAGMA cipher_compatibility = 3;");
db.rawExecSQL("PRAGMA cipher_memory_security = OFF;");
db.rawExecSQL("PRAGMA kdf_iter = '1';");
db.rawExecSQL("PRAGMA cipher_page_size = 4096;");
db.enableWriteAheadLogging();
db.setForeignKeyConstraintsEnabled(true);
public void postKey(SQLiteConnection connection) {
connection.execute("PRAGMA cipher_compatibility = 3;", null, null);
connection.execute("PRAGMA cipher_memory_security = OFF;", null, null);
connection.execute("PRAGMA kdf_iter = '1';", null, null);
connection.execute("PRAGMA cipher_page_size = 4096;", null, null);
}
}

Wyświetl plik

@ -4,8 +4,8 @@ import android.database.Cursor;
import androidx.annotation.NonNull;
import net.sqlcipher.DatabaseErrorHandler;
import net.sqlcipher.database.SQLiteDatabase;
import net.zetetic.database.DatabaseErrorHandler;
import net.zetetic.database.sqlcipher.SQLiteDatabase;
import org.signal.core.util.logging.Log;
import org.thoughtcrime.securesms.util.CursorUtil;

Wyświetl plik

@ -8,7 +8,7 @@ import androidx.annotation.NonNull;
import com.fasterxml.jackson.annotation.JsonProperty;
import net.sqlcipher.database.SQLiteDatabase;
import net.zetetic.database.sqlcipher.SQLiteDatabase;
import org.signal.core.util.Conversions;
import org.signal.core.util.logging.Log;

Wyświetl plik

@ -5,7 +5,7 @@ import android.text.TextUtils;
import androidx.annotation.NonNull;
import net.sqlcipher.database.SQLiteDatabase;
import net.zetetic.database.sqlcipher.SQLiteDatabase;
import org.signal.core.util.logging.Log;
import org.thoughtcrime.securesms.util.DelimiterUtil;

Wyświetl plik

@ -7,7 +7,7 @@ import android.text.TextUtils;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import net.sqlcipher.database.SQLiteDatabase;
import net.zetetic.database.sqlcipher.SQLiteDatabase;
import org.signal.core.util.logging.Log;
import org.thoughtcrime.securesms.groups.GroupId;

Wyświetl plik

@ -12,7 +12,7 @@ import androidx.annotation.Nullable;
import com.annimon.stream.function.BiFunction;
import net.sqlcipher.database.SQLiteDatabase;
import net.zetetic.database.sqlcipher.SQLiteDatabase;
import org.signal.core.util.logging.Log;
import org.thoughtcrime.securesms.R;

Wyświetl plik

@ -18,8 +18,8 @@ import com.annimon.stream.Stream;
import com.bumptech.glide.Glide;
import com.google.protobuf.InvalidProtocolBufferException;
import net.sqlcipher.database.SQLiteDatabase;
import net.sqlcipher.database.SQLiteOpenHelper;
import net.zetetic.database.sqlcipher.SQLiteDatabase;
import net.zetetic.database.sqlcipher.SQLiteOpenHelper;
import org.signal.core.util.logging.Log;
import org.thoughtcrime.securesms.color.MaterialColor;
@ -31,7 +31,6 @@ import org.thoughtcrime.securesms.crypto.DatabaseSecret;
import org.thoughtcrime.securesms.crypto.MasterSecret;
import org.thoughtcrime.securesms.database.AttachmentDatabase;
import org.thoughtcrime.securesms.database.ChatColorsDatabase;
import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.database.DraftDatabase;
import org.thoughtcrime.securesms.database.EmojiSearchDatabase;
import org.thoughtcrime.securesms.database.GroupCallRingDatabase;
@ -221,14 +220,12 @@ public class SQLCipherOpenHelper extends SQLiteOpenHelper implements SignalDatab
private static final int DATABASE_VERSION = 117;
private static final String DATABASE_NAME = "signal.db";
private final Context context;
private final DatabaseSecret databaseSecret;
private final Context context;
public SQLCipherOpenHelper(@NonNull Context context, @NonNull DatabaseSecret databaseSecret) {
super(context, DATABASE_NAME, null, DATABASE_VERSION, new SqlCipherDatabaseHook(), new SqlCipherErrorHandler(DATABASE_NAME));
super(context, DATABASE_NAME, databaseSecret.asString(), null, DATABASE_VERSION, 0, new SqlCipherErrorHandler(DATABASE_NAME), new SqlCipherDatabaseHook());
this.context = context.getApplicationContext();
this.databaseSecret = databaseSecret;
this.context = context.getApplicationContext();
}
@Override
@ -2058,33 +2055,35 @@ public class SQLCipherOpenHelper extends SQLiteOpenHelper implements SignalDatab
Log.i(TAG, "Upgrade complete. Took " + (System.currentTimeMillis() - startTime) + " ms.");
}
public net.sqlcipher.database.SQLiteDatabase getReadableDatabase() {
@Override
public net.zetetic.database.sqlcipher.SQLiteDatabase getReadableDatabase() {
throw new UnsupportedOperationException("Call getSignalReadableDatabase() instead!");
}
public net.sqlcipher.database.SQLiteDatabase getWritableDatabase() {
throw new UnsupportedOperationException("Call getSignalReadableDatabase() instead!");
}
public net.sqlcipher.database.SQLiteDatabase getRawReadableDatabase() {
return super.getReadableDatabase(databaseSecret.asString());
}
public net.sqlcipher.database.SQLiteDatabase getRawWritableDatabase() {
return super.getWritableDatabase(databaseSecret.asString());
}
public org.thoughtcrime.securesms.database.SQLiteDatabase getSignalReadableDatabase() {
return new org.thoughtcrime.securesms.database.SQLiteDatabase(super.getReadableDatabase(databaseSecret.asString()));
}
public org.thoughtcrime.securesms.database.SQLiteDatabase getSignalWritableDatabase() {
return new org.thoughtcrime.securesms.database.SQLiteDatabase(super.getWritableDatabase(databaseSecret.asString()));
}
@Override
public @NonNull net.sqlcipher.database.SQLiteDatabase getSqlCipherDatabase() {
return super.getWritableDatabase(databaseSecret.asString());
public net.zetetic.database.sqlcipher.SQLiteDatabase getWritableDatabase() {
throw new UnsupportedOperationException("Call getSignalReadableDatabase() instead!");
}
public net.zetetic.database.sqlcipher.SQLiteDatabase getRawReadableDatabase() {
return super.getReadableDatabase();
}
public net.zetetic.database.sqlcipher.SQLiteDatabase getRawWritableDatabase() {
return super.getWritableDatabase();
}
public org.thoughtcrime.securesms.database.SQLiteDatabase getSignalReadableDatabase() {
return new org.thoughtcrime.securesms.database.SQLiteDatabase(super.getReadableDatabase());
}
public org.thoughtcrime.securesms.database.SQLiteDatabase getSignalWritableDatabase() {
return new org.thoughtcrime.securesms.database.SQLiteDatabase(super.getWritableDatabase());
}
@Override
public @NonNull net.zetetic.database.sqlcipher.SQLiteDatabase getSqlCipherDatabase() {
return super.getWritableDatabase();
}
public void markCurrent(SQLiteDatabase db) {

Wyświetl plik

@ -4,7 +4,7 @@ package org.thoughtcrime.securesms.database.helpers;
import android.content.ContentValues;
import android.content.Context;
import net.sqlcipher.database.SQLiteDatabase;
import net.zetetic.database.sqlcipher.SQLiteDatabase;
import org.signal.core.util.Conversions;
import org.signal.core.util.logging.Log;

Wyświetl plik

@ -4,7 +4,7 @@ import android.content.Context;
import androidx.annotation.NonNull;
import net.sqlcipher.database.SQLiteDatabase;
import net.zetetic.database.sqlcipher.SQLiteDatabase;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;

Wyświetl plik

@ -6,7 +6,7 @@ import androidx.annotation.NonNull;
import com.annimon.stream.Stream;
import net.sqlcipher.database.SQLiteDatabase;
import net.zetetic.database.sqlcipher.SQLiteDatabase;
import org.signal.core.util.logging.Log;
import org.thoughtcrime.securesms.database.DatabaseFactory;

Wyświetl plik

@ -7,7 +7,7 @@ import android.database.Cursor;
import androidx.annotation.AnyThread;
import androidx.annotation.NonNull;
import net.sqlcipher.database.SQLiteDatabase;
import net.zetetic.database.sqlcipher.SQLiteDatabase;
import org.signal.core.util.concurrent.SignalExecutors;
import org.signal.core.util.logging.Log;

Wyświetl plik

@ -36,7 +36,7 @@ import androidx.navigation.Navigation;
import com.dd.CircularProgressButton;
import net.sqlcipher.database.SQLiteDatabase;
import net.zetetic.database.sqlcipher.SQLiteDatabase;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;

Wyświetl plik

@ -8,7 +8,7 @@ import androidx.annotation.VisibleForTesting;
import com.annimon.stream.Stream;
import net.sqlcipher.database.SQLiteDatabase;
import net.zetetic.database.sqlcipher.SQLiteDatabase;
import org.thoughtcrime.securesms.recipients.RecipientId;
import org.whispersystems.libsignal.util.guava.Preconditions;

Wyświetl plik

@ -5,7 +5,7 @@ import android.content.Context;
import androidx.annotation.NonNull;
import net.sqlcipher.database.SQLiteDatabase;
import net.zetetic.database.sqlcipher.SQLiteDatabase;
import org.signal.core.util.StreamUtil;
import org.thoughtcrime.securesms.crypto.IdentityKeyUtil;

Wyświetl plik

@ -495,9 +495,6 @@ dependencyVerification {
['mobi.upod:time-duration-picker:1.1.3',
'db469ce0f48dd96b892eac424ed76870e54bf00fe0a28cdcddfbe5f2a226a0e1'],
['net.zetetic:android-database-sqlcipher:4.4.3',
'64cf472e3f6c3300fd7307aebb74dfff4eeb3805f138045c83362c7687e4af61'],
['org.apache.httpcomponents:httpclient-android:4.3.5',
'6f56466a9bd0d42934b90bfbfe9977a8b654c058bf44a12bdc2877c4e1f033f1'],
@ -555,6 +552,9 @@ dependencyVerification {
['org.signal:aesgcmprovider:0.0.3',
'6eb4422e8a618b3b76cb2096a3619d251f9e27989dc68307a1e5414c3710f2d1'],
['org.signal:android-database-sqlcipher:4.4.3-S2',
'f76f42927c967dc7549cb857e953e97993957129e71caf367cb462c59f3b29fd'],
['org.signal:argon2:13.1',
'0f686ccff0d4842bfcc74d92e8dc780a5f159b9376e37a1189fabbcdac458bef'],