Beispiel #1
0
	auto verify () const {
		uint8_t hash[32];
		uint8_t target[32] = {};

		hash256(hash, this->header);
		std::reverse(hash, hash + 32);

		const auto bits = this->header.peek<uint32_t>(72);
		Block::calculateTarget(target, bits);

		return memcmp(hash, target, 32) <= 0;
	}
JNIEXPORT jbyteArray JNICALL Java_com_lsh_lshlibrary_MainActivity_LSH256 (JNIEnv *env, jobject obj, jbyteArray data, jint databitlen){
//    size_t len= (unsigned int)(*env)->GetByteArrayElements(env, data, 0);
//    unsigned char *inputData= (unsigned char*)malloc((int)databitlen/8);
    unsigned char *outputData= (unsigned char *)malloc(32*sizeof(unsigned char));
    unsigned char *inputData= (unsigned char *)(*env)->GetByteArrayElements(env, data, NULL);
    jbyteArray hashval= (*env)->NewByteArray(env, 32);

    // strncpy(inputData, (const unsigned char*)data, (int)databitlen/8);
//    (*env)->GetByteArrayRegion(env, data, 0, 32, inputData);
    hash256(256, inputData, (int)databitlen, outputData);
//    (*env)->SetByteArrayRegion(env, hashval, 0, 32, (jbyte*)outputData);
    (*env)->ReleaseByteArrayElements(env, hashval, (jbyte*)outputData, 0);
    free(inputData);
    free(outputData);
    return hashval;
}
Beispiel #3
0
	void debugPrint(std::string const& _indent = "") const { std::cerr << std::hex << hash256() << ":" << std::dec << std::endl; debugPrintBody(_indent); }
Beispiel #4
0
void hash256 (uint8_t* dest, const Slice src) { hash256(dest, src.begin, src.length()); }