|
@@ -6,8 +6,9 @@
|
|
|
|
|
|
#include <jni.h>
|
|
|
#include <jtool.h>
|
|
|
+#include <rsa/rsa_utils.h>
|
|
|
#include "include/logger.h"
|
|
|
-#include "include/aes_utils.h"
|
|
|
+#include "aes/aes_utils.h"
|
|
|
|
|
|
static void GetAesKey(JNIEnv *env, jobject thiz) {
|
|
|
uint8_t *aes_key = AesUtils::GetKey();
|
|
@@ -31,10 +32,10 @@ static jstring AesEncrypt(JNIEnv *env, jobject thiz, jstring src) {
|
|
|
LOGD("%s", raw);
|
|
|
env->ReleaseStringUTFChars(src, src_);
|
|
|
|
|
|
- jstring jResult = JTool::GetJString(env, raw);
|
|
|
+ jstring result = JTool::GetJString(env, raw);
|
|
|
free(raw);
|
|
|
|
|
|
- return jResult;
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
static jstring AesDecrypt(JNIEnv *env, jobject thiz, jstring raw, jstring key) {
|
|
@@ -43,15 +44,38 @@ static jstring AesDecrypt(JNIEnv *env, jobject thiz, jstring raw, jstring key) {
|
|
|
char *src = AesUtils::Decrypt(raw_, key_);
|
|
|
env->ReleaseStringUTFChars(raw, raw_);
|
|
|
|
|
|
- jstring jResult = JTool::GetJString(env, src);
|
|
|
+ jstring result = JTool::GetJString(env, src);
|
|
|
free(src);
|
|
|
- return jResult;
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+static jstring RsaEncrypt(JNIEnv *env, jobject thiz, jstring src) {
|
|
|
+ const char *src_ = env->GetStringUTFChars(src, JNI_FALSE);
|
|
|
+ std::string key = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCAVatPhPaZtxBkLBZDnOLf7no6VfnjBRMXhpOnWmkkDX4zurB/OKisYDFnR0UUVnKn717+absfLlDk9HZWBcTMznsUju9fuXlu3Elr8HeI3en7E0KIQzxkY1GT1+qtZ+tCjWuyMmUw4vWpO8/MRU3f6nc4io3w+7N+dP24BIo0ZwIDAQAB";
|
|
|
+ std::string raw = RsaUtils::EncryptByPublicKey(key, src_);
|
|
|
+// LOGD("base64 raw : %s", raw.c_str());
|
|
|
+ env->ReleaseStringUTFChars(src, src_);
|
|
|
+ jstring result = JTool::GetJString(env, raw.c_str());
|
|
|
+ return result;
|
|
|
+}
|
|
|
+
|
|
|
+static jstring RsaDecrypt(JNIEnv *env, jobject thiz, jstring raw) {
|
|
|
+ const char *raw_ = env->GetStringUTFChars(raw, JNI_FALSE);
|
|
|
+ std::string key = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCAVatPhPaZtxBkLBZDnOLf7no6VfnjBRMXhpOnWmkkDX4zurB/OKisYDFnR0UUVnKn717+absfLlDk9HZWBcTMznsUju9fuXlu3Elr8HeI3en7E0KIQzxkY1GT1+qtZ+tCjWuyMmUw4vWpO8/MRU3f6nc4io3w+7N+dP24BIo0ZwIDAQAB";
|
|
|
+ std::string src = RsaUtils::DecryptByPublicKey(key, raw_);
|
|
|
+ env->ReleaseStringUTFChars(raw, raw_);
|
|
|
+ jstring result = JTool::GetJString(env, src.c_str());
|
|
|
+ return result;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
static JNINativeMethod gMethod[] = {
|
|
|
{"getAesKey", "()V", (void *) GetAesKey},
|
|
|
{"aesEncrypt", "(Ljava/lang/String;)Ljava/lang/String;", (void *) AesEncrypt},
|
|
|
- {"aesDecrypt", "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;", (void *) AesDecrypt}
|
|
|
+ {"aesDecrypt", "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;", (void *) AesDecrypt},
|
|
|
+ {"rsaEncrypt", "(Ljava/lang/String;)Ljava/lang/String;", (void *) RsaEncrypt},
|
|
|
+ {"rsaDecrypt", "(Ljava/lang/String;)Ljava/lang/String;", (void *) RsaDecrypt}
|
|
|
};
|
|
|
|
|
|
extern "C" JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) {
|