From: MASM fan Date: Sun, 4 Jan 2015 06:58:39 +0000 (-0800) Subject: We don't need 32 bit integers for these counters X-Git-Tag: nvc-v0.5.1~32 X-Git-Url: https://git.novaco.in/?p=novacoin.git;a=commitdiff_plain;h=ad18b94e0eb94ad9ed2765667b5a78dd482dfb34 We don't need 32 bit integers for these counters --- diff --git a/src/main.h b/src/main.h index 2cb3ea7..0ef9a9d 100644 --- a/src/main.h +++ b/src/main.h @@ -947,7 +947,7 @@ public: uint256 GetHash() const { - return scrypt_blockhash(CVOIDBEGIN(nVersion)); + return scrypt_blockhash((const uint8_t*)&nVersion); } int64_t GetBlockTime() const diff --git a/src/scrypt-generic.c b/src/scrypt-generic.c index 96bcb11..6339c25 100644 --- a/src/scrypt-generic.c +++ b/src/scrypt-generic.c @@ -39,10 +39,10 @@ // Generic scrypt_core implementation -static INLINE void xor_salsa8(unsigned int B[16], const unsigned int Bx[16]) +static INLINE void xor_salsa8(uint32_t B[16], const uint32_t Bx[16]) { - unsigned int x00,x01,x02,x03,x04,x05,x06,x07,x08,x09,x10,x11,x12,x13,x14,x15; - int i; + uint32_t x00,x01,x02,x03,x04,x05,x06,x07,x08,x09,x10,x11,x12,x13,x14,x15; + int8_t i; x00 = (B[0] ^= Bx[0]); x01 = (B[1] ^= Bx[1]); @@ -107,9 +107,10 @@ static INLINE void xor_salsa8(unsigned int B[16], const unsigned int Bx[16]) B[15] += x15; } -void scrypt_core(unsigned int *X, unsigned int *V) +void scrypt_core(uint32_t *X, uint32_t *V) { - unsigned int i, j, k; + uint16_t i, k; + uint32_t j; for (i = 0; i < 1024; i++) { memcpy(&V[i * 32], X, 128); diff --git a/src/scrypt.cpp b/src/scrypt.cpp index 06d1d23..5779127 100644 --- a/src/scrypt.cpp +++ b/src/scrypt.cpp @@ -8,14 +8,14 @@ #define SCRYPT_BUFFER_SIZE (131072 + 63) -extern "C" void scrypt_core(unsigned int *X, unsigned int *V); +extern "C" void scrypt_core(uint32_t *X, uint32_t *V); /* cpu and memory intensive function to transform a 80 byte buffer into a 32 byte output scratchpad size needs to be at least 63 + (128 * r * p) + (256 * r + 64) + (128 * r * N) bytes r = 1, p = 1, N = 1024 */ -uint256 scrypt_blockhash(const void* input) +uint256 scrypt_blockhash(const uint8_t* input) { uint8_t scratchpad[SCRYPT_BUFFER_SIZE]; uint32_t X[32]; @@ -23,9 +23,9 @@ uint256 scrypt_blockhash(const void* input) uint32_t *V = (uint32_t *)(((uintptr_t)(scratchpad) + 63) & ~ (uintptr_t)(63)); - PBKDF2_SHA256((const uint8_t*)input, 80, (const uint8_t*)input, 80, 1, (uint8_t *)X, 128); + PBKDF2_SHA256(input, 80, input, 80, 1, (uint8_t *)X, 128); scrypt_core(X, V); - PBKDF2_SHA256((const uint8_t*)input, 80, (uint8_t *)X, 128, 1, (uint8_t*)&result, 32); + PBKDF2_SHA256(input, 80, (uint8_t *)X, 128, 1, (uint8_t*)&result, 32); return result; } diff --git a/src/scrypt.h b/src/scrypt.h index b28d090..9a648d3 100644 --- a/src/scrypt.h +++ b/src/scrypt.h @@ -7,6 +7,6 @@ #include "util.h" #include "net.h" -uint256 scrypt_blockhash(const void* input); +uint256 scrypt_blockhash(const uint8_t* input); #endif // SCRYPT_MINE_H