/** * Generate a hash for a string. * * @param string the string to hash * @return a string hash */ static unsigned file_set_make_hash(const char* string) { unsigned hash; if(rhash_msg(RHASH_CRC32, string, strlen(string), (unsigned char*)&hash) < 0) return 0; return hash; }
/* * Class: org_sf_rhash_Bindings * Method: rhash_msg * Signature: (I[BII)J */ JNIEXPORT jlong JNICALL Java_org_sf_rhash_Bindings_rhash_1msg (JNIEnv *env, jclass clz, jint hash_id, jbyteArray buf, jint ofs, jint len) { // reading data void* msg = malloc(len); (*env)->GetByteArrayRegion(env, buf, ofs, len, msg); // creating and populating Digest Digest obj = malloc(sizeof(DigestStruct)); obj->hash_len = rhash_get_digest_size(hash_id); obj->hash_data = calloc(obj->hash_len, sizeof(unsigned char)); rhash_msg(hash_id, msg, len, obj->hash_data); //cleaning free(msg); //returning return TO_JLONG(obj); }