mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
Merge branch 'release/2.9.4'
This commit is contained in:
@@ -1,3 +1,7 @@
|
|||||||
|
KeePassDX(2.9.4)
|
||||||
|
* Fix small bugs #812
|
||||||
|
* Argon2ID implementation #791
|
||||||
|
|
||||||
KeePassDX(2.9.3)
|
KeePassDX(2.9.3)
|
||||||
* Unlock database by device credentials (PIN/Password/Pattern) #779 #102
|
* Unlock database by device credentials (PIN/Password/Pattern) #779 #102
|
||||||
* Advanced unlock with timeout #102 #437 #566
|
* Advanced unlock with timeout #102 #437 #566
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ android {
|
|||||||
applicationId "com.kunzisoft.keepass"
|
applicationId "com.kunzisoft.keepass"
|
||||||
minSdkVersion 14
|
minSdkVersion 14
|
||||||
targetSdkVersion 30
|
targetSdkVersion 30
|
||||||
versionCode = 47
|
versionCode = 48
|
||||||
versionName = "2.9.3"
|
versionName = "2.9.4"
|
||||||
multiDexEnabled true
|
multiDexEnabled true
|
||||||
|
|
||||||
testApplicationId = "com.kunzisoft.keepass.tests"
|
testApplicationId = "com.kunzisoft.keepass.tests"
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
package com.kunzisoft.keepass.crypto.keyDerivation
|
package com.kunzisoft.keepass.crypto.keyDerivation
|
||||||
|
|
||||||
import android.content.res.Resources
|
import android.content.res.Resources
|
||||||
|
import androidx.annotation.StringRes
|
||||||
import com.kunzisoft.keepass.R
|
import com.kunzisoft.keepass.R
|
||||||
import com.kunzisoft.keepass.stream.bytes16ToUuid
|
import com.kunzisoft.keepass.stream.bytes16ToUuid
|
||||||
import com.kunzisoft.keepass.utils.UnsignedInt
|
import com.kunzisoft.keepass.utils.UnsignedInt
|
||||||
@@ -27,7 +28,11 @@ import java.io.IOException
|
|||||||
import java.security.SecureRandom
|
import java.security.SecureRandom
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class Argon2Kdf internal constructor() : KdfEngine() {
|
class Argon2Kdf(private val type: Type) : KdfEngine() {
|
||||||
|
|
||||||
|
init {
|
||||||
|
uuid = type.CIPHER_UUID
|
||||||
|
}
|
||||||
|
|
||||||
override val defaultParameters: KdfParameters
|
override val defaultParameters: KdfParameters
|
||||||
get() {
|
get() {
|
||||||
@@ -45,12 +50,8 @@ class Argon2Kdf internal constructor() : KdfEngine() {
|
|||||||
override val defaultKeyRounds: Long
|
override val defaultKeyRounds: Long
|
||||||
get() = DEFAULT_ITERATIONS
|
get() = DEFAULT_ITERATIONS
|
||||||
|
|
||||||
init {
|
|
||||||
uuid = CIPHER_UUID
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun getName(resources: Resources): String {
|
override fun getName(resources: Resources): String {
|
||||||
return resources.getString(R.string.kdf_Argon2)
|
return resources.getString(type.nameId)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Throws(IOException::class)
|
@Throws(IOException::class)
|
||||||
@@ -72,7 +73,9 @@ class Argon2Kdf internal constructor() : KdfEngine() {
|
|||||||
val secretKey = kdfParameters.getByteArray(PARAM_SECRET_KEY)
|
val secretKey = kdfParameters.getByteArray(PARAM_SECRET_KEY)
|
||||||
val assocData = kdfParameters.getByteArray(PARAM_ASSOC_DATA)
|
val assocData = kdfParameters.getByteArray(PARAM_ASSOC_DATA)
|
||||||
|
|
||||||
return Argon2Native.transformKey(masterKey,
|
return Argon2Native.transformKey(
|
||||||
|
type,
|
||||||
|
masterKey,
|
||||||
salt,
|
salt,
|
||||||
parallelism,
|
parallelism,
|
||||||
memory,
|
memory,
|
||||||
@@ -141,9 +144,8 @@ class Argon2Kdf internal constructor() : KdfEngine() {
|
|||||||
override val maxParallelism: Long
|
override val maxParallelism: Long
|
||||||
get() = MAX_PARALLELISM
|
get() = MAX_PARALLELISM
|
||||||
|
|
||||||
companion object {
|
enum class Type(val CIPHER_UUID: UUID, @StringRes val nameId: Int) {
|
||||||
|
ARGON2_D(bytes16ToUuid(
|
||||||
val CIPHER_UUID: UUID = bytes16ToUuid(
|
|
||||||
byteArrayOf(0xEF.toByte(),
|
byteArrayOf(0xEF.toByte(),
|
||||||
0x63.toByte(),
|
0x63.toByte(),
|
||||||
0x6D.toByte(),
|
0x6D.toByte(),
|
||||||
@@ -159,7 +161,27 @@ class Argon2Kdf internal constructor() : KdfEngine() {
|
|||||||
0x03.toByte(),
|
0x03.toByte(),
|
||||||
0xE3.toByte(),
|
0xE3.toByte(),
|
||||||
0x0A.toByte(),
|
0x0A.toByte(),
|
||||||
0x0C.toByte()))
|
0x0C.toByte())), R.string.kdf_Argon2d),
|
||||||
|
ARGON2_ID(bytes16ToUuid(
|
||||||
|
byteArrayOf(0x9E.toByte(),
|
||||||
|
0x29.toByte(),
|
||||||
|
0x8B.toByte(),
|
||||||
|
0x19.toByte(),
|
||||||
|
0x56.toByte(),
|
||||||
|
0xDB.toByte(),
|
||||||
|
0x47.toByte(),
|
||||||
|
0x73.toByte(),
|
||||||
|
0xB2.toByte(),
|
||||||
|
0x3D.toByte(),
|
||||||
|
0xFC.toByte(),
|
||||||
|
0x3E.toByte(),
|
||||||
|
0xC6.toByte(),
|
||||||
|
0xF0.toByte(),
|
||||||
|
0xA1.toByte(),
|
||||||
|
0xE6.toByte())), R.string.kdf_Argon2id);
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
|
||||||
private const val PARAM_SALT = "S" // byte[]
|
private const val PARAM_SALT = "S" // byte[]
|
||||||
private const val PARAM_PARALLELISM = "P" // UInt32
|
private const val PARAM_PARALLELISM = "P" // UInt32
|
||||||
|
|||||||
@@ -26,12 +26,29 @@ import java.io.IOException;
|
|||||||
|
|
||||||
public class Argon2Native {
|
public class Argon2Native {
|
||||||
|
|
||||||
public static byte[] transformKey(byte[] password, byte[] salt, UnsignedInt parallelism,
|
enum CType {
|
||||||
|
ARGON2_D(0),
|
||||||
|
ARGON2_I(1),
|
||||||
|
ARGON2_ID(2);
|
||||||
|
|
||||||
|
int cValue = 0;
|
||||||
|
|
||||||
|
CType(int i) {
|
||||||
|
cValue = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static byte[] transformKey(Argon2Kdf.Type type, byte[] password, byte[] salt, UnsignedInt parallelism,
|
||||||
UnsignedInt memory, UnsignedInt iterations, byte[] secretKey,
|
UnsignedInt memory, UnsignedInt iterations, byte[] secretKey,
|
||||||
byte[] associatedData, UnsignedInt version) throws IOException {
|
byte[] associatedData, UnsignedInt version) throws IOException {
|
||||||
NativeLib.INSTANCE.init();
|
NativeLib.INSTANCE.init();
|
||||||
|
|
||||||
|
CType cType = CType.ARGON2_D;
|
||||||
|
if (type.equals(Argon2Kdf.Type.ARGON2_ID))
|
||||||
|
cType = CType.ARGON2_ID;
|
||||||
|
|
||||||
return nTransformMasterKey(
|
return nTransformMasterKey(
|
||||||
|
cType.cValue,
|
||||||
password,
|
password,
|
||||||
salt,
|
salt,
|
||||||
parallelism.toKotlinInt(),
|
parallelism.toKotlinInt(),
|
||||||
@@ -42,7 +59,7 @@ public class Argon2Native {
|
|||||||
version.toKotlinInt());
|
version.toKotlinInt());
|
||||||
}
|
}
|
||||||
|
|
||||||
private static native byte[] nTransformMasterKey(byte[] password, byte[] salt, int parallelism,
|
private static native byte[] nTransformMasterKey(int type, byte[] password, byte[] salt, int parallelism,
|
||||||
int memory, int iterations, byte[] secretKey,
|
int memory, int iterations, byte[] secretKey,
|
||||||
byte[] associatedData, int version) throws IOException;
|
byte[] associatedData, int version) throws IOException;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,5 +21,6 @@ package com.kunzisoft.keepass.crypto.keyDerivation
|
|||||||
|
|
||||||
object KdfFactory {
|
object KdfFactory {
|
||||||
var aesKdf = AesKdf()
|
var aesKdf = AesKdf()
|
||||||
var argon2Kdf = Argon2Kdf()
|
var argon2dKdf = Argon2Kdf(Argon2Kdf.Type.ARGON2_D)
|
||||||
|
var argon2idKdf = Argon2Kdf(Argon2Kdf.Type.ARGON2_ID)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -113,7 +113,8 @@ class DatabaseKDBX : DatabaseVersioned<UUID, UUID, GroupKDBX, EntryKDBX> {
|
|||||||
|
|
||||||
init {
|
init {
|
||||||
kdfList.add(KdfFactory.aesKdf)
|
kdfList.add(KdfFactory.aesKdf)
|
||||||
kdfList.add(KdfFactory.argon2Kdf)
|
kdfList.add(KdfFactory.argon2dKdf)
|
||||||
|
kdfList.add(KdfFactory.argon2idKdf)
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor()
|
constructor()
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ void throwExceptionF(JNIEnv *env, jclass exception, const char *format, ...) {
|
|||||||
|
|
||||||
JNIEXPORT jbyteArray
|
JNIEXPORT jbyteArray
|
||||||
JNICALL Java_com_kunzisoft_keepass_crypto_keyDerivation_Argon2Native_nTransformMasterKey(JNIEnv *env,
|
JNICALL Java_com_kunzisoft_keepass_crypto_keyDerivation_Argon2Native_nTransformMasterKey(JNIEnv *env,
|
||||||
jobject this, jbyteArray password, jbyteArray salt, jint parallelism, jint memory,
|
jobject this, jint type, jbyteArray password, jbyteArray salt, jint parallelism, jint memory,
|
||||||
jint iterations, jbyteArray secretKey, jbyteArray associatedData, jint version) {
|
jint iterations, jbyteArray secretKey, jbyteArray associatedData, jint version) {
|
||||||
|
|
||||||
argon2_context context;
|
argon2_context context;
|
||||||
@@ -169,7 +169,7 @@ JNICALL Java_com_kunzisoft_keepass_crypto_keyDerivation_Argon2Native_nTransformM
|
|||||||
context.flags = ARGON2_DEFAULT_FLAGS;
|
context.flags = ARGON2_DEFAULT_FLAGS;
|
||||||
context.version = (uint32_t) version;
|
context.version = (uint32_t) version;
|
||||||
|
|
||||||
int argonResult = argon2_ctx(&context, Argon2_d);
|
int argonResult = argon2_ctx(&context, (argon2_type) type);
|
||||||
|
|
||||||
jbyteArray result;
|
jbyteArray result;
|
||||||
if (argonResult != ARGON2_OK) {
|
if (argonResult != ARGON2_OK) {
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
|
|
||||||
const char *argon2_type2string(argon2_type type, int uppercase) {
|
const char *argon2_type2string(argon2_type type, int uppercase) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
|
default:
|
||||||
case Argon2_d:
|
case Argon2_d:
|
||||||
return uppercase ? "Argon2d" : "argon2d";
|
return uppercase ? "Argon2d" : "argon2d";
|
||||||
case Argon2_i:
|
case Argon2_i:
|
||||||
|
|||||||
@@ -296,7 +296,6 @@
|
|||||||
<string name="contribute">Zapojit se</string>
|
<string name="contribute">Zapojit se</string>
|
||||||
<string name="encryption_chacha20">ChaCha20</string>
|
<string name="encryption_chacha20">ChaCha20</string>
|
||||||
<string name="kdf_AES">AES</string>
|
<string name="kdf_AES">AES</string>
|
||||||
<string name="kdf_Argon2">Argon2</string>
|
|
||||||
<string name="style_choose_title">Vzhled aplikace</string>
|
<string name="style_choose_title">Vzhled aplikace</string>
|
||||||
<string name="style_choose_summary">Motiv vzhledu aplikace</string>
|
<string name="style_choose_summary">Motiv vzhledu aplikace</string>
|
||||||
<string name="icon_pack_choose_title">Sada ikon</string>
|
<string name="icon_pack_choose_title">Sada ikon</string>
|
||||||
|
|||||||
@@ -295,7 +295,6 @@
|
|||||||
<string name="contribute">Bidrag</string>
|
<string name="contribute">Bidrag</string>
|
||||||
<string name="encryption_chacha20">ChaCha20</string>
|
<string name="encryption_chacha20">ChaCha20</string>
|
||||||
<string name="kdf_AES">AES</string>
|
<string name="kdf_AES">AES</string>
|
||||||
<string name="kdf_Argon2">Argon2</string>
|
|
||||||
<string name="style_choose_title">Tema</string>
|
<string name="style_choose_title">Tema</string>
|
||||||
<string name="style_choose_summary">Tema, der bruges i programmet</string>
|
<string name="style_choose_summary">Tema, der bruges i programmet</string>
|
||||||
<string name="icon_pack_choose_title">Ikonpakke</string>
|
<string name="icon_pack_choose_title">Ikonpakke</string>
|
||||||
|
|||||||
@@ -281,7 +281,6 @@
|
|||||||
<string name="contribute">Unterstützen</string>
|
<string name="contribute">Unterstützen</string>
|
||||||
<string name="encryption_chacha20">ChaCha20</string>
|
<string name="encryption_chacha20">ChaCha20</string>
|
||||||
<string name="kdf_AES">AES</string>
|
<string name="kdf_AES">AES</string>
|
||||||
<string name="kdf_Argon2">Argon2</string>
|
|
||||||
<string name="icon_pack_choose_title">Symbolpaket</string>
|
<string name="icon_pack_choose_title">Symbolpaket</string>
|
||||||
<string name="icon_pack_choose_summary">In der App verwendetes Symbolpaket</string>
|
<string name="icon_pack_choose_summary">In der App verwendetes Symbolpaket</string>
|
||||||
<string name="error_move_folder_in_itself">Eine Gruppe kann nicht in sich selbst verschoben werden.</string>
|
<string name="error_move_folder_in_itself">Eine Gruppe kann nicht in sich selbst verschoben werden.</string>
|
||||||
|
|||||||
@@ -262,7 +262,6 @@
|
|||||||
<string name="contribute">Συνεισφορά</string>
|
<string name="contribute">Συνεισφορά</string>
|
||||||
<string name="encryption_chacha20">ChaCha20</string>
|
<string name="encryption_chacha20">ChaCha20</string>
|
||||||
<string name="kdf_AES">AES</string>
|
<string name="kdf_AES">AES</string>
|
||||||
<string name="kdf_Argon2">Argon2</string>
|
|
||||||
<string name="style_choose_title">Θέμα Εφαρμογής</string>
|
<string name="style_choose_title">Θέμα Εφαρμογής</string>
|
||||||
<string name="style_choose_summary">Θέμα που χρησιμοποιείται στην εφαρμογή</string>
|
<string name="style_choose_summary">Θέμα που χρησιμοποιείται στην εφαρμογή</string>
|
||||||
<string name="icon_pack_choose_title">Πακέτο Εικονιδίων</string>
|
<string name="icon_pack_choose_title">Πακέτο Εικονιδίων</string>
|
||||||
|
|||||||
@@ -273,7 +273,6 @@
|
|||||||
<string name="contribute">Contribuir</string>
|
<string name="contribute">Contribuir</string>
|
||||||
<string name="encryption_chacha20">ChaCha20</string>
|
<string name="encryption_chacha20">ChaCha20</string>
|
||||||
<string name="kdf_AES">AES-KDF</string>
|
<string name="kdf_AES">AES-KDF</string>
|
||||||
<string name="kdf_Argon2">Argon2</string>
|
|
||||||
<string name="style_choose_title">Tema de aplicación</string>
|
<string name="style_choose_title">Tema de aplicación</string>
|
||||||
<string name="style_choose_summary">Tema utilizado en la aplicación</string>
|
<string name="style_choose_summary">Tema utilizado en la aplicación</string>
|
||||||
<string name="icon_pack_choose_title">Seleccione un paquete de iconos</string>
|
<string name="icon_pack_choose_title">Seleccione un paquete de iconos</string>
|
||||||
|
|||||||
@@ -262,7 +262,6 @@
|
|||||||
<string name="encryption_twofish">Twofish</string>
|
<string name="encryption_twofish">Twofish</string>
|
||||||
<string name="encryption_chacha20">ChaCha20</string>
|
<string name="encryption_chacha20">ChaCha20</string>
|
||||||
<string name="kdf_AES">AES</string>
|
<string name="kdf_AES">AES</string>
|
||||||
<string name="kdf_Argon2">Argon2</string>
|
|
||||||
<string-array name="timeout_options">
|
<string-array name="timeout_options">
|
||||||
<item>5 secondes</item>
|
<item>5 secondes</item>
|
||||||
<item>10 secondes</item>
|
<item>10 secondes</item>
|
||||||
|
|||||||
@@ -394,7 +394,6 @@
|
|||||||
<string name="html_text_dev_feature_contibute"><strong>Doprinosom</strong>,</string>
|
<string name="html_text_dev_feature_contibute"><strong>Doprinosom</strong>,</string>
|
||||||
<string name="education_entry_new_field_title">Dodaj prilagođena polja</string>
|
<string name="education_entry_new_field_title">Dodaj prilagođena polja</string>
|
||||||
<string name="education_lock_summary">Zaključaj bazu podataka brzo, aplikaciju možeš postaviti tako da bazu nakon nekog vremena zaključa i kad se ekran isključi.</string>
|
<string name="education_lock_summary">Zaključaj bazu podataka brzo, aplikaciju možeš postaviti tako da bazu nakon nekog vremena zaključa i kad se ekran isključi.</string>
|
||||||
<string name="kdf_Argon2">Argon2</string>
|
|
||||||
<string name="encryption_twofish">Twofish</string>
|
<string name="encryption_twofish">Twofish</string>
|
||||||
<string name="show_recent_files_summary">Prikaži mjesto nedavnih baza podataka</string>
|
<string name="show_recent_files_summary">Prikaži mjesto nedavnih baza podataka</string>
|
||||||
<string name="education_advanced_unlock_summary">Za brzo otključavanje baze podataka, poveži lozinku sa skeniranom biometrijom.</string>
|
<string name="education_advanced_unlock_summary">Za brzo otključavanje baze podataka, poveži lozinku sa skeniranom biometrijom.</string>
|
||||||
|
|||||||
@@ -317,7 +317,6 @@
|
|||||||
<string name="contribute">Támogatás</string>
|
<string name="contribute">Támogatás</string>
|
||||||
<string name="encryption_chacha20">ChaCha20</string>
|
<string name="encryption_chacha20">ChaCha20</string>
|
||||||
<string name="kdf_AES">AES</string>
|
<string name="kdf_AES">AES</string>
|
||||||
<string name="kdf_Argon2">Argon2</string>
|
|
||||||
<string name="style_choose_title">Alkalmazástéma</string>
|
<string name="style_choose_title">Alkalmazástéma</string>
|
||||||
<string name="style_choose_summary">Az alkalmazásban használt téma</string>
|
<string name="style_choose_summary">Az alkalmazásban használt téma</string>
|
||||||
<string name="icon_pack_choose_title">Ikoncsomag</string>
|
<string name="icon_pack_choose_title">Ikoncsomag</string>
|
||||||
|
|||||||
@@ -295,7 +295,6 @@
|
|||||||
<string name="encryption_twofish">Twofish</string>
|
<string name="encryption_twofish">Twofish</string>
|
||||||
<string name="encryption_chacha20">ChaCha20</string>
|
<string name="encryption_chacha20">ChaCha20</string>
|
||||||
<string name="kdf_AES">AES</string>
|
<string name="kdf_AES">AES</string>
|
||||||
<string name="kdf_Argon2">Argon2</string>
|
|
||||||
<string name="style_choose_title">Tema dell\'app</string>
|
<string name="style_choose_title">Tema dell\'app</string>
|
||||||
<string name="style_choose_summary">Tema usato nell\'app</string>
|
<string name="style_choose_summary">Tema usato nell\'app</string>
|
||||||
<string name="icon_pack_choose_title">Pacchetto icone</string>
|
<string name="icon_pack_choose_title">Pacchetto icone</string>
|
||||||
|
|||||||
@@ -475,7 +475,6 @@
|
|||||||
<string name="encryption_twofish">Twofish</string>
|
<string name="encryption_twofish">Twofish</string>
|
||||||
<string name="encryption_chacha20">ChaCha20</string>
|
<string name="encryption_chacha20">ChaCha20</string>
|
||||||
<string name="kdf_AES">AES</string>
|
<string name="kdf_AES">AES</string>
|
||||||
<string name="kdf_Argon2">Argon2</string>
|
|
||||||
<string-array name="timeout_options">
|
<string-array name="timeout_options">
|
||||||
<item>5秒</item>
|
<item>5秒</item>
|
||||||
<item>10秒</item>
|
<item>10秒</item>
|
||||||
|
|||||||
@@ -192,7 +192,6 @@
|
|||||||
<string name="extended_ASCII">വിപുലീകരിച്ച ASCII</string>
|
<string name="extended_ASCII">വിപുലീകരിച്ച ASCII</string>
|
||||||
<string name="icon_pack_choose_summary">ആപ്പിൽ ഉപയോഗിച്ചിരിക്കുന്ന ഐക്കൺ പാക്ക്</string>
|
<string name="icon_pack_choose_summary">ആപ്പിൽ ഉപയോഗിച്ചിരിക്കുന്ന ഐക്കൺ പാക്ക്</string>
|
||||||
<string name="style_choose_title">അപ്പ്ലിക്കേഷന്റെ തീം</string>
|
<string name="style_choose_title">അപ്പ്ലിക്കേഷന്റെ തീം</string>
|
||||||
<string name="kdf_Argon2">Argon2</string>
|
|
||||||
<string name="download_finalization">അന്തിമമാക്കുന്നു. . .</string>
|
<string name="download_finalization">അന്തിമമാക്കുന്നു. . .</string>
|
||||||
<string name="html_text_dev_feature_thanks">നിങ്ങളുടെ സംഭാവനയ്ക്ക് ഒരുപാട് നന്ദി.</string>
|
<string name="html_text_dev_feature_thanks">നിങ്ങളുടെ സംഭാവനയ്ക്ക് ഒരുപാട് നന്ദി.</string>
|
||||||
<string name="education_unlock_title">ഡാറ്റാബേസ് തുറക്കുക</string>
|
<string name="education_unlock_title">ഡാറ്റാബേസ് തുറക്കുക</string>
|
||||||
|
|||||||
@@ -284,7 +284,6 @@
|
|||||||
<string name="encryption_twofish">Twofish</string>
|
<string name="encryption_twofish">Twofish</string>
|
||||||
<string name="encryption_chacha20">ChaCha20</string>
|
<string name="encryption_chacha20">ChaCha20</string>
|
||||||
<string name="kdf_AES">AES</string>
|
<string name="kdf_AES">AES</string>
|
||||||
<string name="kdf_Argon2">Argon2</string>
|
|
||||||
<string name="style_choose_title">Velg en drakt</string>
|
<string name="style_choose_title">Velg en drakt</string>
|
||||||
<string name="style_choose_summary">Tilpass programdrakten ved å endre fargene</string>
|
<string name="style_choose_summary">Tilpass programdrakten ved å endre fargene</string>
|
||||||
<string name="icon_pack_choose_title">Velg en ikonpakke</string>
|
<string name="icon_pack_choose_title">Velg en ikonpakke</string>
|
||||||
|
|||||||
@@ -302,7 +302,6 @@
|
|||||||
<string name="contribute">Bijdragen</string>
|
<string name="contribute">Bijdragen</string>
|
||||||
<string name="encryption_chacha20">ChaCha20</string>
|
<string name="encryption_chacha20">ChaCha20</string>
|
||||||
<string name="kdf_AES">AES</string>
|
<string name="kdf_AES">AES</string>
|
||||||
<string name="kdf_Argon2">Argon2</string>
|
|
||||||
<string name="style_choose_title">App-thema</string>
|
<string name="style_choose_title">App-thema</string>
|
||||||
<string name="style_choose_summary">Thema gebruikt in de app</string>
|
<string name="style_choose_summary">Thema gebruikt in de app</string>
|
||||||
<string name="icon_pack_choose_title">Pictogrammenverzameling</string>
|
<string name="icon_pack_choose_title">Pictogrammenverzameling</string>
|
||||||
|
|||||||
@@ -298,7 +298,6 @@
|
|||||||
<string name="contribute">Przyczyń się</string>
|
<string name="contribute">Przyczyń się</string>
|
||||||
<string name="encryption_chacha20">ChaCha20</string>
|
<string name="encryption_chacha20">ChaCha20</string>
|
||||||
<string name="kdf_AES">AES</string>
|
<string name="kdf_AES">AES</string>
|
||||||
<string name="kdf_Argon2">Argon2</string>
|
|
||||||
<string name="style_choose_title">Motyw aplikacji</string>
|
<string name="style_choose_title">Motyw aplikacji</string>
|
||||||
<string name="style_choose_summary">Motyw używany w aplikacji</string>
|
<string name="style_choose_summary">Motyw używany w aplikacji</string>
|
||||||
<string name="icon_pack_choose_title">Pakiet ikon</string>
|
<string name="icon_pack_choose_title">Pakiet ikon</string>
|
||||||
|
|||||||
@@ -294,7 +294,6 @@
|
|||||||
<string name="contribute">Contribuir</string>
|
<string name="contribute">Contribuir</string>
|
||||||
<string name="encryption_chacha20">ChaCha20</string>
|
<string name="encryption_chacha20">ChaCha20</string>
|
||||||
<string name="kdf_AES">AES</string>
|
<string name="kdf_AES">AES</string>
|
||||||
<string name="kdf_Argon2">Argon2</string>
|
|
||||||
<string name="style_choose_title">Tema do aplicativo</string>
|
<string name="style_choose_title">Tema do aplicativo</string>
|
||||||
<string name="style_choose_summary">Tema usado no aplicativo</string>
|
<string name="style_choose_summary">Tema usado no aplicativo</string>
|
||||||
<string name="icon_pack_choose_title">Pacote de ícones</string>
|
<string name="icon_pack_choose_title">Pacote de ícones</string>
|
||||||
|
|||||||
@@ -281,7 +281,6 @@
|
|||||||
<string name="contribute">Contribuir</string>
|
<string name="contribute">Contribuir</string>
|
||||||
<string name="encryption_chacha20">ChaCha20</string>
|
<string name="encryption_chacha20">ChaCha20</string>
|
||||||
<string name="kdf_AES">AES</string>
|
<string name="kdf_AES">AES</string>
|
||||||
<string name="kdf_Argon2">Argon2</string>
|
|
||||||
<string name="style_choose_title">Tema da app</string>
|
<string name="style_choose_title">Tema da app</string>
|
||||||
<string name="style_choose_summary">Tema usado na app</string>
|
<string name="style_choose_summary">Tema usado na app</string>
|
||||||
<string name="icon_pack_choose_title">Pacote de ícones</string>
|
<string name="icon_pack_choose_title">Pacote de ícones</string>
|
||||||
|
|||||||
@@ -20,7 +20,6 @@
|
|||||||
<string name="icon_pack_choose_title">Pacote de ícones</string>
|
<string name="icon_pack_choose_title">Pacote de ícones</string>
|
||||||
<string name="style_choose_summary">Tema usado na app</string>
|
<string name="style_choose_summary">Tema usado na app</string>
|
||||||
<string name="style_choose_title">Tema da app</string>
|
<string name="style_choose_title">Tema da app</string>
|
||||||
<string name="kdf_Argon2">Argon2</string>
|
|
||||||
<string name="kdf_AES">AES</string>
|
<string name="kdf_AES">AES</string>
|
||||||
<string name="encryption_chacha20">ChaCha20</string>
|
<string name="encryption_chacha20">ChaCha20</string>
|
||||||
<string name="encryption_twofish">Twofish</string>
|
<string name="encryption_twofish">Twofish</string>
|
||||||
|
|||||||
@@ -406,7 +406,6 @@
|
|||||||
<string name="encryption_twofish">Twofish</string>
|
<string name="encryption_twofish">Twofish</string>
|
||||||
<string name="encryption_chacha20">ChaCha20</string>
|
<string name="encryption_chacha20">ChaCha20</string>
|
||||||
<string name="kdf_AES">AES</string>
|
<string name="kdf_AES">AES</string>
|
||||||
<string name="kdf_Argon2">Argon2</string>
|
|
||||||
<string name="style_choose_title">Tema aplicației</string>
|
<string name="style_choose_title">Tema aplicației</string>
|
||||||
<string name="style_choose_summary">Tema folosită în aplicație</string>
|
<string name="style_choose_summary">Tema folosită în aplicație</string>
|
||||||
<string name="icon_pack_choose_title">Pachet de pictograme</string>
|
<string name="icon_pack_choose_title">Pachet de pictograme</string>
|
||||||
|
|||||||
@@ -298,7 +298,6 @@
|
|||||||
<string name="contribute">Содействие</string>
|
<string name="contribute">Содействие</string>
|
||||||
<string name="encryption_chacha20">ChaCha20</string>
|
<string name="encryption_chacha20">ChaCha20</string>
|
||||||
<string name="kdf_AES">AES</string>
|
<string name="kdf_AES">AES</string>
|
||||||
<string name="kdf_Argon2">Argon2</string>
|
|
||||||
<string name="style_choose_title">Тема приложения</string>
|
<string name="style_choose_title">Тема приложения</string>
|
||||||
<string name="style_choose_summary">Тема, используемая в приложении</string>
|
<string name="style_choose_summary">Тема, используемая в приложении</string>
|
||||||
<string name="icon_pack_choose_title">Набор значков</string>
|
<string name="icon_pack_choose_title">Набор значков</string>
|
||||||
|
|||||||
@@ -281,7 +281,6 @@
|
|||||||
<string name="contribute">Bidra</string>
|
<string name="contribute">Bidra</string>
|
||||||
<string name="encryption_chacha20">ChaCha20</string>
|
<string name="encryption_chacha20">ChaCha20</string>
|
||||||
<string name="kdf_AES">AES</string>
|
<string name="kdf_AES">AES</string>
|
||||||
<string name="kdf_Argon2">Argon2</string>
|
|
||||||
<string name="style_choose_title">Apptema</string>
|
<string name="style_choose_title">Apptema</string>
|
||||||
<string name="style_choose_summary">Tema som används i appen</string>
|
<string name="style_choose_summary">Tema som används i appen</string>
|
||||||
<string name="icon_pack_choose_title">Ikonpaket</string>
|
<string name="icon_pack_choose_title">Ikonpaket</string>
|
||||||
|
|||||||
@@ -300,7 +300,6 @@
|
|||||||
<string name="encryption_twofish">Twofish</string>
|
<string name="encryption_twofish">Twofish</string>
|
||||||
<string name="encryption_chacha20">ChaCha20</string>
|
<string name="encryption_chacha20">ChaCha20</string>
|
||||||
<string name="kdf_AES">AES</string>
|
<string name="kdf_AES">AES</string>
|
||||||
<string name="kdf_Argon2">Argon2</string>
|
|
||||||
<string name="style_choose_title">Uygulama teması</string>
|
<string name="style_choose_title">Uygulama teması</string>
|
||||||
<string name="style_choose_summary">Uygulamada kullanılan tema</string>
|
<string name="style_choose_summary">Uygulamada kullanılan tema</string>
|
||||||
<string name="icon_pack_choose_title">Simge paketi</string>
|
<string name="icon_pack_choose_title">Simge paketi</string>
|
||||||
|
|||||||
@@ -271,7 +271,6 @@
|
|||||||
<string name="icon_pack_choose_title">Набір піктограм</string>
|
<string name="icon_pack_choose_title">Набір піктограм</string>
|
||||||
<string name="style_choose_summary">Тема застосунку</string>
|
<string name="style_choose_summary">Тема застосунку</string>
|
||||||
<string name="style_choose_title">Тема застосунку</string>
|
<string name="style_choose_title">Тема застосунку</string>
|
||||||
<string name="kdf_Argon2">Argon2</string>
|
|
||||||
<string name="kdf_AES">AES</string>
|
<string name="kdf_AES">AES</string>
|
||||||
<string name="encryption_chacha20">ChaCha20</string>
|
<string name="encryption_chacha20">ChaCha20</string>
|
||||||
<string name="download_complete">Готово!</string>
|
<string name="download_complete">Готово!</string>
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
Copyright 2020 Jeremy Jamet / Kunzisoft.
|
|
||||||
|
|
||||||
This file is part of KeePassDX.
|
|
||||||
|
|
||||||
KeePassDX is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
KeePassDX is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with KeePassDX. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
-->
|
|
||||||
<resources>
|
|
||||||
<bool name="biometric_unlock_enable_default" translatable="true">false</bool>
|
|
||||||
<bool name="device_credential_unlock_enable_default" translatable="true">true</bool>
|
|
||||||
</resources>
|
|
||||||
@@ -145,7 +145,6 @@
|
|||||||
<string name="clipboard_error_clear">无法清空剪切板</string>
|
<string name="clipboard_error_clear">无法清空剪切板</string>
|
||||||
<string name="encryption_chacha20">ChaCha20</string>
|
<string name="encryption_chacha20">ChaCha20</string>
|
||||||
<string name="kdf_AES">AES</string>
|
<string name="kdf_AES">AES</string>
|
||||||
<string name="kdf_Argon2">Argon2</string>
|
|
||||||
<string name="style_choose_title">主题</string>
|
<string name="style_choose_title">主题</string>
|
||||||
<string name="icon_pack_choose_title">图标包</string>
|
<string name="icon_pack_choose_title">图标包</string>
|
||||||
<string name="icon_pack_choose_summary">程序中使用的图标包</string>
|
<string name="icon_pack_choose_summary">程序中使用的图标包</string>
|
||||||
|
|||||||
@@ -509,7 +509,8 @@
|
|||||||
<string name="encryption_twofish">Twofish</string>
|
<string name="encryption_twofish">Twofish</string>
|
||||||
<string name="encryption_chacha20">ChaCha20</string>
|
<string name="encryption_chacha20">ChaCha20</string>
|
||||||
<string name="kdf_AES">AES</string>
|
<string name="kdf_AES">AES</string>
|
||||||
<string name="kdf_Argon2">Argon2</string>
|
<string name="kdf_Argon2d">Argon2d</string>
|
||||||
|
<string name="kdf_Argon2id">Argon2id</string>
|
||||||
<string-array name="timeout_options">
|
<string-array name="timeout_options">
|
||||||
<item>5 seconds</item>
|
<item>5 seconds</item>
|
||||||
<item>10 seconds</item>
|
<item>10 seconds</item>
|
||||||
|
|||||||
2
fastlane/metadata/android/en-US/changelogs/48.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/48.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
* Fix small bugs #812
|
||||||
|
* Argon2ID implementation #791
|
||||||
2
fastlane/metadata/android/fr-FR/changelogs/48.txt
Normal file
2
fastlane/metadata/android/fr-FR/changelogs/48.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
* Correction de petits bugs #812
|
||||||
|
* Implementation d'Argon2ID #791
|
||||||
Reference in New Issue
Block a user