void JNICALL Java_beecrypt_provider_SHA224_update__J_3BII(JNIEnv* env, jclass dummy, jlong param, jbyteArray input, jint off, jint len) { jbyte* data = (*env)->GetByteArrayElements(env, input, 0); if (data) { sha224Update((sha224Param*) param, (byte *)data+off, len); (*env)->ReleaseByteArrayElements(env, input, data, JNI_ABORT); } else { jclass ex = (*env)->FindClass(env, "java/lang/NullPointerException"); if (ex) (*env)->ThrowNew(env, ex, (const char*) 0); } }
error_t sha224Compute(const void *data, size_t length, uint8_t *digest) { //Allocate a memory buffer to hold the SHA-224 context Sha224Context *context = osAllocMem(sizeof(Sha224Context)); //Failed to allocate memory? if(!context) return ERROR_OUT_OF_MEMORY; //Initialize the SHA-224 context sha224Init(context); //Digest the message sha224Update(context, data, length); //Finalize the SHA-224 message digest sha224Final(context, digest); //Free previously allocated memory osFreeMem(context); //Successful processing return NO_ERROR; }
void JNICALL Java_beecrypt_provider_SHA224_update__JB(JNIEnv* env, jclass dummy, jlong param, jbyte input) { sha224Update((sha224Param*) param, (byte *)&input, 1); }