diff options
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt | 1 | ||||
| -rw-r--r-- | mullvad-jni/src/lib.rs | 21 |
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>, |
