diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java index c361414a8..fa9444862 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/PassphraseDialogActivity.java @@ -31,6 +31,7 @@ import android.support.v4.app.FragmentActivity; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; +import android.view.WindowManager; import android.view.inputmethod.EditorInfo; import android.view.inputmethod.InputMethodManager; import android.widget.Button; @@ -64,6 +65,15 @@ public class PassphraseDialogActivity extends FragmentActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + // do not allow screenshots of passphrase input + // to prevent "too easy" passphrase theft by root apps + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) { + getWindow().setFlags( + WindowManager.LayoutParams.FLAG_SECURE, + WindowManager.LayoutParams.FLAG_SECURE + ); + } + // this activity itself has no content view (see manifest) long keyId = getIntent().getLongExtra(EXTRA_SECRET_KEY_ID, 0); diff --git a/settings.gradle b/settings.gradle index 038e9da23..997dcc838 100644 --- a/settings.gradle +++ b/settings.gradle @@ -15,3 +15,4 @@ include ':extern:KeybaseLib:Lib' include ':extern:TokenAutoComplete:library' include ':extern:openpgp-card-nfc-lib:library' include ':extern:safeslinger-exchange' +include ':OpenKeychain-Test'