diff options
| -rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java | 16 | ||||
| -rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ProgressScaler.java | 12 | 
2 files changed, 18 insertions, 10 deletions
| diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java index 3e7e9d98e..bd8a9201e 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java @@ -188,14 +188,14 @@ public class PgpKeyOperation {                  return null;              } -            PGPKeyPair keyPair = createKey(add.mAlgorithm, add.mKeysize, log, indent); -              if (add.mAlgorithm == Constants.choice.algorithm.elgamal) {                  log.add(LogLevel.ERROR, LogType.MSG_CR_ERROR_MASTER_ELGAMAL, indent);                  return null;              } -            // return null if this failed (it will already have been logged by createKey) +            PGPKeyPair keyPair = createKey(add.mAlgorithm, add.mKeysize, log, indent); + +            // return null if this failed (an error will already have been logged by createKey)              if (keyPair == null) {                  return null;              } @@ -319,9 +319,10 @@ public class PgpKeyOperation {                  Iterator<PGPSignature> it = modifiedPublicKey.getSignaturesForID(userId);                  if (it != null) {                      for (PGPSignature cert : new IterableIterator<PGPSignature>(it)) { -                        // if it's not a self cert, never mind                          if (cert.getKeyID() != masterPublicKey.getKeyID()) { -                            continue; +                            // foreign certificate?! error error error +                            log.add(LogLevel.ERROR, LogType.MSG_MF_ERROR_INTEGRITY, indent); +                            return null;                          }                          if (cert.getSignatureType() == PGPSignature.CERTIFICATION_REVOCATION                                  || cert.getSignatureType() == PGPSignature.NO_CERTIFICATION @@ -369,9 +370,10 @@ public class PgpKeyOperation {                      // noinspection unchecked                      for (PGPSignature cert : new IterableIterator<PGPSignature>(                              modifiedPublicKey.getSignaturesForID(userId))) { -                        // if it's not a self cert, never mind                          if (cert.getKeyID() != masterPublicKey.getKeyID()) { -                            continue; +                            // foreign certificate?! error error error +                            log.add(LogLevel.ERROR, LogType.MSG_MF_ERROR_INTEGRITY, indent); +                            return null;                          }                          // we know from canonicalization that if there is any revocation here, it                          // is valid and not superseded by a newer certification. diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ProgressScaler.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ProgressScaler.java index 5553ea5d2..869eea03f 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ProgressScaler.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ProgressScaler.java @@ -39,15 +39,21 @@ public class ProgressScaler implements Progressable {       * Set progress of ProgressDialog by sending message to handler on UI thread       */      public void setProgress(String message, int progress, int max) { -        mWrapped.setProgress(message, mFrom + progress * (mTo - mFrom) / max, mMax); +        if (mWrapped != null) { +            mWrapped.setProgress(message, mFrom + progress * (mTo - mFrom) / max, mMax); +        }      }      public void setProgress(int resourceId, int progress, int max) { -        mWrapped.setProgress(resourceId, progress, mMax); +        if (mWrapped != null) { +            mWrapped.setProgress(resourceId, progress, mMax); +        }      }      public void setProgress(int progress, int max) { -        mWrapped.setProgress(progress, max); +        if (mWrapped != null) { +            mWrapped.setProgress(progress, max); +        }      }  } | 
