mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-20 08:39:22 +01:00
Re-organize gradle modules.
This commit is contained in:
committed by
jeffrey-signal
parent
f4863efb2e
commit
e162eb27c7
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user