diff options
Diffstat (limited to 'OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui')
15 files changed, 166 insertions, 171 deletions
diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/DecryptActivity.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/DecryptActivity.java index ad5b15744..136a53000 100644 --- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/DecryptActivity.java +++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/DecryptActivity.java @@ -33,7 +33,10 @@ import org.sufficientlysecure.keychain.compatibility.ClipboardReflection; import org.sufficientlysecure.keychain.helper.ActionBarHelper; import org.sufficientlysecure.keychain.helper.FileHelper; import org.sufficientlysecure.keychain.pgp.PgpHelper; -import org.sufficientlysecure.keychain.pgp.PgpMain; +import org.sufficientlysecure.keychain.pgp.PgpKeyHelper; +import org.sufficientlysecure.keychain.pgp.PgpOperation; +import org.sufficientlysecure.keychain.pgp.exception.NoAsymmetricEncryptionException; +import org.sufficientlysecure.keychain.pgp.exception.PgpGeneralException; import org.sufficientlysecure.keychain.provider.ProviderHelper; import org.sufficientlysecure.keychain.service.KeychainIntentService; import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; @@ -252,9 +255,9 @@ public class DecryptActivity extends SherlockFragmentActivity { String data = ""; if (clipboardText != null) { - Matcher matcher = PgpMain.PGP_MESSAGE.matcher(clipboardText); + Matcher matcher = PgpHelper.PGP_MESSAGE.matcher(clipboardText); if (!matcher.matches()) { - matcher = PgpMain.PGP_SIGNED_MESSAGE.matcher(clipboardText); + matcher = PgpHelper.PGP_SIGNED_MESSAGE.matcher(clipboardText); } if (matcher.matches()) { data = matcher.group(1); @@ -357,7 +360,7 @@ public class DecryptActivity extends SherlockFragmentActivity { */ if (ACTION_DECRYPT.equals(action) && textData != null) { Log.d(Constants.TAG, "textData null, matching text ..."); - Matcher matcher = PgpMain.PGP_MESSAGE.matcher(textData); + Matcher matcher = PgpHelper.PGP_MESSAGE.matcher(textData); if (matcher.matches()) { Log.d(Constants.TAG, "PGP_MESSAGE matched"); textData = matcher.group(1); @@ -365,7 +368,7 @@ public class DecryptActivity extends SherlockFragmentActivity { textData = textData.replaceAll("\\xa0", " "); mMessage.setText(textData); } else { - matcher = PgpMain.PGP_SIGNED_MESSAGE.matcher(textData); + matcher = PgpHelper.PGP_SIGNED_MESSAGE.matcher(textData); if (matcher.matches()) { Log.d(Constants.TAG, "PGP_SIGNED_MESSAGE matched"); textData = matcher.group(1); @@ -478,7 +481,7 @@ public class DecryptActivity extends SherlockFragmentActivity { if (mDecryptTarget == Id.target.message) { String messageData = mMessage.getText().toString(); - Matcher matcher = PgpMain.PGP_SIGNED_MESSAGE.matcher(messageData); + Matcher matcher = PgpHelper.PGP_SIGNED_MESSAGE.matcher(messageData); if (matcher.matches()) { mSignedOnly = true; decryptStart(); @@ -532,7 +535,7 @@ public class DecryptActivity extends SherlockFragmentActivity { messenger, mSecretKeyId); passphraseDialog.show(getSupportFragmentManager(), "passphraseDialog"); - } catch (PgpMain.PgpGeneralException e) { + } catch (PgpGeneralException e) { Log.d(Constants.TAG, "No passphrase for this secret key, encrypt directly!"); // send message to handler to start encryption directly returnHandler.sendEmptyMessage(PassphraseDialogFragment.MESSAGE_OKAY); @@ -578,20 +581,18 @@ public class DecryptActivity extends SherlockFragmentActivity { inStream.mark(200); // should probably set this to the max size of two pgpF // objects, if it even needs to be anything other than 0. } - mSecretKeyId = PgpMain.getDecryptionKeyId(this, inStream); + mSecretKeyId = PgpHelper.getDecryptionKeyId(this, inStream); if (mSecretKeyId == Id.key.none) { - throw new PgpMain.PgpGeneralException( - getString(R.string.error_noSecretKeyFound)); + throw new PgpGeneralException(getString(R.string.error_noSecretKeyFound)); } mAssumeSymmetricEncryption = false; - } catch (PgpMain.NoAsymmetricEncryptionException e) { + } catch (NoAsymmetricEncryptionException e) { if (inStream.markSupported()) { inStream.reset(); } mSecretKeyId = Id.key.symmetric; - if (!PgpMain.hasSymmetricEncryption(this, inStream)) { - throw new PgpMain.PgpGeneralException( - getString(R.string.error_noKnownEncryptionFound)); + if (!PgpOperation.hasSymmetricEncryption(this, inStream)) { + throw new PgpGeneralException(getString(R.string.error_noKnownEncryptionFound)); } mAssumeSymmetricEncryption = true; } @@ -771,8 +772,8 @@ public class DecryptActivity extends SherlockFragmentActivity { .getString(KeychainIntentService.RESULT_SIGNATURE_USER_ID); mSignatureKeyId = returnData .getLong(KeychainIntentService.RESULT_SIGNATURE_KEY_ID); - mUserIdRest - .setText("id: " + PgpHelper.getSmallFingerPrint(mSignatureKeyId)); + mUserIdRest.setText("id: " + + PgpKeyHelper.getSmallFingerPrint(mSignatureKeyId)); if (userId == null) { userId = getResources().getString(R.string.unknownUserId); } diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/EditKeyActivity.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/EditKeyActivity.java index 0c1536d8d..0c7b90e16 100644 --- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/EditKeyActivity.java +++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/EditKeyActivity.java @@ -28,12 +28,13 @@ import org.sufficientlysecure.keychain.Id; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.helper.ActionBarHelper; import org.sufficientlysecure.keychain.pgp.PgpConversionHelper; -import org.sufficientlysecure.keychain.pgp.PgpHelper; -import org.sufficientlysecure.keychain.pgp.PgpMain; -import org.sufficientlysecure.keychain.pgp.PgpMain.PgpGeneralException; +import org.sufficientlysecure.keychain.pgp.PgpKeyHelper; +import org.sufficientlysecure.keychain.pgp.exception.PgpGeneralException; import org.sufficientlysecure.keychain.provider.ProviderHelper; import org.sufficientlysecure.keychain.service.KeychainIntentService; import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; +import org.sufficientlysecure.keychain.service.PassphraseCacheService; +import org.sufficientlysecure.keychain.ui.dialog.PassphraseDialogFragment; import org.sufficientlysecure.keychain.ui.dialog.SetPassphraseDialogFragment; import org.sufficientlysecure.keychain.ui.widget.KeyEditor; import org.sufficientlysecure.keychain.ui.widget.SectionView; @@ -288,6 +289,38 @@ public class EditKeyActivity extends SherlockFragmentActivity { } } + private void showPassphraseDialog(final long masterKeyId, final boolean masterCanSign) { + // Message is received after passphrase is cached + final boolean mCanSign = masterCanSign; + Handler returnHandler = new Handler() { + @Override + public void handleMessage(Message message) { + if (message.what == PassphraseDialogFragment.MESSAGE_OKAY) { + String passPhrase = PassphraseCacheService.getCachedPassphrase( + EditKeyActivity.this, masterKeyId); + mCurrentPassPhrase = passPhrase; + finallyEdit(masterKeyId, masterCanSign); + } else { + finish(); + } + } + }; + + // Create a new Messenger for the communication back + Messenger messenger = new Messenger(returnHandler); + + try { + PassphraseDialogFragment passphraseDialog = PassphraseDialogFragment.newInstance( + EditKeyActivity.this, messenger, masterKeyId); + + passphraseDialog.show(getSupportFragmentManager(), "passphraseDialog"); + } catch (PgpGeneralException e) { + Log.d(Constants.TAG, "No passphrase for this secret key!"); + // send message to handler to start encryption directly + returnHandler.sendEmptyMessage(PassphraseDialogFragment.MESSAGE_OKAY); + } + } + /** * Handle intent action to edit existing key * @@ -299,7 +332,32 @@ public class EditKeyActivity extends SherlockFragmentActivity { mActionBar.setTitle(R.string.title_editKey); - mCurrentPassPhrase = PgpMain.getEditPassPhrase(); + if (extras != null) { + if (extras.containsKey(EXTRA_MASTER_CAN_SIGN)) { + masterCanSign = extras.getBoolean(EXTRA_MASTER_CAN_SIGN); + } + if (extras.containsKey(EXTRA_MASTER_KEY_ID)) { + long masterKeyId = extras.getLong(EXTRA_MASTER_KEY_ID); + + // build layout in edit() + mBuildLayout = false; + + String passPhrase = PassphraseCacheService.getCachedPassphrase(this, masterKeyId); + if (passPhrase == null) { + showPassphraseDialog(masterKeyId, masterCanSign); + } else { + // PgpMain.setEditPassPhrase(passPhrase); + mCurrentPassPhrase = passPhrase; + + finallyEdit(masterKeyId, masterCanSign); + } + + } + } + } + + private void finallyEdit(final long masterKeyId, final boolean masterCanSign) { + // TODO: ??? if (mCurrentPassPhrase == null) { mCurrentPassPhrase = ""; } @@ -310,37 +368,28 @@ public class EditKeyActivity extends SherlockFragmentActivity { mChangePassPhrase.setVisibility(View.GONE); } - if (extras != null) { - if (extras.containsKey(EXTRA_MASTER_CAN_SIGN)) { - masterCanSign = extras.getBoolean(EXTRA_MASTER_CAN_SIGN); + if (masterKeyId != 0) { + PGPSecretKey masterKey = null; + mKeyRing = ProviderHelper.getPGPSecretKeyRingByMasterKeyId(this, masterKeyId); + if (mKeyRing != null) { + masterKey = PgpKeyHelper.getMasterKey(mKeyRing); + for (PGPSecretKey key : new IterableIterator<PGPSecretKey>(mKeyRing.getSecretKeys())) { + mKeys.add(key); + mKeysUsages.add(-1); // get usage when view is created + } + } else { + Log.e(Constants.TAG, "Keyring not found with masterKeyId: " + masterKeyId); + Toast.makeText(this, R.string.error_noSecretKeyFound, Toast.LENGTH_LONG).show(); } - if (extras.containsKey(EXTRA_MASTER_KEY_ID)) { - long masterKeyId = extras.getLong(EXTRA_MASTER_KEY_ID); - - if (masterKeyId != 0) { - PGPSecretKey masterKey = null; - mKeyRing = ProviderHelper.getPGPSecretKeyRingByMasterKeyId(this, masterKeyId); - if (mKeyRing != null) { - masterKey = PgpHelper.getMasterKey(mKeyRing); - for (PGPSecretKey key : new IterableIterator<PGPSecretKey>( - mKeyRing.getSecretKeys())) { - mKeys.add(key); - mKeysUsages.add(-1); // get usage when view is created - } - } else { - Log.e(Constants.TAG, "Keyring not found with masterKeyId: " + masterKeyId); - Toast.makeText(this, R.string.error_noSecretKeyFound, Toast.LENGTH_LONG) - .show(); - } - if (masterKey != null) { - for (String userId : new IterableIterator<String>(masterKey.getUserIDs())) { - Log.d(Constants.TAG, "Added userId " + userId); - mUserIds.add(userId); - } - } + if (masterKey != null) { + for (String userId : new IterableIterator<String>(masterKey.getUserIDs())) { + Log.d(Constants.TAG, "Added userId " + userId); + mUserIds.add(userId); } } } + + buildLayout(); } /** @@ -424,7 +473,7 @@ public class EditKeyActivity extends SherlockFragmentActivity { private void saveClicked() { try { if (!isPassphraseSet()) { - throw new PgpMain.PgpGeneralException(this.getString(R.string.setAPassPhrase)); + throw new PgpGeneralException(this.getString(R.string.setAPassPhrase)); } // Send all information needed to service to edit key in other thread @@ -480,7 +529,7 @@ public class EditKeyActivity extends SherlockFragmentActivity { // start service with intent startService(intent); - } catch (PgpMain.PgpGeneralException e) { + } catch (PgpGeneralException e) { Toast.makeText(this, getString(R.string.errorMessage, e.getMessage()), Toast.LENGTH_SHORT).show(); } @@ -497,8 +546,7 @@ public class EditKeyActivity extends SherlockFragmentActivity { * @param userIdsView * @return */ - private ArrayList<String> getUserIds(SectionView userIdsView) - throws PgpMain.PgpGeneralException { + private ArrayList<String> getUserIds(SectionView userIdsView) throws PgpGeneralException { ArrayList<String> userIds = new ArrayList<String>(); ViewGroup userIdEditors = userIdsView.getEditors(); @@ -510,13 +558,12 @@ public class EditKeyActivity extends SherlockFragmentActivity { try { userId = editor.getValue(); } catch (UserIdEditor.NoNameException e) { - throw new PgpMain.PgpGeneralException( - this.getString(R.string.error_userIdNeedsAName)); + throw new PgpGeneralException(this.getString(R.string.error_userIdNeedsAName)); } catch (UserIdEditor.NoEmailException e) { - throw new PgpMain.PgpGeneralException( + throw new PgpGeneralException( this.getString(R.string.error_userIdNeedsAnEmailAddress)); } catch (UserIdEditor.InvalidEmailException e) { - throw new PgpMain.PgpGeneralException(e.getMessage()); + throw new PgpGeneralException(e.getMessage()); } if (userId.equals("")) { @@ -532,12 +579,11 @@ public class EditKeyActivity extends SherlockFragmentActivity { } if (userIds.size() == 0) { - throw new PgpMain.PgpGeneralException(getString(R.string.error_keyNeedsAUserId)); + throw new PgpGeneralException(getString(R.string.error_keyNeedsAUserId)); } if (!gotMainUserId) { - throw new PgpMain.PgpGeneralException( - getString(R.string.error_mainUserIdMustNotBeEmpty)); + throw new PgpGeneralException(getString(R.string.error_mainUserIdMustNotBeEmpty)); } return userIds; @@ -549,14 +595,13 @@ public class EditKeyActivity extends SherlockFragmentActivity { * @param keysView * @return */ - private ArrayList<PGPSecretKey> getKeys(SectionView keysView) - throws PgpMain.PgpGeneralException { + private ArrayList<PGPSecretKey> getKeys(SectionView keysView) throws PgpGeneralException { ArrayList<PGPSecretKey> keys = new ArrayList<PGPSecretKey>(); ViewGroup keyEditors = keysView.getEditors(); if (keyEditors.getChildCount() == 0) { - throw new PgpMain.PgpGeneralException(getString(R.string.error_keyNeedsMasterKey)); + throw new PgpGeneralException(getString(R.string.error_keyNeedsMasterKey)); } for (int i = 0; i < keyEditors.getChildCount(); ++i) { @@ -573,14 +618,13 @@ public class EditKeyActivity extends SherlockFragmentActivity { * @param keysView * @return */ - private ArrayList<Integer> getKeysUsages(SectionView keysView) - throws PgpMain.PgpGeneralException { + private ArrayList<Integer> getKeysUsages(SectionView keysView) throws PgpGeneralException { ArrayList<Integer> getKeysUsages = new ArrayList<Integer>(); ViewGroup keyEditors = keysView.getEditors(); if (keyEditors.getChildCount() == 0) { - throw new PgpMain.PgpGeneralException(getString(R.string.error_keyNeedsMasterKey)); + throw new PgpGeneralException(getString(R.string.error_keyNeedsMasterKey)); } for (int i = 0; i < keyEditors.getChildCount(); ++i) { diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/EncryptActivity.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/EncryptActivity.java index 3e4b2bcfb..b9a58a210 100644 --- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/EncryptActivity.java +++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/EncryptActivity.java @@ -31,8 +31,8 @@ import org.sufficientlysecure.keychain.compatibility.ClipboardReflection; import org.sufficientlysecure.keychain.helper.ActionBarHelper; import org.sufficientlysecure.keychain.helper.FileHelper; import org.sufficientlysecure.keychain.helper.Preferences; -import org.sufficientlysecure.keychain.pgp.PgpHelper; -import org.sufficientlysecure.keychain.pgp.PgpMain; +import org.sufficientlysecure.keychain.pgp.PgpKeyHelper; +import org.sufficientlysecure.keychain.pgp.exception.PgpGeneralException; import org.sufficientlysecure.keychain.provider.ProviderHelper; import org.sufficientlysecure.keychain.service.KeychainIntentService; import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; @@ -302,9 +302,9 @@ public class EncryptActivity extends SherlockFragmentActivity { preselectedSignatureKeyId); PGPSecretKey masterKey = null; if (keyRing != null) { - masterKey = PgpHelper.getMasterKey(keyRing); + masterKey = PgpKeyHelper.getMasterKey(keyRing); if (masterKey != null) { - Vector<PGPSecretKey> signKeys = PgpHelper.getUsableSigningKeys(keyRing); + Vector<PGPSecretKey> signKeys = PgpKeyHelper.getUsableSigningKeys(keyRing); if (signKeys.size() > 0) { mSecretKeyId = masterKey.getKeyID(); } @@ -321,11 +321,11 @@ public class EncryptActivity extends SherlockFragmentActivity { if (keyRing == null) { continue; } - masterKey = PgpHelper.getMasterKey(keyRing); + masterKey = PgpKeyHelper.getMasterKey(keyRing); if (masterKey == null) { continue; } - Vector<PGPPublicKey> encryptKeys = PgpHelper.getUsableEncryptKeys(keyRing); + Vector<PGPPublicKey> encryptKeys = PgpKeyHelper.getUsableEncryptKeys(keyRing); if (encryptKeys.size() == 0) { continue; } @@ -570,7 +570,7 @@ public class EncryptActivity extends SherlockFragmentActivity { EncryptActivity.this, messenger, mSecretKeyId); passphraseDialog.show(getSupportFragmentManager(), "passphraseDialog"); - } catch (PgpMain.PgpGeneralException e) { + } catch (PgpGeneralException e) { Log.d(Constants.TAG, "No passphrase for this secret key, encrypt directly!"); // send message to handler to start encryption directly returnHandler.sendEmptyMessage(PassphraseDialogFragment.MESSAGE_OKAY); @@ -914,9 +914,9 @@ public class EncryptActivity extends SherlockFragmentActivity { PGPSecretKeyRing keyRing = ProviderHelper.getPGPSecretKeyRingByMasterKeyId(this, mSecretKeyId); if (keyRing != null) { - PGPSecretKey key = PgpHelper.getMasterKey(keyRing); + PGPSecretKey key = PgpKeyHelper.getMasterKey(keyRing); if (key != null) { - String userId = PgpHelper.getMainUserIdSafe(this, key); + String userId = PgpKeyHelper.getMainUserIdSafe(this, key); String chunks[] = userId.split(" <", 2); uid = chunks[0]; if (chunks.length > 1) { diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyListPublicFragment.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyListPublicFragment.java index 1b7d80b36..2e2c3cfcd 100644 --- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyListPublicFragment.java +++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyListPublicFragment.java @@ -19,7 +19,7 @@ package org.sufficientlysecure.keychain.ui; import org.spongycastle.openpgp.PGPPublicKeyRing; import org.sufficientlysecure.keychain.Id; -import org.sufficientlysecure.keychain.pgp.PgpHelper; +import org.sufficientlysecure.keychain.pgp.PgpKeyHelper; import org.sufficientlysecure.keychain.provider.ProviderHelper; import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings; import org.sufficientlysecure.keychain.provider.KeychainContract.UserIds; @@ -97,7 +97,7 @@ public class KeyListPublicFragment extends KeyListFragment implements PGPPublicKeyRing updateKeyRing = ProviderHelper.getPGPPublicKeyRingByRowId( mKeyListActivity, keyRingRowId); if (updateKeyRing != null) { - updateKeyId = PgpHelper.getMasterKey(updateKeyRing).getKeyID(); + updateKeyId = PgpKeyHelper.getMasterKey(updateKeyRing).getKeyID(); } if (updateKeyId == 0) { // this shouldn't happen @@ -126,7 +126,7 @@ public class KeyListPublicFragment extends KeyListFragment implements PGPPublicKeyRing signKeyRing = ProviderHelper.getPGPPublicKeyRingByRowId( mKeyListActivity, keyRingRowId); if (signKeyRing != null) { - keyId = PgpHelper.getMasterKey(signKeyRing).getKeyID(); + keyId = PgpKeyHelper.getMasterKey(signKeyRing).getKeyID(); } if (keyId == 0) { // this shouldn't happen diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyListSecretActivity.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyListSecretActivity.java index 84b3d6689..68e3be5df 100644 --- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyListSecretActivity.java +++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyListSecretActivity.java @@ -19,20 +19,13 @@ package org.sufficientlysecure.keychain.ui; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.Id; -import org.sufficientlysecure.keychain.pgp.PgpMain; -import org.sufficientlysecure.keychain.service.PassphraseCacheService; -import org.sufficientlysecure.keychain.ui.dialog.PassphraseDialogFragment; -import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.R; -import com.actionbarsherlock.view.Menu; -import com.actionbarsherlock.view.MenuItem; - import android.content.Intent; import android.os.Bundle; -import android.os.Handler; -import android.os.Message; -import android.os.Messenger; + +import com.actionbarsherlock.view.Menu; +import com.actionbarsherlock.view.MenuItem; public class KeyListSecretActivity extends KeyListActivity { @@ -77,48 +70,7 @@ public class KeyListSecretActivity extends KeyListActivity { } } - public void checkPassPhraseAndEdit(long masterKeyId, boolean masterCanSign) { - String passPhrase = PassphraseCacheService.getCachedPassphrase(this, masterKeyId); - if (passPhrase == null) { - showPassphraseDialog(masterKeyId, masterCanSign); - } else { - PgpMain.setEditPassPhrase(passPhrase); - editKey(masterKeyId, masterCanSign); - } - } - - private void showPassphraseDialog(final long masterKeyId, boolean masterCanSign) { - // Message is received after passphrase is cached - final boolean mCanSign = masterCanSign; - Handler returnHandler = new Handler() { - @Override - public void handleMessage(Message message) { - if (message.what == PassphraseDialogFragment.MESSAGE_OKAY) { - String passPhrase = PassphraseCacheService.getCachedPassphrase( - KeyListSecretActivity.this, masterKeyId); - PgpMain.setEditPassPhrase(passPhrase); - editKey(masterKeyId, mCanSign); - } - } - }; - - // Create a new Messenger for the communication back - Messenger messenger = new Messenger(returnHandler); - - try { - PassphraseDialogFragment passphraseDialog = PassphraseDialogFragment.newInstance( - KeyListSecretActivity.this, messenger, masterKeyId); - - passphraseDialog.show(getSupportFragmentManager(), "passphraseDialog"); - } catch (PgpMain.PgpGeneralException e) { - Log.d(Constants.TAG, "No passphrase for this secret key, encrypt directly!"); - // send message to handler to start encryption directly - returnHandler.sendEmptyMessage(PassphraseDialogFragment.MESSAGE_OKAY); - } - } - private void createKey() { - PgpMain.setEditPassPhrase(""); Intent intent = new Intent(this, EditKeyActivity.class); intent.setAction(EditKeyActivity.ACTION_CREATE_KEY); intent.putExtra(EditKeyActivity.EXTRA_GENERATE_DEFAULT_KEYS, true); @@ -127,13 +79,12 @@ public class KeyListSecretActivity extends KeyListActivity { } private void createKeyExpert() { - PgpMain.setEditPassPhrase(""); Intent intent = new Intent(this, EditKeyActivity.class); intent.setAction(EditKeyActivity.ACTION_CREATE_KEY); startActivityForResult(intent, 0); } - private void editKey(long masterKeyId, boolean masterCanSign) { + void editKey(long masterKeyId, boolean masterCanSign) { Intent intent = new Intent(this, EditKeyActivity.class); intent.setAction(EditKeyActivity.ACTION_EDIT_KEY); intent.putExtra(EditKeyActivity.EXTRA_MASTER_KEY_ID, masterKeyId); diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyListSecretFragment.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyListSecretFragment.java index 2a6ce2808..f8d02b7b3 100644 --- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyListSecretFragment.java +++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyListSecretFragment.java @@ -91,7 +91,7 @@ public class KeyListSecretFragment extends KeyListFragment implements switch (item.getItemId()) { case Id.menu.edit: - mKeyListSecretActivity.checkPassPhraseAndEdit(masterKeyId, masterCanSign); + mKeyListSecretActivity.editKey(masterKeyId, masterCanSign); return true; diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyServerQueryActivity.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyServerQueryActivity.java index 458603f84..22f4b65fe 100644 --- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyServerQueryActivity.java +++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyServerQueryActivity.java @@ -23,7 +23,7 @@ import java.util.List; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.Id; import org.sufficientlysecure.keychain.helper.Preferences; -import org.sufficientlysecure.keychain.pgp.PgpHelper; +import org.sufficientlysecure.keychain.pgp.PgpKeyHelper; import org.sufficientlysecure.keychain.service.KeychainIntentService; import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; import org.sufficientlysecure.keychain.util.Log; @@ -140,7 +140,7 @@ public class KeyServerQueryActivity extends SherlockFragmentActivity { if (ACTION_LOOK_UP_KEY_ID.equals(action) || ACTION_LOOK_UP_KEY_ID_AND_RETURN.equals(action)) { long keyId = intent.getLongExtra(EXTRA_KEY_ID, 0); if (keyId != 0) { - String query = "0x" + PgpHelper.keyToHex(keyId); + String query = "0x" + PgpKeyHelper.keyToHex(keyId); mQuery.setText(query); search(query); } @@ -308,7 +308,7 @@ public class KeyServerQueryActivity extends SherlockFragmentActivity { mainUserId.setText(userId); } - keyId.setText(PgpHelper.getSmallFingerPrint(keyInfo.keyId)); + keyId.setText(PgpKeyHelper.getSmallFingerPrint(keyInfo.keyId)); if (mainUserIdRest.getText().length() == 0) { mainUserIdRest.setVisibility(View.GONE); diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/SignKeyActivity.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/SignKeyActivity.java index 7e7af7feb..83dcce14b 100644 --- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/SignKeyActivity.java +++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/SignKeyActivity.java @@ -22,18 +22,15 @@ import org.spongycastle.openpgp.PGPPublicKeyRing; import org.spongycastle.openpgp.PGPSignature; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.Id; +import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.helper.Preferences; -import org.sufficientlysecure.keychain.pgp.PgpMain; +import org.sufficientlysecure.keychain.pgp.exception.PgpGeneralException; import org.sufficientlysecure.keychain.provider.ProviderHelper; import org.sufficientlysecure.keychain.service.KeychainIntentService; import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; import org.sufficientlysecure.keychain.service.PassphraseCacheService; import org.sufficientlysecure.keychain.ui.dialog.PassphraseDialogFragment; import org.sufficientlysecure.keychain.util.Log; -import org.sufficientlysecure.keychain.R; - -import com.actionbarsherlock.app.ActionBar; -import com.actionbarsherlock.app.SherlockFragmentActivity; import android.app.ProgressDialog; import android.content.Intent; @@ -51,6 +48,9 @@ import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.Spinner; import android.widget.Toast; +import com.actionbarsherlock.app.ActionBar; +import com.actionbarsherlock.app.SherlockFragmentActivity; + /** * gpg --sign-key * @@ -144,7 +144,7 @@ public class SignKeyActivity extends SherlockFragmentActivity { messenger, secretKeyId); passphraseDialog.show(getSupportFragmentManager(), "passphraseDialog"); - } catch (PgpMain.PgpGeneralException e) { + } catch (PgpGeneralException e) { Log.d(Constants.TAG, "No passphrase for this secret key, encrypt directly!"); // send message to handler to start encryption directly returnHandler.sendEmptyMessage(PassphraseDialogFragment.MESSAGE_OKAY); diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/dialog/DeleteKeyDialogFragment.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/dialog/DeleteKeyDialogFragment.java index a4a88fcdf..87a08a68f 100644 --- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/dialog/DeleteKeyDialogFragment.java +++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/dialog/DeleteKeyDialogFragment.java @@ -21,7 +21,7 @@ import org.spongycastle.openpgp.PGPPublicKeyRing; import org.spongycastle.openpgp.PGPSecretKeyRing; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.Id; -import org.sufficientlysecure.keychain.pgp.PgpHelper; +import org.sufficientlysecure.keychain.pgp.PgpKeyHelper; import org.sufficientlysecure.keychain.provider.ProviderHelper; import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.R; @@ -79,11 +79,11 @@ public class DeleteKeyDialogFragment extends DialogFragment { if (keyType == Id.type.public_key) { PGPPublicKeyRing keyRing = ProviderHelper.getPGPPublicKeyRingByRowId(activity, deleteKeyRingRowId); - userId = PgpHelper.getMainUserIdSafe(activity, PgpHelper.getMasterKey(keyRing)); + userId = PgpKeyHelper.getMainUserIdSafe(activity, PgpKeyHelper.getMasterKey(keyRing)); } else { PGPSecretKeyRing keyRing = ProviderHelper.getPGPSecretKeyRingByRowId(activity, deleteKeyRingRowId); - userId = PgpHelper.getMainUserIdSafe(activity, PgpHelper.getMasterKey(keyRing)); + userId = PgpKeyHelper.getMainUserIdSafe(activity, PgpKeyHelper.getMasterKey(keyRing)); } AlertDialog.Builder builder = new AlertDialog.Builder(activity); diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/dialog/LookupUnknownKeyDialogFragment.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/dialog/LookupUnknownKeyDialogFragment.java index eebda1799..b50ec5f0d 100644 --- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/dialog/LookupUnknownKeyDialogFragment.java +++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/dialog/LookupUnknownKeyDialogFragment.java @@ -19,7 +19,7 @@ package org.sufficientlysecure.keychain.ui.dialog; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.Id; -import org.sufficientlysecure.keychain.pgp.PgpHelper; +import org.sufficientlysecure.keychain.pgp.PgpKeyHelper; import org.sufficientlysecure.keychain.ui.KeyServerQueryActivity; import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.R; @@ -79,7 +79,7 @@ public class LookupUnknownKeyDialogFragment extends DialogFragment { alert.setIcon(android.R.drawable.ic_dialog_alert); alert.setTitle(R.string.title_unknownSignatureKey); alert.setMessage(getString(R.string.lookupUnknownKey, - PgpHelper.getSmallFingerPrint(unknownKeyId))); + PgpKeyHelper.getSmallFingerPrint(unknownKeyId))); alert.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/dialog/PassphraseDialogFragment.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/dialog/PassphraseDialogFragment.java index c3a3dee8e..61a9a4366 100644 --- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/dialog/PassphraseDialogFragment.java +++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/dialog/PassphraseDialogFragment.java @@ -24,13 +24,12 @@ import org.spongycastle.openpgp.operator.PBESecretKeyDecryptor; import org.spongycastle.openpgp.operator.jcajce.JcePBESecretKeyDecryptorBuilder; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.Id; -import org.sufficientlysecure.keychain.pgp.PgpHelper; -import org.sufficientlysecure.keychain.pgp.PgpMain; -import org.sufficientlysecure.keychain.pgp.PgpMain.PgpGeneralException; +import org.sufficientlysecure.keychain.R; +import org.sufficientlysecure.keychain.pgp.PgpKeyHelper; +import org.sufficientlysecure.keychain.pgp.exception.PgpGeneralException; import org.sufficientlysecure.keychain.provider.ProviderHelper; import org.sufficientlysecure.keychain.service.PassphraseCacheService; import org.sufficientlysecure.keychain.util.Log; -import org.sufficientlysecure.keychain.R; import android.app.Activity; import android.app.AlertDialog; @@ -80,7 +79,7 @@ public class PassphraseDialogFragment extends DialogFragment implements OnEditor // check if secret key has a passphrase if (!(secretKeyId == Id.key.symmetric || secretKeyId == Id.key.none)) { if (!PassphraseCacheService.hasPassphrase(context, secretKeyId)) { - throw new PgpMain.PgpGeneralException("No passphrase! No passphrase dialog needed!"); + throw new PgpGeneralException("No passphrase! No passphrase dialog needed!"); } } @@ -119,7 +118,7 @@ public class PassphraseDialogFragment extends DialogFragment implements OnEditor alert.setMessage(R.string.passPhraseForSymmetricEncryption); } else { // TODO: by master key id??? - secretKey = PgpHelper.getMasterKey(ProviderHelper.getPGPSecretKeyRingByKeyId(activity, + secretKey = PgpKeyHelper.getMasterKey(ProviderHelper.getPGPSecretKeyRingByKeyId(activity, secretKeyId)); // secretKey = PGPHelper.getMasterKey(PGPMain.getSecretKeyRing(secretKeyId)); @@ -135,7 +134,7 @@ public class PassphraseDialogFragment extends DialogFragment implements OnEditor canKB = false; return alert.create(); } - String userId = PgpHelper.getMainUserIdSafe(activity, secretKey); + String userId = PgpKeyHelper.getMainUserIdSafe(activity, secretKey); Log.d(Constants.TAG, "User id: '" + userId + "'"); alert.setMessage(getString(R.string.passPhraseFor, userId)); @@ -163,7 +162,7 @@ public class PassphraseDialogFragment extends DialogFragment implements OnEditor if (clickSecretKey != null) { // check again for loop try { PBESecretKeyDecryptor keyDecryptor = new JcePBESecretKeyDecryptorBuilder() - .setProvider(PgpMain.BOUNCY_CASTLE_PROVIDER_NAME).build( + .setProvider(Constants.BOUNCY_CASTLE_PROVIDER_NAME).build( passPhrase.toCharArray()); PGPPrivateKey testKey = clickSecretKey .extractPrivateKey(keyDecryptor); @@ -176,7 +175,7 @@ public class PassphraseDialogFragment extends DialogFragment implements OnEditor sendMessageToHandler(MESSAGE_CANCEL); return; } else { - clickSecretKey = PgpHelper.getKeyNum(ProviderHelper + clickSecretKey = PgpKeyHelper.getKeyNum(ProviderHelper .getPGPSecretKeyRingByKeyId(activity, secretKeyId), curKeyIndex); curKeyIndex++; // does post-increment work like C? diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/widget/ImportKeysListLoader.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/widget/ImportKeysListLoader.java index 42c5ddef7..45f23d443 100644 --- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/widget/ImportKeysListLoader.java +++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/widget/ImportKeysListLoader.java @@ -32,7 +32,7 @@ import org.spongycastle.openpgp.PGPObjectFactory; import org.spongycastle.openpgp.PGPSecretKeyRing; import org.spongycastle.openpgp.PGPUtil; import org.sufficientlysecure.keychain.Constants; -import org.sufficientlysecure.keychain.pgp.PgpHelper; +import org.sufficientlysecure.keychain.pgp.PgpKeyHelper; import org.sufficientlysecure.keychain.util.InputData; import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.util.PositionAwareInputStream; @@ -142,13 +142,13 @@ public class ImportKeysListLoader extends AsyncTaskLoader<List<Map<String, Strin } private void addToData(PGPKeyRing keyring) { - String userId = PgpHelper.getMainUserId(keyring.getPublicKey()); + String userId = PgpKeyHelper.getMainUserId(keyring.getPublicKey()); if (keyring instanceof PGPSecretKeyRing) { userId = mContext.getString(R.string.secretKeyring) + " " + userId; } - String fingerprint = PgpHelper.convertFingerprintToHex(keyring.getPublicKey() + String fingerprint = PgpKeyHelper.convertFingerprintToHex(keyring.getPublicKey() .getFingerprint()); Map<String, String> attrs = new HashMap<String, String>(); diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/widget/KeyEditor.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/widget/KeyEditor.java index 729123e13..27e5a7cc6 100644 --- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/widget/KeyEditor.java +++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/widget/KeyEditor.java @@ -19,7 +19,7 @@ package org.sufficientlysecure.keychain.ui.widget; import org.spongycastle.openpgp.PGPPublicKey; import org.spongycastle.openpgp.PGPSecretKey; import org.sufficientlysecure.keychain.Id; -import org.sufficientlysecure.keychain.pgp.PgpHelper; +import org.sufficientlysecure.keychain.pgp.PgpKeyHelper; import org.sufficientlysecure.keychain.util.Choice; import org.sufficientlysecure.keychain.R; @@ -151,9 +151,9 @@ public class KeyEditor extends LinearLayout implements Editor, OnClickListener { mDeleteButton.setVisibility(View.INVISIBLE); } - mAlgorithm.setText(PgpHelper.getAlgorithmInfo(key)); - String keyId1Str = PgpHelper.getSmallFingerPrint(key.getKeyID()); - String keyId2Str = PgpHelper.getSmallFingerPrint(key.getKeyID() >> 32); + mAlgorithm.setText(PgpKeyHelper.getAlgorithmInfo(key)); + String keyId1Str = PgpKeyHelper.getSmallFingerPrint(key.getKeyID()); + String keyId2Str = PgpKeyHelper.getSmallFingerPrint(key.getKeyID() >> 32); mKeyId.setText(keyId1Str + " " + keyId2Str); Vector<Choice> choices = new Vector<Choice>(); @@ -179,8 +179,8 @@ public class KeyEditor extends LinearLayout implements Editor, OnClickListener { // Set value in choice dropdown to key int selectId = 0; - if (PgpHelper.isEncryptionKey(key)) { - if (PgpHelper.isSigningKey(key)) { + if (PgpKeyHelper.isEncryptionKey(key)) { + if (PgpKeyHelper.isSigningKey(key)) { selectId = Id.choice.usage.sign_and_encrypt; } else { selectId = Id.choice.usage.encrypt_only; @@ -203,14 +203,14 @@ public class KeyEditor extends LinearLayout implements Editor, OnClickListener { } GregorianCalendar cal = new GregorianCalendar(); - cal.setTime(PgpHelper.getCreationDate(key)); + cal.setTime(PgpKeyHelper.getCreationDate(key)); mCreationDate.setText(DateFormat.getDateInstance().format(cal.getTime())); cal = new GregorianCalendar(); - Date date = PgpHelper.getExpiryDate(key); + Date date = PgpKeyHelper.getExpiryDate(key); if (date == null) { setExpiryDate(null); } else { - cal.setTime(PgpHelper.getExpiryDate(key)); + cal.setTime(PgpKeyHelper.getExpiryDate(key)); setExpiryDate(cal); } diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/widget/KeyListAdapter.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/widget/KeyListAdapter.java index e41db4f2f..989036a7f 100644 --- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/widget/KeyListAdapter.java +++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/widget/KeyListAdapter.java @@ -19,7 +19,7 @@ package org.sufficientlysecure.keychain.ui.widget; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.Id; import org.sufficientlysecure.keychain.helper.OtherHelper; -import org.sufficientlysecure.keychain.pgp.PgpHelper; +import org.sufficientlysecure.keychain.pgp.PgpKeyHelper; import org.sufficientlysecure.keychain.provider.KeychainContract.Keys; import org.sufficientlysecure.keychain.provider.KeychainContract.UserIds; import org.sufficientlysecure.keychain.util.Log; @@ -117,7 +117,7 @@ public class KeyListAdapter extends CursorTreeAdapter { keyLayout.setVisibility(View.GONE); userIdLayout.setVisibility(View.VISIBLE); - String fingerprint = PgpHelper.getFingerPrint(context, + String fingerprint = PgpKeyHelper.getFingerPrint(context, cursor.getLong(cursor.getColumnIndex(Keys.KEY_ID))); fingerprint = fingerprint.replace(" ", "\n"); @@ -132,9 +132,9 @@ public class KeyListAdapter extends CursorTreeAdapter { keyLayout.setVisibility(View.VISIBLE); userIdLayout.setVisibility(View.GONE); - String keyIdStr = PgpHelper.getSmallFingerPrint(cursor.getLong(cursor + String keyIdStr = PgpKeyHelper.getSmallFingerPrint(cursor.getLong(cursor .getColumnIndex(Keys.KEY_ID))); - String algorithmStr = PgpHelper.getAlgorithmInfo( + String algorithmStr = PgpKeyHelper.getAlgorithmInfo( cursor.getInt(cursor.getColumnIndex(Keys.ALGORITHM)), cursor.getInt(cursor.getColumnIndex(Keys.KEY_SIZE))); diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/widget/SelectKeyCursorAdapter.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/widget/SelectKeyCursorAdapter.java index b6d2949d3..0b2b612a5 100644 --- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/widget/SelectKeyCursorAdapter.java +++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/widget/SelectKeyCursorAdapter.java @@ -19,7 +19,7 @@ package org.sufficientlysecure.keychain.ui.widget; import org.sufficientlysecure.keychain.Id; import org.sufficientlysecure.keychain.helper.OtherHelper; -import org.sufficientlysecure.keychain.pgp.PgpHelper; +import org.sufficientlysecure.keychain.pgp.PgpKeyHelper; import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings; import org.sufficientlysecure.keychain.provider.KeychainContract.UserIds; import org.sufficientlysecure.keychain.R; @@ -87,7 +87,7 @@ public class SelectKeyCursorAdapter extends CursorAdapter { } long masterKeyId = cursor.getLong(cursor.getColumnIndex(KeyRings.MASTER_KEY_ID)); - keyId.setText(PgpHelper.getSmallFingerPrint(masterKeyId)); + keyId.setText(PgpKeyHelper.getSmallFingerPrint(masterKeyId)); if (mainUserIdRest.getText().length() == 0) { mainUserIdRest.setVisibility(View.GONE); |