66
77using namespace jni_utils ;
88
9+ static jobject serializeMasterRotatingSignatures (
10+ JNIEnv *env, const session::pro_backend::MasterRotatingSignatures &sigs) {
11+ JavaLocalRef<jclass> result_class (
12+ env,
13+ env->FindClass (
14+ " network/loki/messenger/libsession_util/pro/BackendRequests$MasterRotatingSignatures" ));
15+
16+ return env->NewObject (
17+ result_class.get (),
18+ env->GetMethodID (result_class.get (), " <init>" , " ([B[B)V" ),
19+ util::bytes_from_span (env, sigs.master_sig ),
20+ util::bytes_from_span (env, sigs.rotating_sig )
21+ );
22+ }
23+
924extern " C"
10- JNIEXPORT jstring JNICALL
11- Java_network_loki_messenger_libsession_1util_pro_AddProPaymentRequests_buildJson (JNIEnv *env,
12- jobject thiz,
13- jint version,
14- jbyteArray master_private_key,
15- jbyteArray rotating_private_key,
16- jint payment_provider,
17- jstring payment_transaction_id,
18- jstring payment_order_id) {
19- return run_catching_cxx_exception_or_throws<jstring>(env, [=]() {
20- return util::jstringFromOptional (env, session::pro_backend::AddProPaymentRequest::build_to_json (
21- version,
25+ JNIEXPORT jobject JNICALL
26+ Java_network_loki_messenger_libsession_1util_pro_BackendRequests_signAddProPaymentRequest (
27+ JNIEnv *env, jobject thiz, jint version, jbyteArray master_private_key,
28+ jbyteArray rotating_private_key, jint payment_provider, jstring payment_id,
29+ jstring order_id) {
30+ return run_catching_cxx_exception_or_throws<jobject>(env, [=] {
31+ auto sigs = session::pro_backend::AddProPaymentRequest::build_sigs (
32+ static_cast <std::uint8_t >(version),
2233 JavaByteArrayRef (env, master_private_key).get (),
2334 JavaByteArrayRef (env, rotating_private_key).get (),
24- static_cast <SESSION_PRO_BACKEND_PAYMENT_PROVIDER>(payment_provider),
25- JavaStringRef (env, payment_transaction_id).get_raw (),
26- JavaStringRef (env, payment_order_id).get_raw ()
27- )
28- );
35+ static_cast <SESSION_PRO_BACKEND_PAYMENT_PROVIDER>(
36+ payment_provider),
37+ JavaStringRef (env, payment_id).get_raw (),
38+ JavaStringRef (env, order_id).get_raw ());
39+
40+ return serializeMasterRotatingSignatures (env, sigs);
2941 });
3042}
3143
32-
3344extern " C"
3445JNIEXPORT jobject JNICALL
35- Java_network_loki_messenger_libsession_1util_pro_ProProofResponse_00024Companion_nativeParseRaw (
36- JNIEnv *env, jobject thiz, jstring json) {
37- return run_catching_cxx_exception_or_throws<jobject>(env, [=]() {
38- auto response = session::pro_backend::AddProPaymentOrGetProProofResponse::parse (
39- JavaStringRef (env, json).view ()
46+ Java_network_loki_messenger_libsession_1util_pro_BackendRequests_signGetProProofRequest (JNIEnv *env,
47+ jobject thiz,
48+ jint version,
49+ jbyteArray master_private_key,
50+ jbyteArray rotating_private_key,
51+ jlong unix_ts_ms) {
52+ return run_catching_cxx_exception_or_throws<jobject>(env, [=] {
53+ auto sigs = session::pro_backend::GetProProofRequest::build_sigs (
54+ version,
55+ JavaByteArrayRef (env, master_private_key).get (),
56+ JavaByteArrayRef (env, rotating_private_key).get (),
57+ std::chrono::sys_time<std::chrono::milliseconds>{
58+ std::chrono::milliseconds{unix_ts_ms}}
4059 );
4160
42- if (response.errors .empty ()) {
43- JavaLocalRef<jclass> pro_proof_class (env, env->FindClass (" network/loki/messenger/libsession_util/pro/ProProof" ));
44- JavaLocalRef<jclass> success_class (env, env->FindClass (" network/loki/messenger/libsession_util/pro/ProProofResponse$Success" ));
45-
46- return env->NewObject (
47- success_class.get (),
48- env->GetMethodID (success_class.get (), " <init>" , " (Lnetwork/loki/messenger/libsession_util/pro/ProProof;)V" ),
49- env->NewObject (
50- pro_proof_class.get (),
51- env->GetMethodID (pro_proof_class.get (), " <init>" , " (J)V" ),
52- reinterpret_cast <jlong>(new session::ProProof (response.proof ))
53- )
54- );
55- }
56-
57- JavaLocalRef<jclass> error_class (env, env->FindClass (" network/loki/messenger/libsession_util/pro/ProProofResponse$Failure" ));
58-
59- return env->NewObject (
60- error_class.get (),
61- env->GetMethodID (error_class.get (), " <init>" , " (ILjava/util/List;)V" ),
62- static_cast <jint>(response.status ),
63- jstring_list_from_collection (env, response.errors )
64- );
61+ return serializeMasterRotatingSignatures (env, sigs);
6562 });
6663}
6764
6865extern " C"
69- JNIEXPORT jstring JNICALL
70- Java_network_loki_messenger_libsession_1util_pro_GetProProofRequests_buildJson (JNIEnv *env,
71- jint version,
72- jobject thiz,
73- jbyteArray master_private_key,
74- jbyteArray rotating_private_key,
75- jlong now_unix_ts) {
76- return run_catching_cxx_exception_or_throws<jstring>(env, [=] () {
77- return util::jstringFromOptional (env, session::pro_backend::GetProProofRequest::build_to_json (
78- version,
66+ JNIEXPORT jbyteArray JNICALL
67+ Java_network_loki_messenger_libsession_1util_pro_BackendRequests_signGetProStatusRequest (
68+ JNIEnv *env, jobject thiz, jint version, jbyteArray master_private_key, jlong now_ms,
69+ jint count) {
70+ return run_catching_cxx_exception_or_throws<jbyteArray>(env, [=] {
71+ auto sig = session::pro_backend::GetProStatusRequest::build_sig (
72+ static_cast <std::uint8_t >(version),
7973 JavaByteArrayRef (env, master_private_key).get (),
80- JavaByteArrayRef (env, rotating_private_key).get (),
81- std::chrono::sys_time<std::chrono::milliseconds> { std::chrono::milliseconds{static_cast <int64_t >(now_unix_ts)} }
82- ));
74+ std::chrono::sys_time<std::chrono::milliseconds>{
75+ std::chrono::milliseconds{now_ms}},
76+ static_cast <std::uint32_t >(count)
77+ );
78+
79+ return util::bytes_from_span (env, sig);
8380 });
8481}
0 commit comments