summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--mullvad-jni/src/into_java.rs34
-rw-r--r--mullvad-jni/src/lib.rs3
2 files changed, 37 insertions, 0 deletions
diff --git a/mullvad-jni/src/into_java.rs b/mullvad-jni/src/into_java.rs
index bb29c20bc9..fc899bf12e 100644
--- a/mullvad-jni/src/into_java.rs
+++ b/mullvad-jni/src/into_java.rs
@@ -13,6 +13,7 @@ use mullvad_types::{
relay_list::{Relay, RelayList, RelayListCity, RelayListCountry},
settings::Settings,
states::TunnelState,
+ wireguard::KeygenEvent,
CustomTunnelEndpoint,
};
use std::{fmt::Debug, net::IpAddr};
@@ -423,6 +424,39 @@ impl<'env> IntoJava<'env> for CustomTunnelEndpoint {
}
}
+impl<'env> IntoJava<'env> for KeygenEvent {
+ type JavaType = JObject<'env>;
+
+ fn into_java(self, env: &JNIEnv<'env>) -> Self::JavaType {
+ match self {
+ KeygenEvent::NewKey(public_key) => {
+ let class = get_class("net/mullvad/mullvadvpn/model/KeygenEvent$NewKey");
+ let java_public_key = env.auto_local(public_key.into_java(env));
+ let parameters = [JValue::Object(java_public_key.as_obj())];
+
+ env.new_object(
+ &class,
+ "(Lnet/mullvad/mullvadvpn/model/PublicKey;)V",
+ &parameters,
+ )
+ .expect("Failed to create KeygenEvent.NewKey Java object")
+ }
+ KeygenEvent::TooManyKeys => {
+ let class = get_class("net/mullvad/mullvadvpn/model/KeygenEvent$TooManyKeys");
+
+ env.new_object(&class, "()V", &[])
+ .expect("Failed to create KeygenEvent.TooManyKeys Java object")
+ }
+ KeygenEvent::GenerationFailure => {
+ let class = get_class("net/mullvad/mullvadvpn/model/KeygenEvent$GenerationFailure");
+
+ env.new_object(&class, "()V", &[])
+ .expect("Failed to create KeygenEvent.GenerationFailure Java object")
+ }
+ }
+ }
+}
+
impl<'env> IntoJava<'env> for RelayConstraints {
type JavaType = JObject<'env>;
diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs
index 2ec4cac08a..dfc55010ac 100644
--- a/mullvad-jni/src/lib.rs
+++ b/mullvad-jni/src/lib.rs
@@ -39,6 +39,9 @@ const CLASSES_TO_LOAD: &[&str] = &[
"net/mullvad/mullvadvpn/model/Constraint$Only",
"net/mullvad/mullvadvpn/model/GeoIpLocation",
"net/mullvad/mullvadvpn/model/InetNetwork",
+ "net/mullvad/mullvadvpn/model/KeygenEvent$NewKey",
+ "net/mullvad/mullvadvpn/model/KeygenEvent$TooManyKeys",
+ "net/mullvad/mullvadvpn/model/KeygenEvent$GenerationFailure",
"net/mullvad/mullvadvpn/model/LocationConstraint$City",
"net/mullvad/mullvadvpn/model/LocationConstraint$Country",
"net/mullvad/mullvadvpn/model/LocationConstraint$Hostname",