mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
Merge branch 'release/2.5.0.0beta11'
This commit is contained in:
@@ -1,3 +1,6 @@
|
|||||||
|
KeepassDX (2.5.0.0beta11)
|
||||||
|
* Fix crash in beta10 version
|
||||||
|
|
||||||
KeepassDX (2.5.0.0beta10)
|
KeepassDX (2.5.0.0beta10)
|
||||||
* Dynamically change Algorithm and Key Derivation Function in settings
|
* Dynamically change Algorithm and Key Derivation Function in settings
|
||||||
* Upgrade translations
|
* Upgrade translations
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ android {
|
|||||||
applicationId "com.kunzisoft.keepass"
|
applicationId "com.kunzisoft.keepass"
|
||||||
minSdkVersion 14
|
minSdkVersion 14
|
||||||
targetSdkVersion 27
|
targetSdkVersion 27
|
||||||
versionCode = 10
|
versionCode = 11
|
||||||
versionName = "2.5.0.0beta10"
|
versionName = "2.5.0.0beta11"
|
||||||
multiDexEnabled true
|
multiDexEnabled true
|
||||||
|
|
||||||
testApplicationId = "com.kunzisoft.keepass.tests"
|
testApplicationId = "com.kunzisoft.keepass.tests"
|
||||||
|
|||||||
@@ -215,6 +215,8 @@ public class Database {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void saveData(Context ctx, Uri uri) throws IOException, PwDbOutputException {
|
private void saveData(Context ctx, Uri uri) throws IOException, PwDbOutputException {
|
||||||
|
String errorMessage = "Failed to store database.";
|
||||||
|
|
||||||
if (uri.getScheme().equals("file")) {
|
if (uri.getScheme().equals("file")) {
|
||||||
String filename = uri.getPath();
|
String filename = uri.getPath();
|
||||||
File tempFile = new File(filename + ".tmp");
|
File tempFile = new File(filename + ".tmp");
|
||||||
@@ -226,7 +228,8 @@ public class Database {
|
|||||||
if (pmo != null)
|
if (pmo != null)
|
||||||
pmo.output();
|
pmo.output();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new IOException("Failed to store database.");
|
Log.e(TAG, errorMessage, e);
|
||||||
|
throw new IOException(errorMessage, e);
|
||||||
} finally {
|
} finally {
|
||||||
if (fos != null)
|
if (fos != null)
|
||||||
fos.close();
|
fos.close();
|
||||||
@@ -242,7 +245,7 @@ public class Database {
|
|||||||
File orig = new File(filename);
|
File orig = new File(filename);
|
||||||
|
|
||||||
if (!tempFile.renameTo(orig)) {
|
if (!tempFile.renameTo(orig)) {
|
||||||
throw new IOException("Failed to store database.");
|
throw new IOException(errorMessage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -253,7 +256,8 @@ public class Database {
|
|||||||
if (pmo != null)
|
if (pmo != null)
|
||||||
pmo.output();
|
pmo.output();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new IOException("Failed to store database.");
|
Log.e(TAG, errorMessage, e);
|
||||||
|
throw new IOException(errorMessage, e);
|
||||||
} finally {
|
} finally {
|
||||||
if (os != null)
|
if (os != null)
|
||||||
os.close();
|
os.close();
|
||||||
@@ -392,14 +396,18 @@ public class Database {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public KdfEngine getKdfEngine() {
|
public KdfEngine getKdfEngine() {
|
||||||
return getPwDatabase().getKdfEngine();
|
KdfEngine kdfEngine = getPwDatabase().getKdfEngine();
|
||||||
|
if (kdfEngine == null)
|
||||||
|
return KdfFactory.aesKdf;
|
||||||
|
return kdfEngine;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void assignKdfEngine(KdfEngine kdfEngine) {
|
public void assignKdfEngine(KdfEngine kdfEngine) {
|
||||||
switch (getPwDatabase().getVersion()) {
|
switch (getPwDatabase().getVersion()) {
|
||||||
case V4:
|
case V4:
|
||||||
PwDatabaseV4 db = ((PwDatabaseV4) getPwDatabase());
|
PwDatabaseV4 db = ((PwDatabaseV4) getPwDatabase());
|
||||||
if (!db.getKdfParameters().kdfUUID.equals(kdfEngine.getDefaultParameters().kdfUUID))
|
if (db.getKdfParameters() == null
|
||||||
|
|| !db.getKdfParameters().kdfUUID.equals(kdfEngine.getDefaultParameters().kdfUUID))
|
||||||
db.setKdfParameters(kdfEngine.getDefaultParameters());
|
db.setKdfParameters(kdfEngine.getDefaultParameters());
|
||||||
setNumberKeyEncryptionRounds(kdfEngine.getDefaultKeyRounds());
|
setNumberKeyEncryptionRounds(kdfEngine.getDefaultKeyRounds());
|
||||||
setMemoryUsage(kdfEngine.getDefaultMemoryUsage());
|
setMemoryUsage(kdfEngine.getDefaultMemoryUsage());
|
||||||
|
|||||||
@@ -100,7 +100,6 @@ public class PwDbHeaderOutputV4 extends PwDbHeaderOutput {
|
|||||||
writeHeaderField(PwDbHeaderV4.PwDbHeaderV4Fields.TransformRounds, LEDataOutputStream.writeLongBuf(db.getNumberKeyEncryptionRounds()));
|
writeHeaderField(PwDbHeaderV4.PwDbHeaderV4Fields.TransformRounds, LEDataOutputStream.writeLongBuf(db.getNumberKeyEncryptionRounds()));
|
||||||
} else {
|
} else {
|
||||||
writeHeaderField(PwDbHeaderV4.PwDbHeaderV4Fields.KdfParameters, KdfParameters.serialize(db.getKdfParameters()));
|
writeHeaderField(PwDbHeaderV4.PwDbHeaderV4Fields.KdfParameters, KdfParameters.serialize(db.getKdfParameters()));
|
||||||
// TODO verify serialize in all cases
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (header.encryptionIV.length > 0) {
|
if (header.encryptionIV.length > 0) {
|
||||||
|
|||||||
@@ -293,6 +293,9 @@ public class PwDbV4Output extends PwDbOutput<PwDbHeaderV4> {
|
|||||||
}
|
}
|
||||||
random.nextBytes(header.encryptionIV);
|
random.nextBytes(header.encryptionIV);
|
||||||
|
|
||||||
|
if (mPM.getKdfParameters() == null) {
|
||||||
|
mPM.setKdfParameters(KdfFactory.aesKdf.getDefaultParameters());
|
||||||
|
}
|
||||||
KdfEngine kdf = KdfFactory.get(mPM.getKdfParameters());
|
KdfEngine kdf = KdfFactory.get(mPM.getKdfParameters());
|
||||||
kdf.randomize(mPM.getKdfParameters());
|
kdf.randomize(mPM.getKdfParameters());
|
||||||
|
|
||||||
|
|||||||
6
fastlane/metadata/android/en-US/changelogs/11.txt
Normal file
6
fastlane/metadata/android/en-US/changelogs/11.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
* Dynamically change Algorithm and Key Derivation Function in settings
|
||||||
|
* Upgrade translations
|
||||||
|
* New red volcano theme, fix classic dark theme
|
||||||
|
* Add Material Icon Pack to the Free version
|
||||||
|
* Update fingerprint state with checkbox
|
||||||
|
* Fix bugs / crash in beta10 version
|
||||||
6
fastlane/metadata/android/fr-FR/changelogs/11.txt
Normal file
6
fastlane/metadata/android/fr-FR/changelogs/11.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
* Modification dynamique de l'algorithme et de la fonction de dérivation de clé dans les paramètres
|
||||||
|
* Mise à jour des traductions
|
||||||
|
* Nouveau thème red volcano, correction du thème sombre classic
|
||||||
|
* Ajout du Pack d'Icones Material à la version gratuite
|
||||||
|
* Mise à jour de l'état de l'empreinte digitale avec la boite à cocher
|
||||||
|
* Corrections de bugs / crash dans la version beta10
|
||||||
Reference in New Issue
Block a user