summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-24 19:46:06 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-27 10:59:45 +0000
commit23aac29f96e97840e2b067a61136f1acaa733a2b (patch)
tree46c0ee80693540aa9db934c638c94ed0e5d4b368
parentc1a43f630cbf8e71b676fae0c96ae071741a18d8 (diff)
downloadmullvadvpn-23aac29f96e97840e2b067a61136f1acaa733a2b.tar.xz
mullvadvpn-23aac29f96e97840e2b067a61136f1acaa733a2b.zip
Implement `IntoJava` for `PublicKey`
-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",