jbyteArray JNICALL Java_beecrypt_provider_SHA512_digest__J(JNIEnv* env, jclass dummy, jlong param)
{
	jbyte digest[64];
	jbyteArray result = (*env)->NewByteArray(env, 64);

	sha512Digest((sha512Param*) param, digest);

	(*env)->SetByteArrayRegion(env, result, 0, 64, digest);

	return result;
}
jint JNICALL Java_beecrypt_provider_SHA512_digest__J_3BII(JNIEnv* env, jclass dummy, jlong param, jbyteArray buf, jint off, jint len)
{
	if (len < 64)
	{
		jclass ex = (*env)->FindClass(env, "java/security/DigestException");
		if (ex)
			(*env)->ThrowNew(env, ex, "len must be at least 64");
	}
	else
	{
		jbyte digest[64];

		sha512Digest((sha512Param*) param, digest);

		(*env)->SetByteArrayRegion(env, buf, off, 64, digest);

		return 64;
	}
}
Example #3
0
int main()
{
	int i, failures = 0;
	sha512Param param;
	byte digest[64];

	for (i = 0; i < 1; i++)
	{
		if (sha512Reset(&param))
			return -1;
		if (sha512Update(&param, table[i].input, table[i].input_size))
			return -1;
		if (sha512Digest(&param, digest))
			return -1;

		if (memcmp(digest, table[i].expect, 64))
		{
			printf("failed test vector %d\n", i+1);
			failures++;
		}
	}
	return failures;
}