簡體   English   中英

如何在Android JNI中鏈接加密共享庫

[英]How to link crypto shared library in Android JNI

我正在編寫一個包裝程序以使用某些加密功能。 我使用Android-NDK從openssl-android構建crypto lib。 現在,我有了所需的libcrypto.so,但我不知道如何將其與包裝器鏈接。

我的項目樹是這樣的

(proj root)
|
|->(src)
|->(src)-> com.package
|->(src)-> com.package->NativeCipher.java
|
|->(jni)
|->(jni)->Android.mk
|->(jni)->NativeCipher.c

NativeCipher.java

public class NativeCipher {
    static {
         System.loadLibrary("crypto");
         System.loadLibrary("NativeCipher");
     }

     public static native byte[] AESEncrypt(byte[] in, byte[] key);
}

本機密碼

#include <string.h>
#include <jni.h>
#include <aes.h>

jbyteArray Java_com_package_NativeCipher_AESEncrypt(JNIEnv* env, jobject this, jbyteArray in, jbyteArray key)
{
    // All my code here
}

我需要使用crypto提供的#include功能。 但是,我不知道NDK生成的.so文件如何處理以及如何構建Android.mk文件。

在此先感謝,我盡力做到盡可能具體。

本機庫轉到您的Android項目的libs/armeabilibs/armeabi-v7a 但是,您可能想重命名OpenSSL庫,因為系統已經有一個libcrypto.so 至於您自己的JNI包裝器,只需從NDK中獲取共享庫示例,然后進行修改以使用您自己的文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM