diff options
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/ProviderHelper.java | 41 |
1 files changed, 33 insertions, 8 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/ProviderHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/ProviderHelper.java index f71fcbd80..fdf8c1f38 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/ProviderHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/ProviderHelper.java @@ -28,6 +28,7 @@ import android.net.Uri; import android.os.RemoteException; import android.support.v4.util.LongSparseArray; +import org.spongycastle.util.Strings; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.helper.Preferences; @@ -154,7 +155,7 @@ public class ProviderHelper { } public HashMap<String, Object> getGenericData(Uri uri, String[] proj, int[] types) - throws NotFoundException { + throws NotFoundException { return getGenericData(uri, proj, types, null); } @@ -208,7 +209,7 @@ public class ProviderHelper { KeyRings.HAS_ANY_SECRET, KeyRings.VERIFIED, // and of course, ring data KeyRings.PUBKEY_DATA - }, KeyRings.HAS_ANY_SECRET + " = 1", null, null); + }, KeyRings.HAS_ANY_SECRET + " = 1", null, null); try { LongSparseArray<CanonicalizedPublicKey> result = new LongSparseArray<CanonicalizedPublicKey>(); @@ -406,11 +407,11 @@ public class ProviderHelper { values.put(Keys.EXPIRY, expiryDate.getTime() / 1000); if (key.isExpired()) { log(LogLevel.DEBUG, keyId == masterKeyId ? - LogType.MSG_IP_MASTER_EXPIRED : LogType.MSG_IP_SUBKEY_EXPIRED, + LogType.MSG_IP_MASTER_EXPIRED : LogType.MSG_IP_SUBKEY_EXPIRED, expiryDate.toString()); } else { log(LogLevel.DEBUG, keyId == masterKeyId ? - LogType.MSG_IP_MASTER_EXPIRES : LogType.MSG_IP_SUBKEY_EXPIRES, + LogType.MSG_IP_MASTER_EXPIRES : LogType.MSG_IP_SUBKEY_EXPIRES, expiryDate.toString()); } } @@ -434,8 +435,11 @@ public class ProviderHelper { } mIndent += 1; List<UserIdItem> uids = new ArrayList<UserIdItem>(); - for (String userId : new IterableIterator<String>( - masterKey.getUnorderedUserIds().iterator())) { + for (byte[] rawUserId : new IterableIterator<byte[]>( + masterKey.getUnorderedRawUserIds().iterator())) { + String userId = Strings.fromUTF8ByteArray(rawUserId); + Log.d(Constants.TAG, "userId: "+userId); + UserIdItem item = new UserIdItem(); uids.add(item); item.userId = userId; @@ -446,7 +450,7 @@ public class ProviderHelper { mIndent += 1; // look through signatures for this specific key for (WrappedSignature cert : new IterableIterator<WrappedSignature>( - masterKey.getSignaturesForId(userId))) { + masterKey.getSignaturesForRawId(rawUserId))) { long certId = cert.getKeyId(); try { // self signature @@ -469,7 +473,7 @@ public class ProviderHelper { if (trustedKeys.indexOfKey(certId) >= 0) { CanonicalizedPublicKey trustedKey = trustedKeys.get(certId); cert.init(trustedKey); - if (cert.verifySignature(masterKey, userId)) { + if (cert.verifySignature(masterKey, rawUserId)) { item.trustedCerts.add(cert); log(LogLevel.INFO, LogType.MSG_IP_UID_CERT_GOOD, PgpKeyHelper.convertKeyIdToHexShort(trustedKey.getKeyId()) @@ -1308,6 +1312,27 @@ public class ProviderHelper { return keyIds; } + public Set<String> getAllFingerprints(Uri uri) { + Set<String> fingerprints = new HashSet<String>(); + String[] projection = new String[]{KeyRings.FINGERPRINT}; + Cursor cursor = mContentResolver.query(uri, projection, null, null, null); + try { + if(cursor != null) { + int fingerprintColumn = cursor.getColumnIndex(KeyRings.FINGERPRINT); + while(cursor.moveToNext()) { + fingerprints.add( + PgpKeyHelper.convertFingerprintToHex(cursor.getBlob(fingerprintColumn)) + ); + } + } + } finally { + if (cursor != null) { + cursor.close(); + } + } + return fingerprints; + } + public byte[] getApiAppSignature(String packageName) { Uri queryUri = ApiApps.buildByPackageNameUri(packageName); |