small refactor

This commit is contained in:
2025-08-03 00:29:19 +02:00
parent a1cf5f4202
commit b740bdea9d

View File

@@ -9,7 +9,6 @@ import com.infendro.mac.HMAC
class PBKDF2( class PBKDF2(
function: HashFunction, function: HashFunction,
) { ) {
private val size = function.bytes
private val hmac = HMAC(function) private val hmac = HMAC(function)
fun hash( fun hash(
@@ -18,23 +17,18 @@ class PBKDF2(
iterations: Int, iterations: Int,
length: Int, length: Int,
): ByteArray { ): ByteArray {
val key = mutableListOf<Byte>() val key = buildList {
for (i in 1..(length + size - 1) / size) {
val input = salt + i.toUInt().toByteArray()
for (i in 1..(length + size - 1) / size) { var u = hmac.hash(value, input)
val input = salt + i.toUInt().toByteArray() var result = u
repeat(iterations - 1) {
u = hmac.hash(value, u)
result = result xor u
}
var u = hmac.hash(value, input) addAll(result)
var result = u
repeat(iterations - 1) {
u = hmac.hash(value, u)
result = result xor u
}
key.addAll(result)
if (key.size >= length) {
println(key.size)
break
} }
} }