packed nonce is now unsigned

This commit is contained in:
Sergey Chernov 2024-06-17 10:00:41 +07:00
parent 3dd1654f70
commit ae624ee051
2 changed files with 12 additions and 0 deletions

View File

@ -3,6 +3,7 @@ package net.sergeych.kiloparsec
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
import net.sergeych.bintools.toDataSource import net.sergeych.bintools.toDataSource
import net.sergeych.bipack.BipackDecoder import net.sergeych.bipack.BipackDecoder
import net.sergeych.bipack.Unsigned
import net.sergeych.crypto2.* import net.sergeych.crypto2.*
import net.sergeych.synctools.ProtectedOp import net.sergeych.synctools.ProtectedOp
import net.sergeych.synctools.invoke import net.sergeych.synctools.invoke
@ -28,6 +29,7 @@ data class KiloParams<S>(
) { ) {
@Serializable @Serializable
data class Package( data class Package(
@Unsigned
val nonce: ULong, val nonce: ULong,
val encryptedMessage: UByteArray, val encryptedMessage: UByteArray,
) )

View File

@ -1,11 +1,15 @@
import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.test.runTest import kotlinx.coroutines.test.runTest
import kotlinx.datetime.Instant import kotlinx.datetime.Instant
import net.sergeych.bipack.BipackEncoder
import net.sergeych.crypto2.initCrypto import net.sergeych.crypto2.initCrypto
import net.sergeych.kiloparsec.KiloParams
import net.sergeych.kiloparsec.Transport import net.sergeych.kiloparsec.Transport
import net.sergeych.utools.nowToSeconds import net.sergeych.utools.nowToSeconds
import net.sergeych.utools.pack import net.sergeych.utools.pack
import net.sergeych.utools.unpack import net.sergeych.utools.unpack
import kotlin.test.Test import kotlin.test.Test
import kotlin.test.assertContentEquals
import kotlin.test.assertEquals import kotlin.test.assertEquals
import kotlin.time.Duration.Companion.microseconds import kotlin.time.Duration.Companion.microseconds
@ -40,4 +44,10 @@ class PackTest {
val b2 = unpack<Transport.Block>(p1) val b2 = unpack<Transport.Block>(p1)
assertEquals(b1,b2) assertEquals(b1,b2)
} }
@Test
fun packPackage() = runBlocking {
val x = BipackEncoder.encode(KiloParams.Package(1u, ubyteArrayOf()))
assertContentEquals(byteArrayOf(4, 0), x)
}
} }