Skip to content

Commit

Permalink
Merge branch 'release/2.9.4'
Browse files Browse the repository at this point in the history
  • Loading branch information
J-Jamet committed Dec 10, 2020
2 parents d1695ab + 7dedcc8 commit abc971b
Show file tree
Hide file tree
Showing 35 changed files with 71 additions and 66 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
KeePassDX(2.9.4)
* Fix small bugs #812
* Argon2ID implementation #791

KeePassDX(2.9.3)
* Unlock database by device credentials (PIN/Password/Pattern) #779 #102
* Advanced unlock with timeout #102 #437 #566
Expand Down
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ android {
applicationId "com.kunzisoft.keepass"
minSdkVersion 14
targetSdkVersion 30
versionCode = 47
versionName = "2.9.3"
versionCode = 48
versionName = "2.9.4"
multiDexEnabled true

testApplicationId = "com.kunzisoft.keepass.tests"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,19 @@
package com.kunzisoft.keepass.crypto.keyDerivation

import android.content.res.Resources
import androidx.annotation.StringRes
import com.kunzisoft.keepass.R
import com.kunzisoft.keepass.stream.bytes16ToUuid
import com.kunzisoft.keepass.utils.UnsignedInt
import java.io.IOException
import java.security.SecureRandom
import java.util.*

class Argon2Kdf internal constructor() : KdfEngine() {
class Argon2Kdf(private val type: Type) : KdfEngine() {

init {
uuid = type.CIPHER_UUID
}

override val defaultParameters: KdfParameters
get() {
Expand All @@ -45,12 +50,8 @@ class Argon2Kdf internal constructor() : KdfEngine() {
override val defaultKeyRounds: Long
get() = DEFAULT_ITERATIONS

init {
uuid = CIPHER_UUID
}

override fun getName(resources: Resources): String {
return resources.getString(R.string.kdf_Argon2)
return resources.getString(type.nameId)
}

@Throws(IOException::class)
Expand All @@ -72,7 +73,9 @@ class Argon2Kdf internal constructor() : KdfEngine() {
val secretKey = kdfParameters.getByteArray(PARAM_SECRET_KEY)
val assocData = kdfParameters.getByteArray(PARAM_ASSOC_DATA)

return Argon2Native.transformKey(masterKey,
return Argon2Native.transformKey(
type,
masterKey,
salt,
parallelism,
memory,
Expand Down Expand Up @@ -141,9 +144,8 @@ class Argon2Kdf internal constructor() : KdfEngine() {
override val maxParallelism: Long
get() = MAX_PARALLELISM

companion object {

val CIPHER_UUID: UUID = bytes16ToUuid(
enum class Type(val CIPHER_UUID: UUID, @StringRes val nameId: Int) {
ARGON2_D(bytes16ToUuid(
byteArrayOf(0xEF.toByte(),
0x63.toByte(),
0x6D.toByte(),
Expand All @@ -159,7 +161,27 @@ class Argon2Kdf internal constructor() : KdfEngine() {
0x03.toByte(),
0xE3.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_PARALLELISM = "P" // UInt32
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,29 @@

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,
byte[] associatedData, UnsignedInt version) throws IOException {
NativeLib.INSTANCE.init();

CType cType = CType.ARGON2_D;
if (type.equals(Argon2Kdf.Type.ARGON2_ID))
cType = CType.ARGON2_ID;

return nTransformMasterKey(
cType.cValue,
password,
salt,
parallelism.toKotlinInt(),
Expand All @@ -42,7 +59,7 @@ public static byte[] transformKey(byte[] password, byte[] salt, UnsignedInt para
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,
byte[] associatedData, int version) throws IOException;
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,6 @@ package com.kunzisoft.keepass.crypto.keyDerivation

object KdfFactory {
var aesKdf = AesKdf()
var argon2Kdf = Argon2Kdf()
var argon2dKdf = Argon2Kdf(Argon2Kdf.Type.ARGON2_D)
var argon2idKdf = Argon2Kdf(Argon2Kdf.Type.ARGON2_ID)
}
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,8 @@ class DatabaseKDBX : DatabaseVersioned<UUID, UUID, GroupKDBX, EntryKDBX> {

init {
kdfList.add(KdfFactory.aesKdf)
kdfList.add(KdfFactory.argon2Kdf)
kdfList.add(KdfFactory.argon2dKdf)
kdfList.add(KdfFactory.argon2idKdf)
}

constructor()
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/jni/argon2/argon2_jni.c
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ void throwExceptionF(JNIEnv *env, jclass exception, const char *format, ...) {

JNIEXPORT jbyteArray
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) {

argon2_context context;
Expand Down Expand Up @@ -169,7 +169,7 @@ JNICALL Java_com_kunzisoft_keepass_crypto_keyDerivation_Argon2Native_nTransformM
context.flags = ARGON2_DEFAULT_FLAGS;
context.version = (uint32_t) version;

int argonResult = argon2_ctx(&context, Argon2_d);
int argonResult = argon2_ctx(&context, (argon2_type) type);

jbyteArray result;
if (argonResult != ARGON2_OK) {
Expand Down
1 change: 1 addition & 0 deletions app/src/main/jni/argon2/src/argon2.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@

const char *argon2_type2string(argon2_type type, int uppercase) {
switch (type) {
default:
case Argon2_d:
return uppercase ? "Argon2d" : "argon2d";
case Argon2_i:
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-cs/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,6 @@
<string name="contribute">Zapojit se</string>
<string name="encryption_chacha20">ChaCha20</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_summary">Motiv vzhledu aplikace</string>
<string name="icon_pack_choose_title">Sada ikon</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-da/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,6 @@
<string name="contribute">Bidrag</string>
<string name="encryption_chacha20">ChaCha20</string>
<string name="kdf_AES">AES</string>
<string name="kdf_Argon2">Argon2</string>
<string name="style_choose_title">Tema</string>
<string name="style_choose_summary">Tema, der bruges i programmet</string>
<string name="icon_pack_choose_title">Ikonpakke</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-de/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,6 @@
<string name="contribute">Unterstützen</string>
<string name="encryption_chacha20">ChaCha20</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_summary">In der App verwendetes Symbolpaket</string>
<string name="error_move_folder_in_itself">Eine Gruppe kann nicht in sich selbst verschoben werden.</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-el/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,6 @@
<string name="contribute">Συνεισφορά</string>
<string name="encryption_chacha20">ChaCha20</string>
<string name="kdf_AES">AES</string>
<string name="kdf_Argon2">Argon2</string>
<string name="style_choose_title">Θέμα Εφαρμογής</string>
<string name="style_choose_summary">Θέμα που χρησιμοποιείται στην εφαρμογή</string>
<string name="icon_pack_choose_title">Πακέτο Εικονιδίων</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-es/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,6 @@
<string name="contribute">Contribuir</string>
<string name="encryption_chacha20">ChaCha20</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_summary">Tema utilizado en la aplicación</string>
<string name="icon_pack_choose_title">Seleccione un paquete de iconos</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-fr/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,6 @@
<string name="encryption_twofish">Twofish</string>
<string name="encryption_chacha20">ChaCha20</string>
<string name="kdf_AES">AES</string>
<string name="kdf_Argon2">Argon2</string>
<string-array name="timeout_options">
<item>5 secondes</item>
<item>10 secondes</item>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-hr/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -394,7 +394,6 @@
<string name="html_text_dev_feature_contibute">&lt;strong&gt;Doprinosom&lt;/strong&gt;,</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="kdf_Argon2">Argon2</string>
<string name="encryption_twofish">Twofish</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>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-hu/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,6 @@
<string name="contribute">Támogatás</string>
<string name="encryption_chacha20">ChaCha20</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_summary">Az alkalmazásban használt téma</string>
<string name="icon_pack_choose_title">Ikoncsomag</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-it/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,6 @@
<string name="encryption_twofish">Twofish</string>
<string name="encryption_chacha20">ChaCha20</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_summary">Tema usato nell\'app</string>
<string name="icon_pack_choose_title">Pacchetto icone</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-ja/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -475,7 +475,6 @@
<string name="encryption_twofish">Twofish</string>
<string name="encryption_chacha20">ChaCha20</string>
<string name="kdf_AES">AES</string>
<string name="kdf_Argon2">Argon2</string>
<string-array name="timeout_options">
<item>5秒</item>
<item>10秒</item>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-ml/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,6 @@
<string name="extended_ASCII">വിപുലീകരിച്ച ASCII</string>
<string name="icon_pack_choose_summary">ആപ്പിൽ ഉപയോഗിച്ചിരിക്കുന്ന ഐക്കൺ പാക്ക്</string>
<string name="style_choose_title">അപ്പ്ലിക്കേഷന്റെ തീം</string>
<string name="kdf_Argon2">Argon2</string>
<string name="download_finalization">അന്തിമമാക്കുന്നു. . .</string>
<string name="html_text_dev_feature_thanks">നിങ്ങളുടെ സംഭാവനയ്ക്ക് ഒരുപാട് നന്ദി.</string>
<string name="education_unlock_title">ഡാറ്റാബേസ് തുറക്കുക</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-nb/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -284,7 +284,6 @@
<string name="encryption_twofish">Twofish</string>
<string name="encryption_chacha20">ChaCha20</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_summary">Tilpass programdrakten ved å endre fargene</string>
<string name="icon_pack_choose_title">Velg en ikonpakke</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-nl/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,6 @@
<string name="contribute">Bijdragen</string>
<string name="encryption_chacha20">ChaCha20</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_summary">Thema gebruikt in de app</string>
<string name="icon_pack_choose_title">Pictogrammenverzameling</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-pl/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -298,7 +298,6 @@
<string name="contribute">Przyczyń się</string>
<string name="encryption_chacha20">ChaCha20</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_summary">Motyw używany w aplikacji</string>
<string name="icon_pack_choose_title">Pakiet ikon</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-pt-rBR/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,6 @@
<string name="contribute">Contribuir</string>
<string name="encryption_chacha20">ChaCha20</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_summary">Tema usado no aplicativo</string>
<string name="icon_pack_choose_title">Pacote de ícones</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-pt-rPT/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,6 @@
<string name="contribute">Contribuir</string>
<string name="encryption_chacha20">ChaCha20</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_summary">Tema usado na app</string>
<string name="icon_pack_choose_title">Pacote de ícones</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-pt/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
<string name="icon_pack_choose_title">Pacote de ícones</string>
<string name="style_choose_summary">Tema usado na 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="encryption_chacha20">ChaCha20</string>
<string name="encryption_twofish">Twofish</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-ro/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -406,7 +406,6 @@
<string name="encryption_twofish">Twofish</string>
<string name="encryption_chacha20">ChaCha20</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_summary">Tema folosită în aplicație</string>
<string name="icon_pack_choose_title">Pachet de pictograme</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-ru/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -298,7 +298,6 @@
<string name="contribute">Содействие</string>
<string name="encryption_chacha20">ChaCha20</string>
<string name="kdf_AES">AES</string>
<string name="kdf_Argon2">Argon2</string>
<string name="style_choose_title">Тема приложения</string>
<string name="style_choose_summary">Тема, используемая в приложении</string>
<string name="icon_pack_choose_title">Набор значков</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-sv/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,6 @@
<string name="contribute">Bidra</string>
<string name="encryption_chacha20">ChaCha20</string>
<string name="kdf_AES">AES</string>
<string name="kdf_Argon2">Argon2</string>
<string name="style_choose_title">Apptema</string>
<string name="style_choose_summary">Tema som används i appen</string>
<string name="icon_pack_choose_title">Ikonpaket</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-tr/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,6 @@
<string name="encryption_twofish">Twofish</string>
<string name="encryption_chacha20">ChaCha20</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_summary">Uygulamada kullanılan tema</string>
<string name="icon_pack_choose_title">Simge paketi</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-uk/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,6 @@
<string name="icon_pack_choose_title">Набір піктограм</string>
<string name="style_choose_summary">Тема застосунку</string>
<string name="style_choose_title">Тема застосунку</string>
<string name="kdf_Argon2">Argon2</string>
<string name="kdf_AES">AES</string>
<string name="encryption_chacha20">ChaCha20</string>
<string name="download_complete">Готово!</string>
Expand Down
23 changes: 0 additions & 23 deletions app/src/main/res/values-v30/donottranslate.xml

This file was deleted.

1 change: 0 additions & 1 deletion app/src/main/res/values-zh-rCN/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,6 @@
<string name="clipboard_error_clear">无法清空剪切板</string>
<string name="encryption_chacha20">ChaCha20</string>
<string name="kdf_AES">AES</string>
<string name="kdf_Argon2">Argon2</string>
<string name="style_choose_title">主题</string>
<string name="icon_pack_choose_title">图标包</string>
<string name="icon_pack_choose_summary">程序中使用的图标包</string>
Expand Down
Loading

0 comments on commit abc971b

Please sign in to comment.