fixed error in hashcode implementations of various objects so ring works as expected

This commit is contained in:
sergeych committed 2024-06-22 10:24:32 +07:00
1 parent f08653715b
commit a1f984c4e6
10 files changed
+306 -5

No files matched your search

+72
View File
@@ -172,4 +172,76 @@ class KeysTest {
// println(j.encodeToString(sk1))
}
@Test
fun testUniKeys() = runTest {
initCrypto()
val sy1 = SymmetricKey.random()
val sy2 = SymmetricKey(sy1.keyBytes)
val sy3 = SymmetricKey.random()
assertEquals(sy1, sy2)
assertEquals(sy2, sy1)
assertFalse { sy1 == sy3 }
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)
assertEquals(usy1, usy2)
assertEquals(usy2, usy1)
assertFalse { usy1 == usy3 }
val sk1 = Asymmetric.randomSecretKey()
val sk2 = Asymmetric.SecretKey(sk1.keyBytes)
val sk3 = Asymmetric.randomSecretKey()
assertEquals(sk1, sk2)
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)
assertEquals(usk1, usk2)
assertEquals(usk2, usk1)
assertFalse { usk1 == usk3 }
var a = setOf(sy1, sy2, sk1, sk2)
var b = setOf(sk1, sk2, sy2, sy1)
assertEquals(a,b)
a = setOf(usk1, usk2, usk3, usk4)
b = setOf(usk1, usk2, usk3, usk4)
assertEquals(a, b)
// usk1 and usk2 are equal so set with only one of should be the same
assertEquals(a, setOf(usk1, usk3, usk4))
usk1 = deepCopy(usk1)
usk2 = deepCopy(usk2)
usk3 = deepCopy(usk3)
assertEquals(usk1.hashCode(),usk2.hashCode())
assertEquals(usk1, usk2)
assertEquals(usk2, usk1)
assertFalse { usk1 == usk3 }
a = setOf(usk1, usk2, usk3, usk4)
b = setOf(usk4, usk3, usk2, usk1)
assertEquals(3, a.size)
assertEquals(3, b.size)
assertEquals(a, b)
// usk1 and usk2 are equal so set with only one of should be the same
assertEquals(a, setOf(usk1, usk3, usk4))
}
}