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; } }
int main() { int i, failures = 0; sha512Param param; byte digest[64]; for (i = 0; i < 1; i++) { if (sha512Reset(¶m)) return -1; if (sha512Update(¶m, table[i].input, table[i].input_size)) return -1; if (sha512Digest(¶m, digest)) return -1; if (memcmp(digest, table[i].expect, 64)) { printf("failed test vector %d\n", i+1); failures++; } } return failures; }