aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedPublicKey.java
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2014-09-13 17:30:07 +0200
committerDominik Schürmann <dominik@dominikschuermann.de>2014-09-13 17:30:07 +0200
commitaca9ecdb8542a1f34e2311fff157a8279405b9e0 (patch)
tree0bd79a627d4c7cc611c3b50194feff27efda84fd /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedPublicKey.java
parent40c81c9429bf65d1e40cdfe745d4ca08d1d620e0 (diff)
downloadopen-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.java36
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;
+ }
}
}