add trust id database table
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user