forked from sergeych/crypto2
refactored keys, unversal keys and ring
This commit is contained in:
1 parent
7eeb780bdb
commit
ede55650f4
16 files changed
+274
-241
No files matched your search
@@ -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()
|
||||
|
||||
Reference in new issue
Block a user