Added support for compact encryption/decryption with caller-provided nonce in SymmetricKey and accompanying tests. Bumped version to 0.9.1-SNAPSHOT.
This commit is contained in:
1 parent
13dff8d760
commit
8015a4310b
3 files changed
+98
-4
No files matched your search
@@ -11,7 +11,6 @@
|
||||
import com.ionspin.kotlin.crypto.util.decodeFromUByteArray
|
||||
import com.ionspin.kotlin.crypto.util.encodeToUByteArray
|
||||
import kotlinx.coroutines.test.runTest
|
||||
import kotlinx.serialization.encodeToString
|
||||
import kotlinx.serialization.json.Json
|
||||
import net.sergeych.bipack.BipackDecoder
|
||||
import net.sergeych.bipack.BipackEncoder
|
||||
@@ -118,6 +117,44 @@ class KeysTest {
|
||||
assertContentEquals(src, k1.decrypt(k1.encrypt(src, 7..117)))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun symmetricKeyCompactTest() = runTest {
|
||||
initCrypto()
|
||||
val key = SymmetricKey.new()
|
||||
val otherKey = SymmetricKey.new()
|
||||
val src = "readme.md".encodeToUByteArray()
|
||||
val nonce = key.randomNonce()
|
||||
val cipher = key.encryptCompactWithNonce(src, nonce)
|
||||
|
||||
assertEquals(src.size + 16, cipher.size)
|
||||
assertTrue(cipher.size < key.encryptWithNonce(src, nonce).size)
|
||||
assertTrue(cipher.size < key.encrypt(src).size)
|
||||
assertContentEquals(src, key.decryptCompactWithNonce(cipher, nonce))
|
||||
|
||||
assertThrows<DecryptionFailedException> {
|
||||
otherKey.decryptCompactWithNonce(cipher, nonce)
|
||||
}
|
||||
|
||||
assertThrows<DecryptionFailedException> {
|
||||
val n2 = nonce.copyOf()
|
||||
n2[4] = n2[4].inv()
|
||||
key.decryptCompactWithNonce(cipher, n2)
|
||||
}
|
||||
|
||||
assertThrows<DecryptionFailedException> {
|
||||
val c2 = cipher.copyOf()
|
||||
c2[3] = c2[3].inv()
|
||||
key.decryptCompactWithNonce(c2, nonce)
|
||||
}
|
||||
|
||||
assertThrows<IllegalArgumentException> {
|
||||
key.encryptCompactWithNonce(src, nonce.dropLast(1).toUByteArray())
|
||||
}
|
||||
assertThrows<DecryptionFailedException> {
|
||||
key.decryptCompactWithNonce(cipher, nonce.dropLast(1).toUByteArray())
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun keyExchangeTest() = runTest {
|
||||
initCrypto()
|
||||
|
||||
Reference in new issue
Block a user