refactored keys, unversal keys and ring

This commit is contained in:
sergeych committed 2024-06-22 18:19:06 +07:00
1 parent 7eeb780bdb
commit ede55650f4
16 files changed
+274 -241

No files matched your search

+16 -16
View File
@@ -9,8 +9,8 @@ class ContainerTest {
@Test
fun testSingle() = runTest {
initCrypto()
val syk1 = SymmetricKey.random()
val syk2 = SymmetricKey.random()
val syk1 = SymmetricKey.new()
val syk2 = SymmetricKey.new()
val data = "sergeych, ohm many.".encodeToUByteArray()
val c = Container.createWith(data, syk1)
@@ -87,9 +87,9 @@ class ContainerTest {
@Test
fun testMultipleSymmetric() = runTest {
initCrypto()
val syk1 = SymmetricKey.random()
val syk2 = SymmetricKey.random()
val syk3 = SymmetricKey.random()
val syk1 = SymmetricKey.new()
val syk2 = SymmetricKey.new()
val syk3 = SymmetricKey.new()
val p1 = Asymmetric.generateKeys()
val p2 = Asymmetric.generateKeys()
val p3 = Asymmetric.generateKeys()
@@ -131,9 +131,9 @@ class ContainerTest {
@Test
fun testSingleGrowSymmetric() = runTest {
initCrypto()
val syk1 = SymmetricKey.random()
val syk2 = SymmetricKey.random()
val syk3 = SymmetricKey.random()
val syk1 = SymmetricKey.new()
val syk2 = SymmetricKey.new()
val syk3 = SymmetricKey.new()
val p1 = Asymmetric.generateKeys()
val p3 = Asymmetric.generateKeys()
val p4 = Asymmetric.generateKeys()
@@ -193,8 +193,8 @@ class ContainerTest {
@Test
fun testSingleGrowAsymmetric() = runTest {
initCrypto()
val syk1 = SymmetricKey.random()
val syk2 = SymmetricKey.random()
val syk1 = SymmetricKey.new()
val syk2 = SymmetricKey.new()
val p1 = Asymmetric.generateKeys()
val p3 = Asymmetric.generateKeys()
val data = "Translating the name 'Sergey Chernov' from Russian to archaic Sanskrit would be 'Ramo Krishna'"
@@ -226,9 +226,9 @@ class ContainerTest {
@Test
fun testMixedOps1() = runTest {
initCrypto()
val syk1 = SymmetricKey.random()
val syk2 = SymmetricKey.random()
val syk3 = SymmetricKey.random()
val syk1 = SymmetricKey.new()
val syk2 = SymmetricKey.new()
val syk3 = SymmetricKey.new()
val p1 = Asymmetric.generateKeys()
val p2 = Asymmetric.generateKeys()
val p3 = Asymmetric.generateKeys()
@@ -263,9 +263,9 @@ class ContainerTest {
@Test
fun testMixedOps2() = runTest {
initCrypto()
val syk1 = SymmetricKey.random()
val syk2 = SymmetricKey.random()
val syk3 = SymmetricKey.random()
val syk1 = SymmetricKey.new()
val syk2 = SymmetricKey.new()
val syk3 = SymmetricKey.new()
val p1 = Asymmetric.generateKeys()
val p2 = Asymmetric.generateKeys()
val p3 = Asymmetric.generateKeys()
+13 -13
View File
@@ -13,11 +13,11 @@ class KeysTest {
@Test
fun testSigningCreationAndMap() = runTest {
initCrypto()
val (stk,pbk) = Signing.pair()
val (stk,pbk) = SigningSecretKey.generatePair()
val x = mapOf( stk to "STK!", pbk to "PBK!")
assertEquals("STK!", x[stk])
val s1 = Signing.SecretKey(stk.packed)
val s1 = SigningSecretKey(stk.keyBytes)
assertEquals(stk, s1)
assertEquals("STK!", x[s1])
assertEquals("PBK!", x[pbk])
@@ -29,8 +29,8 @@ class KeysTest {
data1[0] = 0x01u
assertFalse(s.isValid(data1))
val p2 = Signing.pair()
val p3 = Signing.pair()
val p2 = SigningSecretKey.generatePair()
val p3 = SigningSecretKey.generatePair()
val ms = SealedBox.create(data, s1) + p2.secretKey
@@ -49,8 +49,8 @@ class KeysTest {
@Test
fun testNonDeterministicSeals() = runTest {
initCrypto()
val data = "Welcome to the Miami, bitch!".encodeToUByteArray()
val (sk,_) = Signing.pair()
val data = "Welcome to the crazy new world!".encodeToUByteArray()
val (sk,_) = SigningSecretKey.generatePair()
val t = now()
val s1 = Seal.create(sk, data, createdAt = t)
val s2 = Seal.create(sk, data, createdAt = t)
@@ -72,8 +72,8 @@ class KeysTest {
@Test
fun secretEncryptTest() = runTest {
initCrypto()
val key = SymmetricKey.random()
val key1 = SymmetricKey.random()
val key = SymmetricKey.new()
val key1 = SymmetricKey.new()
assertEquals("hello", key.decrypt(key.encrypt("hello".encodeToUByteArray())).decodeFromUByteArray())
assertEquals("hello", key.decryptString(key.encrypt("hello")))
assertEquals("hello", key.decryptObject(key.encryptObject("hello")))
@@ -88,7 +88,7 @@ class KeysTest {
@Test
fun symmetricKeyTest() = runTest {
initCrypto()
val k1 = SymmetricKey.random()
val k1 = SymmetricKey.new()
val src = "Buena Vista".encodeToUByteArray()
val nonce = k1.randomNonce()
@@ -176,9 +176,9 @@ class KeysTest {
@Test
fun testUniKeys() = runTest {
initCrypto()
val sy1 = SymmetricKey.random()
val sy1 = SymmetricKey.new()
val sy2 = SymmetricKey(sy1.keyBytes)
val sy3 = SymmetricKey.random()
val sy3 = SymmetricKey.new()
assertEquals(sy1, sy2)
assertEquals(sy2, sy1)
@@ -195,9 +195,9 @@ class KeysTest {
assertEquals(usy2, usy1)
assertFalse { usy1 == usy3 }
val sk1 = Asymmetric.randomSecretKey()
val sk1 = Asymmetric.new()
val sk2 = Asymmetric.SecretKey(sk1.keyBytes)
val sk3 = Asymmetric.randomSecretKey()
val sk3 = Asymmetric.new()
assertEquals(sk1, sk2)
assertEquals(sk2, sk1)
+35 -14
View File
@@ -16,7 +16,7 @@ class RingTest {
val y2 = SymmetricKey("1234567890Hello,dolly.here-we-go".encodeToUByteArray())
assertEquals(y1, y2)
val e1 = Asymmetric.randomSecretKey()
val e1 = Asymmetric.new()
val e2: Asymmetric.SecretKey = BipackDecoder.decode(BipackEncoder.encode(e1))
assertEquals(e1, e2)
@@ -26,8 +26,8 @@ class RingTest {
assertEquals(k1, k11)
val k2 = UniversalKey.from(Asymmetric.randomSecretKey())
val k3 = UniversalKey.from(Asymmetric.randomSecretKey())
val k2 = UniversalKey.from(Asymmetric.new())
val k3 = UniversalKey.from(Asymmetric.new())
//
val r = UniversalRing(k1, k2)
// val r = UniversalRing(k1)
@@ -35,8 +35,8 @@ class RingTest {
assertTrue(k1 in r)
assertFalse { k3 in r }
println(Asymmetric.randomSecretKey().keyBytes.size)
println(BipackEncoder.encode(Asymmetric.randomSecretKey()).size)
println(Asymmetric.new().keyBytes.size)
println(BipackEncoder.encode(Asymmetric.new()).size)
val encoded = BipackEncoder.encode(r)
println(encoded.toDump())
println(encoded.size)
@@ -60,16 +60,8 @@ class RingTest {
fun testTags() = runTest {
initCrypto()
val y1 = SymmetricKey("1234567890Hello,dolly.here-we-go".encodeToUByteArray())
val y2 = SymmetricKey("1234567890Hello,dolly.here-we-go".encodeToUByteArray())
val e1 = Asymmetric.randomSecretKey()
val e2: Asymmetric.SecretKey = BipackDecoder.decode(BipackEncoder.encode(e1))
val k1 = UniversalKey.from(SymmetricKey("1234567890Hello,dolly.here-we-go".encodeToUByteArray()))
val k11 = UniversalKey.from(SymmetricKey("1234567890Hello,dolly.here-we-go".encodeToUByteArray()))
val k2 = UniversalKey.from(Asymmetric.randomSecretKey())
val k3 = UniversalKey.from(Asymmetric.randomSecretKey())
val k2 = UniversalKey.from(Asymmetric.new())
val r1 = UniversalRing(k1, k2)
var r2 = UniversalRing(deepCopy(k1), deepCopy(k2))
@@ -91,6 +83,35 @@ class RingTest {
assertEquals(r2, r3)
}
@Test
fun testAsymmetricEncryption() = runTest {
initCrypto()
val sk1 = UniversalKey.newSecretKey()
val sk2 = UniversalKey.newSecretKey()
val sk3 = UniversalKey.newSecretKey()
// val sk4 = UniversalKey.newSecretKey()
val sik1 = UniversalKey.newSigningKey()
// val sik2 = UniversalKey.newSigningKey()
val sik3 = UniversalKey.newSigningKey()
val data = "Mendeleev' table".encodeToUByteArray()
val r = UniversalRing(sk2, sk3, sk1.publicKey, sk3.publicKey, sik3.publicKey, sik1)
r.addTags(sik1, "SECRET_SIGN")
val box = deepCopy(Container.create(data) { key(sk3.publicKey) })
assertContentEquals(data, box.decryptWith(r))
assertEquals(sk3.publicKey, r.findKey<EncryptingKey>(sk3.id))
assertTrue { sik3.publicKey in r }
assertEquals(sik1, r.findKey<EncryptingKey>(sik1.publicKey.id))
assertEquals(sik1, r.keyByTag<SigningKey>("SECRET_SIGN"))
}
@Test
fun testSize() = runTest {
// val sy1 = SymmetricKey.random().toUniversal()