add trust id database table

This commit is contained in:
Vincent Breitmoser
2016-11-28 08:11:34 +01:00
parent d4731f68bd
commit 55bffbbcbe
2 changed files with 42 additions and 2 deletions

View File

@@ -95,6 +95,13 @@ public class KeychainContract {
String IDENTIFIER = "identifier";
}
interface ApiTrustIdentityColumns {
String PACKAGE_NAME = "package_name";
String IDENTIFIER = "identifier";
String LAST_UPDATED = "last_updated";
String MASTER_KEY_ID = "master_key_id";
}
public static final String CONTENT_AUTHORITY = Constants.PROVIDER_AUTHORITY;
private static final Uri BASE_CONTENT_URI_INTERNAL = Uri

View File

@@ -33,6 +33,7 @@ import android.provider.BaseColumns;
import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.provider.KeychainContract.ApiAppsAllowedKeysColumns;
import org.sufficientlysecure.keychain.provider.KeychainContract.ApiAppsColumns;
import org.sufficientlysecure.keychain.provider.KeychainContract.ApiTrustIdentityColumns;
import org.sufficientlysecure.keychain.provider.KeychainContract.CertsColumns;
import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRingsColumns;
import org.sufficientlysecure.keychain.provider.KeychainContract.KeysColumns;
@@ -52,7 +53,7 @@ import org.sufficientlysecure.keychain.util.Log;
*/
public class KeychainDatabase extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "openkeychain.db";
private static final int DATABASE_VERSION = 22;
private static final int DATABASE_VERSION = 23;
private Context mContext;
public interface Tables {
@@ -65,6 +66,7 @@ public class KeychainDatabase extends SQLiteOpenHelper {
String API_APPS = "api_apps";
String API_ALLOWED_KEYS = "api_allowed_keys";
String OVERRIDDEN_WARNINGS = "overridden_warnings";
String API_TRUST_IDENTITIES = "api_trust_identities";
}
private static final String CREATE_KEYRINGS_PUBLIC =
@@ -156,6 +158,20 @@ public class KeychainDatabase extends SQLiteOpenHelper {
+ Tables.KEY_RINGS_PUBLIC + "(" + KeyRingsColumns.MASTER_KEY_ID + ") ON DELETE CASCADE"
+ ")";
private static final String CREATE_API_TRUST_IDENTITIES =
"CREATE TABLE IF NOT EXISTS " + Tables.API_TRUST_IDENTITIES + " ("
+ ApiTrustIdentityColumns.PACKAGE_NAME + " TEXT NOT NULL, "
+ ApiTrustIdentityColumns.IDENTIFIER + " TEXT NOT NULL, "
+ ApiTrustIdentityColumns.LAST_UPDATED + " INTEGER NOT NULL, "
+ ApiTrustIdentityColumns.MASTER_KEY_ID + " INTEGER NOT NULL, "
+ "PRIMARY KEY(" + ApiTrustIdentityColumns.PACKAGE_NAME + ", "
+ ApiTrustIdentityColumns.IDENTIFIER + "), "
+ "FOREIGN KEY(" + ApiTrustIdentityColumns.MASTER_KEY_ID + ") REFERENCES "
+ Tables.KEY_RINGS_PUBLIC + "(" + KeyRingsColumns.MASTER_KEY_ID + ") ON DELETE CASCADE, "
+ "FOREIGN KEY(" + ApiTrustIdentityColumns.PACKAGE_NAME + ") REFERENCES "
+ Tables.API_APPS + "(" + ApiAppsColumns.PACKAGE_NAME + ") ON DELETE CASCADE"
+ ")";
private static final String CREATE_API_APPS =
"CREATE TABLE IF NOT EXISTS " + Tables.API_APPS + " ("
+ BaseColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
@@ -199,6 +215,7 @@ public class KeychainDatabase extends SQLiteOpenHelper {
db.execSQL(CREATE_API_APPS);
db.execSQL(CREATE_API_APPS_ALLOWED_KEYS);
db.execSQL(CREATE_OVERRIDDEN_WARNINGS);
db.execSQL(CREATE_API_TRUST_IDENTITIES);
db.execSQL("CREATE INDEX keys_by_rank ON keys (" + KeysColumns.RANK + ");");
db.execSQL("CREATE INDEX uids_by_rank ON user_packets (" + UserPacketsColumns.RANK + ", "
@@ -318,7 +335,23 @@ public class KeychainDatabase extends SQLiteOpenHelper {
case 21:
db.execSQL("ALTER TABLE updated_keys ADD COLUMN seen_on_keyservers INTEGER;");
if (oldVersion == 18 || oldVersion == 19 || oldVersion == 20 || oldVersion == 21) {
case 22:
db.execSQL(
"CREATE TABLE IF NOT EXISTS " + Tables.API_TRUST_IDENTITIES + " ("
+ ApiTrustIdentityColumns.PACKAGE_NAME + " TEXT NOT NULL, "
+ ApiTrustIdentityColumns.IDENTIFIER + " TEXT NOT NULL, "
+ ApiTrustIdentityColumns.LAST_UPDATED + " INTEGER NOT NULL, "
+ ApiTrustIdentityColumns.MASTER_KEY_ID + " INTEGER NOT NULL, "
+ "PRIMARY KEY(" + ApiTrustIdentityColumns.PACKAGE_NAME + ", "
+ ApiTrustIdentityColumns.IDENTIFIER + "), "
+ "FOREIGN KEY(" + ApiTrustIdentityColumns.MASTER_KEY_ID + ") REFERENCES "
+ Tables.KEY_RINGS_PUBLIC + "(" + KeyRingsColumns.MASTER_KEY_ID + ") ON DELETE CASCADE, "
+ "FOREIGN KEY(" + ApiTrustIdentityColumns.PACKAGE_NAME + ") REFERENCES "
+ Tables.API_APPS + "(" + ApiAppsColumns.PACKAGE_NAME + ") ON DELETE CASCADE"
+ ")"
);
if (oldVersion == 18 || oldVersion == 19 || oldVersion == 20 || oldVersion == 21 || oldVersion == 22) {
// no consolidate for now, often crashes!
return;
}