@@ -18,11 +18,11 @@ Java_network_loki_messenger_libsession_1util_SessionEncrypt_decryptForBlindedRec
18
18
jbyteArray recipient_blind_id) {
19
19
return jni_utils::run_catching_cxx_exception_or_throws<jobject>(env, [=] {
20
20
auto [plain_text, session_id] = session::decrypt_from_blinded_recipient (
21
- JavaByteArrayRef (env, my_ed25519_privte_key).get (),
22
- JavaByteArrayRef (env, open_group_public_key).get (),
23
- JavaByteArrayRef (env, sender_blinded_id).get (),
24
- JavaByteArrayRef (env, recipient_blind_id).get (),
25
- JavaByteArrayRef (env, ciphertext).get ()
21
+ JavaByteArrayRef (env, my_ed25519_privte_key).get (),
22
+ JavaByteArrayRef (env, open_group_public_key).get (),
23
+ JavaByteArrayRef (env, sender_blinded_id).get (),
24
+ JavaByteArrayRef (env, recipient_blind_id).get (),
25
+ JavaByteArrayRef (env, ciphertext).get ()
26
26
);
27
27
28
28
return jni_utils::new_kotlin_pair (
@@ -32,3 +32,63 @@ Java_network_loki_messenger_libsession_1util_SessionEncrypt_decryptForBlindedRec
32
32
);
33
33
});
34
34
}
35
+
36
+ extern " C"
37
+ JNIEXPORT jobject JNICALL
38
+ Java_network_loki_messenger_libsession_1util_SessionEncrypt_encryptForRecipient (JNIEnv *env,
39
+ jobject thiz,
40
+ jbyteArray ed25519_private_key,
41
+ jbyteArray recipient_x25519_public_key,
42
+ jbyteArray message) {
43
+ return jni_utils::run_catching_cxx_exception_or_throws<jobject>(env, [=] {
44
+ auto data = session::encrypt_for_recipient (
45
+ JavaByteArrayRef (env, ed25519_private_key).get (),
46
+ JavaByteArrayRef (env, recipient_x25519_public_key).get (),
47
+ JavaByteArrayRef (env, message).get ()
48
+ );
49
+
50
+ return jni_utils::session_bytes_from_range (env, data);
51
+ });
52
+ }
53
+
54
+ extern " C"
55
+ JNIEXPORT jobject JNICALL
56
+ Java_network_loki_messenger_libsession_1util_SessionEncrypt_decryptIncoming (JNIEnv *env,
57
+ jobject thiz,
58
+ jbyteArray x25519_pub_key,
59
+ jbyteArray x25519_priv_key,
60
+ jbyteArray ciphertext) {
61
+ return jni_utils::run_catching_cxx_exception_or_throws<jobject>(env, [=] {
62
+ auto [plain_text, session_id] = session::decrypt_incoming_session_id (
63
+ JavaByteArrayRef (env, x25519_pub_key).get (),
64
+ JavaByteArrayRef (env, x25519_priv_key).get (),
65
+ JavaByteArrayRef (env, ciphertext).get ()
66
+ );
67
+
68
+ return jni_utils::new_kotlin_pair (
69
+ env,
70
+ util::jstringFromOptional (env, session_id),
71
+ jni_utils::session_bytes_from_range (env, plain_text)
72
+ );
73
+ });
74
+ }
75
+
76
+ extern " C"
77
+ JNIEXPORT jobject JNICALL
78
+ Java_network_loki_messenger_libsession_1util_SessionEncrypt_encryptForBlindedRecipient (JNIEnv *env,
79
+ jobject thiz,
80
+ jbyteArray message,
81
+ jbyteArray my_ed25519_privkey,
82
+ jbyteArray server_pub_key,
83
+ jbyteArray recipient_blind_id) {
84
+ return jni_utils::run_catching_cxx_exception_or_throws<jobject>(env, [=] {
85
+ auto data = session::encrypt_for_blinded_recipient (
86
+ JavaByteArrayRef (env, my_ed25519_privkey).get (),
87
+ JavaByteArrayRef (env, server_pub_key).get (),
88
+ JavaByteArrayRef (env, recipient_blind_id).get (),
89
+ JavaByteArrayRef (env, message).get ()
90
+ );
91
+
92
+ return jni_utils::session_bytes_from_range (env, data);
93
+ });
94
+ }
0 commit comments