diff --git a/src/org/thialfihar/android/apg/Apg.java b/src/org/thialfihar/android/apg/Apg.java index 8bb50f0f2..d2f37903a 100644 --- a/src/org/thialfihar/android/apg/Apg.java +++ b/src/org/thialfihar/android/apg/Apg.java @@ -648,6 +648,9 @@ public class Apg { } public static PGPPublicKey getMasterKey(PGPPublicKeyRing keyRing) { + if (keyRing == null) { + return null; + } for (PGPPublicKey key : new IterableIterator(keyRing.getPublicKeys())) { if (key.isMasterKey()) { return key; @@ -658,6 +661,9 @@ public class Apg { } public static PGPSecretKey getMasterKey(PGPSecretKeyRing keyRing) { + if (keyRing == null) { + return null; + } for (PGPSecretKey key : new IterableIterator(keyRing.getSecretKeys())) { if (key.isMasterKey()) { return key; diff --git a/src/org/thialfihar/android/apg/AskForSecretKeyPassPhrase.java b/src/org/thialfihar/android/apg/AskForSecretKeyPassPhrase.java index 93078f235..01cd2de25 100644 --- a/src/org/thialfihar/android/apg/AskForSecretKeyPassPhrase.java +++ b/src/org/thialfihar/android/apg/AskForSecretKeyPassPhrase.java @@ -25,6 +25,7 @@ import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; +import android.content.DialogInterface.OnClickListener; import android.view.LayoutInflater; import android.view.View; import android.widget.EditText; @@ -42,6 +43,7 @@ public class AskForSecretKeyPassPhrase { alert.setTitle(R.string.title_authentification); final PGPSecretKey secretKey; + final Activity activity = context; if (secretKeyId == Id.key.symmetric || secretKeyId == Id.key.none) { secretKey = null; @@ -49,7 +51,16 @@ public class AskForSecretKeyPassPhrase { } else { secretKey = Apg.getMasterKey(Apg.getSecretKeyRing(secretKeyId)); if (secretKey == null) { - return null; + alert.setTitle(R.string.title_keyNotFound); + alert.setMessage(context.getString(R.string.keyNotFound, secretKeyId)); + alert.setPositiveButton(android.R.string.ok, new OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + activity.removeDialog(Id.dialog.pass_phrase); + } + }); + alert.setCancelable(false); + return alert.create(); } String userId = Apg.getMainUserIdSafe(context, secretKey); alert.setMessage(context.getString(R.string.passPhraseFor, userId)); @@ -65,7 +76,6 @@ public class AskForSecretKeyPassPhrase { alert.setView(view); final PassPhraseCallbackInterface cb = callback; - final Activity activity = context; alert.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) {