aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncrypt.java
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2014-10-26 00:18:45 +0200
committerDominik Schürmann <dominik@dominikschuermann.de>2014-10-26 00:19:14 +0200
commit94693efbe56a7786cc468e061e5647e2a423cf1a (patch)
tree3eac0b90f50db331503b4a688e11048e92df2e5a /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncrypt.java
parente4391c282dd9e9214ce818ef893158d2612f4a31 (diff)
downloadopen-keychain-94693efbe56a7786cc468e061e5647e2a423cf1a.tar.gz
open-keychain-94693efbe56a7786cc468e061e5647e2a423cf1a.tar.bz2
open-keychain-94693efbe56a7786cc468e061e5647e2a423cf1a.zip
Fail on unknown key ids on API, Key item design consistency for API
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncrypt.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncrypt.java14
1 files changed, 14 insertions, 0 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);
+ }
}
}
}