浏览代码

lpac-jni: Reformat JNI C code

Peter Cai 1 年之前
父节点
当前提交
4ded234ed2

+ 21 - 9
libs/lpac-jni/src/main/jni/lpac-jni/interface-wrapper.c

@@ -18,8 +18,10 @@ void interface_wrapper_init() {
     jclass apdu_class = (*env)->FindClass(env, "net/typeblog/lpac_jni/ApduInterface");
     method_apdu_connect = (*env)->GetMethodID(env, apdu_class, "connect", "()V");
     method_apdu_disconnect = (*env)->GetMethodID(env, apdu_class, "disconnect", "()V");
-    method_apdu_logical_channel_open = (*env)->GetMethodID(env, apdu_class, "logicalChannelOpen", "([B)I");
-    method_apdu_logical_channel_close = (*env)->GetMethodID(env, apdu_class, "logicalChannelClose", "(I)V");
+    method_apdu_logical_channel_open = (*env)->GetMethodID(env, apdu_class, "logicalChannelOpen",
+                                                           "([B)I");
+    method_apdu_logical_channel_close = (*env)->GetMethodID(env, apdu_class, "logicalChannelClose",
+                                                            "(I)V");
     method_apdu_transmit = (*env)->GetMethodID(env, apdu_class, "transmit", "([B)[B");
 
     jclass http_class = (*env)->FindClass(env, "net/typeblog/lpac_jni/HttpInterface");
@@ -43,26 +45,32 @@ static void apdu_interface_disconnect(struct euicc_ctx *ctx) {
     (*env)->CallVoidMethod(env, LPAC_JNI_CTX(ctx)->apdu_interface, method_apdu_disconnect);
 }
 
-static int apdu_interface_logical_channel_open(struct euicc_ctx *ctx, const uint8_t *aid, uint8_t aid_len) {
+static int
+apdu_interface_logical_channel_open(struct euicc_ctx *ctx, const uint8_t *aid, uint8_t aid_len) {
     LPAC_JNI_SETUP_ENV;
     jbyteArray jbarr = (*env)->NewByteArray(env, aid_len);
     (*env)->SetByteArrayRegion(env, jbarr, 0, aid_len, (const jbyte *) aid);
-    jint ret = (*env)->CallIntMethod(env, LPAC_JNI_CTX(ctx)->apdu_interface, method_apdu_logical_channel_open, jbarr);
+    jint ret = (*env)->CallIntMethod(env, LPAC_JNI_CTX(ctx)->apdu_interface,
+                                     method_apdu_logical_channel_open, jbarr);
     LPAC_JNI_EXCEPTION_RETURN;
     return ret;
 }
 
 static void apdu_interface_logical_channel_close(struct euicc_ctx *ctx, uint8_t channel) {
     LPAC_JNI_SETUP_ENV;
-    (*env)->CallVoidMethod(env, LPAC_JNI_CTX(ctx)->apdu_interface, method_apdu_logical_channel_close, channel);
+    (*env)->CallVoidMethod(env, LPAC_JNI_CTX(ctx)->apdu_interface,
+                           method_apdu_logical_channel_close, channel);
     (*env)->ExceptionClear(env);
 }
 
-static int apdu_interface_transmit(struct euicc_ctx *ctx, uint8_t **rx, uint32_t *rx_len, const uint8_t *tx, uint32_t tx_len) {
+static int
+apdu_interface_transmit(struct euicc_ctx *ctx, uint8_t **rx, uint32_t *rx_len, const uint8_t *tx,
+                        uint32_t tx_len) {
     LPAC_JNI_SETUP_ENV;
     jbyteArray txArr = (*env)->NewByteArray(env, tx_len);
     (*env)->SetByteArrayRegion(env, txArr, 0, tx_len, (const jbyte *) tx);
-    jbyteArray ret = (jbyteArray) (*env)->CallObjectMethod(env, LPAC_JNI_CTX(ctx)->apdu_interface, method_apdu_transmit, txArr);
+    jbyteArray ret = (jbyteArray) (*env)->CallObjectMethod(env, LPAC_JNI_CTX(ctx)->apdu_interface,
+                                                           method_apdu_transmit, txArr);
     LPAC_JNI_EXCEPTION_RETURN;
     *rx_len = (*env)->GetArrayLength(env, ret);
     *rx = malloc(*rx_len * sizeof(uint8_t));
@@ -72,7 +80,10 @@ static int apdu_interface_transmit(struct euicc_ctx *ctx, uint8_t **rx, uint32_t
     return 0;
 }
 
-static int http_interface_transmit(struct euicc_ctx *ctx, const char *url, uint32_t *rcode, uint8_t **rx, uint32_t *rx_len, const uint8_t *tx, uint32_t tx_len, const char **headers) {
+static int
+http_interface_transmit(struct euicc_ctx *ctx, const char *url, uint32_t *rcode, uint8_t **rx,
+                        uint32_t *rx_len, const uint8_t *tx, uint32_t tx_len,
+                        const char **headers) {
     LPAC_JNI_SETUP_ENV;
     jstring jurl = toJString(env, url);
     jbyteArray txArr = (*env)->NewByteArray(env, tx_len);
@@ -89,7 +100,8 @@ static int http_interface_transmit(struct euicc_ctx *ctx, const char *url, uint3
         (*env)->DeleteLocalRef(env, header);
     }
 
-    jobject ret = (*env)->CallObjectMethod(env, LPAC_JNI_CTX(ctx)->http_interface, method_http_transmit, jurl, txArr, headersArr);
+    jobject ret = (*env)->CallObjectMethod(env, LPAC_JNI_CTX(ctx)->http_interface,
+                                           method_http_transmit, jurl, txArr, headersArr);
     LPAC_JNI_EXCEPTION_RETURN;
     *rcode = (*env)->GetIntField(env, ret, field_resp_rcode);
     jbyteArray rxArr = (jbyteArray) (*env)->GetObjectField(env, ret, field_resp_data);

+ 1 - 0
libs/lpac-jni/src/main/jni/lpac-jni/interface-wrapper.h

@@ -1,5 +1,6 @@
 #pragma once
 #undef NDEBUG
+
 #include <assert.h>
 #include <euicc/interface.h>
 #include "lpac-jni.h"

+ 46 - 21
libs/lpac-jni/src/main/jni/lpac-jni/lpac-download.c

@@ -15,25 +15,44 @@ jmethodID on_state_update;
 void lpac_download_init() {
     LPAC_JNI_SETUP_ENV;
 
-    jclass download_state_class = (*env)->FindClass(env, "net/typeblog/lpac_jni/ProfileDownloadCallback$DownloadState");
-    jfieldID download_state_preparing_field = (*env)->GetStaticFieldID(env, download_state_class, "Preparing", "Lnet/typeblog/lpac_jni/ProfileDownloadCallback$DownloadState;");
-    download_state_preparing = (*env)->GetStaticObjectField(env, download_state_class, download_state_preparing_field);
+    jclass download_state_class = (*env)->FindClass(env,
+                                                    "net/typeblog/lpac_jni/ProfileDownloadCallback$DownloadState");
+    jfieldID download_state_preparing_field = (*env)->GetStaticFieldID(env, download_state_class,
+                                                                       "Preparing",
+                                                                       "Lnet/typeblog/lpac_jni/ProfileDownloadCallback$DownloadState;");
+    download_state_preparing = (*env)->GetStaticObjectField(env, download_state_class,
+                                                            download_state_preparing_field);
     download_state_preparing = (*env)->NewGlobalRef(env, download_state_preparing);
-    jfieldID download_state_connecting_field = (*env)->GetStaticFieldID(env, download_state_class, "Connecting", "Lnet/typeblog/lpac_jni/ProfileDownloadCallback$DownloadState;");
-    download_state_connecting = (*env)->GetStaticObjectField(env, download_state_class, download_state_connecting_field);
+    jfieldID download_state_connecting_field = (*env)->GetStaticFieldID(env, download_state_class,
+                                                                        "Connecting",
+                                                                        "Lnet/typeblog/lpac_jni/ProfileDownloadCallback$DownloadState;");
+    download_state_connecting = (*env)->GetStaticObjectField(env, download_state_class,
+                                                             download_state_connecting_field);
     download_state_connecting = (*env)->NewGlobalRef(env, download_state_connecting);
-    jfieldID download_state_authenticating_field = (*env)->GetStaticFieldID(env, download_state_class, "Authenticating", "Lnet/typeblog/lpac_jni/ProfileDownloadCallback$DownloadState;");
-    download_state_authenticating = (*env)->GetStaticObjectField(env, download_state_class, download_state_authenticating_field);
+    jfieldID download_state_authenticating_field = (*env)->GetStaticFieldID(env,
+                                                                            download_state_class,
+                                                                            "Authenticating",
+                                                                            "Lnet/typeblog/lpac_jni/ProfileDownloadCallback$DownloadState;");
+    download_state_authenticating = (*env)->GetStaticObjectField(env, download_state_class,
+                                                                 download_state_authenticating_field);
     download_state_authenticating = (*env)->NewGlobalRef(env, download_state_authenticating);
-    jfieldID download_state_downloading_field = (*env)->GetStaticFieldID(env, download_state_class, "Downloading", "Lnet/typeblog/lpac_jni/ProfileDownloadCallback$DownloadState;");
-    download_state_downloading = (*env)->GetStaticObjectField(env, download_state_class, download_state_downloading_field);
+    jfieldID download_state_downloading_field = (*env)->GetStaticFieldID(env, download_state_class,
+                                                                         "Downloading",
+                                                                         "Lnet/typeblog/lpac_jni/ProfileDownloadCallback$DownloadState;");
+    download_state_downloading = (*env)->GetStaticObjectField(env, download_state_class,
+                                                              download_state_downloading_field);
     download_state_downloading = (*env)->NewGlobalRef(env, download_state_downloading);
-    jfieldID download_state_finalizng_field = (*env)->GetStaticFieldID(env, download_state_class, "Finalizing", "Lnet/typeblog/lpac_jni/ProfileDownloadCallback$DownloadState;");
-    download_state_finalizing = (*env)->GetStaticObjectField(env, download_state_class, download_state_finalizng_field);
+    jfieldID download_state_finalizng_field = (*env)->GetStaticFieldID(env, download_state_class,
+                                                                       "Finalizing",
+                                                                       "Lnet/typeblog/lpac_jni/ProfileDownloadCallback$DownloadState;");
+    download_state_finalizing = (*env)->GetStaticObjectField(env, download_state_class,
+                                                             download_state_finalizng_field);
     download_state_finalizing = (*env)->NewGlobalRef(env, download_state_finalizing);
 
-    jclass download_callback_class = (*env)->FindClass(env, "net/typeblog/lpac_jni/ProfileDownloadCallback");
-    on_state_update = (*env)->GetMethodID(env, download_callback_class, "onStateUpdate", "(Lnet/typeblog/lpac_jni/ProfileDownloadCallback$DownloadState;)V");
+    jclass download_callback_class = (*env)->FindClass(env,
+                                                       "net/typeblog/lpac_jni/ProfileDownloadCallback");
+    on_state_update = (*env)->GetMethodID(env, download_callback_class, "onStateUpdate",
+                                          "(Lnet/typeblog/lpac_jni/ProfileDownloadCallback$DownloadState;)V");
 }
 
 JNIEXPORT jint JNICALL
@@ -42,7 +61,7 @@ Java_net_typeblog_lpac_1jni_LpacJni_downloadProfile(JNIEnv *env, jobject thiz, j
                                                     jstring imei, jstring confirmation_code,
                                                     jobject callback) {
     struct euicc_ctx *ctx = (struct euicc_ctx *) handle;
-    struct es9p_ctx es9p_ctx = { 0 };
+    struct es9p_ctx es9p_ctx = {0};
     struct es10b_load_bound_profile_package_result es10b_load_bound_profile_package_result;
     struct es10b_authenticate_server_param es10b_authenticate_server_param;
     struct es10b_prepare_download_param es10b_prepare_download_param;
@@ -79,7 +98,8 @@ Java_net_typeblog_lpac_1jni_LpacJni_downloadProfile(JNIEnv *env, jobject thiz, j
         goto out;
 
     (*env)->CallVoidMethod(env, callback, on_state_update, download_state_connecting);
-    ret = es9p_initiate_authentication(&es9p_ctx, &es10b_authenticate_server_param, b64_euicc_challenge, b64_euicc_info_1);
+    ret = es9p_initiate_authentication(&es9p_ctx, &es10b_authenticate_server_param,
+                                       b64_euicc_challenge, b64_euicc_info_1);
     if (ret < 0)
         goto out;
 
@@ -87,30 +107,35 @@ Java_net_typeblog_lpac_1jni_LpacJni_downloadProfile(JNIEnv *env, jobject thiz, j
     es10b_authenticate_server_param.imei = _imei;
 
     (*env)->CallVoidMethod(env, callback, on_state_update, download_state_authenticating);
-    ret = es10b_authenticate_server(ctx, &b64_authenticate_server_response, &es10b_authenticate_server_param);
+    ret = es10b_authenticate_server(ctx, &b64_authenticate_server_response,
+                                    &es10b_authenticate_server_param);
     if (ret < 0)
         goto out;
 
-    ret = es9p_authenticate_client(&es9p_ctx, &es10b_prepare_download_param, b64_authenticate_server_response);
+    ret = es9p_authenticate_client(&es9p_ctx, &es10b_prepare_download_param,
+                                   b64_authenticate_server_response);
     if (ret < 0)
         goto out;
 
     es10b_prepare_download_param.confirmationCode = _confirmation_code;
 
     (*env)->CallVoidMethod(env, callback, on_state_update, download_state_downloading);
-    ret = es10b_prepare_download(ctx, &b64_prepare_download_response, &es10b_prepare_download_param);
+    ret = es10b_prepare_download(ctx, &b64_prepare_download_response,
+                                 &es10b_prepare_download_param);
     if (ret < 0)
         goto out;
 
-    ret = es9p_get_bound_profile_package(&es9p_ctx, &b64_bound_profile_package, b64_prepare_download_response);
+    ret = es9p_get_bound_profile_package(&es9p_ctx, &b64_bound_profile_package,
+                                         b64_prepare_download_response);
     if (ret < 0)
         goto out;
 
     (*env)->CallVoidMethod(env, callback, on_state_update, download_state_finalizing);
     // TODO: Expose error code as Java-side exceptions?
-    ret = es10b_load_bound_profile_package(ctx, &es10b_load_bound_profile_package_result, b64_bound_profile_package);
+    ret = es10b_load_bound_profile_package(ctx, &es10b_load_bound_profile_package_result,
+                                           b64_bound_profile_package);
 
-out:
+    out:
     free(b64_authenticate_server_response);
     free(b64_prepare_download_response);
     free(b64_euicc_info_1);

+ 1 - 0
libs/lpac-jni/src/main/jni/lpac-jni/lpac-download.h

@@ -1,4 +1,5 @@
 #pragma once
+
 #include <jni.h>
 #include "lpac-jni.h"
 

+ 18 - 9
libs/lpac-jni/src/main/jni/lpac-jni/lpac-jni.c

@@ -10,7 +10,7 @@
 #include "lpac-notifications.h"
 #include "interface-wrapper.h"
 
-JavaVM  *jvm = NULL;
+JavaVM *jvm = NULL;
 
 jclass local_profile_info_class;
 jmethodID local_profile_info_constructor;
@@ -38,24 +38,32 @@ jint JNI_OnLoad(JavaVM *vm, void *reserved) {
     LPAC_JNI_SETUP_ENV;
     string_class = (*env)->FindClass(env, "java/lang/String");
     string_class = (*env)->NewGlobalRef(env, string_class);
-    string_constructor = (*env)->GetMethodID(env, string_class, "<init>", "([BLjava/lang/String;)V");
+    string_constructor = (*env)->GetMethodID(env, string_class, "<init>",
+                                             "([BLjava/lang/String;)V");
 
     local_profile_info_class = (*env)->FindClass(env, "net/typeblog/lpac_jni/LocalProfileInfo");
     local_profile_info_class = (*env)->NewGlobalRef(env, local_profile_info_class);
     local_profile_info_constructor = (*env)->GetMethodID(env, local_profile_info_class, "<init>",
                                                          "(Ljava/lang/String;Lnet/typeblog/lpac_jni/LocalProfileInfo$State;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lnet/typeblog/lpac_jni/LocalProfileInfo$Clazz;)V");
 
-    local_profile_state_class = (*env)->FindClass(env, "net/typeblog/lpac_jni/LocalProfileInfo$State");
+    local_profile_state_class = (*env)->FindClass(env,
+                                                  "net/typeblog/lpac_jni/LocalProfileInfo$State");
     local_profile_state_class = (*env)->NewGlobalRef(env, local_profile_state_class);
-    local_profile_state_from_string = (*env)->GetStaticMethodID(env, local_profile_state_class, "fromString", "(Ljava/lang/String;)Lnet/typeblog/lpac_jni/LocalProfileInfo$State;");
+    local_profile_state_from_string = (*env)->GetStaticMethodID(env, local_profile_state_class,
+                                                                "fromString",
+                                                                "(Ljava/lang/String;)Lnet/typeblog/lpac_jni/LocalProfileInfo$State;");
 
-    local_profile_class_class = (*env)->FindClass(env, "net/typeblog/lpac_jni/LocalProfileInfo$Clazz");
+    local_profile_class_class = (*env)->FindClass(env,
+                                                  "net/typeblog/lpac_jni/LocalProfileInfo$Clazz");
     local_profile_class_class = (*env)->NewGlobalRef(env, local_profile_class_class);
-    local_profile_class_from_string = (*env)->GetStaticMethodID(env, local_profile_class_class, "fromString", "(Ljava/lang/String;)Lnet/typeblog/lpac_jni/LocalProfileInfo$Clazz;");
+    local_profile_class_from_string = (*env)->GetStaticMethodID(env, local_profile_class_class,
+                                                                "fromString",
+                                                                "(Ljava/lang/String;)Lnet/typeblog/lpac_jni/LocalProfileInfo$Clazz;");
 
     euicc_info2_class = (*env)->FindClass(env, "net/typeblog/lpac_jni/EuiccInfo2");
     euicc_info2_class = (*env)->NewGlobalRef(env, euicc_info2_class);
-    euicc_info2_constructor = (*env)->GetMethodID(env, euicc_info2_class, "<init>", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II[Ljava/lang/String;[Ljava/lang/String;)V");
+    euicc_info2_constructor = (*env)->GetMethodID(env, euicc_info2_class, "<init>",
+                                                  "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II[Ljava/lang/String;[Ljava/lang/String;)V");
 
     const char _unused[1];
     empty_string = (*env)->NewString(env, _unused, 0);
@@ -292,7 +300,7 @@ Java_net_typeblog_lpac_1jni_LpacJni_es10cDeleteProfile(JNIEnv *env, jobject thiz
 JNIEXPORT jobject JNICALL
 Java_net_typeblog_lpac_1jni_LpacJni_es10cexGetEuiccInfo2(JNIEnv *env, jobject thiz, jlong handle) {
     struct euicc_ctx *ctx = (struct euicc_ctx *) handle;
-    struct es10c_ex_euiccinfo2 info = { 0 };
+    struct es10c_ex_euiccinfo2 info = {0};
     jobjectArray euiccCiPKIdListForVerification = NULL;
     jobjectArray euiccCiPKIdListForSigning = NULL;
     jstring sas_accreditation_number = NULL;
@@ -322,7 +330,8 @@ Java_net_typeblog_lpac_1jni_LpacJni_es10cexGetEuiccInfo2(JNIEnv *env, jobject th
     count = LPAC_JNI_NULL_TERM_LIST_COUNT(info.euiccCiPKIdListForVerification, curr);
     euiccCiPKIdListForVerification = (*env)->NewObjectArray(env, count, string_class, NULL);
     LPAC_JNI_NULL_TERM_LIST_FOREACH(info.euiccCiPKIdListForVerification, curr, {
-        (*env)->SetObjectArrayElement(env, euiccCiPKIdListForVerification, i, toJString(env, *curr));
+        (*env)->SetObjectArrayElement(env, euiccCiPKIdListForVerification, i,
+                                      toJString(env, *curr));
     });
 
     ret = (*env)->NewObject(env, euicc_info2_class, euicc_info2_constructor,

+ 1 - 0
libs/lpac-jni/src/main/jni/lpac-jni/lpac-jni.h

@@ -1,4 +1,5 @@
 #pragma once
+
 #include <euicc/euicc.h>
 #include <pthread.h>
 #include <jni.h>

+ 4 - 3
libs/lpac-jni/src/main/jni/lpac-jni/lpac-notifications.c

@@ -19,7 +19,7 @@ void lpac_notifications_init() {
             (*env)->NewGlobalRef(env, local_profile_notification_class);
     local_profile_notification_constructor =
             (*env)->GetMethodID(env, local_profile_notification_class, "<init>",
-                                      "(JLnet/typeblog/lpac_jni/LocalProfileNotification$Operation;Ljava/lang/String;Ljava/lang/String;)V");
+                                "(JLnet/typeblog/lpac_jni/LocalProfileNotification$Operation;Ljava/lang/String;Ljava/lang/String;)V");
 
     local_profile_notification_operation_class =
             (*env)->FindClass(env, "net/typeblog/lpac_jni/LocalProfileNotification$Operation");
@@ -73,7 +73,8 @@ Java_net_typeblog_lpac_1jni_LpacJni_es10bListNotification(JNIEnv *env, jobject t
 
         notification =
                 (*env)->NewObject(env, local_profile_notification_class,
-                                  local_profile_notification_constructor, curr->seqNumber, operation,
+                                  local_profile_notification_constructor, curr->seqNumber,
+                                  operation,
                                   toJString(env, curr->notificationAddress),
                                   toJString(env, curr->iccid));
 
@@ -91,7 +92,7 @@ JNIEXPORT jint JNICALL
 Java_net_typeblog_lpac_1jni_LpacJni_handleNotification(JNIEnv *env, jobject thiz, jlong handle,
                                                        jlong seq_number) {
     struct euicc_ctx *ctx = (struct euicc_ctx *) handle;
-    struct es9p_ctx es9p_ctx = { 0 };
+    struct es9p_ctx es9p_ctx = {0};
     struct es10b_pending_notification notification;
     int res;