-
Notifications
You must be signed in to change notification settings - Fork 0
/
PasswordHashTest.kt
34 lines (26 loc) · 1.11 KB
/
PasswordHashTest.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package com.anyaku.test.integration
import org.junit.Test as test
import com.anyaku.test.integration.javascript.runInWorker
import kotlin.test.assertEquals
import com.anyaku.crypt.password
import com.anyaku.crypt.coder.encode
import com.anyaku.debug
import com.anyaku.crypt.coder.decode
import com.anyaku.crypt.PasswordSalt
class PasswordHashTest {
val iterations = 1000
val keySize = 160
{
runInWorker("password = epdRoot.Crypt.Password.hash('test', { iterations: $iterations, keySize: ${keySize / 32} });")
}
test fun testPasswordHashing() {
val javascriptHash = runInWorker("epdRoot.Crypt.Coder.encode(password.hash);") as String
val javascriptSalt = runInWorker("epdRoot.Crypt.Coder.encode(password.salt);") as String
val javascriptIterations = runInWorker("password.iterations;")
val javascriptKeySize = runInWorker("password.keySize;")
assertEquals(javascriptIterations, iterations)
assertEquals(javascriptKeySize, keySize / 32)
val password = password("test", decode(javascriptSalt) as PasswordSalt, iterations, keySize)
assertEquals(javascriptHash, encode(password.hash));
}
}