small refactor
This commit is contained in:
@@ -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
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user