diff --git a/src/commonMain/kotlin/net/sergeych/kiloparsec/KiloParams.kt b/src/commonMain/kotlin/net/sergeych/kiloparsec/KiloParams.kt index 7d29ca3..9b3ff33 100644 --- a/src/commonMain/kotlin/net/sergeych/kiloparsec/KiloParams.kt +++ b/src/commonMain/kotlin/net/sergeych/kiloparsec/KiloParams.kt @@ -3,6 +3,7 @@ package net.sergeych.kiloparsec import kotlinx.serialization.Serializable import net.sergeych.bintools.toDataSource import net.sergeych.bipack.BipackDecoder +import net.sergeych.bipack.Unsigned import net.sergeych.crypto2.* import net.sergeych.synctools.ProtectedOp import net.sergeych.synctools.invoke @@ -28,6 +29,7 @@ data class KiloParams( ) { @Serializable data class Package( + @Unsigned val nonce: ULong, val encryptedMessage: UByteArray, ) diff --git a/src/commonTest/kotlin/PackTest.kt b/src/commonTest/kotlin/PackTest.kt index 1495c06..7af9197 100644 --- a/src/commonTest/kotlin/PackTest.kt +++ b/src/commonTest/kotlin/PackTest.kt @@ -1,11 +1,15 @@ +import kotlinx.coroutines.runBlocking import kotlinx.coroutines.test.runTest import kotlinx.datetime.Instant +import net.sergeych.bipack.BipackEncoder import net.sergeych.crypto2.initCrypto +import net.sergeych.kiloparsec.KiloParams import net.sergeych.kiloparsec.Transport import net.sergeych.utools.nowToSeconds import net.sergeych.utools.pack import net.sergeych.utools.unpack import kotlin.test.Test +import kotlin.test.assertContentEquals import kotlin.test.assertEquals import kotlin.time.Duration.Companion.microseconds @@ -40,4 +44,10 @@ class PackTest { val b2 = unpack(p1) assertEquals(b1,b2) } + + @Test + fun packPackage() = runBlocking { + val x = BipackEncoder.encode(KiloParams.Package(1u, ubyteArrayOf())) + assertContentEquals(byteArrayOf(4, 0), x) + } } \ No newline at end of file