Skip to content

Commit f698b87

Browse files
committed
Updated to libSession 1.3.0 (and retyping changes for wrapper code)
1 parent e4afcd9 commit f698b87

16 files changed

+117
-103
lines changed

library/src/main/cpp/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ cmake_minimum_required(VERSION 3.18.1)
99

1010
project("session_util")
1111

12-
# Compiles in C++17 mode
13-
set(CMAKE_CXX_STANDARD 17)
12+
# Compiles in C++20 mode
13+
set(CMAKE_CXX_STANDARD 20)
1414
set(CMAKE_CXX_STANDARD_REQUIRED ON)
1515
set(CMAKE_CXX_EXTENSIONS OFF)
1616
set(CMAKE_CXX_FLAGS -Wno-deprecated-declarations)

library/src/main/cpp/blinded_key.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ Java_network_loki_messenger_libsession_1util_util_BlindKeyAPI_blindVersionKeyPai
1414
jobject thiz,
1515
jbyteArray ed25519_secret_key) {
1616
return jni_utils::run_catching_cxx_exception_or_throws<jobject>(env, [=] {
17-
const auto [pk, sk] = session::blind_version_key_pair(util::ustring_from_bytes(env, ed25519_secret_key));
17+
const auto [pk, sk] = session::blind_version_key_pair(util::vector_from_bytes(env, ed25519_secret_key));
1818

1919
jclass kp_class = env->FindClass("network/loki/messenger/libsession_util/util/KeyPair");
2020
jmethodID kp_constructor = env->GetMethodID(kp_class, "<init>", "([B[B)V");
21-
return env->NewObject(kp_class, kp_constructor, util::bytes_from_ustring(env, {pk.data(), pk.size()}), util::bytes_from_ustring(env, {sk.data(), sk.size()}));
21+
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()}));
2222
});
2323
}
2424
extern "C"
@@ -28,8 +28,8 @@ Java_network_loki_messenger_libsession_1util_util_BlindKeyAPI_blindVersionSign(J
2828
jbyteArray ed25519_secret_key,
2929
jlong timestamp) {
3030
return jni_utils::run_catching_cxx_exception_or_throws<jbyteArray>(env, [=] {
31-
auto bytes = session::blind_version_sign(util::ustring_from_bytes(env, ed25519_secret_key), session::Platform::android, timestamp);
32-
return util::bytes_from_ustring(env, bytes);
31+
auto bytes = session::blind_version_sign(util::vector_from_bytes(env, ed25519_secret_key), session::Platform::android, timestamp);
32+
return util::bytes_from_vector(env, bytes);
3333
});
3434
}
3535

@@ -47,12 +47,12 @@ Java_network_loki_messenger_libsession_1util_util_BlindKeyAPI_blindVersionSignRe
4747
auto pathC = util::string_from_jstring(env, path);
4848

4949
auto bytes = session::blind_version_sign_request(
50-
util::ustring_from_bytes(env, ed25519_secret_key),
50+
util::span_from_bytes(env, ed25519_secret_key),
5151
timestamp,
5252
methodC,
5353
pathC,
54-
body ? std::optional(util::ustring_from_bytes(env, body)) : std::nullopt
54+
body ? std::optional(util::span_from_bytes(env, body)) : std::nullopt
5555
);
56-
return util::bytes_from_ustring(env, bytes);
56+
return util::bytes_from_vector(env, bytes);
5757
});
5858
}

library/src/main/cpp/config_base.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ Java_network_loki_messenger_libsession_1util_ConfigBase_push(JNIEnv *env, jobjec
3232
auto to_push_str = std::get<1>(push_tuple);
3333
auto to_delete = std::get<2>(push_tuple);
3434

35-
jbyteArray returnByteArray = util::bytes_from_ustring(env, to_push_str);
35+
jbyteArray returnByteArray = util::bytes_from_vector(env, to_push_str);
3636
jlong seqNo = std::get<0>(push_tuple);
3737
jclass returnObjectClass = env->FindClass("network/loki/messenger/libsession_util/util/ConfigPush");
3838
jclass stackClass = env->FindClass("java/util/Stack");
@@ -59,7 +59,7 @@ Java_network_loki_messenger_libsession_1util_ConfigBase_dump(JNIEnv *env, jobjec
5959
std::lock_guard lock{util::util_mutex_};
6060
auto config = ptrToConfigBase(env, thiz);
6161
auto dumped = config->dump();
62-
jbyteArray bytes = util::bytes_from_ustring(env, dumped);
62+
jbyteArray bytes = util::bytes_from_vector(env, dumped);
6363
return bytes;
6464
}
6565

@@ -90,7 +90,7 @@ Java_network_loki_messenger_libsession_1util_ConfigBase_merge___3Lkotlin_Pair_2(
9090
std::lock_guard lock{util::util_mutex_};
9191
auto conf = ptrToConfigBase(env, thiz);
9292
size_t number = env->GetArrayLength(to_merge);
93-
std::vector<std::pair<std::string, session::ustring>> configs = {};
93+
std::vector<std::pair<std::string, std::vector<unsigned char>>> configs = {};
9494
for (int i = 0; i < number; i++) {
9595
auto jElement = (jobject) env->GetObjectArrayElement(to_merge, i);
9696
auto pair = extractHashAndData(env, jElement);

library/src/main/cpp/config_base.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ inline session::config::ConfigBase* ptrToConfigBase(JNIEnv *env, jobject obj) {
1212
return (session::config::ConfigBase*) env->GetLongField(obj, pointerField);
1313
}
1414

15-
inline std::pair<std::string, session::ustring> extractHashAndData(JNIEnv *env, jobject kotlin_pair) {
15+
inline std::pair<std::string, std::vector<unsigned char>> extractHashAndData(JNIEnv *env, jobject kotlin_pair) {
1616
jclass pair = env->FindClass("kotlin/Pair");
1717
jfieldID first = env->GetFieldID(pair, "first", "Ljava/lang/Object;");
1818
jfieldID second = env->GetFieldID(pair, "second", "Ljava/lang/Object;");
1919
jstring hash_as_jstring = static_cast<jstring>(env->GetObjectField(kotlin_pair, first));
2020
jbyteArray data_as_jbytes = static_cast<jbyteArray>(env->GetObjectField(kotlin_pair, second));
2121
auto hash_as_string = env->GetStringUTFChars(hash_as_jstring, nullptr);
22-
auto data_as_ustring = util::ustring_from_bytes(env, data_as_jbytes);
23-
auto ret_pair = std::pair<std::string, session::ustring>{hash_as_string, data_as_ustring};
22+
auto data_as_vector = util::vector_from_bytes(env, data_as_jbytes);
23+
auto ret_pair = std::pair<std::string, std::vector<unsigned char>>{hash_as_string, data_as_vector};
2424
env->ReleaseStringUTFChars(hash_as_jstring, hash_as_string);
2525
return ret_pair;
2626
}

library/src/main/cpp/config_common.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ Java_network_loki_messenger_libsession_1util_ConfigKt_createConfigObject(
1717
jbyteArray initial_dump) {
1818
return jni_utils::run_catching_cxx_exception_or_throws<jlong>(env, [=] {
1919
auto config_name = util::string_from_jstring(env, java_config_name);
20-
auto secret_key = util::ustring_from_bytes(env, ed25519_secret_key);
20+
auto secret_key = util::vector_from_bytes(env, ed25519_secret_key);
2121
auto initial = initial_dump
22-
? std::optional(util::ustring_from_bytes(env, initial_dump))
22+
? std::optional(util::vector_from_bytes(env, initial_dump))
2323
: std::nullopt;
2424

2525

library/src/main/cpp/contacts.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#define SESSION_ANDROID_CONTACTS_H
33

44
#include <jni.h>
5+
#include <vector>
56
#include "session/config/contacts.hpp"
67
#include "util.h"
78

@@ -58,15 +59,15 @@ inline session::config::contact_info deserialize_contact(JNIEnv *env, jobject in
5859
auto expiry_pair = util::deserialize_expiry(env, expiry_mode);
5960

6061
std::string url;
61-
session::ustring key;
62+
std::vector<unsigned char> key;
6263

6364
if (user_pic != nullptr) {
6465
auto deserialized_pic = util::deserialize_user_pic(env, user_pic);
6566
auto url_jstring = deserialized_pic.first;
6667
auto url_bytes = env->GetStringUTFChars(url_jstring, nullptr);
6768
url = std::string(url_bytes);
6869
env->ReleaseStringUTFChars(url_jstring, url_bytes);
69-
key = util::ustring_from_bytes(env, deserialized_pic.second);
70+
key = util::vector_from_bytes(env, deserialized_pic.second);
7071
}
7172

7273
auto account_id_bytes = env->GetStringUTFChars(account_id, nullptr);

library/src/main/cpp/conversation.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,8 @@ Java_network_loki_messenger_libsession_1util_ConversationVolatileConfig_getOrCon
152152
auto convos = ptrToConvoInfo(env, thiz);
153153
auto base_url_chars = env->GetStringUTFChars(base_url, nullptr);
154154
auto room_chars = env->GetStringUTFChars(room, nullptr);
155-
auto pub_key_ustring = util::ustring_from_bytes(env, pub_key);
156-
auto open = convos->get_or_construct_community(base_url_chars, room_chars, pub_key_ustring);
155+
auto pub_key_vector = util::vector_from_bytes(env, pub_key);
156+
auto open = convos->get_or_construct_community(base_url_chars, room_chars, pub_key_vector);
157157
auto serialized = serialize_open_group(env, open);
158158
return serialized;
159159
}

library/src/main/cpp/group_info.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@ Java_network_loki_messenger_libsession_1util_GroupInfoConfig_00024Companion_newI
1010
jbyteArray secret_key,
1111
jbyteArray initial_dump) {
1212
std::lock_guard guard{util::util_mutex_};
13-
std::optional<session::ustring> secret_key_optional{std::nullopt};
14-
std::optional<session::ustring> initial_dump_optional{std::nullopt};
15-
auto pub_key_bytes = util::ustring_from_bytes(env, pub_key);
13+
std::optional<std::vector<unsigned char>> secret_key_optional{std::nullopt};
14+
std::optional<std::vector<unsigned char>> initial_dump_optional{std::nullopt};
15+
auto pub_key_bytes = util::vector_from_bytes(env, pub_key);
1616
if (secret_key && env->GetArrayLength(secret_key) > 0) {
17-
auto secret_key_bytes = util::ustring_from_bytes(env, secret_key);
17+
auto secret_key_bytes = util::vector_from_bytes(env, secret_key);
1818
secret_key_optional = secret_key_bytes;
1919
}
2020
if (initial_dump && env->GetArrayLength(initial_dump) > 0) {
21-
auto initial_dump_bytes = util::ustring_from_bytes(env, initial_dump);
21+
auto initial_dump_bytes = util::vector_from_bytes(env, initial_dump);
2222
initial_dump_optional = initial_dump_bytes;
2323
}
2424

@@ -159,7 +159,7 @@ Java_network_loki_messenger_libsession_1util_GroupInfoConfig_setProfilePic(JNIEn
159159
auto group_info = ptrToInfo(env, thiz);
160160
auto user_pic = util::deserialize_user_pic(env, new_profile_pic);
161161
auto url = env->GetStringUTFChars(user_pic.first, nullptr);
162-
auto key = util::ustring_from_bytes(env, user_pic.second);
162+
auto key = util::vector_from_bytes(env, user_pic.second);
163163
group_info->set_profile_pic(url, key);
164164
env->ReleaseStringUTFChars(user_pic.first, url);
165165
}

library/src/main/cpp/group_keys.cpp

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,18 @@ Java_network_loki_messenger_libsession_1util_GroupKeysConfig_00024Companion_newI
2323
jlong members_pointer) {
2424
return jni_utils::run_catching_cxx_exception_or_throws<jlong>(env, [=] {
2525
std::lock_guard lock{util::util_mutex_};
26-
auto user_key_bytes = util::ustring_from_bytes(env, user_secret_key);
27-
auto pub_key_bytes = util::ustring_from_bytes(env, group_public_key);
28-
std::optional<session::ustring> secret_key_optional{std::nullopt};
29-
std::optional<session::ustring> initial_dump_optional{std::nullopt};
26+
auto user_key_bytes = util::vector_from_bytes(env, user_secret_key);
27+
auto pub_key_bytes = util::vector_from_bytes(env, group_public_key);
28+
std::optional<std::vector<unsigned char>> secret_key_optional{std::nullopt};
29+
std::optional<std::vector<unsigned char>> initial_dump_optional{std::nullopt};
3030

3131
if (group_secret_key && env->GetArrayLength(group_secret_key) > 0) {
32-
auto secret_key_bytes = util::ustring_from_bytes(env, group_secret_key);
32+
auto secret_key_bytes = util::vector_from_bytes(env, group_secret_key);
3333
secret_key_optional = secret_key_bytes;
3434
}
3535

3636
if (initial_dump && env->GetArrayLength(initial_dump) > 0) {
37-
auto initial_dump_bytes = util::ustring_from_bytes(env, initial_dump);
37+
auto initial_dump_bytes = util::vector_from_bytes(env, initial_dump);
3838
initial_dump_optional = initial_dump_bytes;
3939
}
4040

@@ -63,7 +63,7 @@ Java_network_loki_messenger_libsession_1util_GroupKeysConfig_groupKeys(JNIEnv *e
6363
jobject our_stack = env->NewObject(stack, init);
6464
jmethodID push = env->GetMethodID(stack, "push", "(Ljava/lang/Object;)Ljava/lang/Object;");
6565
for (auto& key : keys) {
66-
auto key_bytes = util::bytes_from_ustring(env, key.data());
66+
auto key_bytes = util::bytes_from_span(env, key);
6767
env->CallObjectMethod(our_stack, push, key_bytes);
6868
}
6969
return our_stack;
@@ -79,7 +79,7 @@ Java_network_loki_messenger_libsession_1util_GroupKeysConfig_loadKey(JNIEnv *env
7979
jlong members_ptr) {
8080
std::lock_guard lock{util::util_mutex_};
8181
auto keys = ptrToKeys(env, thiz);
82-
auto message_bytes = util::ustring_from_bytes(env, message);
82+
auto message_bytes = util::vector_from_bytes(env, message);
8383
auto hash_bytes = env->GetStringUTFChars(hash, nullptr);
8484
auto info = reinterpret_cast<session::config::groups::Info*>(info_ptr);
8585
auto members = reinterpret_cast<session::config::groups::Members*>(members_ptr);
@@ -119,7 +119,7 @@ Java_network_loki_messenger_libsession_1util_GroupKeysConfig_pendingKey(JNIEnv *
119119
if (!pending) {
120120
return nullptr;
121121
}
122-
auto pending_bytes = util::bytes_from_ustring(env, *pending);
122+
auto pending_bytes = util::bytes_from_span(env, *pending);
123123
return pending_bytes;
124124
}
125125

@@ -133,7 +133,7 @@ Java_network_loki_messenger_libsession_1util_GroupKeysConfig_pendingConfig(JNIEn
133133
if (!pending) {
134134
return nullptr;
135135
}
136-
auto pending_bytes = util::bytes_from_ustring(env, *pending);
136+
auto pending_bytes = util::bytes_from_span(env, *pending);
137137
return pending_bytes;
138138
}
139139

@@ -146,7 +146,7 @@ Java_network_loki_messenger_libsession_1util_GroupKeysConfig_rekey(JNIEnv *env,
146146
auto info = reinterpret_cast<session::config::groups::Info*>(info_ptr);
147147
auto members = reinterpret_cast<session::config::groups::Members*>(members_ptr);
148148
auto rekey = keys->rekey(*info, *members);
149-
auto rekey_bytes = util::bytes_from_ustring(env, rekey.data());
149+
auto rekey_bytes = util::bytes_from_span(env, rekey.data());
150150
return rekey_bytes;
151151
}
152152

@@ -156,7 +156,7 @@ Java_network_loki_messenger_libsession_1util_GroupKeysConfig_dump(JNIEnv *env, j
156156
std::lock_guard lock{util::util_mutex_};
157157
auto keys = ptrToKeys(env, thiz);
158158
auto dump = keys->dump();
159-
auto byte_array = util::bytes_from_ustring(env, dump);
159+
auto byte_array = util::bytes_from_vector(env, dump);
160160
return byte_array;
161161
}
162162

@@ -175,9 +175,9 @@ Java_network_loki_messenger_libsession_1util_GroupKeysConfig_encrypt(JNIEnv *env
175175
return jni_utils::run_catching_cxx_exception_or_throws<jbyteArray>(env, [=] {
176176
std::lock_guard lock{util::util_mutex_};
177177
auto ptr = ptrToKeys(env, thiz);
178-
auto plaintext_ustring = util::ustring_from_bytes(env, plaintext);
179-
auto enc = ptr->encrypt_message(plaintext_ustring);
180-
return util::bytes_from_ustring(env, enc);
178+
auto plaintext_vector = util::vector_from_bytes(env, plaintext);
179+
auto enc = ptr->encrypt_message(plaintext_vector);
180+
return util::bytes_from_vector(env, enc);
181181
});
182182
}
183183

@@ -188,11 +188,11 @@ Java_network_loki_messenger_libsession_1util_GroupKeysConfig_decrypt(JNIEnv *env
188188
return jni_utils::run_catching_cxx_exception_or_throws<jobject>(env, [=] {
189189
std::lock_guard lock{util::util_mutex_};
190190
auto ptr = ptrToKeys(env, thiz);
191-
auto ciphertext_ustring = util::ustring_from_bytes(env, ciphertext);
192-
auto decrypted = ptr->decrypt_message(ciphertext_ustring);
191+
auto ciphertext_vector = util::vector_from_bytes(env, ciphertext);
192+
auto decrypted = ptr->decrypt_message(ciphertext_vector);
193193
auto sender = decrypted.first;
194194
auto plaintext = decrypted.second;
195-
auto plaintext_bytes = util::bytes_from_ustring(env, plaintext);
195+
auto plaintext_bytes = util::bytes_from_vector(env, plaintext);
196196
auto sender_session_id = util::jstringFromOptional(env, sender.data());
197197
auto pair_class = env->FindClass("kotlin/Pair");
198198
auto pair_constructor = env->GetMethodID(pair_class, "<init>", "(Ljava/lang/Object;Ljava/lang/Object;)V");
@@ -212,7 +212,7 @@ Java_network_loki_messenger_libsession_1util_GroupKeysConfig_keys(JNIEnv *env, j
212212
jobject our_stack = env->NewObject(stack, init);
213213
jmethodID push = env->GetMethodID(stack, "push", "(Ljava/lang/Object;)Ljava/lang/Object;");
214214
for (auto& key : keys) {
215-
auto key_bytes = util::bytes_from_ustring(env, key);
215+
auto key_bytes = util::bytes_from_span(env, key);
216216
env->CallObjectMethod(our_stack, push, key_bytes);
217217
}
218218
return our_stack;
@@ -246,7 +246,7 @@ Java_network_loki_messenger_libsession_1util_GroupKeysConfig_makeSubAccount(JNIE
246246
auto ptr = ptrToKeys(env, thiz);
247247
auto deserialized_id = util::string_from_jstring(env, session_id);
248248
auto new_subaccount_key = ptr->swarm_make_subaccount(deserialized_id.data(), can_write, can_delete);
249-
auto jbytes = util::bytes_from_ustring(env, new_subaccount_key);
249+
auto jbytes = util::bytes_from_vector(env, new_subaccount_key);
250250
return jbytes;
251251
}
252252

@@ -261,7 +261,7 @@ Java_network_loki_messenger_libsession_1util_GroupKeysConfig_getSubAccountToken(
261261
auto ptr = ptrToKeys(env, thiz);
262262
auto deserialized_id = util::string_from_jstring(env, session_id);
263263
auto token = ptr->swarm_subaccount_token(deserialized_id, can_write, can_delete);
264-
auto jbytes = util::bytes_from_ustring(env, token);
264+
auto jbytes = util::bytes_from_vector(env, token);
265265
return jbytes;
266266
}
267267

@@ -273,9 +273,9 @@ Java_network_loki_messenger_libsession_1util_GroupKeysConfig_subAccountSign(JNIE
273273
jbyteArray signing_value) {
274274
std::lock_guard lock{util::util_mutex_};
275275
auto ptr = ptrToKeys(env, thiz);
276-
auto message_ustring = util::ustring_from_bytes(env, message);
277-
auto signing_value_ustring = util::ustring_from_bytes(env, signing_value);
278-
auto swarm_auth = ptr->swarm_subaccount_sign(message_ustring, signing_value_ustring, false);
276+
auto message_vector = util::vector_from_bytes(env, message);
277+
auto signing_value_vector = util::vector_from_bytes(env, signing_value);
278+
auto swarm_auth = ptr->swarm_subaccount_sign(message_vector, signing_value_vector, false);
279279
return util::deserialize_swarm_auth(env, swarm_auth);
280280
}
281281

@@ -291,7 +291,7 @@ Java_network_loki_messenger_libsession_1util_GroupKeysConfig_supplementFor(JNIEn
291291
user_session_ids.push_back(util::string_from_jstring(env, (jstring)(env->GetObjectArrayElement(j_user_session_ids, i))));
292292
}
293293
auto supplement = ptr->key_supplement(user_session_ids);
294-
return util::bytes_from_ustring(env, supplement);
294+
return util::bytes_from_vector(env, supplement);
295295
}
296296
extern "C"
297297
JNIEXPORT jint JNICALL
@@ -326,11 +326,11 @@ Java_network_loki_messenger_libsession_1util_GroupKeysConfig_loadAdminKey(JNIEnv
326326
jlong members_ptr) {
327327
std::lock_guard lock{util::util_mutex_};
328328
auto ptr = ptrToKeys(env, thiz);
329-
auto admin_key_ustring = util::ustring_from_bytes(env, admin_key);
329+
auto admin_key_vector = util::vector_from_bytes(env, admin_key);
330330
auto info = reinterpret_cast<session::config::groups::Info*>(info_ptr);
331331
auto members = reinterpret_cast<session::config::groups::Members*>(members_ptr);
332332

333333
jni_utils::run_catching_cxx_exception_or_throws<void>(env, [&] {
334-
ptr->load_admin_key(admin_key_ustring, *info, *members);
334+
ptr->load_admin_key(admin_key_vector, *info, *members);
335335
});
336336
}

0 commit comments

Comments
 (0)