mirror of
https://github.com/moparisthebest/open-keychain
synced 2025-01-30 22:50:19 -05:00
certify: support PUBLIC_KEY_RING_BY_MASTER_KEY_ID_USER_ID uri (haha)
This commit is contained in:
parent
efc8252598
commit
49984846d5
@ -55,6 +55,7 @@ public class KeychainProvider extends ContentProvider {
|
|||||||
|
|
||||||
private static final int PUBLIC_KEY_RING_USER_ID = 121;
|
private static final int PUBLIC_KEY_RING_USER_ID = 121;
|
||||||
private static final int PUBLIC_KEY_RING_USER_ID_BY_ROW_ID = 122;
|
private static final int PUBLIC_KEY_RING_USER_ID_BY_ROW_ID = 122;
|
||||||
|
private static final int PUBLIC_KEY_RING_BY_MASTER_KEY_ID_USER_ID = 123;
|
||||||
|
|
||||||
private static final int SECRET_KEY_RING = 201;
|
private static final int SECRET_KEY_RING = 201;
|
||||||
private static final int SECRET_KEY_RING_BY_ROW_ID = 202;
|
private static final int SECRET_KEY_RING_BY_ROW_ID = 202;
|
||||||
@ -150,6 +151,7 @@ public class KeychainProvider extends ContentProvider {
|
|||||||
* <pre>
|
* <pre>
|
||||||
* key_rings/public/#/user_ids
|
* key_rings/public/#/user_ids
|
||||||
* key_rings/public/#/user_ids/#
|
* key_rings/public/#/user_ids/#
|
||||||
|
* key_rings/public/master_key_id/#/user_ids
|
||||||
* </pre>
|
* </pre>
|
||||||
*/
|
*/
|
||||||
matcher.addURI(authority, KeychainContract.BASE_KEY_RINGS + "/"
|
matcher.addURI(authority, KeychainContract.BASE_KEY_RINGS + "/"
|
||||||
@ -158,6 +160,10 @@ public class KeychainProvider extends ContentProvider {
|
|||||||
matcher.addURI(authority, KeychainContract.BASE_KEY_RINGS + "/"
|
matcher.addURI(authority, KeychainContract.BASE_KEY_RINGS + "/"
|
||||||
+ KeychainContract.PATH_PUBLIC + "/#/" + KeychainContract.PATH_USER_IDS + "/#",
|
+ KeychainContract.PATH_PUBLIC + "/#/" + KeychainContract.PATH_USER_IDS + "/#",
|
||||||
PUBLIC_KEY_RING_USER_ID_BY_ROW_ID);
|
PUBLIC_KEY_RING_USER_ID_BY_ROW_ID);
|
||||||
|
matcher.addURI(authority, KeychainContract.BASE_KEY_RINGS + "/"
|
||||||
|
+ KeychainContract.PATH_PUBLIC + "/"
|
||||||
|
+ KeychainContract.PATH_BY_MASTER_KEY_ID + "/*/" + KeychainContract.PATH_USER_IDS,
|
||||||
|
PUBLIC_KEY_RING_BY_MASTER_KEY_ID_USER_ID);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* secret key rings
|
* secret key rings
|
||||||
@ -285,6 +291,7 @@ public class KeychainProvider extends ContentProvider {
|
|||||||
return Keys.CONTENT_ITEM_TYPE;
|
return Keys.CONTENT_ITEM_TYPE;
|
||||||
|
|
||||||
case PUBLIC_KEY_RING_USER_ID:
|
case PUBLIC_KEY_RING_USER_ID:
|
||||||
|
case PUBLIC_KEY_RING_BY_MASTER_KEY_ID_USER_ID:
|
||||||
case SECRET_KEY_RING_USER_ID:
|
case SECRET_KEY_RING_USER_ID:
|
||||||
return UserIds.CONTENT_TYPE;
|
return UserIds.CONTENT_TYPE;
|
||||||
|
|
||||||
@ -322,6 +329,7 @@ public class KeychainProvider extends ContentProvider {
|
|||||||
case PUBLIC_KEY_RING_KEY:
|
case PUBLIC_KEY_RING_KEY:
|
||||||
case PUBLIC_KEY_RING_KEY_BY_ROW_ID:
|
case PUBLIC_KEY_RING_KEY_BY_ROW_ID:
|
||||||
case PUBLIC_KEY_RING_USER_ID:
|
case PUBLIC_KEY_RING_USER_ID:
|
||||||
|
case PUBLIC_KEY_RING_BY_MASTER_KEY_ID_USER_ID:
|
||||||
case PUBLIC_KEY_RING_USER_ID_BY_ROW_ID:
|
case PUBLIC_KEY_RING_USER_ID_BY_ROW_ID:
|
||||||
type = KeyTypes.PUBLIC;
|
type = KeyTypes.PUBLIC;
|
||||||
break;
|
break;
|
||||||
@ -364,6 +372,11 @@ public class KeychainProvider extends ContentProvider {
|
|||||||
// TODO: deprecated master key id
|
// TODO: deprecated master key id
|
||||||
//projectionMap.put(KeyRingsColumns.MASTER_KEY_ID, Tables.KEYS + "." + KeysColumns.KEY_ID);
|
//projectionMap.put(KeyRingsColumns.MASTER_KEY_ID, Tables.KEYS + "." + KeysColumns.KEY_ID);
|
||||||
|
|
||||||
|
projectionMap.put(KeysColumns.ALGORITHM, Tables.KEYS + "." + KeysColumns.ALGORITHM);
|
||||||
|
projectionMap.put(KeysColumns.KEY_SIZE, Tables.KEYS + "." + KeysColumns.KEY_SIZE);
|
||||||
|
projectionMap.put(KeysColumns.CREATION, Tables.KEYS + "." + KeysColumns.CREATION);
|
||||||
|
projectionMap.put(KeysColumns.EXPIRY, Tables.KEYS + "." + KeysColumns.EXPIRY);
|
||||||
|
projectionMap.put(KeysColumns.KEY_RING_ROW_ID, Tables.KEYS + "." + KeysColumns.KEY_RING_ROW_ID);
|
||||||
projectionMap.put(KeysColumns.FINGERPRINT, Tables.KEYS + "." + KeysColumns.FINGERPRINT);
|
projectionMap.put(KeysColumns.FINGERPRINT, Tables.KEYS + "." + KeysColumns.FINGERPRINT);
|
||||||
projectionMap.put(KeysColumns.IS_REVOKED, Tables.KEYS + "." + KeysColumns.IS_REVOKED);
|
projectionMap.put(KeysColumns.IS_REVOKED, Tables.KEYS + "." + KeysColumns.IS_REVOKED);
|
||||||
|
|
||||||
@ -403,6 +416,18 @@ public class KeychainProvider extends ContentProvider {
|
|||||||
return projectionMap;
|
return projectionMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private HashMap<String, String> getProjectionMapForUserIds() {
|
||||||
|
HashMap<String, String> projectionMap = new HashMap<String, String>();
|
||||||
|
|
||||||
|
projectionMap.put(BaseColumns._ID, Tables.USER_IDS + "." + BaseColumns._ID);
|
||||||
|
projectionMap.put(UserIdsColumns.USER_ID, Tables.USER_IDS + "." + UserIdsColumns.USER_ID);
|
||||||
|
projectionMap.put(UserIdsColumns.RANK, Tables.USER_IDS + "." + UserIdsColumns.RANK);
|
||||||
|
projectionMap.put(KeyRingsColumns.MASTER_KEY_ID, Tables.KEY_RINGS + "."
|
||||||
|
+ KeyRingsColumns.MASTER_KEY_ID);
|
||||||
|
|
||||||
|
return projectionMap;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Builds default query for keyRings: KeyRings table is joined with UserIds and Keys
|
* Builds default query for keyRings: KeyRings table is joined with UserIds and Keys
|
||||||
*/
|
*/
|
||||||
@ -606,6 +631,17 @@ public class KeychainProvider extends ContentProvider {
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PUBLIC_KEY_RING_BY_MASTER_KEY_ID_USER_ID:
|
||||||
|
qb.setTables(Tables.USER_IDS + " INNER JOIN " + Tables.KEY_RINGS + " ON " + "("
|
||||||
|
+ Tables.KEY_RINGS + "." + BaseColumns._ID + " = " + Tables.USER_IDS + "."
|
||||||
|
+ KeysColumns.KEY_RING_ROW_ID + " )");
|
||||||
|
qb.appendWhere(Tables.KEY_RINGS + "." + KeyRingsColumns.MASTER_KEY_ID + " = ");
|
||||||
|
qb.appendWhereEscapeString(uri.getPathSegments().get(3));
|
||||||
|
|
||||||
|
qb.setProjectionMap(getProjectionMapForUserIds());
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
case PUBLIC_KEY_RING_USER_ID:
|
case PUBLIC_KEY_RING_USER_ID:
|
||||||
case SECRET_KEY_RING_USER_ID:
|
case SECRET_KEY_RING_USER_ID:
|
||||||
qb.setTables(Tables.USER_IDS);
|
qb.setTables(Tables.USER_IDS);
|
||||||
|
Loading…
Reference in New Issue
Block a user