From 76cd4a1ab1f35eb08fcdeaafda9f58407028cda1 Mon Sep 17 00:00:00 2001 From: SessionHero01 Date: Thu, 10 Jul 2025 09:22:25 +1000 Subject: [PATCH] Add blind ID bindings --- library/src/main/cpp/blinded_key.cpp | 29 +++++++++++++++++++ .../libsession_util/util/BlindKeyAPI.kt | 10 +++++++ 2 files changed, 39 insertions(+) diff --git a/library/src/main/cpp/blinded_key.cpp b/library/src/main/cpp/blinded_key.cpp index fac15d1..2b6888d 100644 --- a/library/src/main/cpp/blinded_key.cpp +++ b/library/src/main/cpp/blinded_key.cpp @@ -107,4 +107,33 @@ Java_network_loki_messenger_libsession_1util_util_BlindKeyAPI_sessionIdMatchesBl }, [](const char *) -> jboolean { return false; }); +} + +extern "C" +JNIEXPORT jobject JNICALL +Java_network_loki_messenger_libsession_1util_util_BlindKeyAPI_blind15Ids(JNIEnv *env, jobject thiz, + jstring session_id, + jstring server_pub_key) { + return jni_utils::run_catching_cxx_exception_or_throws(env, [=]() -> jobject { + return jni_utils::jstring_list_from_collection( + env, + session::blind15_id( + jni_utils::JavaStringRef(env, session_id).view(), + jni_utils::JavaStringRef(env, server_pub_key).view() + ) + ); + }); +} + +extern "C" +JNIEXPORT jstring JNICALL +Java_network_loki_messenger_libsession_1util_util_BlindKeyAPI_blind25Id(JNIEnv *env, jobject thiz, + jstring session_id, + jstring server_pub_key) { + return jni_utils::run_catching_cxx_exception_or_throws(env, [=]() -> jstring { + return util::jstringFromOptional(env, session::blind25_id( + jni_utils::JavaStringRef(env, session_id).view(), + jni_utils::JavaStringRef(env, server_pub_key).view() + )); + }); } \ No newline at end of file diff --git a/library/src/main/java/network/loki/messenger/libsession_util/util/BlindKeyAPI.kt b/library/src/main/java/network/loki/messenger/libsession_util/util/BlindKeyAPI.kt index 862cfd4..07f3005 100644 --- a/library/src/main/java/network/loki/messenger/libsession_util/util/BlindKeyAPI.kt +++ b/library/src/main/java/network/loki/messenger/libsession_util/util/BlindKeyAPI.kt @@ -44,6 +44,16 @@ object BlindKeyAPI : LibSessionUtilCApi() { message: ByteArray, ): ByteArray + external fun blind15Ids( + sessionId: String, + serverPubKey: String, + ): List + + external fun blind25Id( + sessionId: String, + serverPubKey: String, + ): String + /** * Takes in a standard sessionId and returns a flag indicating whether it matches the given * blindedId for a given serverPubKey