aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp
diff options
context:
space:
mode:
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java37
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java14
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncrypt.java8
3 files changed, 33 insertions, 26 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java
index 33bd07086..6f1290951 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerify.java
@@ -79,6 +79,7 @@ import java.util.Set;
*/
public class PgpDecryptVerify {
private Context mContext;
+ private ProviderHelper mProviderHelper;
private InputData mData;
private OutputStream mOutStream;
@@ -90,6 +91,7 @@ public class PgpDecryptVerify {
private PgpDecryptVerify(Builder builder) {
// private Constructor can only be called from Builder
this.mContext = builder.mContext;
+ this.mProviderHelper = new ProviderHelper(mContext);
this.mData = builder.mData;
this.mOutStream = builder.mOutStream;
@@ -243,11 +245,11 @@ public class PgpDecryptVerify {
PGPSecretKeyRing secretKeyRing = null;
try {
// get master key id for this encryption key id
- masterKeyId = ProviderHelper.getMasterKeyId(mContext,
+ masterKeyId = mProviderHelper.getMasterKeyId(
KeyRings.buildUnifiedKeyRingsFindBySubkeyUri(Long.toString(encData.getKeyID()))
);
// get actual keyring object based on master key id
- secretKeyRing = ProviderHelper.getPGPSecretKeyRing(mContext, masterKeyId);
+ secretKeyRing = mProviderHelper.getPGPSecretKeyRing(masterKeyId);
} catch (ProviderHelper.NotFoundException e) {
// continue with the next packet in the while loop
continue;
@@ -393,17 +395,17 @@ public class PgpDecryptVerify {
try {
Uri uri = KeyRings.buildUnifiedKeyRingsFindBySubkeyUri(
Long.toString(sigList.get(i).getKeyID()));
- masterKeyId = ProviderHelper.getMasterKeyId(mContext, uri);
+ masterKeyId = mProviderHelper.getMasterKeyId(uri);
signatureIndex = i;
} catch (ProviderHelper.NotFoundException e) {
Log.d(Constants.TAG, "key not found!");
}
}
- if(masterKeyId == null) {
+ if (masterKeyId == null) {
try {
- signatureKey = ProviderHelper
- .getPGPPublicKeyRing(mContext, masterKeyId).getPublicKey();
+ signatureKey = mProviderHelper
+ .getPGPPublicKeyRing(masterKeyId).getPublicKey();
} catch (ProviderHelper.NotFoundException e) {
// can't happen
}
@@ -417,7 +419,7 @@ public class PgpDecryptVerify {
signature.init(contentVerifierBuilderProvider, signatureKey);
} else {
- if(!sigList.isEmpty()) {
+ if (!sigList.isEmpty()) {
signatureResult.setKeyId(sigList.get(0).getKeyID());
}
@@ -489,7 +491,7 @@ public class PgpDecryptVerify {
signatureResult.setSignatureOnly(false);
//Now check binding signatures
- boolean validKeyBinding = verifyKeyBinding(mContext, messageSignature, signatureKey);
+ boolean validKeyBinding = verifyKeyBinding(messageSignature, signatureKey);
boolean validSignature = signature.verify(messageSignature);
// TODO: implement CERTIFIED!
@@ -587,7 +589,7 @@ public class PgpDecryptVerify {
signatureKeyId = signature.getKeyID();
// find data about this subkey
- HashMap<String, Object> data = ProviderHelper.getGenericData(mContext,
+ HashMap<String, Object> data = mProviderHelper.getGenericData(
KeyRings.buildUnifiedKeyRingsFindBySubkeyUri(Long.toString(signature.getKeyID())),
new String[]{KeyRings.MASTER_KEY_ID, KeyRings.USER_ID},
new int[]{ProviderHelper.FIELD_TYPE_INTEGER, ProviderHelper.FIELD_TYPE_STRING});
@@ -600,7 +602,7 @@ public class PgpDecryptVerify {
// this one can't fail now (yay database constraints)
try {
- signatureKey = ProviderHelper.getPGPPublicKeyRing(mContext, (Long) data.get(KeyRings.MASTER_KEY_ID)).getPublicKey();
+ signatureKey = mProviderHelper.getPGPPublicKeyRing((Long) data.get(KeyRings.MASTER_KEY_ID)).getPublicKey();
} catch (ProviderHelper.NotFoundException e) {
Log.e(Constants.TAG, "key not found!", e);
}
@@ -644,7 +646,7 @@ public class PgpDecryptVerify {
}
//Now check binding signatures
- boolean validKeyBinding = verifyKeyBinding(mContext, signature, signatureKey);
+ boolean validKeyBinding = verifyKeyBinding(signature, signatureKey);
boolean validSignature = signature.verify();
if (validKeyBinding && validSignature) {
@@ -664,14 +666,13 @@ public class PgpDecryptVerify {
return result;
}
- private static boolean verifyKeyBinding(Context context,
- PGPSignature signature, PGPPublicKey signatureKey) {
+ private boolean verifyKeyBinding(PGPSignature signature, PGPPublicKey signatureKey) {
long signatureKeyId = signature.getKeyID();
boolean validKeyBinding = false;
PGPPublicKey mKey = null;
try {
- PGPPublicKeyRing signKeyRing = ProviderHelper.getPGPPublicKeyRingWithKeyId(context,
+ PGPPublicKeyRing signKeyRing = mProviderHelper.getPGPPublicKeyRingWithKeyId(
signatureKeyId);
mKey = signKeyRing.getPublicKey();
} catch (ProviderHelper.NotFoundException e) {
@@ -686,7 +687,7 @@ public class PgpDecryptVerify {
return validKeyBinding;
}
- private static boolean verifyKeyBinding(PGPPublicKey masterPublicKey, PGPPublicKey signingPublicKey) {
+ private boolean verifyKeyBinding(PGPPublicKey masterPublicKey, PGPPublicKey signingPublicKey) {
boolean validSubkeyBinding = false;
boolean validTempSubkeyBinding = false;
boolean validPrimaryKeyBinding = false;
@@ -734,9 +735,9 @@ public class PgpDecryptVerify {
return (validSubkeyBinding & validPrimaryKeyBinding);
}
- private static boolean verifyPrimaryKeyBinding(PGPSignatureSubpacketVector pkts,
- PGPPublicKey masterPublicKey,
- PGPPublicKey signingPublicKey) {
+ private boolean verifyPrimaryKeyBinding(PGPSignatureSubpacketVector pkts,
+ PGPPublicKey masterPublicKey,
+ PGPPublicKey signingPublicKey) {
boolean validPrimaryKeyBinding = false;
JcaPGPContentVerifierBuilderProvider contentVerifierBuilderProvider =
new JcaPGPContentVerifierBuilderProvider()
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java
index 854f065ec..80d476e68 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java
@@ -57,10 +57,13 @@ public class PgpImportExport {
private KeychainServiceListener mKeychainServiceListener;
+ private ProviderHelper mProviderHelper;
+
public PgpImportExport(Context context, ProgressDialogUpdater progress) {
super();
this.mContext = context;
this.mProgress = progress;
+ this.mProviderHelper = new ProviderHelper(context);
}
public PgpImportExport(Context context,
@@ -68,6 +71,7 @@ public class PgpImportExport {
super();
this.mContext = context;
this.mProgress = progress;
+ this.mProviderHelper = new ProviderHelper(context);
this.mKeychainServiceListener = keychainListener;
}
@@ -196,7 +200,7 @@ public class PgpImportExport {
updateProgress(progress * 100 / masterKeyIdsSize, 100);
try {
- PGPPublicKeyRing publicKeyRing = ProviderHelper.getPGPPublicKeyRing(mContext, pubKeyMasterId);
+ PGPPublicKeyRing publicKeyRing = mProviderHelper.getPGPPublicKeyRing(pubKeyMasterId);
publicKeyRing.encode(arOutStream);
} catch (ProviderHelper.NotFoundException e) {
@@ -222,7 +226,7 @@ public class PgpImportExport {
updateProgress(progress * 100 / masterKeyIdsSize, 100);
try {
- PGPSecretKeyRing secretKeyRing = ProviderHelper.getPGPSecretKeyRing(mContext, secretKeyMasterId);
+ PGPSecretKeyRing secretKeyRing = mProviderHelper.getPGPSecretKeyRing(secretKeyMasterId);
secretKeyRing.encode(arOutStream);
} catch (ProviderHelper.NotFoundException e) {
Log.e(Constants.TAG, "key not found!", e);
@@ -279,15 +283,15 @@ public class PgpImportExport {
newPubRing = PGPPublicKeyRing.insertPublicKey(newPubRing, key);
}
if (newPubRing != null) {
- ProviderHelper.saveKeyRing(mContext, newPubRing);
+ mProviderHelper.saveKeyRing(newPubRing);
}
- ProviderHelper.saveKeyRing(mContext, secretKeyRing);
+ mProviderHelper.saveKeyRing(secretKeyRing);
// TODO: remove status returns, use exceptions!
status = Id.return_value.ok;
}
} else if (keyring instanceof PGPPublicKeyRing) {
PGPPublicKeyRing publicKeyRing = (PGPPublicKeyRing) keyring;
- ProviderHelper.saveKeyRing(mContext, publicKeyRing);
+ mProviderHelper.saveKeyRing(publicKeyRing);
// TODO: remove status returns, use exceptions!
status = Id.return_value.ok;
}
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 1a0bc85f8..e4b66850e 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncrypt.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpSignEncrypt.java
@@ -67,6 +67,7 @@ import java.util.Date;
*/
public class PgpSignEncrypt {
private Context mContext;
+ private ProviderHelper mProviderHelper;
private InputData mData;
private OutputStream mOutStream;
@@ -85,6 +86,7 @@ public class PgpSignEncrypt {
private PgpSignEncrypt(Builder builder) {
// private Constructor can only be called from Builder
this.mContext = builder.mContext;
+ this.mProviderHelper = new ProviderHelper(mContext);
this.mData = builder.mData;
this.mOutStream = builder.mOutStream;
@@ -252,7 +254,7 @@ public class PgpSignEncrypt {
PGPPrivateKey signaturePrivateKey = null;
if (enableSignature) {
try {
- signingKeyRing = ProviderHelper.getPGPSecretKeyRingWithKeyId(mContext, mSignatureMasterKeyId);
+ signingKeyRing = mProviderHelper.getPGPSecretKeyRingWithKeyId(mSignatureMasterKeyId);
} catch (ProviderHelper.NotFoundException e) {
throw new PgpGeneralException(mContext.getString(R.string.error_signature_failed));
}
@@ -300,7 +302,7 @@ public class PgpSignEncrypt {
// Asymmetric encryption
for (long id : mEncryptionMasterKeyIds) {
try {
- PGPPublicKeyRing keyRing = ProviderHelper.getPGPPublicKeyRing(mContext, id);
+ PGPPublicKeyRing keyRing = mProviderHelper.getPGPPublicKeyRing(id);
PGPPublicKey key = PgpKeyHelper.getEncryptPublicKey(keyRing);
if (key != null) {
JcePublicKeyKeyEncryptionMethodGenerator pubKeyEncryptionGenerator =
@@ -491,7 +493,7 @@ public class PgpSignEncrypt {
PGPSecretKeyRing signingKeyRing;
try {
- signingKeyRing = ProviderHelper.getPGPSecretKeyRingWithKeyId(mContext, mSignatureMasterKeyId);
+ signingKeyRing = mProviderHelper.getPGPSecretKeyRingWithKeyId(mSignatureMasterKeyId);
} catch (ProviderHelper.NotFoundException e) {
throw new PgpGeneralException(mContext.getString(R.string.error_signature_failed));
}