The key derivation function works like this: The password is hashed with sha256, encrypted x-times with a random key, then the result is concatenated with 16 random bytes and hashed again.
finalKey = sha256(seed || key(sha256(password), iterations, transformSeed))
key(password, 1) = aes256cbc(password, transformSeed, [0, ..., 0]) key(password, iterations) = aes256cbc(key(password, iterations - 1), transformSeed, [0, ..., 0])
with aes256cbc(data, key, iv) iterations is 50000 by default.
The key derivation function works like this:
The password is hashed with sha256, encrypted x-times with a random key, then the result is concatenated with 16 random bytes and hashed again.
finalKey = sha256(seed || key(sha256( password) , iterations, transformSeed))
key(password, 1) = aes256cbc(password, transformSeed, [0, ..., 0]) key(password, iterations - 1), transformSeed, [0, ..., 0])
key(password, iterations) = aes256cbc(
with aes256cbc(data, key, iv)
iterations is 50000 by default.