JNI: non-FIPS wrappers for MD5 and SHA/256/384/512
parent
85af1fffbf
commit
43dfb96ab7
|
@ -21,6 +21,54 @@ extern "C" {
|
|||
JNIEXPORT jlong JNICALL Java_com_wolfssl_wolfcrypt_Md5_mallocNativeStruct
|
||||
(JNIEnv *, jobject);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Md5
|
||||
* Method: initMd5
|
||||
* Signature: ()V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Md5_initMd5
|
||||
(JNIEnv *, jobject);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Md5
|
||||
* Method: md5Update
|
||||
* Signature: (Ljava/nio/ByteBuffer;J)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Md5_md5Update__Ljava_nio_ByteBuffer_2J
|
||||
(JNIEnv *, jobject, jobject, jlong);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Md5
|
||||
* Method: md5Update
|
||||
* Signature: ([BJ)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Md5_md5Update___3BJ
|
||||
(JNIEnv *, jobject, jbyteArray, jlong);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Md5
|
||||
* Method: md5Update
|
||||
* Signature: ([BII)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Md5_md5Update___3BII
|
||||
(JNIEnv *, jobject, jbyteArray, jint, jint);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Md5
|
||||
* Method: md5Final
|
||||
* Signature: (Ljava/nio/ByteBuffer;)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Md5_md5Final__Ljava_nio_ByteBuffer_2
|
||||
(JNIEnv *, jobject, jobject);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Md5
|
||||
* Method: md5Final
|
||||
* Signature: ([B)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Md5_md5Final___3B
|
||||
(JNIEnv *, jobject, jbyteArray);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -21,6 +21,54 @@ extern "C" {
|
|||
JNIEXPORT jlong JNICALL Java_com_wolfssl_wolfcrypt_Sha_mallocNativeStruct
|
||||
(JNIEnv *, jobject);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Sha
|
||||
* Method: initSha
|
||||
* Signature: ()V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha_initSha
|
||||
(JNIEnv *, jobject);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Sha
|
||||
* Method: shaUpdate
|
||||
* Signature: (Ljava/nio/ByteBuffer;J)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha_shaUpdate__Ljava_nio_ByteBuffer_2J
|
||||
(JNIEnv *, jobject, jobject, jlong);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Sha
|
||||
* Method: shaUpdate
|
||||
* Signature: ([BJ)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha_shaUpdate___3BJ
|
||||
(JNIEnv *, jobject, jbyteArray, jlong);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Sha
|
||||
* Method: shaUpdate
|
||||
* Signature: ([BII)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha_shaUpdate___3BII
|
||||
(JNIEnv *, jobject, jbyteArray, jint, jint);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Sha
|
||||
* Method: shaFinal
|
||||
* Signature: (Ljava/nio/ByteBuffer;)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha_shaFinal__Ljava_nio_ByteBuffer_2
|
||||
(JNIEnv *, jobject, jobject);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Sha
|
||||
* Method: shaFinal
|
||||
* Signature: ([B)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha_shaFinal___3B
|
||||
(JNIEnv *, jobject, jbyteArray);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -21,6 +21,54 @@ extern "C" {
|
|||
JNIEXPORT jlong JNICALL Java_com_wolfssl_wolfcrypt_Sha256_mallocNativeStruct
|
||||
(JNIEnv *, jobject);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Sha256
|
||||
* Method: initSha256
|
||||
* Signature: ()V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha256_initSha256
|
||||
(JNIEnv *, jobject);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Sha256
|
||||
* Method: sha256Update
|
||||
* Signature: (Ljava/nio/ByteBuffer;J)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha256_sha256Update__Ljava_nio_ByteBuffer_2J
|
||||
(JNIEnv *, jobject, jobject, jlong);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Sha256
|
||||
* Method: sha256Update
|
||||
* Signature: ([BJ)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha256_sha256Update___3BJ
|
||||
(JNIEnv *, jobject, jbyteArray, jlong);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Sha256
|
||||
* Method: sha256Update
|
||||
* Signature: ([BII)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha256_sha256Update___3BII
|
||||
(JNIEnv *, jobject, jbyteArray, jint, jint);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Sha256
|
||||
* Method: sha256Final
|
||||
* Signature: (Ljava/nio/ByteBuffer;)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha256_sha256Final__Ljava_nio_ByteBuffer_2
|
||||
(JNIEnv *, jobject, jobject);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Sha256
|
||||
* Method: sha256Final
|
||||
* Signature: ([B)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha256_sha256Final___3B
|
||||
(JNIEnv *, jobject, jbyteArray);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -21,6 +21,54 @@ extern "C" {
|
|||
JNIEXPORT jlong JNICALL Java_com_wolfssl_wolfcrypt_Sha384_mallocNativeStruct
|
||||
(JNIEnv *, jobject);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Sha384
|
||||
* Method: initSha384
|
||||
* Signature: ()V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha384_initSha384
|
||||
(JNIEnv *, jobject);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Sha384
|
||||
* Method: sha384Update
|
||||
* Signature: (Ljava/nio/ByteBuffer;J)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha384_sha384Update__Ljava_nio_ByteBuffer_2J
|
||||
(JNIEnv *, jobject, jobject, jlong);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Sha384
|
||||
* Method: sha384Update
|
||||
* Signature: ([BJ)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha384_sha384Update___3BJ
|
||||
(JNIEnv *, jobject, jbyteArray, jlong);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Sha384
|
||||
* Method: sha384Update
|
||||
* Signature: ([BII)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha384_sha384Update___3BII
|
||||
(JNIEnv *, jobject, jbyteArray, jint, jint);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Sha384
|
||||
* Method: sha384Final
|
||||
* Signature: (Ljava/nio/ByteBuffer;)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha384_sha384Final__Ljava_nio_ByteBuffer_2
|
||||
(JNIEnv *, jobject, jobject);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Sha384
|
||||
* Method: sha384Final
|
||||
* Signature: ([B)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha384_sha384Final___3B
|
||||
(JNIEnv *, jobject, jbyteArray);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -21,6 +21,54 @@ extern "C" {
|
|||
JNIEXPORT jlong JNICALL Java_com_wolfssl_wolfcrypt_Sha512_mallocNativeStruct
|
||||
(JNIEnv *, jobject);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Sha512
|
||||
* Method: initSha512
|
||||
* Signature: ()V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha512_initSha512
|
||||
(JNIEnv *, jobject);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Sha512
|
||||
* Method: sha512Update
|
||||
* Signature: (Ljava/nio/ByteBuffer;J)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha512_sha512Update__Ljava_nio_ByteBuffer_2J
|
||||
(JNIEnv *, jobject, jobject, jlong);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Sha512
|
||||
* Method: sha512Update
|
||||
* Signature: ([BJ)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha512_sha512Update___3BJ
|
||||
(JNIEnv *, jobject, jbyteArray, jlong);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Sha512
|
||||
* Method: sha512Update
|
||||
* Signature: ([BII)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha512_sha512Update___3BII
|
||||
(JNIEnv *, jobject, jbyteArray, jint, jint);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Sha512
|
||||
* Method: sha512Final
|
||||
* Signature: (Ljava/nio/ByteBuffer;)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha512_sha512Final__Ljava_nio_ByteBuffer_2
|
||||
(JNIEnv *, jobject, jobject);
|
||||
|
||||
/*
|
||||
* Class: com_wolfssl_wolfcrypt_Sha512
|
||||
* Method: sha512Final
|
||||
* Signature: ([B)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha512_sha512Final___3B
|
||||
(JNIEnv *, jobject, jbyteArray);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
138
jni/jni_md5.c
138
jni/jni_md5.c
|
@ -22,9 +22,12 @@
|
|||
#ifndef __ANDROID__
|
||||
#include <wolfssl/options.h>
|
||||
#endif
|
||||
#include <wolfssl/wolfcrypt/error-crypt.h>
|
||||
#include <wolfssl/wolfcrypt/md5.h>
|
||||
|
||||
#include <com_wolfssl_wolfcrypt_Md5.h>
|
||||
#include <com_wolfssl_wolfcrypt_WolfCrypt.h>
|
||||
#include <wolfcrypt_jni_NativeStruct.h>
|
||||
#include <wolfcrypt_jni_error.h>
|
||||
|
||||
/* #define WOLFCRYPT_JNI_DEBUG_ON */
|
||||
|
@ -50,3 +53,138 @@ JNIEXPORT jlong JNICALL Java_com_wolfssl_wolfcrypt_Md5_mallocNativeStruct(
|
|||
|
||||
return ret;
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Md5_initMd5
|
||||
(JNIEnv* env, jobject class)
|
||||
{
|
||||
#ifndef NO_MD5
|
||||
|
||||
Md5* md5 = (Md5*) getNativeStruct(env, class);
|
||||
|
||||
if (!md5)
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
wc_InitMd5(md5);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Md5_md5Update__Ljava_nio_ByteBuffer_2J
|
||||
(JNIEnv* env, jobject class, jobject data_buffer, jlong len)
|
||||
{
|
||||
#ifndef NO_MD5
|
||||
|
||||
Md5* md5 = (Md5*) getNativeStruct(env, class);
|
||||
byte* data = getDirectBufferAddress(env, data_buffer);
|
||||
|
||||
if (!md5 || !data)
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
wc_Md5Update(md5, data, len);
|
||||
|
||||
LogStr("wc_Md5Update(md5=%p, data, len)\n", md5);
|
||||
LogStr("data[%u]: [%p]\n", (word32)len, data);
|
||||
LogHex(data, len);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Md5_md5Update___3BJ
|
||||
(JNIEnv* env, jobject class, jbyteArray data_buffer, jlong len)
|
||||
{
|
||||
#ifndef NO_MD5
|
||||
|
||||
Md5* md5 = (Md5*) getNativeStruct(env, class);
|
||||
byte* data = getByteArray(env, data_buffer);
|
||||
|
||||
if (!md5 || !data)
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
wc_Md5Update(md5, data, len);
|
||||
|
||||
LogStr("wc_Md5Update(md5=%p, data, len)\n", md5);
|
||||
LogStr("data[%u]: [%p]\n", (word32)len, data);
|
||||
LogHex(data, len);
|
||||
|
||||
releaseByteArray(env, data_buffer, data, 1);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Md5_md5Update___3BII
|
||||
(JNIEnv* env, jobject class, jbyteArray data_buffer, jint offset,
|
||||
jint len)
|
||||
{
|
||||
#ifndef NO_MD5
|
||||
|
||||
Md5* md5 = (Md5*) getNativeStruct(env, class);
|
||||
byte* data = getByteArray(env, data_buffer);
|
||||
|
||||
if (!md5 || !data || (offset > len))
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
wc_Md5Update(md5, data + offset, len);
|
||||
|
||||
LogStr("wc_Md5Update(md5=%p, data, len)\n", md5);
|
||||
LogStr("data[%u]: [%p]\n", (word32)len, data + offset);
|
||||
LogHex(data + offset, len);
|
||||
|
||||
releaseByteArray(env, data_buffer, data, 0);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Md5_md5Final__Ljava_nio_ByteBuffer_2
|
||||
(JNIEnv* env, jobject class, jobject hash_buffer)
|
||||
{
|
||||
#ifndef NO_MD5
|
||||
|
||||
Md5* md5 = (Md5*) getNativeStruct(env, class);
|
||||
byte* hash = getDirectBufferAddress(env, hash_buffer);
|
||||
|
||||
if (!md5 || !hash)
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
wc_Md5Final(md5, hash);
|
||||
|
||||
LogStr("wc_Md5Final(md5=%p, hash)\n", md5);
|
||||
LogStr("hash[%u]: [%p]\n", (word32)MD5_DIGEST_SIZE, hash);
|
||||
LogHex(hash, MD5_DIGEST_SIZE);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Md5_md5Final___3B
|
||||
(JNIEnv* env, jobject class, jbyteArray hash_buffer)
|
||||
{
|
||||
#ifndef NO_MD5
|
||||
|
||||
Md5* md5 = (Md5*) getNativeStruct(env, class);
|
||||
byte* hash = getByteArray(env, hash_buffer);
|
||||
|
||||
if (!md5 || !hash)
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
wc_Md5Final(md5, hash);
|
||||
|
||||
LogStr("wc_Md5Final(md5=%p, hash)\n", md5);
|
||||
LogStr("hash[%u]: [%p]\n", (word32)MD5_DIGEST_SIZE, hash);
|
||||
LogHex(hash, MD5_DIGEST_SIZE);
|
||||
|
||||
releaseByteArray(env, hash_buffer, hash, 0);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
608
jni/jni_sha.c
608
jni/jni_sha.c
|
@ -22,11 +22,13 @@
|
|||
#ifndef __ANDROID__
|
||||
#include <wolfssl/options.h>
|
||||
#endif
|
||||
#include <wolfssl/wolfcrypt/error-crypt.h>
|
||||
#include <wolfssl/wolfcrypt/sha.h>
|
||||
#include <wolfssl/wolfcrypt/sha256.h>
|
||||
#include <wolfssl/wolfcrypt/sha512.h>
|
||||
|
||||
#include <com_wolfssl_wolfcrypt_Sha.h>
|
||||
#include <wolfcrypt_jni_NativeStruct.h>
|
||||
#include <wolfcrypt_jni_error.h>
|
||||
|
||||
/* #define WOLFCRYPT_JNI_DEBUG_ON */
|
||||
|
@ -115,3 +117,609 @@ JNIEXPORT jlong JNICALL Java_com_wolfssl_wolfcrypt_Sha512_mallocNativeStruct(
|
|||
|
||||
return ret;
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha_initSha
|
||||
(JNIEnv* env, jobject class)
|
||||
{
|
||||
#ifndef NO_SHA
|
||||
int ret = 0;
|
||||
Sha* sha = (Sha*) getNativeStruct(env, class);
|
||||
|
||||
if (!sha)
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
ret = wc_InitSha(sha);
|
||||
if (ret != 0)
|
||||
throwWolfCryptExceptionFromError(env, ret);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha_shaUpdate__Ljava_nio_ByteBuffer_2J
|
||||
(JNIEnv* env, jobject class, jobject data_buffer, jlong len)
|
||||
{
|
||||
#ifndef NO_SHA
|
||||
|
||||
int ret = 0;
|
||||
Sha* sha = (Sha*) getNativeStruct(env, class);
|
||||
byte* data = getDirectBufferAddress(env, data_buffer);
|
||||
|
||||
if (!sha || !data)
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
ret = wc_ShaUpdate(sha, data, len);
|
||||
if (ret != 0)
|
||||
throwWolfCryptExceptionFromError(env, ret);
|
||||
|
||||
LogStr("wc_ShaUpdate(sha=%p, data, len) = %d\n", sha, ret);
|
||||
LogStr("data[%u]: [%p]\n", (word32)len, data);
|
||||
LogHex(data, len);
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha_shaUpdate___3BJ
|
||||
(JNIEnv* env, jobject class, jbyteArray data_buffer, jlong len)
|
||||
{
|
||||
#ifndef NO_SHA
|
||||
|
||||
int ret = 0;
|
||||
Sha* sha = (Sha*) getNativeStruct(env, class);
|
||||
byte* data = getByteArray(env, data_buffer);
|
||||
|
||||
if (!sha || !data)
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
ret = wc_ShaUpdate(sha, data, len);
|
||||
if (ret != 0)
|
||||
throwWolfCryptExceptionFromError(env, ret);
|
||||
|
||||
LogStr("wc_ShaUpdate(sha=%p, data, len) = %d\n", sha, ret);
|
||||
LogStr("data[%u]: [%p]\n", (word32)len, data);
|
||||
LogHex(data, len);
|
||||
|
||||
releaseByteArray(env, data_buffer, data, 1);
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha_shaUpdate___3BII
|
||||
(JNIEnv* env, jobject class, jbyteArray data_buffer, jint offset,
|
||||
jint len)
|
||||
{
|
||||
#ifndef NO_SHA
|
||||
|
||||
int ret = 0;
|
||||
Sha* sha = (Sha*) getNativeStruct(env, class);
|
||||
byte* data = getByteArray(env, data_buffer);
|
||||
|
||||
if (!sha || !data || (offset > len))
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
ret = wc_ShaUpdate(sha, data + offset, len);
|
||||
if (ret != 0)
|
||||
throwWolfCryptExceptionFromError(env, ret);
|
||||
|
||||
LogStr("wc_ShaUpdate_fips(sha=%p, data, len) = %d\n", sha, ret);
|
||||
LogStr("data[%u]: [%p]\n", (word32)len, data);
|
||||
LogHex(data, len);
|
||||
|
||||
releaseByteArray(env, data_buffer, data, 1);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha_shaFinal__Ljava_nio_ByteBuffer_2
|
||||
(JNIEnv* env, jobject class, jobject hash_buffer)
|
||||
{
|
||||
#ifndef NO_SHA
|
||||
|
||||
int ret = 0;
|
||||
Sha* sha = (Sha*) getNativeStruct(env, class);
|
||||
byte* hash = getDirectBufferAddress(env, hash_buffer);
|
||||
|
||||
if (!sha || !hash)
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
ret = wc_ShaFinal(sha, hash);
|
||||
if (ret != 0)
|
||||
throwWolfCryptExceptionFromError(env, ret);
|
||||
|
||||
LogStr("wc_ShaFinal(sha=%p, hash) = %d\n", sha, ret);
|
||||
LogStr("hash[%u]: [%p]\n", (word32)SHA_DIGEST_SIZE, hash);
|
||||
LogHex(hash, SHA_DIGEST_SIZE);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha_shaFinal___3B
|
||||
(JNIEnv* env, jobject class, jbyteArray hash_buffer)
|
||||
{
|
||||
#ifndef NO_SHA
|
||||
|
||||
int ret = 0;
|
||||
Sha* sha = (Sha*) getNativeStruct(env, class);
|
||||
byte* hash = getByteArray(env, hash_buffer);
|
||||
|
||||
if (!sha || !hash)
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
ret = wc_ShaFinal(sha, hash);
|
||||
if (ret != 0)
|
||||
throwWolfCryptExceptionFromError(env, ret);
|
||||
|
||||
LogStr("wc_ShaFinal(sha=%p, hash) = %d\n", sha, ret);
|
||||
LogStr("hash[%u]: [%p]\n", (word32)SHA_DIGEST_SIZE, hash);
|
||||
LogHex(hash, SHA_DIGEST_SIZE);
|
||||
|
||||
releaseByteArray(env, hash_buffer, hash, ret);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha256_initSha256
|
||||
(JNIEnv* env, jobject class)
|
||||
{
|
||||
#ifndef NO_SHA256
|
||||
|
||||
int ret = 0;
|
||||
Sha256* sha = (Sha256*) getNativeStruct(env, class);
|
||||
|
||||
if (!sha)
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
ret = wc_InitSha256(sha);
|
||||
if (ret != 0)
|
||||
throwWolfCryptExceptionFromError(env, ret);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha256_sha256Update__Ljava_nio_ByteBuffer_2J
|
||||
(JNIEnv* env, jobject class, jobject data_buffer, jlong len)
|
||||
{
|
||||
#ifndef NO_SHA256
|
||||
|
||||
int ret = 0;
|
||||
Sha256* sha = (Sha256*) getNativeStruct(env, class);
|
||||
byte* data = getDirectBufferAddress(env, data_buffer);
|
||||
|
||||
if (!sha || !data)
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
ret = wc_Sha256Update(sha, data, len);
|
||||
if (ret != 0)
|
||||
throwWolfCryptExceptionFromError(env, ret);
|
||||
|
||||
LogStr("wc_Sha256Update(sha=%p, data, len) = %d\n", sha, ret);
|
||||
LogStr("data[%u]: [%p]\n", (word32)len, data);
|
||||
LogHex(data, len);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha256_sha256Update___3BJ
|
||||
(JNIEnv* env, jobject class, jbyteArray data_buffer, jlong len)
|
||||
{
|
||||
#ifndef NO_SHA256
|
||||
|
||||
int ret = 0;
|
||||
Sha256* sha = (Sha256*) getNativeStruct(env, class);
|
||||
byte* data = getByteArray(env, data_buffer);
|
||||
|
||||
if (!sha || !data)
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
ret = wc_Sha256Update(sha, data, len);
|
||||
if (ret != 0)
|
||||
throwWolfCryptExceptionFromError(env, ret);
|
||||
|
||||
LogStr("wc_Sha256Update(sha=%p, data, len) = %d\n", sha, ret);
|
||||
LogStr("data[%u]: [%p]\n", (word32)len, data);
|
||||
LogHex(data, len);
|
||||
|
||||
releaseByteArray(env, data_buffer, data, ret);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha256_sha256Update___3BII
|
||||
(JNIEnv* env, jobject class, jbyteArray data_buffer, jint offset,
|
||||
jint len)
|
||||
{
|
||||
#ifndef NO_SHA256
|
||||
|
||||
int ret = 0;
|
||||
Sha256* sha = (Sha256*) getNativeStruct(env, class);
|
||||
byte* data = getByteArray(env, data_buffer);
|
||||
|
||||
if (!sha || !data || (offset > len))
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
ret = wc_Sha256Update(sha, data + offset, len);
|
||||
if (ret != 0)
|
||||
throwWolfCryptExceptionFromError(env, ret);
|
||||
|
||||
LogStr("wc_Sha256Update(sha=%p, data, len) = %d\n", sha, ret);
|
||||
LogStr("data[%u]: [%p]\n", (word32)len, data);
|
||||
LogHex(data, len);
|
||||
|
||||
releaseByteArray(env, data_buffer, data, ret);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha256_sha256Final__Ljava_nio_ByteBuffer_2
|
||||
(JNIEnv* env, jobject class, jobject hash_buffer)
|
||||
{
|
||||
#ifndef NO_SHA256
|
||||
|
||||
int ret = 0;
|
||||
Sha256* sha = (Sha256*) getNativeStruct(env, class);
|
||||
byte* hash = getDirectBufferAddress(env, hash_buffer);
|
||||
|
||||
if (!sha || !hash)
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
ret = wc_Sha256Final(sha, hash);
|
||||
if (ret != 0)
|
||||
throwWolfCryptExceptionFromError(env, ret);
|
||||
|
||||
LogStr("wc_Sha256Final(sha=%p, hash) = %d\n", sha, ret);
|
||||
LogStr("hash[%u]: [%p]\n", (word32)SHA256_DIGEST_SIZE, hash);
|
||||
LogHex(hash, SHA256_DIGEST_SIZE);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha256_sha256Final___3B
|
||||
(JNIEnv* env, jobject class, jbyteArray hash_buffer)
|
||||
{
|
||||
#ifndef NO_SHA256
|
||||
|
||||
int ret = 0;
|
||||
Sha256* sha = (Sha256*) getNativeStruct(env, class);
|
||||
byte* hash = getByteArray(env, hash_buffer);
|
||||
|
||||
if (!sha || !hash)
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
ret = wc_Sha256Final(sha, hash);
|
||||
if (ret != 0)
|
||||
throwWolfCryptExceptionFromError(env, ret);
|
||||
|
||||
LogStr("wc_Sha256Final(sha=%p, hash) = %d\n", sha, ret);
|
||||
LogStr("hash[%u]: [%p]\n", (word32)SHA256_DIGEST_SIZE, hash);
|
||||
LogHex(hash, SHA256_DIGEST_SIZE);
|
||||
|
||||
releaseByteArray(env, hash_buffer, hash, ret);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha384_initSha384
|
||||
(JNIEnv* env, jobject class)
|
||||
{
|
||||
#ifdef WOLFSSL_SHA512
|
||||
|
||||
int ret = 0;
|
||||
Sha384* sha = (Sha384*) getNativeStruct(env, class);
|
||||
|
||||
if (!sha)
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
ret = wc_InitSha384(sha);
|
||||
if (ret != 0)
|
||||
throwWolfCryptExceptionFromError(env, ret);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha384_sha384Update__Ljava_nio_ByteBuffer_2J
|
||||
(JNIEnv* env, jobject class, jobject data_buffer, jlong len)
|
||||
{
|
||||
#ifdef WOLFSSL_SHA512
|
||||
|
||||
int ret = 0;
|
||||
Sha384* sha = (Sha384*) getNativeStruct(env, class);
|
||||
byte* data = getDirectBufferAddress(env, data_buffer);
|
||||
|
||||
if (!sha || !data)
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
ret = wc_Sha384Update(sha, data, len);
|
||||
if (ret != 0)
|
||||
throwWolfCryptExceptionFromError(env, ret);
|
||||
|
||||
LogStr("wc_Sha384Update(sha=%p, data, len) = %d\n", sha, ret);
|
||||
LogStr("data[%u]: [%p]\n", (word32)len, data);
|
||||
LogHex(data, len);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha384_sha384Update___3BJ
|
||||
(JNIEnv* env, jobject class, jbyteArray data_buffer, jlong len)
|
||||
{
|
||||
#ifdef WOLFSSL_SHA512
|
||||
|
||||
int ret = 0;
|
||||
Sha384* sha = (Sha384*) getNativeStruct(env, class);
|
||||
byte* data = getByteArray(env, data_buffer);
|
||||
|
||||
if (!sha || !data)
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
ret = wc_Sha384Update(sha, data, len);
|
||||
if (ret != 0)
|
||||
throwWolfCryptExceptionFromError(env, ret);
|
||||
|
||||
LogStr("wc_Sha384Update(sha=%p, data, len) = %d\n", sha, ret);
|
||||
LogStr("data[%u]: [%p]\n", (word32)len, data);
|
||||
LogHex(data, len);
|
||||
|
||||
releaseByteArray(env, data_buffer, data, ret);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha384_sha384Update___3BII
|
||||
(JNIEnv* env, jobject class, jbyteArray data_buffer, jint offset,
|
||||
jint len)
|
||||
{
|
||||
#ifdef WOLFSSL_SHA512
|
||||
|
||||
int ret = 0;
|
||||
Sha384* sha = (Sha384*) getNativeStruct(env, class);
|
||||
byte* data = getByteArray(env, data_buffer);
|
||||
|
||||
if (!sha || !data || (offset > len))
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
ret = wc_Sha384Update(sha, data + offset, len);
|
||||
if (ret != 0)
|
||||
throwWolfCryptExceptionFromError(env, ret);
|
||||
|
||||
LogStr("wc_Sha384Update(sha=%p, data, len) = %d\n", sha, ret);
|
||||
LogStr("data[%u]: [%p]\n", (word32)len, data + offset);
|
||||
LogHex(data + offset, len);
|
||||
|
||||
releaseByteArray(env, data_buffer, data, ret);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha384_sha384Final__Ljava_nio_ByteBuffer_2
|
||||
(JNIEnv* env, jobject class, jobject hash_buffer)
|
||||
{
|
||||
#ifdef WOLFSSL_SHA512
|
||||
|
||||
int ret = 0;
|
||||
Sha384* sha = (Sha384*) getNativeStruct(env, class);
|
||||
byte* hash = getDirectBufferAddress(env, hash_buffer);
|
||||
|
||||
if (!sha || !hash)
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
ret = wc_Sha384Final(sha, hash);
|
||||
if (ret != 0)
|
||||
throwWolfCryptExceptionFromError(env, ret);
|
||||
|
||||
LogStr("wc_Sha384Final(sha=%p, hash) = %d\n", sha, ret);
|
||||
LogStr("hash[%u]: [%p]\n", (word32)SHA384_DIGEST_SIZE, hash);
|
||||
LogHex(hash, SHA384_DIGEST_SIZE);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha384_sha384Final___3B
|
||||
(JNIEnv* env, jobject class, jbyteArray hash_buffer)
|
||||
{
|
||||
#ifdef WOLFSSL_SHA512
|
||||
|
||||
int ret = 0;
|
||||
Sha384* sha = (Sha384*) getNativeStruct(env, class);
|
||||
byte* hash = getByteArray(env, hash_buffer);
|
||||
|
||||
if (!sha || !hash)
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
ret = wc_Sha384Final(sha, hash);
|
||||
if (ret != 0)
|
||||
throwWolfCryptExceptionFromError(env, ret);
|
||||
|
||||
LogStr("wc_Sha384Final(sha=%p, hash) = %d\n", sha, ret);
|
||||
LogStr("hash[%u]: [%p]\n", (word32)SHA384_DIGEST_SIZE, hash);
|
||||
LogHex(hash, SHA384_DIGEST_SIZE);
|
||||
|
||||
releaseByteArray(env, hash_buffer, hash, ret);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha512_initSha512
|
||||
(JNIEnv* env, jobject class)
|
||||
{
|
||||
#ifdef WOLFSSL_SHA512
|
||||
|
||||
int ret = 0;
|
||||
Sha512* sha = (Sha512*) getNativeStruct(env, class);
|
||||
|
||||
if (!sha)
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
ret = wc_InitSha512(sha);
|
||||
if (ret != 0)
|
||||
throwWolfCryptExceptionFromError(env, ret);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha512_sha512Update__Ljava_nio_ByteBuffer_2J
|
||||
(JNIEnv* env, jobject class, jobject data_buffer, jlong len)
|
||||
{
|
||||
#ifdef WOLFSSL_SHA512
|
||||
|
||||
int ret = 0;
|
||||
Sha512* sha = (Sha512*) getNativeStruct(env, class);
|
||||
byte* data = getDirectBufferAddress(env, data_buffer);
|
||||
|
||||
if (!sha || !data)
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
ret = wc_Sha512Update(sha, data, len);
|
||||
if (ret != 0)
|
||||
throwWolfCryptExceptionFromError(env, ret);
|
||||
|
||||
LogStr("wc_Sha512Update(sha=%p, data, len) = %d\n", sha, ret);
|
||||
LogStr("data[%u]: [%p]\n", (word32)len, data);
|
||||
LogHex(data, len);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha512_sha512Update___3BJ
|
||||
(JNIEnv* env, jobject class, jbyteArray data_buffer, jlong len)
|
||||
{
|
||||
#ifdef WOLFSSL_SHA512
|
||||
|
||||
int ret = 0;
|
||||
Sha512* sha = (Sha512*) getNativeStruct(env, class);
|
||||
byte* data = getByteArray(env, data_buffer);
|
||||
|
||||
if (!sha || !data)
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
ret = wc_Sha512Update(sha, data, len);
|
||||
if (ret != 0)
|
||||
throwWolfCryptExceptionFromError(env, ret);
|
||||
|
||||
LogStr("wc_Sha512Update(sha=%p, data, len) = %d\n", sha, ret);
|
||||
LogStr("data[%u]: [%p]\n", (word32)len, data);
|
||||
LogHex(data, len);
|
||||
|
||||
releaseByteArray(env, data_buffer, data, ret);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha512_sha512Update___3BII
|
||||
(JNIEnv* env, jobject class, jbyteArray data_buffer, jint offset,
|
||||
jint len)
|
||||
{
|
||||
#ifdef WOLFSSL_SHA512
|
||||
|
||||
int ret = 0;
|
||||
Sha512* sha = (Sha512*) getNativeStruct(env, class);
|
||||
byte* data = getByteArray(env, data_buffer);
|
||||
|
||||
if (!sha || !data || (offset > len))
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
ret = wc_Sha512Update(sha, data + offset, len);
|
||||
if (ret != 0)
|
||||
throwWolfCryptExceptionFromError(env, ret);
|
||||
|
||||
LogStr("wc_Sha512Update(sha=%p, data, len) = %d\n", sha, ret);
|
||||
LogStr("data[%u]: [%p]\n", (word32)len, data + offset);
|
||||
LogHex(data + offset, len);
|
||||
|
||||
releaseByteArray(env, data_buffer, data, ret);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha512_sha512Final__Ljava_nio_ByteBuffer_2
|
||||
(JNIEnv* env, jobject class, jobject hash_buffer)
|
||||
{
|
||||
#ifdef WOLFSSL_SHA512
|
||||
|
||||
int ret = 0;
|
||||
Sha512* sha = (Sha512*) getNativeStruct(env, class);
|
||||
byte* hash = getDirectBufferAddress(env, hash_buffer);
|
||||
|
||||
if (!sha || !hash)
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
ret = wc_Sha512Final(sha, hash);
|
||||
if (ret != 0)
|
||||
throwWolfCryptExceptionFromError(env, ret);
|
||||
|
||||
LogStr("wc_Sha512Final(sha=%p, hash) = %d\n", sha, ret);
|
||||
LogStr("hash[%u]: [%p]\n", (word32)SHA512_DIGEST_SIZE, hash);
|
||||
LogHex(hash, SHA512_DIGEST_SIZE);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_wolfssl_wolfcrypt_Sha512_sha512Final___3B
|
||||
(JNIEnv* env, jobject class, jbyteArray hash_buffer)
|
||||
{
|
||||
#ifdef WOLFSSL_SHA512
|
||||
|
||||
int ret = 0;
|
||||
Sha512* sha = (Sha512*) getNativeStruct(env, class);
|
||||
byte* hash = getByteArray(env, hash_buffer);
|
||||
|
||||
if (!sha || !hash)
|
||||
throwWolfCryptExceptionFromError(env, BAD_FUNC_ARG);
|
||||
|
||||
ret = wc_Sha512Final(sha, hash);
|
||||
if (ret != 0)
|
||||
throwWolfCryptExceptionFromError(env, ret);
|
||||
|
||||
LogStr("wc_Sha512Final(sha=%p, hash) = %d\n", sha, ret);
|
||||
LogStr("hash[%u]: [%p]\n", (word32)SHA512_DIGEST_SIZE, hash);
|
||||
LogHex(hash, SHA512_DIGEST_SIZE);
|
||||
|
||||
releaseByteArray(env, hash_buffer, hash, ret);
|
||||
|
||||
#else
|
||||
throwNotCompiledInException(env);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
|
||||
package com.wolfssl.wolfcrypt;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
/**
|
||||
* Wrapper for the native WolfCrypt Md5 implementation.
|
||||
*
|
||||
|
@ -32,5 +34,100 @@ public class Md5 extends NativeStruct {
|
|||
public static final int TYPE = 0; /* hash type unique */
|
||||
public static final int DIGEST_SIZE = 16;
|
||||
|
||||
private WolfCryptState state = WolfCryptState.UNINITIALIZED;
|
||||
|
||||
protected native long mallocNativeStruct() throws OutOfMemoryError;
|
||||
|
||||
/* native wrappers called by public functions below */
|
||||
private native void initMd5();
|
||||
private native void md5Update(ByteBuffer data, long len);
|
||||
private native void md5Update(byte[] data, long len);
|
||||
private native void md5Update(byte[] data, int offset, int len);
|
||||
private native void md5Final(ByteBuffer hash);
|
||||
private native void md5Final(byte[] hash);
|
||||
|
||||
public void init() throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
initMd5();
|
||||
state = WolfCryptState.INITIALIZED;
|
||||
}
|
||||
|
||||
public void update(ByteBuffer data, long len)
|
||||
throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
if (state == WolfCryptState.INITIALIZED) {
|
||||
md5Update(data, len);
|
||||
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Object must be initialized before use");
|
||||
}
|
||||
}
|
||||
|
||||
public void update(byte[] data, long len)
|
||||
throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
if (state == WolfCryptState.INITIALIZED) {
|
||||
md5Update(data, len);
|
||||
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Object must be initialized before use");
|
||||
}
|
||||
}
|
||||
|
||||
public void update(byte[] data, int offset, int len)
|
||||
throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
if (state == WolfCryptState.INITIALIZED) {
|
||||
md5Update(data, offset, len);
|
||||
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Object must be initialized before use");
|
||||
}
|
||||
}
|
||||
|
||||
public void digest(ByteBuffer hash)
|
||||
throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
if (state == WolfCryptState.INITIALIZED) {
|
||||
md5Final(hash);
|
||||
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Object must be initialized before use");
|
||||
}
|
||||
}
|
||||
|
||||
public void digest(byte[] hash)
|
||||
throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
if (state == WolfCryptState.INITIALIZED) {
|
||||
md5Final(hash);
|
||||
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Object must be initialized before use");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
|
||||
package com.wolfssl.wolfcrypt;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
/**
|
||||
* Wrapper for the native WolfCrypt Sha implementation.
|
||||
*
|
||||
|
@ -32,5 +34,100 @@ public class Sha extends NativeStruct {
|
|||
public static final int TYPE = 1; /* hash type unique */
|
||||
public static final int DIGEST_SIZE = 20;
|
||||
|
||||
private WolfCryptState state = WolfCryptState.UNINITIALIZED;
|
||||
|
||||
protected native long mallocNativeStruct() throws OutOfMemoryError;
|
||||
|
||||
/* native wrappers called by public functions below */
|
||||
private native void initSha();
|
||||
private native void shaUpdate(ByteBuffer data, long len);
|
||||
private native void shaUpdate(byte[] data, long len);
|
||||
private native void shaUpdate(byte[] data, int offset, int len);
|
||||
private native void shaFinal(ByteBuffer hash);
|
||||
private native void shaFinal(byte[] hash);
|
||||
|
||||
public void init() throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
initSha();
|
||||
state = WolfCryptState.INITIALIZED;
|
||||
}
|
||||
|
||||
public void update(ByteBuffer data, long len)
|
||||
throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
if (state == WolfCryptState.INITIALIZED) {
|
||||
shaUpdate(data, len);
|
||||
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Object must be initialized before use");
|
||||
}
|
||||
}
|
||||
|
||||
public void update(byte[] data, long len)
|
||||
throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
if (state == WolfCryptState.INITIALIZED) {
|
||||
shaUpdate(data, len);
|
||||
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Object must be initialized before use");
|
||||
}
|
||||
}
|
||||
|
||||
public void update(byte[] data, int offset, int len)
|
||||
throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
if (state == WolfCryptState.INITIALIZED) {
|
||||
shaUpdate(data, offset, len);
|
||||
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Object must be initialized before use");
|
||||
}
|
||||
}
|
||||
|
||||
public void digest(ByteBuffer hash)
|
||||
throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
if (state == WolfCryptState.INITIALIZED) {
|
||||
shaFinal(hash);
|
||||
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Object must be initialized before use");
|
||||
}
|
||||
}
|
||||
|
||||
public void digest(byte[] hash)
|
||||
throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
if (state == WolfCryptState.INITIALIZED) {
|
||||
shaFinal(hash);
|
||||
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Object must be initialized before use");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
|
||||
package com.wolfssl.wolfcrypt;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
/**
|
||||
* Wrapper for the native WolfCrypt Sha256 implementation.
|
||||
*
|
||||
|
@ -32,5 +34,100 @@ public class Sha256 extends NativeStruct {
|
|||
public static final int TYPE = 2; /* hash type unique */
|
||||
public static final int DIGEST_SIZE = 32;
|
||||
|
||||
private WolfCryptState state = WolfCryptState.UNINITIALIZED;
|
||||
|
||||
protected native long mallocNativeStruct() throws OutOfMemoryError;
|
||||
|
||||
/* native wrappers called by public functions below */
|
||||
private native void initSha256();
|
||||
private native void sha256Update(ByteBuffer data, long len);
|
||||
private native void sha256Update(byte[] data, long len);
|
||||
private native void sha256Update(byte[] data, int offset, int len);
|
||||
private native void sha256Final(ByteBuffer hash);
|
||||
private native void sha256Final(byte[] hash);
|
||||
|
||||
public void init() throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
initSha256();
|
||||
state = WolfCryptState.INITIALIZED;
|
||||
}
|
||||
|
||||
public void update(ByteBuffer data, long len)
|
||||
throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
if (state == WolfCryptState.INITIALIZED) {
|
||||
sha256Update(data, len);
|
||||
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Object must be initialized before use");
|
||||
}
|
||||
}
|
||||
|
||||
public void update(byte[] data, long len)
|
||||
throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
if (state == WolfCryptState.INITIALIZED) {
|
||||
sha256Update(data, len);
|
||||
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Object must be initialized before use");
|
||||
}
|
||||
}
|
||||
|
||||
public void update(byte[] data, int offset, int len)
|
||||
throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
if (state == WolfCryptState.INITIALIZED) {
|
||||
sha256Update(data, offset, len);
|
||||
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Object must be initialized before use");
|
||||
}
|
||||
}
|
||||
|
||||
public void digest(ByteBuffer hash)
|
||||
throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
if (state == WolfCryptState.INITIALIZED) {
|
||||
sha256Final(hash);
|
||||
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Object must be initialized before use");
|
||||
}
|
||||
}
|
||||
|
||||
public void digest(byte[] hash)
|
||||
throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
if (state == WolfCryptState.INITIALIZED) {
|
||||
sha256Final(hash);
|
||||
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Object must be initialized before use");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
|
||||
package com.wolfssl.wolfcrypt;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
/**
|
||||
* Wrapper for the native WolfCrypt Sha384 implementation.
|
||||
*
|
||||
|
@ -32,5 +34,98 @@ public class Sha384 extends NativeStruct {
|
|||
public static final int TYPE = 5; /* hash type unique */
|
||||
public static final int DIGEST_SIZE = 48;
|
||||
|
||||
private WolfCryptState state = WolfCryptState.UNINITIALIZED;
|
||||
|
||||
protected native long mallocNativeStruct() throws OutOfMemoryError;
|
||||
|
||||
/* native wrappers called by public functions below */
|
||||
private native void initSha384();
|
||||
private native void sha384Update(ByteBuffer data, long len);
|
||||
private native void sha384Update(byte[] data, long len);
|
||||
private native void sha384Update(byte[] data, int offset, int len);
|
||||
private native void sha384Final(ByteBuffer hash);
|
||||
private native void sha384Final(byte[] hash);
|
||||
|
||||
public void init() {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
initSha384();
|
||||
state = WolfCryptState.INITIALIZED;
|
||||
}
|
||||
|
||||
public void update(ByteBuffer data, long len)
|
||||
throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
if (state == WolfCryptState.INITIALIZED) {
|
||||
sha384Update(data, len);
|
||||
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Object must be initialized before use");
|
||||
}
|
||||
}
|
||||
|
||||
public void update(byte[] data, long len)
|
||||
throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
if (state == WolfCryptState.INITIALIZED) {
|
||||
sha384Update(data, len);
|
||||
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Object must be initialized before use");
|
||||
}
|
||||
}
|
||||
|
||||
public void update(byte[] data, int offset, int len)
|
||||
throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
if (state == WolfCryptState.INITIALIZED) {
|
||||
sha384Update(data, offset, len);
|
||||
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Object must be initialized before use");
|
||||
}
|
||||
}
|
||||
|
||||
public void digest(ByteBuffer hash) throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
if (state == WolfCryptState.INITIALIZED) {
|
||||
sha384Final(hash);
|
||||
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Object must be initialized before use");
|
||||
}
|
||||
}
|
||||
|
||||
public void digest(byte[] hash) throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
if (state == WolfCryptState.INITIALIZED) {
|
||||
sha384Final(hash);
|
||||
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Object must be initialized before use");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
|
||||
package com.wolfssl.wolfcrypt;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
/**
|
||||
* Wrapper for the native WolfCrypt Sha512 implementation.
|
||||
*
|
||||
|
@ -32,5 +34,100 @@ public class Sha512 extends NativeStruct {
|
|||
public static final int TYPE = 4; /* hash type unique */
|
||||
public static final int DIGEST_SIZE = 64;
|
||||
|
||||
private WolfCryptState state = WolfCryptState.UNINITIALIZED;
|
||||
|
||||
protected native long mallocNativeStruct() throws OutOfMemoryError;
|
||||
|
||||
/* native wrappers called by public functions below */
|
||||
private native void initSha512();
|
||||
private native void sha512Update( ByteBuffer data, long len);
|
||||
private native void sha512Update( byte[] data, long len);
|
||||
private native void sha512Update( byte[] data, int offset, int len);
|
||||
private native void sha512Final( ByteBuffer hash);
|
||||
private native void sha512Final( byte[] hash);
|
||||
|
||||
public void init() {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
initSha512();
|
||||
state = WolfCryptState.INITIALIZED;
|
||||
}
|
||||
|
||||
public void update(ByteBuffer data, long len)
|
||||
throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
if (state == WolfCryptState.INITIALIZED) {
|
||||
sha512Update(data, len);
|
||||
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Object must be initialized before use");
|
||||
}
|
||||
}
|
||||
|
||||
public void update(byte[] data, long len)
|
||||
throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
if (state == WolfCryptState.INITIALIZED) {
|
||||
sha512Update(data, len);
|
||||
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Object must be initialized before use");
|
||||
}
|
||||
}
|
||||
|
||||
public void update(byte[] data, int offset, int len)
|
||||
throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
if (state == WolfCryptState.INITIALIZED) {
|
||||
sha512Update(data, offset, len);
|
||||
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Object must be initialized before use");
|
||||
}
|
||||
}
|
||||
|
||||
public void digest(ByteBuffer hash)
|
||||
throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
if (state == WolfCryptState.INITIALIZED) {
|
||||
sha512Final(hash);
|
||||
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Object must be initialized before use");
|
||||
}
|
||||
}
|
||||
|
||||
public void digest(byte[] hash)
|
||||
throws IllegalStateException {
|
||||
|
||||
if (getNativeStruct() == NULL)
|
||||
throw new IllegalStateException("Object has been freed");
|
||||
|
||||
if (state == WolfCryptState.INITIALIZED) {
|
||||
sha512Final(hash);
|
||||
|
||||
} else {
|
||||
throw new IllegalStateException(
|
||||
"Object must be initialized before use");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue