diff --git a/app/src/main/java/com/kunzisoft/keepass/database/Database.java b/app/src/main/java/com/kunzisoft/keepass/database/Database.java index c53db5b67..fc86035c6 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/Database.java +++ b/app/src/main/java/com/kunzisoft/keepass/database/Database.java @@ -360,11 +360,14 @@ public class Database { return new ArrayList<>(); } + public boolean allowEncryptionAlgorithmModification() { + return getAvailableEncryptionAlgorithms().size() > 1; + } + public void assignEncryptionAlgorithm(PwEncryptionAlgorithm algorithm) { switch (getPwDatabase().getVersion()) { case V4: ((PwDatabaseV4) getPwDatabase()).setEncryptionAlgorithm(algorithm); - // TODO Simplify ((PwDatabaseV4) getPwDatabase()).setDataEngine(algorithm.getCipherEngine()); ((PwDatabaseV4) getPwDatabase()).setDataCipher(algorithm.getDataCipher()); } @@ -384,6 +387,10 @@ public class Database { return new ArrayList<>(); } + public boolean allowKdfModification() { + return getAvailableKdfEngines().size() > 1; + } + public KdfEngine getKdfEngine() { return getPwDatabase().getKdfEngine(); } diff --git a/app/src/main/java/com/kunzisoft/keepass/settings/preferenceDialogFragment/DatabaseEncryptionAlgorithmPreferenceDialogFragmentCompat.java b/app/src/main/java/com/kunzisoft/keepass/settings/preferenceDialogFragment/DatabaseEncryptionAlgorithmPreferenceDialogFragmentCompat.java index bdd59ccad..72432878b 100644 --- a/app/src/main/java/com/kunzisoft/keepass/settings/preferenceDialogFragment/DatabaseEncryptionAlgorithmPreferenceDialogFragmentCompat.java +++ b/app/src/main/java/com/kunzisoft/keepass/settings/preferenceDialogFragment/DatabaseEncryptionAlgorithmPreferenceDialogFragmentCompat.java @@ -66,7 +66,8 @@ public class DatabaseEncryptionAlgorithmPreferenceDialogFragmentCompat extends D @Override public void onDialogClosed(boolean positiveResult) { - if ( positiveResult ) { + if ( positiveResult + && database.allowEncryptionAlgorithmModification()) { assert getContext() != null; if (algorithmSelected != null) { diff --git a/app/src/main/java/com/kunzisoft/keepass/settings/preferenceDialogFragment/DatabaseKeyDerivationPreferenceDialogFragmentCompat.java b/app/src/main/java/com/kunzisoft/keepass/settings/preferenceDialogFragment/DatabaseKeyDerivationPreferenceDialogFragmentCompat.java index d2f349141..48ffa5e2a 100644 --- a/app/src/main/java/com/kunzisoft/keepass/settings/preferenceDialogFragment/DatabaseKeyDerivationPreferenceDialogFragmentCompat.java +++ b/app/src/main/java/com/kunzisoft/keepass/settings/preferenceDialogFragment/DatabaseKeyDerivationPreferenceDialogFragmentCompat.java @@ -70,7 +70,8 @@ public class DatabaseKeyDerivationPreferenceDialogFragmentCompat extends Databas @Override public void onDialogClosed(boolean positiveResult) { - if ( positiveResult ) { + if ( positiveResult + && database.allowKdfModification()) { assert getContext() != null; if (kdfEngineSelected != null) { diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 264ca6465..46239231d 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -27,7 +27,9 @@ Ajouter une entrée Ajouter un groupe Ajouter une chaîne - Algorithme + Chiffrement + Algorithme de Chiffrement + Fonction de dérivation de clé Application timeout Temps avant le verrouillage de la base de données lorsque l\'application est inactive. Application