diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-05-21 14:32:10 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-05-22 12:41:41 +0000 |
| commit | 10a411a4117d32657b510a68fc1a51ff70de8a66 (patch) | |
| tree | 9b9d5a2c00b4a4d13f9aaeee94cd462bb27f2241 /android/src | |
| parent | a34b9cf96d2018cc288864124fc126cd86b965a8 (diff) | |
| download | mullvadvpn-10a411a4117d32657b510a68fc1a51ff70de8a66.tar.xz mullvadvpn-10a411a4117d32657b510a68fc1a51ff70de8a66.zip | |
Include API root certificate
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ApiRootCaFile.kt | 29 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt | 23 |
2 files changed, 52 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ApiRootCaFile.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ApiRootCaFile.kt new file mode 100644 index 0000000000..dc8af32ce2 --- /dev/null +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ApiRootCaFile.kt @@ -0,0 +1,29 @@ +package net.mullvad.mullvadvpn + +import java.io.File +import java.io.FileOutputStream +import java.io.InputStream + +import android.content.Context + +private const val API_ROOT_CA_FILE = "api_root_ca.pem" +private const val API_ROOT_CA_PATH = "/data/data/net.mullvad.mullvadvpn/api_root_ca.pem" + +class ApiRootCaFile { + fun extract(context: Context) { + if (!File(API_ROOT_CA_PATH).exists()) { + extractFile(context, API_ROOT_CA_FILE, API_ROOT_CA_PATH) + } + } + + private fun extractFile(context: Context, asset: String, destination: String) { + val destinationStream = FileOutputStream(destination) + + context + .assets + .open(asset) + .copyTo(destinationStream) + + destinationStream.close() + } +} diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt index b7b0e8fa8c..8b1571c2fc 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/MainActivity.kt @@ -1,24 +1,47 @@ package net.mullvad.mullvadvpn +import kotlinx.coroutines.launch +import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.Job + import android.os.Bundle import android.support.v4.app.FragmentActivity class MainActivity : FragmentActivity() { + private val extractApiRootCaFile = doExtractApiRootCaFile() + + val activityCreated = CompletableDeferred<Unit>() + var selectedRelayItemCode: String? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.main) + activityCreated.complete(Unit) + if (savedInstanceState == null) { addInitialFragment() } } + override fun onDestroy() { + extractApiRootCaFile.cancel() + + super.onDestroy() + } + private fun addInitialFragment() { supportFragmentManager?.beginTransaction()?.apply { add(R.id.main_fragment, LoginFragment()) commit() } } + + private fun doExtractApiRootCaFile() = GlobalScope.launch(Dispatchers.Default) { + activityCreated.await() + ApiRootCaFile().extract(this@MainActivity) + } } |
