Я пытаюсь сгенерировать пару ключей RSA для использования шифрования RSA BoringSSL
на Android.
У меня ошибка: error: undefined reference to 'RSA_generate_key'
при запуске проекта.
Это мойКаталог проекта:
Я пытаюсь связать статическую библиотеку этим, но все же получаю еще одну ошибку:
add_library(crypto STATIC IMPORTED)
set_property(TARGET crypto PROPERTY IMPORTED_LOCATION ../../../../boringssl/lib/libcrypto_x86.a)
target_link_libraries(crypto)
include_directories(../../../../boringssl/include)
Это файл cpp:
#include <jni.h>
#include <string>
#include <android/log.h>
#include <openssl/rsa.h>
#include <openssl/base.h>
#define KEY_LENGTH 515
#define PUBLIC_EXPONENT 59 //Public exponent should be a prime number.
#define PUBLIC_KEY_PEM 1
#define PRIVATE_KEY_PEM 0
extern "C" JNIEXPORT jstring JNICALL
Java_sinhpn_testt_myapplication1_MainActivity_stringFromJNI(
JNIEnv *env,
jobject /* this */) {
std::string hello = "Hello from C++";
__android_log_print(ANDROID_LOG_INFO, "Sinhpn", "--->>>> Hello World!");
// char public_key_pem[KEY_LENGTH] = "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIy2PKth95GlY6m2FFQ5ExdQwY2FVm/eSKCyv0in+CnV+WEHZkqBTX/XAzvmum6FLi2zhmwFUXqx0Zn4powd1AcCAwEAAQ==";
RSA *keyPair = RSA_generate_key(KEY_LENGTH, PUBLIC_EXPONENT, NULL, NULL);
return env->NewStringUTF(hello.c_str());
}
Я исследовался много часов, но не смог решить мою проблему. Есть какие-либо предложения, чтобы решить эту проблему?
Большое спасибо!