59 lines
1.8 KiB
Kotlin
59 lines
1.8 KiB
Kotlin
/*
|
|
* Copyright (c) 2025. Sergey S. Chernov - All Rights Reserved
|
|
*
|
|
* You may use, distribute and modify this code under the
|
|
* terms of the private license, which you must obtain from the author
|
|
*
|
|
* To obtain the license, contact the author: https://t.me/real_sergeych or email to
|
|
* real dot sergeych at gmail.
|
|
*/
|
|
|
|
import kotlinx.coroutines.test.runTest
|
|
import net.sergeych.crypto2.PBKD
|
|
import net.sergeych.crypto2.initCrypto
|
|
import kotlin.test.Test
|
|
import kotlin.test.assertEquals
|
|
import kotlin.test.assertNotNull
|
|
|
|
class PBKDTest {
|
|
|
|
@Test
|
|
fun testDerive() = runTest {
|
|
initCrypto()
|
|
val (k1, k2, k3) = PBKD.deriveMultipleKeys("foobar", 3)
|
|
PBKD.clearCache()
|
|
println(k1)
|
|
println(k2)
|
|
println(k3)
|
|
// println("------------------- Secret ket encryption!")
|
|
// val s = UniversalKey.newSecretKey()
|
|
// println(s)
|
|
// println(s.publicKey)
|
|
// println("------------------- public key signing")
|
|
// val i = UniversalKey.newSigningKey()
|
|
// println(i)
|
|
// println(i.verifyingKey)
|
|
// println("------------------- symmetric")
|
|
// println(UniversalKey.newSymmetricKey())
|
|
for( k in listOf(k1,k2,k3)) {
|
|
val i = k.id
|
|
val kx = i.kdp!!.deriveKey("foobar")
|
|
assertEquals(k, kx)
|
|
assertEquals(i, kx.id)
|
|
assertEquals(i.kdp, kx.id.kdp)
|
|
|
|
}
|
|
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)
|
|
assertNotNull(b.id.kdp)
|
|
assertEquals(a.id.kdp, b.id.kdp)
|
|
assertEquals(a.id, b.id)
|
|
}
|
|
assertEquals(k1, y1)
|
|
assertEquals(k2, y2)
|
|
assertEquals(k3, y3)
|
|
|
|
}
|
|
} |