mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
Compare commits
1 Commits
2.9.18
...
feature/Cr
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2b8427750b |
@@ -131,6 +131,7 @@ dependencies {
|
|||||||
implementation 'commons-codec:commons-codec:1.15'
|
implementation 'commons-codec:commons-codec:1.15'
|
||||||
// Encrypt lib
|
// Encrypt lib
|
||||||
implementation project(path: ':crypto')
|
implementation project(path: ':crypto')
|
||||||
|
implementation fileTree(include: ['encrypt.aar'], dir: 'libs')
|
||||||
// Icon pack
|
// Icon pack
|
||||||
implementation project(path: ':icon-pack-classic')
|
implementation project(path: ':icon-pack-classic')
|
||||||
implementation project(path: ':icon-pack-material')
|
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.encrypt.HashManager
|
||||||
import com.kunzisoft.keepass.utils.UnsignedLong
|
import com.kunzisoft.keepass.utils.UnsignedLong
|
||||||
import com.kunzisoft.encrypt.aes.AESTransformer
|
|
||||||
import com.kunzisoft.keepass.utils.bytes16ToUuid
|
import com.kunzisoft.keepass.utils.bytes16ToUuid
|
||||||
|
import encrypt.Encrypt
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.security.SecureRandom
|
import java.security.SecureRandom
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@@ -58,7 +58,8 @@ class AesKdf : KdfEngine() {
|
|||||||
|
|
||||||
val rounds = kdfParameters.getUInt64(PARAM_ROUNDS)?.toKotlinLong()
|
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) {
|
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.UnsignedInt
|
||||||
import com.kunzisoft.keepass.utils.UnsignedLong
|
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 com.kunzisoft.keepass.utils.bytes16ToUuid
|
||||||
|
import encrypt.Encrypt
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.security.SecureRandom
|
import java.security.SecureRandom
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@@ -63,7 +62,14 @@ class Argon2Kdf(private val type: Type) : 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)
|
||||||
|
|
||||||
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(
|
return Argon2Transformer.transformKey(
|
||||||
argonType,
|
argonType,
|
||||||
@@ -73,6 +79,7 @@ class Argon2Kdf(private val type: Type) : KdfEngine() {
|
|||||||
memory,
|
memory,
|
||||||
iterations,
|
iterations,
|
||||||
version)
|
version)
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun randomize(kdfParameters: KdfParameters) {
|
override fun randomize(kdfParameters: KdfParameters) {
|
||||||
|
|||||||
@@ -20,7 +20,6 @@
|
|||||||
package com.kunzisoft.keepass.database.element.database
|
package com.kunzisoft.keepass.database.element.database
|
||||||
|
|
||||||
import com.kunzisoft.encrypt.HashManager
|
import com.kunzisoft.encrypt.HashManager
|
||||||
import com.kunzisoft.encrypt.aes.AESTransformer
|
|
||||||
import com.kunzisoft.keepass.database.crypto.EncryptionAlgorithm
|
import com.kunzisoft.keepass.database.crypto.EncryptionAlgorithm
|
||||||
import com.kunzisoft.keepass.database.crypto.kdf.KdfEngine
|
import com.kunzisoft.keepass.database.crypto.kdf.KdfEngine
|
||||||
import com.kunzisoft.keepass.database.crypto.kdf.KdfFactory
|
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.NodeIdInt
|
||||||
import com.kunzisoft.keepass.database.element.node.NodeIdUUID
|
import com.kunzisoft.keepass.database.element.node.NodeIdUUID
|
||||||
import com.kunzisoft.keepass.database.element.node.NodeVersioned
|
import com.kunzisoft.keepass.database.element.node.NodeVersioned
|
||||||
|
import encrypt.Encrypt
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@@ -142,7 +142,8 @@ class DatabaseKDB : DatabaseVersioned<Int, UUID, GroupKDB, EntryKDB>() {
|
|||||||
@Throws(IOException::class)
|
@Throws(IOException::class)
|
||||||
fun makeFinalKey(masterSeed: ByteArray, transformSeed: ByteArray, numRounds: Long) {
|
fun makeFinalKey(masterSeed: ByteArray, transformSeed: ByteArray, numRounds: Long) {
|
||||||
// Encrypt the master key a few times to make brute-force key-search harder
|
// 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
|
// Write checksum Checksum
|
||||||
finalKey = HashManager.hashSha256(masterSeed, transformedKey)
|
finalKey = HashManager.hashSha256(masterSeed, transformedKey)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user