summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--mullvad-jni/src/into_java.rs15
-rw-r--r--mullvad-jni/src/lib.rs1
2 files changed, 15 insertions, 1 deletions
diff --git a/mullvad-jni/src/into_java.rs b/mullvad-jni/src/into_java.rs
index fea18df244..92d75b4a27 100644
--- a/mullvad-jni/src/into_java.rs
+++ b/mullvad-jni/src/into_java.rs
@@ -12,7 +12,7 @@ use mullvad_types::{
CustomTunnelEndpoint,
};
use std::fmt::Debug;
-use talpid_types::tunnel::TunnelStateTransition;
+use talpid_types::{net::wireguard::PublicKey, tunnel::TunnelStateTransition};
pub trait IntoJava<'env> {
type JavaType;
@@ -91,6 +91,19 @@ impl<'array, 'env> IntoJava<'env> for &'array [u8] {
}
}
+impl<'env> IntoJava<'env> for PublicKey {
+ type JavaType = JObject<'env>;
+
+ fn into_java(self, env: &JNIEnv<'env>) -> Self::JavaType {
+ let class = get_class("net/mullvad/mullvadvpn/model/PublicKey");
+ let key = env.auto_local(self.as_bytes().into_java(env));
+ let parameters = [JValue::Object(key.as_obj())];
+
+ env.new_object(&class, "([B)V", &parameters)
+ .expect("Failed to create PublicKey Java object")
+ }
+}
+
impl<'env> IntoJava<'env> for AccountData {
type JavaType = JObject<'env>;
diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs
index 83e60e0486..caa9af92a9 100644
--- a/mullvad-jni/src/lib.rs
+++ b/mullvad-jni/src/lib.rs
@@ -30,6 +30,7 @@ const CLASSES_TO_LOAD: &[&str] = &[
"net/mullvad/mullvadvpn/model/LocationConstraint$City",
"net/mullvad/mullvadvpn/model/LocationConstraint$Country",
"net/mullvad/mullvadvpn/model/LocationConstraint$Hostname",
+ "net/mullvad/mullvadvpn/model/PublicKey",
"net/mullvad/mullvadvpn/model/Relay",
"net/mullvad/mullvadvpn/model/RelayList",
"net/mullvad/mullvadvpn/model/RelayListCity",