mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
Compare commits
1 Commits
3.0.0
...
feature/Cr
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2b8427750b |
@@ -131,6 +131,7 @@ dependencies {
|
||||
implementation 'commons-codec:commons-codec:1.15'
|
||||
// Encrypt lib
|
||||
implementation project(path: ':crypto')
|
||||
implementation fileTree(include: ['encrypt.aar'], dir: 'libs')
|
||||
// Icon pack
|
||||
implementation project(path: ':icon-pack-classic')
|
||||
implementation project(path: ':icon-pack-material')
|
||||
|
||||
BIN
app/libs/encrypt.aar
Normal file
BIN
app/libs/encrypt.aar
Normal file
Binary file not shown.
@@ -21,8 +21,8 @@ package com.kunzisoft.keepass.database.crypto.kdf
|
||||
|
||||
import com.kunzisoft.encrypt.HashManager
|
||||
import com.kunzisoft.keepass.utils.UnsignedLong
|
||||
import com.kunzisoft.encrypt.aes.AESTransformer
|
||||
import com.kunzisoft.keepass.utils.bytes16ToUuid
|
||||
import encrypt.Encrypt
|
||||
import java.io.IOException
|
||||
import java.security.SecureRandom
|
||||
import java.util.*
|
||||
@@ -58,7 +58,8 @@ class AesKdf : KdfEngine() {
|
||||
|
||||
val rounds = kdfParameters.getUInt64(PARAM_ROUNDS)?.toKotlinLong()
|
||||
|
||||
return AESTransformer.transformKey(seed, currentMasterKey, rounds) ?: ByteArray(0)
|
||||
return Encrypt.transformAESKey(currentMasterKey, seed, rounds!!)
|
||||
//return AESTransformer.transformKey(seed, currentMasterKey, rounds) ?: ByteArray(0)
|
||||
}
|
||||
|
||||
override fun randomize(kdfParameters: KdfParameters) {
|
||||
|
||||
@@ -21,9 +21,8 @@ package com.kunzisoft.keepass.database.crypto.kdf
|
||||
|
||||
import com.kunzisoft.keepass.utils.UnsignedInt
|
||||
import com.kunzisoft.keepass.utils.UnsignedLong
|
||||
import com.kunzisoft.encrypt.argon2.Argon2Transformer
|
||||
import com.kunzisoft.encrypt.argon2.Argon2Type
|
||||
import com.kunzisoft.keepass.utils.bytes16ToUuid
|
||||
import encrypt.Encrypt
|
||||
import java.io.IOException
|
||||
import java.security.SecureRandom
|
||||
import java.util.*
|
||||
@@ -63,7 +62,14 @@ class Argon2Kdf(private val type: Type) : KdfEngine() {
|
||||
// val secretKey = kdfParameters.getByteArray(PARAM_SECRET_KEY)
|
||||
// val assocData = kdfParameters.getByteArray(PARAM_ASSOC_DATA)
|
||||
|
||||
val argonType = if (type == Type.ARGON2_ID) Argon2Type.ARGON2_ID else Argon2Type.ARGON2_D
|
||||
// With Go lib
|
||||
return when(type) {
|
||||
Type.ARGON2_D -> Encrypt.transformArgon2DKey(masterKey, salt, iterations, memory, parallelism.toShort(), 32)
|
||||
else -> Encrypt.transformArgon2IDKey(masterKey, salt, iterations, memory, parallelism.toShort(), 32)
|
||||
}
|
||||
|
||||
/*
|
||||
val argonType = if (type == Type.ARGON2_ID) Argon2Type.ARGON2_ID else Argon2Type.ARGON2_ID
|
||||
|
||||
return Argon2Transformer.transformKey(
|
||||
argonType,
|
||||
@@ -73,6 +79,7 @@ class Argon2Kdf(private val type: Type) : KdfEngine() {
|
||||
memory,
|
||||
iterations,
|
||||
version)
|
||||
*/
|
||||
}
|
||||
|
||||
override fun randomize(kdfParameters: KdfParameters) {
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
package com.kunzisoft.keepass.database.element.database
|
||||
|
||||
import com.kunzisoft.encrypt.HashManager
|
||||
import com.kunzisoft.encrypt.aes.AESTransformer
|
||||
import com.kunzisoft.keepass.database.crypto.EncryptionAlgorithm
|
||||
import com.kunzisoft.keepass.database.crypto.kdf.KdfEngine
|
||||
import com.kunzisoft.keepass.database.crypto.kdf.KdfFactory
|
||||
@@ -31,6 +30,7 @@ import com.kunzisoft.keepass.database.element.icon.IconImageStandard
|
||||
import com.kunzisoft.keepass.database.element.node.NodeIdInt
|
||||
import com.kunzisoft.keepass.database.element.node.NodeIdUUID
|
||||
import com.kunzisoft.keepass.database.element.node.NodeVersioned
|
||||
import encrypt.Encrypt
|
||||
import java.io.IOException
|
||||
import java.io.InputStream
|
||||
import java.util.*
|
||||
@@ -142,7 +142,8 @@ class DatabaseKDB : DatabaseVersioned<Int, UUID, GroupKDB, EntryKDB>() {
|
||||
@Throws(IOException::class)
|
||||
fun makeFinalKey(masterSeed: ByteArray, transformSeed: ByteArray, numRounds: Long) {
|
||||
// Encrypt the master key a few times to make brute-force key-search harder
|
||||
val transformedKey = AESTransformer.transformKey(transformSeed, masterKey, numRounds) ?: ByteArray(0)
|
||||
val transformedKey = Encrypt.transformAESKey(masterSeed, transformSeed, numRounds) ?: ByteArray(0)
|
||||
//val transformedKey = AESTransformer.transformKey(transformSeed, masterKey, numRounds) ?: ByteArray(0)
|
||||
// Write checksum Checksum
|
||||
finalKey = HashManager.hashSha256(masterSeed, transformedKey)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user