9
9
// Created by Thomas Ruffie on 29/7/2024.
10
10
//
11
11
12
+
12
13
extern " C"
13
14
JNIEXPORT jobject JNICALL
14
15
Java_network_loki_messenger_libsession_1util_util_BlindKeyAPI_blindVersionKeyPair (JNIEnv *env,
15
16
jobject thiz,
16
17
jbyteArray ed25519_secret_key) {
17
18
return jni_utils::run_catching_cxx_exception_or_throws<jobject>(env, [=] {
18
19
const auto [pk, sk] = session::blind_version_key_pair (util::vector_from_bytes (env, ed25519_secret_key));
19
-
20
- jclass kp_class = env->FindClass (" network/loki/messenger/libsession_util/util/KeyPair" );
21
- jmethodID kp_constructor = env->GetMethodID (kp_class, " <init>" , " ([B[B)V" );
22
- return env->NewObject (kp_class, kp_constructor, util::bytes_from_vector (env, {pk.data (), pk.data () + pk.size ()}), util::bytes_from_vector (env, {sk.data (), sk.data () + sk.size ()}));
20
+ return jni_utils::new_key_pair (env, util::bytes_from_span (env, pk), util::bytes_from_span (env, sk));
23
21
});
24
22
}
25
23
extern " C"
@@ -29,7 +27,11 @@ Java_network_loki_messenger_libsession_1util_util_BlindKeyAPI_blindVersionSign(J
29
27
jbyteArray ed25519_secret_key,
30
28
jlong timestamp) {
31
29
return jni_utils::run_catching_cxx_exception_or_throws<jbyteArray>(env, [=] {
32
- auto bytes = session::blind_version_sign (util::vector_from_bytes (env, ed25519_secret_key), session::Platform::android, timestamp);
30
+ auto bytes = session::blind_version_sign (
31
+ jni_utils::JavaByteArrayRef (env, ed25519_secret_key).get (),
32
+ session::Platform::android,
33
+ timestamp
34
+ );
33
35
return util::bytes_from_vector (env, bytes);
34
36
});
35
37
}
@@ -46,16 +48,29 @@ Java_network_loki_messenger_libsession_1util_util_BlindKeyAPI_blindVersionSignRe
46
48
return jni_utils::run_catching_cxx_exception_or_throws<jbyteArray>(env, [=] {
47
49
auto methodC = util::string_from_jstring (env, method);
48
50
auto pathC = util::string_from_jstring (env, path);
49
- auto keyBytes = util::vector_from_bytes (env, ed25519_secret_key);
50
- auto bodyBytes = body ? std::optional (util::vector_from_bytes (env, body)) : std::nullopt ;
51
51
52
52
auto bytes = session::blind_version_sign_request (
53
- session::to_span (keyBytes ),
53
+ jni_utils::JavaByteArrayRef (env, ed25519_secret_key). get ( ),
54
54
timestamp,
55
55
methodC,
56
56
pathC,
57
- body ? std::optional ( session::to_span (*bodyBytes )) : std::nullopt
57
+ body ? std::make_optional ( jni_utils::JavaByteArrayRef (env, body). get ( )) : std::nullopt
58
58
);
59
59
return util::bytes_from_vector (env, bytes);
60
60
});
61
+ }
62
+
63
+ extern " C"
64
+ JNIEXPORT jobject JNICALL
65
+ Java_network_loki_messenger_libsession_1util_util_BlindKeyAPI_blind15KeyPair (JNIEnv *env,
66
+ jobject thiz,
67
+ jbyteArray ed25519_secret_key,
68
+ jbyteArray server_pub_key) {
69
+ return jni_utils::run_catching_cxx_exception_or_throws<jobject>(env, [=] {
70
+ auto [pk, sk] = session::blind15_key_pair (
71
+ jni_utils::JavaByteArrayRef (env, ed25519_secret_key).get (),
72
+ jni_utils::JavaByteArrayRef (env, server_pub_key).get ()
73
+ );
74
+ return jni_utils::new_key_pair (env, util::bytes_from_span (env, pk), util::bytes_from_span (env, sk));
75
+ });
61
76
}
0 commit comments