We don't need 32 bit integers for these counters
authorMASM fan <masmfan@gmail.com>
Sun, 4 Jan 2015 06:58:39 +0000 (22:58 -0800)
committerMASM fan <masmfan@gmail.com>
Sun, 4 Jan 2015 06:58:39 +0000 (22:58 -0800)
src/main.h
src/scrypt-generic.c
src/scrypt.cpp
src/scrypt.h

index 2cb3ea7..0ef9a9d 100644 (file)
@@ -947,7 +947,7 @@ public:
 
     uint256 GetHash() const
     {
-        return scrypt_blockhash(CVOIDBEGIN(nVersion));
+        return scrypt_blockhash((const uint8_t*)&nVersion);
     }
 
     int64_t GetBlockTime() const
index 96bcb11..6339c25 100644 (file)
 
 // 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);
index 06d1d23..5779127 100644 (file)
@@ -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;
 }
index b28d090..9a648d3 100644 (file)
@@ -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