forked from sergeych/crypto2
keys refactoring: removed separate UniversalKey, it is now a direct base of any real keys instead of deleted KeyInstance
This commit is contained in:
1 parent
5c97e857fc
commit
46a8b5bc06
12 files changed
+103
-184
No files matched your search
@@ -4,6 +4,8 @@ import kotlinx.coroutines.test.runTest
|
||||
import kotlinx.serialization.encodeToString
|
||||
import kotlinx.serialization.json.Json
|
||||
import net.sergeych.crypto2.*
|
||||
import net.sergeych.tools.bipack
|
||||
import net.sergeych.tools.biunpack
|
||||
import net.sergeych.utools.now
|
||||
import net.sergeych.utools.pack
|
||||
import net.sergeych.utools.unpack
|
||||
@@ -187,9 +189,9 @@ class KeysTest {
|
||||
assertEquals(sy1, deepCopy(sy1), "symmetric key should be equal to the restored copy")
|
||||
assertEquals(sy1.hashCode(), deepCopy(sy1).hashCode(), "hashcode of the restored symmetric key is wrong")
|
||||
|
||||
val usy1 = UniversalKey.from(sy1)
|
||||
val usy2 = UniversalKey.from(sy2)
|
||||
val usy3 = UniversalKey.from(sy3)
|
||||
val usy1 = sy1 as UniversalKey
|
||||
val usy2 = sy2 as UniversalKey
|
||||
val usy3 = sy3 as UniversalKey
|
||||
|
||||
assertEquals(usy1, usy2)
|
||||
assertEquals(usy2, usy1)
|
||||
@@ -203,10 +205,10 @@ class KeysTest {
|
||||
assertEquals(sk2, sk1)
|
||||
assertFalse { sk1 == sk3 }
|
||||
|
||||
var usk1 = UniversalKey.from(sk1)
|
||||
var usk2 = UniversalKey.from(sk2)
|
||||
var usk3 = UniversalKey.from(sk3)
|
||||
val usk4 = UniversalKey.from(sy3)
|
||||
var usk1 = sk1 as UniversalKey
|
||||
var usk2 = sk2 as UniversalKey
|
||||
var usk3 = sk3 as UniversalKey
|
||||
val usk4 = sy3 as UniversalKey
|
||||
|
||||
assertEquals(usk1, usk2)
|
||||
assertEquals(usk2, usk1)
|
||||
@@ -223,7 +225,7 @@ class KeysTest {
|
||||
usk2 = deepCopy(usk2)
|
||||
usk3 = deepCopy(usk3)
|
||||
|
||||
assertEquals(usk1.hashCode(),usk2.hashCode())
|
||||
assertEquals(usk1.hashCode(), usk2.hashCode())
|
||||
|
||||
assertEquals(usk1, usk2)
|
||||
assertEquals(usk2, usk1)
|
||||
@@ -239,4 +241,13 @@ class KeysTest {
|
||||
// usk1 and usk2 are equal so set with only one of should be the same
|
||||
assertEquals(a, setOf(usk1, usk3, usk4))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testKiSerialization() = runTest {
|
||||
initCrypto()
|
||||
val k: UniversalKey = SymmetricKey.new()
|
||||
val d = bipack(k)
|
||||
val k1: UniversalKey = biunpack<UniversalKey>(d) as SymmetricKey
|
||||
assertEquals(k, k1)
|
||||
}
|
||||
}
|
||||
@@ -20,14 +20,14 @@ class RingTest {
|
||||
val e2: Asymmetric.SecretKey = BipackDecoder.decode(BipackEncoder.encode(e1))
|
||||
assertEquals(e1, e2)
|
||||
|
||||
val k1 = UniversalKey.from(SymmetricKey("1234567890Hello,dolly.here-we-go".encodeToUByteArray()))
|
||||
val k11 = UniversalKey.from(SymmetricKey("1234567890Hello,dolly.here-we-go".encodeToUByteArray()))
|
||||
val k1 = SymmetricKey("1234567890Hello,dolly.here-we-go".encodeToUByteArray()) as UniversalKey
|
||||
val k11 = SymmetricKey("1234567890Hello,dolly.here-we-go".encodeToUByteArray()) as UniversalKey
|
||||
|
||||
assertEquals(k1, k11)
|
||||
|
||||
|
||||
val k2 = UniversalKey.from(Asymmetric.newSecretKey())
|
||||
val k3 = UniversalKey.from(Asymmetric.newSecretKey())
|
||||
val k2 = Asymmetric.newSecretKey()
|
||||
val k3 = Asymmetric.newSecretKey()
|
||||
//
|
||||
val r = UniversalRing(k1, k2)
|
||||
// val r = UniversalRing(k1)
|
||||
@@ -40,7 +40,7 @@ class RingTest {
|
||||
val encoded = BipackEncoder.encode(r)
|
||||
println(encoded.toDump())
|
||||
println(encoded.size)
|
||||
assertTrue { encoded.size < 80 }
|
||||
assertTrue { encoded.size < 82 }
|
||||
val r2: UniversalRing = BipackDecoder.decode(encoded)
|
||||
assertTrue { k2 in r2 }
|
||||
assertTrue { k1 in r2 }
|
||||
@@ -69,16 +69,16 @@ class RingTest {
|
||||
val r1 = deepCopy(r)
|
||||
println(r1.findKey<EncryptingKey>(sk.id))
|
||||
println(sk)
|
||||
assertTrue { sk.publicKey.toUniversalKey() == r1.findKey<EncryptingKey>(sk.id) }
|
||||
assertTrue { sk.publicKey.toUniversalKey() == r1.keyByTag<EncryptingKey>("foo") }
|
||||
assertTrue { sk.publicKey as UniversalKey == r1.findKey<EncryptingKey>(sk.id) }
|
||||
assertTrue { sk.publicKey as UniversalKey == r1.keyByTag<EncryptingKey>("foo") }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testTags() = runTest {
|
||||
initCrypto()
|
||||
|
||||
val k1 = UniversalKey.from(SymmetricKey("1234567890Hello,dolly.here-we-go".encodeToUByteArray()))
|
||||
val k2 = UniversalKey.from(Asymmetric.newSecretKey())
|
||||
val k1 = SymmetricKey("1234567890Hello,dolly.here-we-go".encodeToUByteArray()) as UniversalKey
|
||||
val k2 = Asymmetric.newSecretKey() as UniversalKey
|
||||
|
||||
val r1 = UniversalRing(k1, k2)
|
||||
var r2 = UniversalRing(deepCopy(k1), deepCopy(k2))
|
||||
@@ -114,7 +114,7 @@ class RingTest {
|
||||
|
||||
val data = "Mendeleev' table".encodeToUByteArray()
|
||||
|
||||
var r = UniversalRing(sk2, sk3, sk1.publicKey, sk3.publicKey, sik3.publicKey, sik1.publicKey)
|
||||
var r = UniversalRing(sk2, sk3, sk1.publicKey, sk3.publicKey, sik3.verifyingKey, sik1.verifyingKey)
|
||||
|
||||
r = r.addTags(sik1, "SECRET_SIGN")
|
||||
|
||||
@@ -122,11 +122,11 @@ class RingTest {
|
||||
assertContentEquals(data, box.decryptWith(r))
|
||||
|
||||
assertEquals(sk3.publicKey, r.findKey<EncryptingKey>(sk3.id))
|
||||
assertTrue { sik3.publicKey in r }
|
||||
assertTrue { sik3.verifyingKey in r }
|
||||
assertTrue { sik1 in r }
|
||||
assertEquals(sik1, r.keyByTag<UniversalKey>("SECRET_SIGN"))
|
||||
|
||||
assertEquals(sik1, r.findKey<SigningKey>(sik1.publicKey.id))
|
||||
assertEquals(sik1, r.findKey<SigningKey>(sik1.verifyingKey.id))
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -154,17 +154,17 @@ class RingTest {
|
||||
|
||||
var r1 = ra + rb + rc + rd
|
||||
|
||||
assertEquals(a, r1.findKey<UniversalKey.Secret>(a.id))
|
||||
assertEquals(a, r1.findKey<Asymmetric.SecretKey>(a.id))
|
||||
assertEquals(a, r1.keyByTag<UniversalKey>("foo_a"))
|
||||
assertEquals(b, r1.findKey<SigningKey>(b.id))
|
||||
assertEquals(c, r1.keysById(c.key.id).first())
|
||||
assertEquals(c, r1.keysById(c.id).first())
|
||||
|
||||
r1 = UniversalRing.join(listOf(ra, rb, rc, rd))
|
||||
|
||||
assertEquals(a, r1.findKey<UniversalKey.Secret>(a.id))
|
||||
assertEquals(a, r1.findKey<Asymmetric.SecretKey>(a.id))
|
||||
assertEquals(a, r1.keyByTag<UniversalKey>("foo_a"))
|
||||
assertEquals(b, r1.findKey<SigningKey>(b.id))
|
||||
assertEquals(c, r1.keysById(c.key.id).first())
|
||||
assertEquals(c, r1.keysById(c.id).first())
|
||||
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user