diff options
Diffstat (limited to 'OpenKeychain/src')
4 files changed, 19 insertions, 3 deletions
| diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncrypt.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncrypt.java index 8aeae3e9b..f89027a19 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncrypt.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncrypt.java @@ -80,6 +80,7 @@ public class PgpSignEncrypt extends BaseOperation {      private long mAdditionalEncryptId;      private boolean mCleartextInput;      private String mOriginalFilename; +    private boolean mFailOnMissingEncryptionKeyIds;      private byte[] mNfcSignedHash = null;      private Date mNfcCreationTimestamp = null; @@ -116,6 +117,7 @@ public class PgpSignEncrypt extends BaseOperation {          this.mNfcSignedHash = builder.mNfcSignedHash;          this.mNfcCreationTimestamp = builder.mNfcCreationTimestamp;          this.mOriginalFilename = builder.mOriginalFilename; +        this.mFailOnMissingEncryptionKeyIds = builder.mFailOnMissingEncryptionKeyIds;      }      public static class Builder { @@ -142,6 +144,7 @@ public class PgpSignEncrypt extends BaseOperation {          private String mOriginalFilename = "";          private byte[] mNfcSignedHash = null;          private Date mNfcCreationTimestamp = null; +        private boolean mFailOnMissingEncryptionKeyIds = false;          public Builder(Context context, ProviderHelper providerHelper, Progressable progressable,                         InputData data, OutputStream outStream) { @@ -203,6 +206,11 @@ public class PgpSignEncrypt extends BaseOperation {              return this;          } +        public Builder setFailOnMissingEncryptionKeyIds(boolean failOnMissingEncryptionKeyIds) { +            mFailOnMissingEncryptionKeyIds = failOnMissingEncryptionKeyIds; +            return this; +        } +          /**           * Also encrypt with the signing keyring           * @@ -380,9 +388,15 @@ public class PgpSignEncrypt extends BaseOperation {                      } catch (PgpKeyNotFoundException e) {                          log.add(LogType.MSG_SE_KEY_WARN, indent + 1,                                  KeyFormattingUtils.convertKeyIdToHex(id)); +                        if (mFailOnMissingEncryptionKeyIds) { +                            return new SignEncryptResult(SignEncryptResult.RESULT_ERROR, log); +                        }                      } catch (ProviderHelper.NotFoundException e) {                          log.add(LogType.MSG_SE_KEY_UNKNOWN, indent + 1,                                  KeyFormattingUtils.convertKeyIdToHex(id)); +                        if (mFailOnMissingEncryptionKeyIds) { +                            return new SignEncryptResult(SignEncryptResult.RESULT_ERROR, log); +                        }                      }                  }              } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java index f77328d34..a5813567a 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java @@ -379,6 +379,7 @@ public class OpenPgpService extends RemoteService {                          .setCompressionId(accSettings.getCompression())                          .setSymmetricEncryptionAlgorithm(accSettings.getEncryptionAlgorithm())                          .setEncryptionMasterKeyIds(keyIds) +                        .setFailOnMissingEncryptionKeyIds(true)                          .setOriginalFilename(originalFilename)                          .setAdditionalEncryptId(accSettings.getKeyId()); // add acc key for encryption diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectPublicKeyFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectPublicKeyFragment.java index 621b6b7e1..af583bf89 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectPublicKeyFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SelectPublicKeyFragment.java @@ -384,7 +384,8 @@ public class SelectPublicKeyFragment extends ListFragmentWorkaround implements T                      KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, KeyFormattingUtils.STATE_VERIFIED);                      enabled = true;                  } else { -                    h.statusIcon.setVisibility(View.GONE); +                    h.statusIcon.setVisibility(View.VISIBLE); +                    KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, KeyFormattingUtils.STATE_UNVERIFIED);                      enabled = true;                  }              } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SelectKeyCursorAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SelectKeyCursorAdapter.java index 34d40c80e..60c130969 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SelectKeyCursorAdapter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SelectKeyCursorAdapter.java @@ -133,11 +133,11 @@ abstract public class SelectKeyCursorAdapter extends CursorAdapter {          boolean enabled;          if (cursor.getInt(mIndexIsRevoked) != 0) {              h.statusIcon.setVisibility(View.VISIBLE); -            KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, KeyFormattingUtils.STATE_REVOKED); +            KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, null, KeyFormattingUtils.STATE_REVOKED, true);              enabled = false;          } else if (cursor.getInt(mIndexIsExpiry) != 0) {              h.statusIcon.setVisibility(View.VISIBLE); -            KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, KeyFormattingUtils.STATE_EXPIRED); +            KeyFormattingUtils.setStatusImage(mContext, h.statusIcon, null, KeyFormattingUtils.STATE_EXPIRED, true);              enabled = false;          } else {              h.statusIcon.setVisibility(View.GONE); | 
