Skip to content

Commit

Permalink
TKSS-971: Enhance SM3 JNI codes
Browse files Browse the repository at this point in the history
  • Loading branch information
johnshajiang committed Dec 6, 2024
1 parent 4761c7e commit cf477ff
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 18 deletions.
41 changes: 23 additions & 18 deletions kona-crypto/src/main/jni/kona_sm3.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,50 +27,55 @@
#include "kona/kona_jni.h"
#include "kona/kona_common.h"

int sm3_reset(EVP_MD_CTX* ctx) {
EVP_MD_CTX* sm3_create_ctx() {
EVP_MD_CTX* ctx = EVP_MD_CTX_new();
if (ctx == NULL) {
return OPENSSL_FAILURE;
}

if (!EVP_MD_CTX_reset(ctx)) {
OPENSSL_print_err();
return OPENSSL_FAILURE;
return NULL;
}

const EVP_MD* md = EVP_sm3();
if (md == NULL) {
OPENSSL_print_err();
return OPENSSL_FAILURE;
return NULL;
}

if (!EVP_DigestInit_ex(ctx, md, NULL)) {
OPENSSL_print_err();
return OPENSSL_FAILURE;
return NULL;
}

return OPENSSL_SUCCESS;
return ctx;
}

JNIEXPORT jlong JNICALL Java_com_tencent_kona_crypto_provider_nativeImpl_NativeCrypto_sm3CreateCtx
(JNIEnv* env, jobject thisObj) {
EVP_MD_CTX* ctx = EVP_MD_CTX_new();
int sm3_reset(EVP_MD_CTX* ctx) {
if (ctx == NULL) {
return OPENSSL_FAILURE;
}

if (!EVP_MD_CTX_reset(ctx)) {
OPENSSL_print_err();
return KONA_BAD;
return OPENSSL_FAILURE;
}

const EVP_MD* md = EVP_sm3();
if (md == NULL) {
OPENSSL_print_err();
return KONA_BAD;
return OPENSSL_FAILURE;
}

if (!EVP_DigestInit_ex(ctx, md, NULL)) {
OPENSSL_print_err();
return KONA_BAD;
return OPENSSL_FAILURE;
}

return (jlong)ctx;
return OPENSSL_SUCCESS;
}

JNIEXPORT jlong JNICALL Java_com_tencent_kona_crypto_provider_nativeImpl_NativeCrypto_sm3CreateCtx
(JNIEnv* env, jobject thisObj) {
EVP_MD_CTX* ctx = sm3_create_ctx();
return ctx == NULL ? KONA_BAD : (jlong)ctx;
}

JNIEXPORT void JNICALL Java_com_tencent_kona_crypto_provider_nativeImpl_NativeCrypto_sm3FreeCtx
Expand All @@ -85,14 +90,14 @@ JNIEXPORT jint JNICALL Java_com_tencent_kona_crypto_provider_nativeImpl_NativeCr
(JNIEnv* env, jobject thisObj, jlong pointer, jbyteArray data) {
EVP_MD_CTX* ctx = (EVP_MD_CTX*)pointer;
if (ctx == NULL) {
return KONA_BAD;
return KONA_BAD;
}

if (data == NULL) {
return KONA_BAD;
}

int data_len = (*env)->GetArrayLength(env, data);
jsize data_len = (*env)->GetArrayLength(env, data);
if (data_len < 0) {
return KONA_BAD;
}
Expand Down
Binary file modified kona-crypto/src/main/resources/libKonaCrypto-linux-aarch64.so
Binary file not shown.
Binary file modified kona-crypto/src/main/resources/libKonaCrypto-linux-x86_64.so
Binary file not shown.

0 comments on commit cf477ff

Please sign in to comment.