diff options
author | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-09-13 17:30:07 +0200 |
---|---|---|
committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-09-13 17:30:07 +0200 |
commit | aca9ecdb8542a1f34e2311fff157a8279405b9e0 (patch) | |
tree | 0bd79a627d4c7cc611c3b50194feff27efda84fd /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedPublicKey.java | |
parent | 40c81c9429bf65d1e40cdfe745d4ca08d1d620e0 (diff) | |
download | open-keychain-aca9ecdb8542a1f34e2311fff157a8279405b9e0.tar.gz open-keychain-aca9ecdb8542a1f34e2311fff157a8279405b9e0.tar.bz2 open-keychain-aca9ecdb8542a1f34e2311fff157a8279405b9e0.zip |
getSignaturesForID can return null, check this
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedPublicKey.java')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedPublicKey.java | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedPublicKey.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedPublicKey.java index 2224d7391..404dbc0fb 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedPublicKey.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedPublicKey.java @@ -128,10 +128,18 @@ public class UncachedPublicKey { public String getPrimaryUserId() { String found = null; PGPSignature foundSig = null; + // noinspection unchecked for (String userId : new IterableIterator<String>(mPublicKey.getUserIDs())) { PGPSignature revocation = null; - for (PGPSignature sig : new IterableIterator<PGPSignature>(mPublicKey.getSignaturesForID(userId))) { + @SuppressWarnings("unchecked") + Iterator<PGPSignature> signaturesIt = mPublicKey.getSignaturesForID(userId); + // no signatures for this User ID + if (signaturesIt == null) { + continue; + } + + for (PGPSignature sig : new IterableIterator<PGPSignature>(signaturesIt)) { try { // if this is a revocation, this is not the user id @@ -314,17 +322,21 @@ public class UncachedPublicKey { public Iterator<WrappedSignature> getSignaturesForId(String userId) { final Iterator<PGPSignature> it = mPublicKey.getSignaturesForID(userId); - return new Iterator<WrappedSignature>() { - public void remove() { - it.remove(); - } - public WrappedSignature next() { - return new WrappedSignature(it.next()); - } - public boolean hasNext() { - return it.hasNext(); - } - }; + if (it != null) { + return new Iterator<WrappedSignature>() { + public void remove() { + it.remove(); + } + public WrappedSignature next() { + return new WrappedSignature(it.next()); + } + public boolean hasNext() { + return it.hasNext(); + } + }; + } else { + return null; + } } } |