summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-24 20:03:57 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-27 10:59:46 +0000
commitddfcfa3f536a0227653189ae402f17190c1a2ee4 (patch)
tree3fcf3ceaa22d3c5adc0dd0cf55e23f85537bf5a0
parent2951db9b0664da6f059638bfdd936e3a915ef3c8 (diff)
downloadmullvadvpn-ddfcfa3f536a0227653189ae402f17190c1a2ee4.tar.xz
mullvadvpn-ddfcfa3f536a0227653189ae402f17190c1a2ee4.zip
Implement `MullvadDaemon::generateWireguardKey`
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt1
-rw-r--r--mullvad-jni/src/lib.rs21
2 files changed, 22 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt
index b73054a992..e9f54769b2 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt
@@ -17,6 +17,7 @@ class MullvadDaemon {
external fun connect()
external fun disconnect()
+ external fun generateWireguardKey(): Boolean
external fun getAccountData(accountToken: String): AccountData?
external fun getRelayLocations(): RelayList
external fun getSettings(): Settings
diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs
index 95571ac9f6..9e1b0c3b38 100644
--- a/mullvad-jni/src/lib.rs
+++ b/mullvad-jni/src/lib.rs
@@ -12,6 +12,7 @@ use crate::{
};
use jni::{
objects::{GlobalRef, JObject, JString},
+ sys::{jboolean, JNI_FALSE, JNI_TRUE},
JNIEnv,
};
use lazy_static::lazy_static;
@@ -198,6 +199,26 @@ pub extern "system" fn Java_net_mullvad_mullvadvpn_MullvadDaemon_disconnect(_: J
#[no_mangle]
#[allow(non_snake_case)]
+pub extern "system" fn Java_net_mullvad_mullvadvpn_MullvadDaemon_generateWireguardKey(
+ _: JNIEnv,
+ _: JObject,
+) -> jboolean {
+ let daemon = DAEMON_INTERFACE.lock();
+
+ match daemon.generate_wireguard_key() {
+ Ok(()) => JNI_TRUE,
+ Err(error) => {
+ log::error!(
+ "{}",
+ error.display_chain_with_msg("Failed to generate wireguard key")
+ );
+ JNI_FALSE
+ }
+ }
+}
+
+#[no_mangle]
+#[allow(non_snake_case)]
pub extern "system" fn Java_net_mullvad_mullvadvpn_MullvadDaemon_getAccountData<'env, 'this>(
env: JNIEnv<'env>,
_: JObject<'this>,