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