Add getter, predicate for authentication public key id
This commit is contained in:
@@ -217,10 +217,25 @@ public class CachedPublicKeyRing extends KeyRing {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean hasAuthentication() throws PgpKeyNotFoundException {
|
||||
public boolean hasSecretAuthentication() throws PgpKeyNotFoundException {
|
||||
return getSecretAuthenticationId() != 0;
|
||||
}
|
||||
|
||||
public long getAuthenticationId() throws PgpKeyNotFoundException {
|
||||
try {
|
||||
Object data = mKeyRepository.getGenericData(mUri,
|
||||
KeyRings.HAS_AUTHENTICATE,
|
||||
KeyRepository.FIELD_TYPE_INTEGER);
|
||||
return (Long) data;
|
||||
} catch(KeyWritableRepository.NotFoundException e) {
|
||||
throw new PgpKeyNotFoundException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean hasAuthentication() throws PgpKeyNotFoundException {
|
||||
return getAuthenticationId() != 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getVerified() throws PgpKeyNotFoundException {
|
||||
try {
|
||||
|
||||
@@ -154,6 +154,7 @@ public class KeychainContract {
|
||||
public static final String HAS_ENCRYPT = "has_encrypt";
|
||||
public static final String HAS_SIGN_SECRET = "has_sign_secret";
|
||||
public static final String HAS_CERTIFY_SECRET = "has_certify_secret";
|
||||
public static final String HAS_AUTHENTICATE = "has_authenticate";
|
||||
public static final String HAS_AUTHENTICATE_SECRET = "has_authenticate_secret";
|
||||
public static final String HAS_DUPLICATE_USER_ID = "has_duplicate_user_id";
|
||||
public static final String API_KNOWN_TO_PACKAGE_NAMES = "known_to_apps";
|
||||
|
||||
@@ -353,6 +353,8 @@ public class KeychainProvider extends ContentProvider {
|
||||
"kE." + Keys.KEY_ID + " AS " + KeyRings.HAS_ENCRYPT);
|
||||
projectionMap.put(KeyRings.HAS_SIGN_SECRET,
|
||||
"kS." + Keys.KEY_ID + " AS " + KeyRings.HAS_SIGN_SECRET);
|
||||
projectionMap.put(KeyRings.HAS_AUTHENTICATE,
|
||||
"kA." + Keys.KEY_ID + " AS " + KeyRings.HAS_AUTHENTICATE);
|
||||
projectionMap.put(KeyRings.HAS_AUTHENTICATE_SECRET,
|
||||
"kA." + Keys.KEY_ID + " AS " + KeyRings.HAS_AUTHENTICATE_SECRET);
|
||||
projectionMap.put(KeyRings.HAS_CERTIFY_SECRET,
|
||||
@@ -409,6 +411,16 @@ public class KeychainProvider extends ContentProvider {
|
||||
+ " AND ( kS." + Keys.EXPIRY + " IS NULL OR kS." + Keys.EXPIRY
|
||||
+ " >= " + new Date().getTime() / 1000 + " )"
|
||||
+ ")" : "")
|
||||
+ (plist.contains(KeyRings.HAS_AUTHENTICATE) ?
|
||||
" LEFT JOIN " + Tables.KEYS + " AS kA ON ("
|
||||
+"kA." + Keys.MASTER_KEY_ID
|
||||
+ " = " + Tables.KEYS + "." + Keys.MASTER_KEY_ID
|
||||
+ " AND kA." + Keys.IS_REVOKED + " = 0"
|
||||
+ " AND kA." + Keys.IS_SECURE + " = 1"
|
||||
+ " AND kA." + Keys.CAN_AUTHENTICATE + " = 1"
|
||||
+ " AND ( kA." + Keys.EXPIRY + " IS NULL OR kA." + Keys.EXPIRY
|
||||
+ " >= " + new Date().getTime() / 1000 + " )"
|
||||
+ ")" : "")
|
||||
+ (plist.contains(KeyRings.HAS_AUTHENTICATE_SECRET) ?
|
||||
" LEFT JOIN " + Tables.KEYS + " AS kA ON ("
|
||||
+"kA." + Keys.MASTER_KEY_ID
|
||||
|
||||
Reference in New Issue
Block a user