JNI: cleanup XMALLOC usage, call XMEMSET where needed
parent
1fe2ad65fd
commit
f63d9a1b0d
|
@ -19,6 +19,8 @@
|
|||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef WOLFSSL_USER_SETTINGS
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
#elif !defined(__ANDROID__)
|
||||
|
@ -36,24 +38,26 @@
|
|||
JNIEXPORT jlong JNICALL Java_com_wolfssl_wolfcrypt_Aes_mallocNativeStruct(
|
||||
JNIEnv* env, jobject this)
|
||||
{
|
||||
void* ret = NULL;
|
||||
|
||||
#ifndef NO_AES
|
||||
ret = (void*)XMALLOC(sizeof(Aes), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
Aes* aes = NULL;
|
||||
|
||||
if (ret == NULL) {
|
||||
aes = (Aes*)XMALLOC(sizeof(Aes), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
if (aes == NULL) {
|
||||
throwOutOfMemoryException(env, "Failed to allocate Aes object");
|
||||
}
|
||||
else {
|
||||
XMEMSET(ret, 0, sizeof(Aes));
|
||||
XMEMSET(aes, 0, sizeof(Aes));
|
||||
}
|
||||
|
||||
LogStr("new Aes() = %p\n", ret);
|
||||
LogStr("new Aes() = %p\n", aes);
|
||||
|
||||
return (jlong)(uintptr_t)aes;
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
|
||||
return (jlong)ret;
|
||||
return (jlong)0;
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef WOLFSSL_USER_SETTINGS
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
#elif !defined(__ANDROID__)
|
||||
|
@ -40,21 +41,26 @@ JNIEXPORT jlong JNICALL
|
|||
Java_com_wolfssl_wolfcrypt_Chacha_mallocNativeStruct(
|
||||
JNIEnv* env, jobject this)
|
||||
{
|
||||
void* ret = 0;
|
||||
|
||||
#ifdef HAVE_CHACHA
|
||||
ret = (void*)XMALLOC(sizeof(ChaCha), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
ChaCha* chacha = NULL;
|
||||
|
||||
if (ret == NULL)
|
||||
chacha = (ChaCha*)XMALLOC(sizeof(ChaCha), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
if (chacha == NULL) {
|
||||
throwOutOfMemoryException(env, "Failed to allocate ChaCha object");
|
||||
}
|
||||
else {
|
||||
XMEMSET(chacha, 0, sizeof(ChaCha));
|
||||
}
|
||||
|
||||
LogStr("new ChaCha object allocated = %p\n", chacha);
|
||||
|
||||
return (jlong)(uintptr_t)chacha;
|
||||
|
||||
XMEMSET(ret, 0, sizeof(ChaCha));
|
||||
LogStr("new ChaCha object allocated = %p\n", ret);
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
|
||||
return (jlong)(uintptr_t)ret;
|
||||
return (jlong)0;
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Chacha_wc_1Chacha_1setIV
|
||||
|
@ -162,6 +168,8 @@ Java_com_wolfssl_wolfcrypt_Chacha_wc_1Chacha_1process(
|
|||
}
|
||||
|
||||
if (ret == 0) {
|
||||
XMEMSET(output, 0, inputSz);
|
||||
|
||||
ret = wc_Chacha_Process(chacha, output, input, inputSz);
|
||||
}
|
||||
|
||||
|
|
|
@ -19,6 +19,8 @@
|
|||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef WOLFSSL_USER_SETTINGS
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
#elif !defined(__ANDROID__)
|
||||
|
@ -44,20 +46,26 @@ JNIEXPORT jlong JNICALL
|
|||
Java_com_wolfssl_wolfcrypt_Curve25519_mallocNativeStruct(
|
||||
JNIEnv* env, jobject this)
|
||||
{
|
||||
void* ret = 0;
|
||||
|
||||
#ifdef HAVE_CURVE25519
|
||||
ret = XMALLOC(sizeof(curve25519_key), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
curve25519_key* key = NULL;
|
||||
|
||||
if (ret == NULL)
|
||||
key = (curve25519_key*)XMALLOC(sizeof(curve25519_key), NULL,
|
||||
DYNAMIC_TYPE_TMP_BUFFER);
|
||||
if (key == NULL) {
|
||||
throwOutOfMemoryException(env, "Failed to allocate Curve25519 object");
|
||||
}
|
||||
else {
|
||||
XMEMSET(key, 0, sizeof(curve25519_key));
|
||||
}
|
||||
|
||||
LogStr("new Curve25519() = %p\n", (void*)ret);
|
||||
LogStr("new Curve25519() = %p\n", key);
|
||||
|
||||
return (jlong)(uintptr_t)key;
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
|
||||
return (jlong) ret;
|
||||
return (jlong)0;
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
|
@ -277,6 +285,7 @@ Java_com_wolfssl_wolfcrypt_Curve25519_wc_1curve25519_1export_1private(
|
|||
throwOutOfMemoryException(env, "Failed to allocate key buffer");
|
||||
return result;
|
||||
}
|
||||
XMEMSET(output, 0, outputSz);
|
||||
|
||||
ret = (!curve25519)
|
||||
? BAD_FUNC_ARG
|
||||
|
@ -332,6 +341,7 @@ Java_com_wolfssl_wolfcrypt_Curve25519_wc_1curve25519_1export_1public (
|
|||
throwOutOfMemoryException(env, "Failed to allocate key buffer");
|
||||
return result;
|
||||
}
|
||||
XMEMSET(output, 0, outputSz);
|
||||
|
||||
ret = (!curve25519)
|
||||
? BAD_FUNC_ARG
|
||||
|
@ -394,6 +404,7 @@ Java_com_wolfssl_wolfcrypt_Curve25519_wc_1curve25519_1make_1shared_1secret(
|
|||
"Failed to allocate shared secret buffer");
|
||||
return result;
|
||||
}
|
||||
XMEMSET(output, 0, outputSz);
|
||||
|
||||
ret = (!curve25519 || !pub)
|
||||
? BAD_FUNC_ARG
|
||||
|
|
|
@ -19,6 +19,8 @@
|
|||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef WOLFSSL_USER_SETTINGS
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
#elif !defined(__ANDROID__)
|
||||
|
@ -36,20 +38,25 @@
|
|||
JNIEXPORT jlong JNICALL Java_com_wolfssl_wolfcrypt_Des3_mallocNativeStruct(
|
||||
JNIEnv* env, jobject this)
|
||||
{
|
||||
jlong ret = 0;
|
||||
|
||||
#ifndef NO_DES3
|
||||
ret = (jlong) XMALLOC(sizeof(Des3), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
Des3* des = NULL;
|
||||
|
||||
if (!ret)
|
||||
des = (Des3*) XMALLOC(sizeof(Des3), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
if (des == NULL) {
|
||||
throwOutOfMemoryException(env, "Failed to allocate Des3 object");
|
||||
}
|
||||
else {
|
||||
XMEMSET(des, 0, sizeof(Des3));
|
||||
}
|
||||
|
||||
LogStr("new Des3() = %p\n", (void*)ret);
|
||||
LogStr("new Des3() = %p\n", des);
|
||||
|
||||
return (jlong)(uintptr_t)des;
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
return (jlong)0;
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
|
|
|
@ -19,6 +19,8 @@
|
|||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef WOLFSSL_USER_SETTINGS
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
#elif !defined(__ANDROID__)
|
||||
|
@ -44,24 +46,25 @@ JNIEXPORT jlong JNICALL
|
|||
Java_com_wolfssl_wolfcrypt_Ecc_mallocNativeStruct(
|
||||
JNIEnv* env, jobject this)
|
||||
{
|
||||
void* ret = NULL;
|
||||
|
||||
#ifdef HAVE_ECC
|
||||
ret = (void*)XMALLOC(sizeof(ecc_key), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
ecc_key* ecc = NULL;
|
||||
|
||||
if (ret == NULL) {
|
||||
ecc = (ecc_key*)XMALLOC(sizeof(ecc_key), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
if (ecc == NULL) {
|
||||
throwOutOfMemoryException(env, "Failed to allocate Ecc object");
|
||||
}
|
||||
else {
|
||||
XMEMSET(ret, 0, sizeof(ecc_key));
|
||||
XMEMSET(ecc, 0, sizeof(ecc_key));
|
||||
}
|
||||
|
||||
LogStr("new Ecc() = %p\n", (void*)ret);
|
||||
LogStr("new Ecc() = %p\n", ecc);
|
||||
|
||||
return (jlong)(uintptr_t)ecc;
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
|
||||
return (jlong) ret;
|
||||
return (jlong)0;
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
|
|
|
@ -19,6 +19,8 @@
|
|||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef WOLFSSL_USER_SETTINGS
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
#elif !defined(__ANDROID__)
|
||||
|
@ -44,20 +46,25 @@ JNIEXPORT jlong JNICALL
|
|||
Java_com_wolfssl_wolfcrypt_Ed25519_mallocNativeStruct(
|
||||
JNIEnv* env, jobject this)
|
||||
{
|
||||
void* ret = 0;
|
||||
|
||||
#ifdef HAVE_ED25519
|
||||
ret = XMALLOC(sizeof(ed25519_key), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
ed25519_key* key = NULL;
|
||||
|
||||
if (ret == NULL)
|
||||
key = (ed25519_key*)XMALLOC(sizeof(ed25519_key), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
if (key == NULL) {
|
||||
throwOutOfMemoryException(env, "Failed to allocate Ed25519 object");
|
||||
}
|
||||
else {
|
||||
XMEMSET(key, 0, sizeof(ed25519_key));
|
||||
}
|
||||
|
||||
LogStr("new Ed25519() = %p\n", (void*)ret);
|
||||
LogStr("new Ed25519() = %p\n", key);
|
||||
|
||||
return (jlong)(uintptr_t)key;
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
|
||||
return (jlong) ret;
|
||||
return (jlong)0;
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
|
@ -303,6 +310,7 @@ Java_com_wolfssl_wolfcrypt_Ed25519_wc_1ed25519_1export_1private(
|
|||
throwOutOfMemoryException(env, "Failed to allocate key buffer");
|
||||
return result;
|
||||
}
|
||||
XMEMSET(output, 0, outputSz);
|
||||
|
||||
ret = (!ed25519)
|
||||
? BAD_FUNC_ARG
|
||||
|
@ -358,6 +366,7 @@ Java_com_wolfssl_wolfcrypt_Ed25519_wc_1ed25519_1export_1private_1only(
|
|||
throwOutOfMemoryException(env, "Failed to allocate key buffer");
|
||||
return result;
|
||||
}
|
||||
XMEMSET(output, 0, outputSz);
|
||||
|
||||
ret = (!ed25519)
|
||||
? BAD_FUNC_ARG
|
||||
|
@ -413,6 +422,7 @@ Java_com_wolfssl_wolfcrypt_Ed25519_wc_1ed25519_1export_1public(
|
|||
throwOutOfMemoryException(env, "Failed to allocate key buffer");
|
||||
return result;
|
||||
}
|
||||
XMEMSET(output, 0, outputSz);
|
||||
|
||||
ret = (!ed25519)
|
||||
? BAD_FUNC_ARG
|
||||
|
@ -460,13 +470,23 @@ JNIEXPORT jbyteArray JNICALL Java_com_wolfssl_wolfcrypt_Ed25519_wc_1ed25519_1sig
|
|||
/* getNativeStruct may throw exception, prevent throwing another */
|
||||
return NULL;
|
||||
}
|
||||
msg = getByteArray(env, msg_in);
|
||||
len = getByteArrayLength(env, msg_in);
|
||||
output = XMALLOC(outlen, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
|
||||
if (!ed25519) {
|
||||
if (ed25519 == NULL) {
|
||||
ret = BAD_FUNC_ARG;
|
||||
} else {
|
||||
}
|
||||
|
||||
if (ret == 0) {
|
||||
msg = getByteArray(env, msg_in);
|
||||
len = getByteArrayLength(env, msg_in);
|
||||
output = XMALLOC(outlen, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
if (output == NULL) {
|
||||
ret = MEMORY_E;
|
||||
}
|
||||
}
|
||||
|
||||
if (ret == 0) {
|
||||
XMEMSET(output, 0, outlen);
|
||||
|
||||
ret = wc_ed25519_sign_msg(msg, len, output, &outlen, ed25519);
|
||||
}
|
||||
|
||||
|
|
|
@ -19,6 +19,8 @@
|
|||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef WOLFSSL_USER_SETTINGS
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
#elif !defined(__ANDROID__)
|
||||
|
@ -104,20 +106,26 @@ JNIEXPORT jlong JNICALL
|
|||
Java_com_wolfssl_wolfcrypt_Hmac_mallocNativeStruct(
|
||||
JNIEnv* env, jobject this)
|
||||
{
|
||||
jlong ret = 0;
|
||||
|
||||
#ifndef NO_HMAC
|
||||
ret = (jlong) XMALLOC(sizeof(Hmac), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
Hmac* hmac = NULL;
|
||||
|
||||
if (!ret)
|
||||
hmac = (Hmac*) XMALLOC(sizeof(Hmac), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
if (hmac == NULL) {
|
||||
throwOutOfMemoryException(env, "Failed to allocate Hmac object");
|
||||
}
|
||||
else {
|
||||
XMEMSET(hmac, 0, sizeof(Hmac));
|
||||
}
|
||||
|
||||
LogStr("new Hmac() = %p\n", hmac);
|
||||
|
||||
return (jlong)(uintptr_t)hmac;
|
||||
|
||||
LogStr("new Hmac() = %p\n", (void*)ret);
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
return (jlong)0;
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef WOLFSSL_USER_SETTINGS
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
#elif !defined(__ANDROID__)
|
||||
|
@ -50,20 +51,25 @@ JNIEXPORT jlong JNICALL
|
|||
Java_com_wolfssl_wolfcrypt_Md5_mallocNativeStruct_1internal(
|
||||
JNIEnv* env, jobject this)
|
||||
{
|
||||
jlong ret = 0;
|
||||
|
||||
#ifndef NO_MD5
|
||||
ret = (jlong)(uintptr_t)XMALLOC(sizeof(Md5), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
Md5* md5 = NULL;
|
||||
|
||||
if (!ret)
|
||||
md5 = (Md5*)XMALLOC(sizeof(Md5), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
if (md5 == NULL) {
|
||||
throwOutOfMemoryException(env, "Failed to allocate Md5 object");
|
||||
}
|
||||
else {
|
||||
XMEMSET(md5, 0, sizeof(Md5));
|
||||
}
|
||||
|
||||
LogStr("new Md5() = %p\n", (void*)ret);
|
||||
LogStr("new Md5() = %p\n", md5);
|
||||
|
||||
return (jlong)(uintptr_t)md5;
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
return (jlong)0;
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
|
|
|
@ -19,6 +19,8 @@
|
|||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef WOLFSSL_USER_SETTINGS
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
#elif !defined(__ANDROID__)
|
||||
|
@ -43,20 +45,25 @@ JNIEXPORT jlong JNICALL
|
|||
Java_com_wolfssl_wolfcrypt_Rng_mallocNativeStruct(
|
||||
JNIEnv* env, jobject this)
|
||||
{
|
||||
jlong ret = 0;
|
||||
|
||||
#ifndef WC_NO_RNG
|
||||
ret = (jlong) XMALLOC(sizeof(RNG), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
RNG* rng = NULL;
|
||||
|
||||
if (!ret)
|
||||
rng = (RNG*)XMALLOC(sizeof(RNG), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
if (rng == NULL) {
|
||||
throwOutOfMemoryException(env, "Failed to allocate Rng object");
|
||||
}
|
||||
else {
|
||||
XMEMSET(rng, 0, sizeof(RNG));
|
||||
}
|
||||
|
||||
LogStr("new Rng() = %p\n", (void*)ret);
|
||||
LogStr("new Rng() = %p\n", rng);
|
||||
|
||||
return (jlong)(uintptr_t)rng;
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
return (jlong)0;
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
|
|
|
@ -19,6 +19,8 @@
|
|||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef WOLFSSL_USER_SETTINGS
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
#elif !defined(__ANDROID__)
|
||||
|
@ -45,23 +47,25 @@ JNIEXPORT jlong JNICALL
|
|||
Java_com_wolfssl_wolfcrypt_Rsa_mallocNativeStruct(
|
||||
JNIEnv* env, jobject this)
|
||||
{
|
||||
void* ret = NULL;
|
||||
|
||||
#ifndef NO_RSA
|
||||
ret = (void*)XMALLOC(sizeof(RsaKey), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
if (ret == NULL) {
|
||||
RsaKey* rsa = NULL;
|
||||
|
||||
rsa = (RsaKey*)XMALLOC(sizeof(RsaKey), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
if (rsa == NULL) {
|
||||
throwOutOfMemoryException(env, "Failed to allocate Rsa object");
|
||||
}
|
||||
else {
|
||||
XMEMSET(ret, 0, sizeof(RsaKey));
|
||||
XMEMSET(rsa, 0, sizeof(RsaKey));
|
||||
}
|
||||
|
||||
LogStr("new Rsa() = %p\n", (void*)ret);
|
||||
LogStr("new Rsa() = %p\n", rsa);
|
||||
|
||||
return (jlong)(uintptr_t)rsa;
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
|
||||
return (jlong)ret;
|
||||
return (jlong)0;
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT jlong JNICALL Java_com_wolfssl_wolfcrypt_Rsa_getDefaultRsaExponent
|
||||
|
@ -366,6 +370,8 @@ JNIEXPORT jbyteArray JNICALL Java_com_wolfssl_wolfcrypt_Rsa_wc_1RsaKeyToDer
|
|||
}
|
||||
|
||||
if (ret == 0) {
|
||||
XMEMSET(output, 0, outputSz);
|
||||
|
||||
ret = wc_RsaKeyToDer(key, output, outputSz);
|
||||
if (ret > 0) {
|
||||
outputSz = ret;
|
||||
|
@ -441,6 +447,8 @@ JNIEXPORT jbyteArray JNICALL Java_com_wolfssl_wolfcrypt_Rsa_wc_1RsaKeyToPublicDe
|
|||
}
|
||||
|
||||
if (ret == 0) {
|
||||
XMEMSET(output, 0, outputSz);
|
||||
|
||||
ret = wc_RsaKeyToPublicDer(key, output, outputSz);
|
||||
if (ret > 0) {
|
||||
outputSz = ret;
|
||||
|
@ -898,6 +906,8 @@ Java_com_wolfssl_wolfcrypt_Rsa_wc_1RsaPublicEncrypt(
|
|||
}
|
||||
|
||||
if (ret == 0) {
|
||||
XMEMSET(output, 0, outputSz);
|
||||
|
||||
ret = wc_RsaPublicEncrypt(plaintext, size, output, outputSz, key, rng);
|
||||
if (ret > 0) {
|
||||
outputSz = ret;
|
||||
|
@ -974,6 +984,8 @@ Java_com_wolfssl_wolfcrypt_Rsa_wc_1RsaPrivateDecrypt(
|
|||
}
|
||||
|
||||
if (ret == 0) {
|
||||
XMEMSET(output, 0, outputSz);
|
||||
|
||||
ret = wc_RsaPrivateDecrypt(ciphertext, size, output, outputSz, key);
|
||||
if (ret > 0) {
|
||||
outputSz = ret;
|
||||
|
@ -1057,6 +1069,8 @@ Java_com_wolfssl_wolfcrypt_Rsa_wc_1RsaSSL_1Sign(
|
|||
}
|
||||
|
||||
if (ret == 0) {
|
||||
XMEMSET(output, 0, outputSz);
|
||||
|
||||
ret = wc_RsaSSL_Sign(data, size, output, outputSz, key, rng);
|
||||
if (ret > 0) {
|
||||
outputSz = ret;
|
||||
|
@ -1133,6 +1147,8 @@ Java_com_wolfssl_wolfcrypt_Rsa_wc_1RsaSSL_1Verify(
|
|||
}
|
||||
|
||||
if (ret == 0) {
|
||||
XMEMSET(output, 0, outputSz);
|
||||
|
||||
ret = wc_RsaSSL_Verify(signature, size, output, outputSz, key);
|
||||
if (ret > 0) {
|
||||
outputSz = ret;
|
||||
|
|
|
@ -19,6 +19,8 @@
|
|||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef WOLFSSL_USER_SETTINGS
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
#elif !defined(__ANDROID__)
|
||||
|
@ -67,80 +69,100 @@ JNIEXPORT jlong JNICALL
|
|||
Java_com_wolfssl_wolfcrypt_Sha_mallocNativeStruct_1internal(
|
||||
JNIEnv* env, jobject this)
|
||||
{
|
||||
jlong ret = 0;
|
||||
|
||||
#ifndef NO_SHA
|
||||
ret = (jlong) XMALLOC(sizeof(Sha), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
Sha* sha = NULL;
|
||||
|
||||
if (!ret)
|
||||
sha = (Sha*) XMALLOC(sizeof(Sha), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
if (sha == NULL) {
|
||||
throwOutOfMemoryException(env, "Failed to allocate Sha object");
|
||||
}
|
||||
else {
|
||||
XMEMSET(sha, 0, sizeof(Sha));
|
||||
}
|
||||
|
||||
LogStr("new Sha() = %p\n", (void*)ret);
|
||||
LogStr("new Sha() = %p\n", sha);
|
||||
|
||||
return (jlong)(uintptr_t)sha;
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
return (jlong)0;
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT jlong JNICALL
|
||||
Java_com_wolfssl_wolfcrypt_Sha256_mallocNativeStruct_1internal(
|
||||
JNIEnv* env, jobject this)
|
||||
{
|
||||
jlong ret = 0;
|
||||
|
||||
#ifndef NO_SHA256
|
||||
ret = (jlong) XMALLOC(sizeof(Sha256), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
Sha256* sha = NULL;
|
||||
|
||||
if (!ret)
|
||||
sha = (Sha256*) XMALLOC(sizeof(Sha256), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
if (sha == NULL) {
|
||||
throwOutOfMemoryException(env, "Failed to allocate Sha256 object");
|
||||
}
|
||||
else {
|
||||
XMEMSET(sha, 0, sizeof(Sha256));
|
||||
}
|
||||
|
||||
LogStr("new Sha256() = %p\n", (void*)ret);
|
||||
LogStr("new Sha256() = %p\n", sha);
|
||||
|
||||
return (jlong)(uintptr_t)sha;
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
return (jlong)0;
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT jlong JNICALL
|
||||
Java_com_wolfssl_wolfcrypt_Sha384_mallocNativeStruct_1internal(
|
||||
JNIEnv* env, jobject this)
|
||||
{
|
||||
jlong ret = 0;
|
||||
|
||||
#ifdef WOLFSSL_SHA384
|
||||
ret = (jlong) XMALLOC(sizeof(Sha384), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
Sha384* sha = NULL;
|
||||
|
||||
if (!ret)
|
||||
sha = (Sha384*) XMALLOC(sizeof(Sha384), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
if (sha == NULL) {
|
||||
throwOutOfMemoryException(env, "Failed to allocate Sha384 object");
|
||||
}
|
||||
else {
|
||||
XMEMSET(sha, 0, sizeof(Sha384));
|
||||
}
|
||||
|
||||
LogStr("new Sha384() = %p\n", (void*)ret);
|
||||
LogStr("new Sha384() = %p\n", sha);
|
||||
|
||||
return (jlong)(uintptr_t)sha;
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
return (jlong)0;
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT jlong JNICALL
|
||||
Java_com_wolfssl_wolfcrypt_Sha512_mallocNativeStruct_1internal(
|
||||
JNIEnv* env, jobject this)
|
||||
{
|
||||
jlong ret = 0;
|
||||
|
||||
#ifdef WOLFSSL_SHA512
|
||||
ret = (jlong) XMALLOC(sizeof(Sha512), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
Sha512* sha = NULL;
|
||||
|
||||
if (!ret)
|
||||
sha = (Sha512*) XMALLOC(sizeof(Sha512), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
if (sha == NULL) {
|
||||
throwOutOfMemoryException(env, "Failed to allocate Sha512 object");
|
||||
}
|
||||
else {
|
||||
XMEMSET(sha, 0, sizeof(Sha512));
|
||||
}
|
||||
|
||||
LogStr("new Sha512() = %p\n", (void*)ret);
|
||||
LogStr("new Sha512() = %p\n", sha);
|
||||
|
||||
return (jlong)(uintptr_t)sha;
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
return (jlong)0;
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
|
|
Loading…
Reference in New Issue