jbyteArray JNICALL hash9_native(JNIEnv *env, jclass cls, jbyteArray header) { jint Plen = (env)->GetArrayLength(header); jbyte *P = (env)->GetByteArrayElements(header, NULL); //uint8_t *buf = malloc(sizeof(uint8_t) * dkLen); jbyteArray DK = NULL; if (P) { uint256 result = Hash9(P, P+Plen); /*if (crypto_scrypt((uint8_t *) P, Plen, (uint8_t *) S, Slen, N, r, p, buf, dkLen)) { jclass e = (*env)->FindClass(env, "java/lang/IllegalArgumentException"); char *msg; switch (errno) { case EINVAL: msg = "N must be a power of 2 greater than 1"; break; case EFBIG: case ENOMEM: msg = "Insufficient memory available"; break; default: msg = "Memory allocation failed"; } (*env)->ThrowNew(env, e, msg); goto cleanup; }*/ DK = (env)->NewByteArray(32); if (DK) { (env)->SetByteArrayRegion(DK, 0, 32, (jbyte *) result.begin()); } if (P) (env)->ReleaseByteArrayElements(header, P, JNI_ABORT); //if (buf) free(buf); } return DK; }
static void runhash(void *state, const void *input) { // memcpy(state, init, 32); Hash9(state, input); };