aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java
diff options
context:
space:
mode:
authorJoey Castillo <jose.castillo@gmail.com>2015-05-13 13:10:38 -0400
committerJoey Castillo <jose.castillo@gmail.com>2015-05-13 17:56:12 -0400
commitde2006a61f71ada64763112706b61bf51ae5f6e4 (patch)
treedbddc8a40c1d10d672dc888ba9e0bab857cbdd20 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java
parent28b9068ae03b6c17b247a1d2fdf9b20d8a11a274 (diff)
downloadopen-keychain-de2006a61f71ada64763112706b61bf51ae5f6e4.tar.gz
open-keychain-de2006a61f71ada64763112706b61bf51ae5f6e4.tar.bz2
open-keychain-de2006a61f71ada64763112706b61bf51ae5f6e4.zip
Bugfixes and changes based on feedback
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java34
1 files changed, 22 insertions, 12 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java
index acc0c32b8..1f7a0eb0d 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java
@@ -35,7 +35,6 @@ import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
-import android.widget.Toast;
import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R;
@@ -43,7 +42,7 @@ import org.sufficientlysecure.keychain.compatibility.DialogFragmentWorkaround;
import org.sufficientlysecure.keychain.operations.results.OperationResult;
import org.sufficientlysecure.keychain.operations.results.OperationResult.LogType;
import org.sufficientlysecure.keychain.operations.results.SingletonResult;
-import org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKey;
+import org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKey.SecretKeyType;
import org.sufficientlysecure.keychain.pgp.KeyRing;
import org.sufficientlysecure.keychain.pgp.exception.PgpKeyNotFoundException;
import org.sufficientlysecure.keychain.provider.CachedPublicKeyRing;
@@ -420,9 +419,8 @@ public class EditKeyFragment extends CryptoOperationFragment implements
}
break;
case EditSubkeyDialogFragment.MESSAGE_STRIP: {
- CanonicalizedSecretKey.SecretKeyType secretKeyType =
- mSubkeysAdapter.getSecretKeyType(position);
- if (secretKeyType == CanonicalizedSecretKey.SecretKeyType.GNU_DUMMY) {
+ SecretKeyType secretKeyType = mSubkeysAdapter.getSecretKeyType(position);
+ if (secretKeyType == SecretKeyType.GNU_DUMMY) {
// Key is already stripped; this is a no-op.
break;
}
@@ -441,15 +439,27 @@ public class EditKeyFragment extends CryptoOperationFragment implements
break;
}
case EditSubkeyDialogFragment.MESSAGE_KEYTOCARD: {
- CanonicalizedSecretKey.SecretKeyType secretKeyType =
- mSubkeysAdapter.getSecretKeyType(position);
- if (secretKeyType == CanonicalizedSecretKey.SecretKeyType.DIVERT_TO_CARD ||
- secretKeyType == CanonicalizedSecretKey.SecretKeyType.GNU_DUMMY) {
- Toast.makeText(EditKeyFragment.this.getActivity(),
- R.string.edit_key_error_bad_nfc_stripped, Toast.LENGTH_SHORT)
- .show();
+ Activity activity = EditKeyFragment.this.getActivity();
+ SecretKeyType secretKeyType = mSubkeysAdapter.getSecretKeyType(position);
+ if (secretKeyType == SecretKeyType.DIVERT_TO_CARD ||
+ secretKeyType == SecretKeyType.GNU_DUMMY) {
+ Notify.create(activity, R.string.edit_key_error_bad_nfc_stripped, Notify.Style.ERROR)
+ .show((ViewGroup) activity.findViewById(R.id.import_snackbar));
break;
}
+ int algorithm = mSubkeysAdapter.getAlgorithm(position);
+ // these are the PGP constants for RSA_GENERAL, RSA_ENCRYPT and RSA_SIGN
+ if (algorithm != 1 && algorithm != 2 && algorithm != 3) {
+ Notify.create(activity, R.string.edit_key_error_bad_nfc_algo, Notify.Style.ERROR)
+ .show((ViewGroup) activity.findViewById(R.id.import_snackbar));
+ break;
+ }
+ if (mSubkeysAdapter.getKeySize(position) != 2048) {
+ Notify.create(activity, R.string.edit_key_error_bad_nfc_size, Notify.Style.ERROR)
+ .show((ViewGroup) activity.findViewById(R.id.import_snackbar));
+ break;
+ }
+
SubkeyChange change;
change = mSaveKeyringParcel.getSubkeyChange(keyId);