Re-organize gradle modules.

This commit is contained in:
Greyson Parrelli
2025-12-31 11:56:13 -05:00
committed by jeffrey-signal
parent f4863efb2e
commit e162eb27c7
1444 changed files with 111 additions and 144 deletions

View File

@@ -0,0 +1,82 @@
package org.signal.devicetransfer
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNotEquals
import org.junit.Before
import org.junit.Test
import org.signal.devicetransfer.DeviceTransferAuthentication.DeviceTransferAuthenticationException
import org.whispersystems.signalservice.test.LibSignalLibraryUtil
import kotlin.random.Random
class DeviceTransferAuthenticationTest {
private lateinit var certificate: ByteArray
@Before
fun ensureNativeSupported() {
LibSignalLibraryUtil.assumeLibSignalSupportedOnOS()
certificate = SelfSignedIdentity.create().x509Encoded
}
@Test
fun testCompute_withNoChanges() {
val client = DeviceTransferAuthentication.Client(certificate)
val server = DeviceTransferAuthentication.Server(certificate, client.commitment)
val clientRandom = client.setServerRandomAndGetClientRandom(server.random)
server.setClientRandom(clientRandom)
assertEquals(client.computeShortAuthenticationCode(), server.computeShortAuthenticationCode())
}
@Test(expected = DeviceTransferAuthenticationException::class)
fun testServerCompute_withChangedClientCertificate() {
val badCertificate = SelfSignedIdentity.create().x509Encoded
val client = DeviceTransferAuthentication.Client(badCertificate)
val server = DeviceTransferAuthentication.Server(certificate, client.commitment)
val clientRandom = client.setServerRandomAndGetClientRandom(server.random)
server.setClientRandom(clientRandom)
server.computeShortAuthenticationCode()
}
@Test(expected = DeviceTransferAuthenticationException::class)
fun testServerCompute_withChangedClientCommitment() {
val client = DeviceTransferAuthentication.Client(certificate)
val server = DeviceTransferAuthentication.Server(certificate, randomBytes())
val clientRandom = client.setServerRandomAndGetClientRandom(server.random)
server.setClientRandom(clientRandom)
server.computeShortAuthenticationCode()
}
@Test(expected = DeviceTransferAuthenticationException::class)
fun testServerCompute_withChangedClientRandom() {
val client = DeviceTransferAuthentication.Client(certificate)
val server = DeviceTransferAuthentication.Server(certificate, client.commitment)
client.setServerRandomAndGetClientRandom(server.random)
server.setClientRandom(randomBytes())
server.computeShortAuthenticationCode()
}
@Test
fun testClientCompute_withChangedServerSecret() {
val client = DeviceTransferAuthentication.Client(certificate)
val server = DeviceTransferAuthentication.Server(certificate, client.commitment)
val clientRandom = client.setServerRandomAndGetClientRandom(randomBytes())
server.setClientRandom(clientRandom)
assertNotEquals(client.computeShortAuthenticationCode(), server.computeShortAuthenticationCode())
}
private fun randomBytes(): ByteArray {
val bytes = ByteArray(32)
Random.nextBytes(bytes)
return bytes
}
}

View File

@@ -0,0 +1,39 @@
package org.signal.devicetransfer
import android.app.Application
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNull
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner
import org.robolectric.annotation.Config
@RunWith(RobolectricTestRunner::class)
@Config(manifest = Config.NONE, application = Application::class)
class WifiDirectTest {
@Test
fun instanceName_withExtraInfo() {
val instanceName = WifiDirect.buildServiceInstanceName("knownothing")
assertEquals("_devicetransfer._knownothing._signal.org", instanceName)
val extractedExtraInfo = WifiDirect.isInstanceNameMatching(instanceName)
assertEquals(extractedExtraInfo, "knownothing")
}
@Test
fun instanceName_matchingWithoutExtraInfo() {
val instanceName = WifiDirect.buildServiceInstanceName("")
assertEquals("_devicetransfer._signal.org", instanceName)
val extractedExtraInfo = WifiDirect.isInstanceNameMatching(instanceName)
assertEquals(extractedExtraInfo, "")
}
@Test
fun instanceName_notMatching() {
val extractedExtraInfo = WifiDirect.isInstanceNameMatching("_whoknows._what.org")
assertNull(extractedExtraInfo)
}
}