Disable xchacha20 stream for now, as it seems to be missing on ios32arm build. Fix android sdk path
This commit is contained in:
parent
b85b75e732
commit
8249881eb1
@ -12,6 +12,7 @@ workflow:
|
|||||||
variables:
|
variables:
|
||||||
GIT_SUBMODULE_STRATEGY: recursive
|
GIT_SUBMODULE_STRATEGY: recursive
|
||||||
CHROME_BIN: "chromium"
|
CHROME_BIN: "chromium"
|
||||||
|
ANDROID_SDK_ROOT: "/android-sdk"
|
||||||
|
|
||||||
simpleCheck:
|
simpleCheck:
|
||||||
stage: prepare
|
stage: prepare
|
||||||
|
@ -23,8 +23,8 @@ expect object Stream {
|
|||||||
fun chacha20IetfXor(message : UByteArray, nonce: UByteArray, key: UByteArray) : UByteArray
|
fun chacha20IetfXor(message : UByteArray, nonce: UByteArray, key: UByteArray) : UByteArray
|
||||||
fun chacha20IetfXorIc(message : UByteArray, nonce: UByteArray, initialCounter: ULong, key: UByteArray) : UByteArray
|
fun chacha20IetfXorIc(message : UByteArray, nonce: UByteArray, initialCounter: ULong, key: UByteArray) : UByteArray
|
||||||
|
|
||||||
fun xChacha20Keygen() : UByteArray
|
// fun xChacha20Keygen() : UByteArray
|
||||||
|
//
|
||||||
fun xChacha20Xor(message : UByteArray, nonce: UByteArray, key: UByteArray) : UByteArray
|
// fun xChacha20Xor(message : UByteArray, nonce: UByteArray, key: UByteArray) : UByteArray
|
||||||
fun xChacha20XorIc(message : UByteArray, nonce: UByteArray, initialCounter: ULong, key: UByteArray) : UByteArray
|
// fun xChacha20XorIc(message : UByteArray, nonce: UByteArray, initialCounter: ULong, key: UByteArray) : UByteArray
|
||||||
}
|
}
|
||||||
|
@ -69,25 +69,25 @@ class StreamTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
// @Test
|
||||||
fun testXChaCha20IetfStream() = runTest {
|
// fun testXChaCha20IetfStream() = runTest {
|
||||||
LibsodiumInitializer.initializeWithCallback {
|
// LibsodiumInitializer.initializeWithCallback {
|
||||||
val message = "This is a cha cha message".encodeToUByteArray()
|
// val message = "This is a cha cha message".encodeToUByteArray()
|
||||||
val nonce = LibsodiumRandom.bufDeterministic(crypto_stream_xchacha20_NONCEBYTES, seed)
|
// val nonce = LibsodiumRandom.bufDeterministic(crypto_stream_xchacha20_NONCEBYTES, seed)
|
||||||
val key = Stream.xChacha20Keygen()
|
// val key = Stream.xChacha20Keygen()
|
||||||
val encryptedUsingLibsodium = Stream.xChacha20Xor(message, nonce, key)
|
// val encryptedUsingLibsodium = Stream.xChacha20Xor(message, nonce, key)
|
||||||
val encryptedUsingLibsodiumWithInitialCounter = Stream.xChacha20XorIc(message, nonce, 0U, key)
|
// val encryptedUsingLibsodiumWithInitialCounter = Stream.xChacha20XorIc(message, nonce, 0U, key)
|
||||||
println(encryptedUsingLibsodium.toHexString())
|
// println(encryptedUsingLibsodium.toHexString())
|
||||||
println(encryptedUsingLibsodiumWithInitialCounter.toHexString())
|
// println(encryptedUsingLibsodiumWithInitialCounter.toHexString())
|
||||||
assertTrue {
|
// assertTrue {
|
||||||
encryptedUsingLibsodium.contentEquals(encryptedUsingLibsodiumWithInitialCounter)
|
// encryptedUsingLibsodium.contentEquals(encryptedUsingLibsodiumWithInitialCounter)
|
||||||
}
|
// }
|
||||||
val decryptedUsingLibsodium = Stream.xChacha20Xor(encryptedUsingLibsodium, nonce, key)
|
// val decryptedUsingLibsodium = Stream.xChacha20Xor(encryptedUsingLibsodium, nonce, key)
|
||||||
println(message.toHexString())
|
// println(message.toHexString())
|
||||||
println(decryptedUsingLibsodium.toHexString())
|
// println(decryptedUsingLibsodium.toHexString())
|
||||||
assertTrue {
|
// assertTrue {
|
||||||
decryptedUsingLibsodium.contentEquals(message)
|
// decryptedUsingLibsodium.contentEquals(message)
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
@ -80,41 +80,41 @@ actual object Stream {
|
|||||||
return result.toUByteArray()
|
return result.toUByteArray()
|
||||||
}
|
}
|
||||||
|
|
||||||
actual fun xChacha20Keygen(): UByteArray {
|
// actual fun xChacha20Keygen(): UByteArray {
|
||||||
val result = getSodium().crypto_stream_xchacha20_keygen()
|
// val result = getSodium().crypto_stream_xchacha20_keygen()
|
||||||
|
//
|
||||||
return result.toUByteArray()
|
// return result.toUByteArray()
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
actual fun xChacha20Xor(
|
// actual fun xChacha20Xor(
|
||||||
message: UByteArray,
|
// message: UByteArray,
|
||||||
nonce: UByteArray,
|
// nonce: UByteArray,
|
||||||
key: UByteArray
|
// key: UByteArray
|
||||||
): UByteArray {
|
// ): UByteArray {
|
||||||
val result = getSodium().crypto_stream_xchacha20_xor(
|
// val result = getSodium().crypto_stream_xchacha20_xor(
|
||||||
message.toUInt8Array(),
|
// message.toUInt8Array(),
|
||||||
nonce.toUInt8Array(),
|
// nonce.toUInt8Array(),
|
||||||
key.toUInt8Array()
|
// key.toUInt8Array()
|
||||||
)
|
// )
|
||||||
|
//
|
||||||
return result.toUByteArray()
|
// return result.toUByteArray()
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
actual fun xChacha20XorIc(
|
// actual fun xChacha20XorIc(
|
||||||
message: UByteArray,
|
// message: UByteArray,
|
||||||
nonce: UByteArray,
|
// nonce: UByteArray,
|
||||||
initialCounter: ULong,
|
// initialCounter: ULong,
|
||||||
key: UByteArray
|
// key: UByteArray
|
||||||
): UByteArray {
|
// ): UByteArray {
|
||||||
val result = getSodium().crypto_stream_xchacha20_xor_ic(
|
// val result = getSodium().crypto_stream_xchacha20_xor_ic(
|
||||||
message.toUInt8Array(),
|
// message.toUInt8Array(),
|
||||||
nonce.toUInt8Array(),
|
// nonce.toUInt8Array(),
|
||||||
initialCounter.toUInt(),
|
// initialCounter.toUInt(),
|
||||||
key.toUInt8Array()
|
// key.toUInt8Array()
|
||||||
)
|
// )
|
||||||
|
//
|
||||||
return result.toUByteArray()
|
// return result.toUByteArray()
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -96,49 +96,49 @@ actual object Stream {
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
actual fun xChacha20Keygen(): UByteArray {
|
// actual fun xChacha20Keygen(): UByteArray {
|
||||||
val result = UByteArray(crypto_stream_chacha20_KEYBYTES)
|
// val result = UByteArray(crypto_stream_chacha20_KEYBYTES)
|
||||||
|
//
|
||||||
sodiumJna.crypto_stream_xchacha20_keygen(result.asByteArray())
|
// sodiumJna.crypto_stream_xchacha20_keygen(result.asByteArray())
|
||||||
|
//
|
||||||
return result
|
// return result
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
actual fun xChacha20Xor(
|
// actual fun xChacha20Xor(
|
||||||
message: UByteArray,
|
// message: UByteArray,
|
||||||
nonce: UByteArray,
|
// nonce: UByteArray,
|
||||||
key: UByteArray
|
// key: UByteArray
|
||||||
): UByteArray {
|
// ): UByteArray {
|
||||||
val result = UByteArray(message.size)
|
// val result = UByteArray(message.size)
|
||||||
|
//
|
||||||
sodiumJna.crypto_stream_xchacha20_xor(
|
// sodiumJna.crypto_stream_xchacha20_xor(
|
||||||
result.asByteArray(),
|
// result.asByteArray(),
|
||||||
message.asByteArray(),
|
// message.asByteArray(),
|
||||||
message.size.toLong(),
|
// message.size.toLong(),
|
||||||
nonce.asByteArray(),
|
// nonce.asByteArray(),
|
||||||
key.asByteArray()
|
// key.asByteArray()
|
||||||
)
|
// )
|
||||||
|
//
|
||||||
return result
|
// return result
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
actual fun xChacha20XorIc(
|
// actual fun xChacha20XorIc(
|
||||||
message: UByteArray,
|
// message: UByteArray,
|
||||||
nonce: UByteArray,
|
// nonce: UByteArray,
|
||||||
initialCounter: ULong,
|
// initialCounter: ULong,
|
||||||
key: UByteArray
|
// key: UByteArray
|
||||||
): UByteArray {
|
// ): UByteArray {
|
||||||
val result = UByteArray(message.size)
|
// val result = UByteArray(message.size)
|
||||||
|
//
|
||||||
sodiumJna.crypto_stream_xchacha20_xor_ic(
|
// sodiumJna.crypto_stream_xchacha20_xor_ic(
|
||||||
result.asByteArray(),
|
// result.asByteArray(),
|
||||||
message.asByteArray(),
|
// message.asByteArray(),
|
||||||
message.size.toLong(),
|
// message.size.toLong(),
|
||||||
nonce.asByteArray(),
|
// nonce.asByteArray(),
|
||||||
initialCounter.toLong(),
|
// initialCounter.toLong(),
|
||||||
key.asByteArray()
|
// key.asByteArray()
|
||||||
)
|
// )
|
||||||
|
//
|
||||||
return result
|
// return result
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
@ -153,70 +153,70 @@ actual object Stream {
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
actual fun xChacha20Keygen(): UByteArray {
|
// actual fun xChacha20Keygen(): UByteArray {
|
||||||
val result = UByteArray(crypto_stream_xchacha20_KEYBYTES)
|
// val result = UByteArray(crypto_stream_xchacha20_KEYBYTES)
|
||||||
val resultPinned = result.pin()
|
// val resultPinned = result.pin()
|
||||||
|
//
|
||||||
crypto_stream_xchacha20_keygen(resultPinned.toPtr())
|
// crypto_stream_xchacha20_keygen(resultPinned.toPtr())
|
||||||
|
//
|
||||||
resultPinned.unpin()
|
// resultPinned.unpin()
|
||||||
|
//
|
||||||
return result
|
// return result
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
actual fun xChacha20Xor(
|
// actual fun xChacha20Xor(
|
||||||
message: UByteArray,
|
// message: UByteArray,
|
||||||
nonce: UByteArray,
|
// nonce: UByteArray,
|
||||||
key: UByteArray
|
// key: UByteArray
|
||||||
): UByteArray {
|
// ): UByteArray {
|
||||||
val result = UByteArray(message.size)
|
// val result = UByteArray(message.size)
|
||||||
val messagePinned = message.pin()
|
// val messagePinned = message.pin()
|
||||||
val resultPinned = result.pin()
|
// val resultPinned = result.pin()
|
||||||
val noncePinned = nonce.pin()
|
// val noncePinned = nonce.pin()
|
||||||
val keyPinned = key.pin()
|
// val keyPinned = key.pin()
|
||||||
|
//
|
||||||
crypto_stream_xchacha20_xor(
|
// crypto_stream_xchacha20_xor(
|
||||||
resultPinned.toPtr(),
|
// resultPinned.toPtr(),
|
||||||
messagePinned.toPtr(),
|
// messagePinned.toPtr(),
|
||||||
message.size.convert(),
|
// message.size.convert(),
|
||||||
noncePinned.toPtr(),
|
// noncePinned.toPtr(),
|
||||||
keyPinned.toPtr()
|
// keyPinned.toPtr()
|
||||||
)
|
// )
|
||||||
|
//
|
||||||
messagePinned.unpin()
|
// messagePinned.unpin()
|
||||||
resultPinned.unpin()
|
// resultPinned.unpin()
|
||||||
noncePinned.unpin()
|
// noncePinned.unpin()
|
||||||
keyPinned.unpin()
|
// keyPinned.unpin()
|
||||||
|
//
|
||||||
return result
|
// return result
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
actual fun xChacha20XorIc(
|
// actual fun xChacha20XorIc(
|
||||||
message: UByteArray,
|
// message: UByteArray,
|
||||||
nonce: UByteArray,
|
// nonce: UByteArray,
|
||||||
initialCounter: ULong,
|
// initialCounter: ULong,
|
||||||
key: UByteArray
|
// key: UByteArray
|
||||||
): UByteArray {
|
// ): UByteArray {
|
||||||
val result = UByteArray(message.size)
|
// val result = UByteArray(message.size)
|
||||||
val messagePinned = message.pin()
|
// val messagePinned = message.pin()
|
||||||
val resultPinned = result.pin()
|
// val resultPinned = result.pin()
|
||||||
val noncePinned = nonce.pin()
|
// val noncePinned = nonce.pin()
|
||||||
val keyPinned = key.pin()
|
// val keyPinned = key.pin()
|
||||||
|
//
|
||||||
crypto_stream_xchacha20_xor_ic(
|
// crypto_stream_xchacha20_xor_ic(
|
||||||
resultPinned.toPtr(),
|
// resultPinned.toPtr(),
|
||||||
messagePinned.toPtr(),
|
// messagePinned.toPtr(),
|
||||||
message.size.convert(),
|
// message.size.convert(),
|
||||||
noncePinned.toPtr(),
|
// noncePinned.toPtr(),
|
||||||
initialCounter.convert(),
|
// initialCounter.convert(),
|
||||||
keyPinned.toPtr()
|
// keyPinned.toPtr()
|
||||||
)
|
// )
|
||||||
|
//
|
||||||
messagePinned.unpin()
|
// messagePinned.unpin()
|
||||||
resultPinned.unpin()
|
// resultPinned.unpin()
|
||||||
noncePinned.unpin()
|
// noncePinned.unpin()
|
||||||
keyPinned.unpin()
|
// keyPinned.unpin()
|
||||||
|
//
|
||||||
return result
|
// return result
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
@ -143,9 +143,9 @@ native libsodium library.
|
|||||||
| crypto_stream_chacha20_xor | :heavy_check_mark: |
|
| crypto_stream_chacha20_xor | :heavy_check_mark: |
|
||||||
| crypto_stream_chacha20_xor_ic | :heavy_check_mark: |
|
| crypto_stream_chacha20_xor_ic | :heavy_check_mark: |
|
||||||
| crypto_stream_keygen | Other XSalsa20 primitives are not available, so I'm leaving this out as well|
|
| crypto_stream_keygen | Other XSalsa20 primitives are not available, so I'm leaving this out as well|
|
||||||
| crypto_stream_xchacha20_keygen | :heavy_check_mark: |
|
| crypto_stream_xchacha20_keygen | Not at the moment |
|
||||||
| crypto_stream_xchacha20_xor | :heavy_check_mark: |
|
| crypto_stream_xchacha20_xor | Not at the moment |
|
||||||
| crypto_stream_xchacha20_xor_ic | :heavy_check_mark: |
|
| crypto_stream_xchacha20_xor_ic | Not at the moment |
|
||||||
| randombytes_buf | :heavy_check_mark: |
|
| randombytes_buf | :heavy_check_mark: |
|
||||||
| randombytes_buf_deterministic | :heavy_check_mark: |
|
| randombytes_buf_deterministic | :heavy_check_mark: |
|
||||||
| randombytes_close | not present in LazySodium |
|
| randombytes_close | not present in LazySodium |
|
||||||
|
Loading…
x
Reference in New Issue
Block a user