+hash salt derivation for any size. better naming
This commit is contained in:
1 parent
9f7babdf58
commit
10ec58ec08
9 files changed
+88
-19
No files matched your search
@@ -5,7 +5,10 @@ import net.sergeych.crypto2.Hash
|
||||
import net.sergeych.crypto2.initCrypto
|
||||
import kotlin.random.Random
|
||||
import kotlin.random.nextUBytes
|
||||
import kotlin.test.*
|
||||
import kotlin.test.Test
|
||||
import kotlin.test.assertContentEquals
|
||||
import kotlin.test.assertEquals
|
||||
import kotlin.test.assertFalse
|
||||
|
||||
@Suppress("UNUSED_PARAMETER", "UNUSED_VARIABLE")
|
||||
suspend fun <T> sw(label: String, f: suspend () -> T): T {
|
||||
@@ -46,5 +49,21 @@ class HashTest {
|
||||
assertContentEquals(Hash.Blake2b.digest(a), p1)
|
||||
assertContentEquals(Hash.Sha3_384.digest(a), p2)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun deriveSaltTest() = runTest {
|
||||
initCrypto()
|
||||
for( i in 2..257 ) {
|
||||
val x = Hash.Sha3AndBlake.deriveSalt("base one", i)
|
||||
val y = Hash.Sha3AndBlake.deriveSalt("base one", i)
|
||||
val z = Hash.Sha3AndBlake.deriveSalt("base two", i)
|
||||
assertContentEquals(x, y)
|
||||
assertFalse { x contentEquals z }
|
||||
assertEquals(x.size, i)
|
||||
assertEquals(y.size, i)
|
||||
assertEquals(z.size, i)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ class KDFTest {
|
||||
@Test
|
||||
fun complexityTest() = runTest{
|
||||
initCrypto()
|
||||
val kk = KDF.Complexity.Interactive.kdfForSize(3).deriveMultiple("lala", 3)
|
||||
val kk = KDF.Complexity.Interactive.kdfForSize(3).deriveMultipleKeys("lala", 3)
|
||||
assertEquals(3, kk.size)
|
||||
}
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ class PBKDTest {
|
||||
assertEquals(i.kdp, kx.id.kdp)
|
||||
|
||||
}
|
||||
val (y1,y2,y3) = k1.id.kdp!!.kdf.deriveMultiple("foobar", 3)
|
||||
val (y1,y2,y3) = k1.id.kdp!!.kdf.deriveMultipleKeys("foobar", 3)
|
||||
for( (a,b) in listOf(y1,y2,y3).zip(listOf(k1,k2,k3))) {
|
||||
assertEquals(a,b)
|
||||
assertNotNull(a.id.kdp)
|
||||
|
||||
@@ -157,14 +157,14 @@ class RingTest {
|
||||
assertEquals(a, r1.findKey<SecretKey>(a.id))
|
||||
assertEquals(a, r1.keyByTag<UniversalKey>("foo_a"))
|
||||
assertEquals(b, r1.findKey<SigningKey>(b.id))
|
||||
assertEquals(c, r1.keysById(c.id).first())
|
||||
assertEquals(c, r1.findById(c.id).first())
|
||||
|
||||
r1 = UniversalRing.join(listOf(ra, rb, rc, rd))
|
||||
|
||||
assertEquals(a, r1.findKey<SecretKey>(a.id))
|
||||
assertEquals(a, r1.keyByTag<UniversalKey>("foo_a"))
|
||||
assertEquals(b, r1.findKey<SigningKey>(b.id))
|
||||
assertEquals(c, r1.keysById(c.id).first())
|
||||
assertEquals(c, r1.findById(c.id).first())
|
||||
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user