diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-05-24 19:46:06 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-05-27 10:59:45 +0000 |
| commit | 23aac29f96e97840e2b067a61136f1acaa733a2b (patch) | |
| tree | 46c0ee80693540aa9db934c638c94ed0e5d4b368 | |
| parent | c1a43f630cbf8e71b676fae0c96ae071741a18d8 (diff) | |
| download | mullvadvpn-23aac29f96e97840e2b067a61136f1acaa733a2b.tar.xz mullvadvpn-23aac29f96e97840e2b067a61136f1acaa733a2b.zip | |
Implement `IntoJava` for `PublicKey`
| -rw-r--r-- | mullvad-jni/src/into_java.rs | 15 | ||||
| -rw-r--r-- | mullvad-jni/src/lib.rs | 1 |
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", ¶meters) + .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", |
