Add more tests, fix array when input is aligned

This commit is contained in:
Ugljesa Jovanovic 2020-09-25 19:05:22 +02:00
parent 7d3fe70d4d
commit 7e2b52a193
No known key found for this signature in database
GPG Key ID: 178E6DFCECCB0E0F
2 changed files with 29 additions and 1 deletions

View File

@ -24,4 +24,32 @@ class LibsodiumUtilTest {
input.contentEquals(unpadded) input.contentEquals(unpadded)
} }
} }
@Test
fun testPaddingAligned() {
val input = ubyteArrayOf(1U, 2U)
val blocksize = 2
val padded = LibsodiumUtil.pad(input, blocksize)
println(padded.hexColumsPrint())
val unpadded = LibsodiumUtil.unpad(padded, blocksize)
println(unpadded.hexColumsPrint())
assertTrue {
input.contentEquals(unpadded)
}
}
@Test
fun testPaddingMultiblock() {
val input = ubyteArrayOf(1U, 2U, 3U, 4U, 5U, 6U)
val blocksize = 4
val padded = LibsodiumUtil.pad(input, blocksize)
println(padded.hexColumsPrint())
val unpadded = LibsodiumUtil.unpad(padded, blocksize)
println(unpadded.hexColumsPrint())
assertTrue {
input.contentEquals(unpadded)
}
}
} }

View File

@ -37,7 +37,7 @@ actual object LibsodiumUtil {
val resultingSize = if (unpaddedData.size % blocksize != 0 ) { val resultingSize = if (unpaddedData.size % blocksize != 0 ) {
((unpaddedData.size / blocksize) + 1 ) * blocksize ((unpaddedData.size / blocksize) + 1 ) * blocksize
} else { } else {
unpaddedData.size + 1 unpaddedData.size
} }
val paddedData = UByteArray(resultingSize) val paddedData = UByteArray(resultingSize)
unpaddedData.copyInto(paddedData, 0, 0) unpaddedData.copyInto(paddedData, 0, 0)