From 7965b6fb5f7f3c5e21112f32dfe819fa0438d48a Mon Sep 17 00:00:00 2001 From: MASM fan Date: Fri, 10 Apr 2015 09:50:56 -0700 Subject: [PATCH] Reorganize scrypt includes --- src/scrypt-asm/asm-wrapper.cpp | 6 ------ src/scrypt-generic.cpp | 35 ++++++++++++++--------------------- src/scrypt-intrin/scrypt-sse2.cpp | 7 +------ src/scrypt.h | 12 +++++------- 4 files changed, 20 insertions(+), 40 deletions(-) diff --git a/src/scrypt-asm/asm-wrapper.cpp b/src/scrypt-asm/asm-wrapper.cpp index e235a17..05914ed 100644 --- a/src/scrypt-asm/asm-wrapper.cpp +++ b/src/scrypt-asm/asm-wrapper.cpp @@ -1,11 +1,5 @@ -#include -#include - #include "scrypt.h" -#include "util.h" -#include "net.h" - 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 diff --git a/src/scrypt-generic.cpp b/src/scrypt-generic.cpp index fa7b5e0..aa07892 100644 --- a/src/scrypt-generic.cpp +++ b/src/scrypt-generic.cpp @@ -1,4 +1,4 @@ -/*- +/* * Copyright 2009 Colin Percival, 2011 ArtForz, 2011 pooler, 2013 Balthazar * All rights reserved. * @@ -27,9 +27,6 @@ * online backup system. */ -#include -#include - #include "scrypt.h" #ifdef _MSC_VER @@ -108,10 +105,21 @@ static INLINE void xor_salsa8(uint32_t B[16], const uint32_t Bx[16]) B[15] += x15; } -INLINE 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 uint8_t* input) { - uint16_t i, j, k; + uint8_t scratchpad[SCRYPT_BUFFER_SIZE]; + uint32_t X[32]; + uint256 result = 0; + + uint32_t *V = (uint32_t *)(((uintptr_t)(scratchpad) + 63) & ~ (uintptr_t)(63)); + PKCS5_PBKDF2_HMAC((const char*)input, 80, input, 80, 1, EVP_sha256(), 128, (unsigned char *)X); + + uint16_t i, j, k; for (i = 0; i < 1024; i++) { memcpy(&V[i * 32], X, 128); xor_salsa8(&X[0], &X[16]); @@ -124,22 +132,7 @@ INLINE void scrypt_core(uint32_t *X, uint32_t *V) xor_salsa8(&X[0], &X[16]); xor_salsa8(&X[16], &X[0]); } -} - -/* 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 uint8_t* input) -{ - uint8_t scratchpad[SCRYPT_BUFFER_SIZE]; - uint32_t X[32]; - uint256 result = 0; - uint32_t *V = (uint32_t *)(((uintptr_t)(scratchpad) + 63) & ~ (uintptr_t)(63)); - - PKCS5_PBKDF2_HMAC((const char*)input, 80, input, 80, 1, EVP_sha256(), 128, (unsigned char *)X); - scrypt_core(X, V); PKCS5_PBKDF2_HMAC((const char*)input, 80, (const unsigned char*)X, 128, 1, EVP_sha256(), 32, (unsigned char*)&result); return result; diff --git a/src/scrypt-intrin/scrypt-sse2.cpp b/src/scrypt-intrin/scrypt-sse2.cpp index 89cacc8..63c0a7a 100644 --- a/src/scrypt-intrin/scrypt-sse2.cpp +++ b/src/scrypt-intrin/scrypt-sse2.cpp @@ -27,13 +27,8 @@ * online backup system. */ -#include "scrypt.h" -#include -#include -#include -#include - #include +#include "scrypt.h" static inline uint32_t le32dec(const void *pp) { diff --git a/src/scrypt.h b/src/scrypt.h index 8a07277..7d5aadc 100644 --- a/src/scrypt.h +++ b/src/scrypt.h @@ -1,14 +1,12 @@ -#ifndef SCRYPT_MINE_H -#define SCRYPT_MINE_H +#ifndef SCRYPT_H +#define SCRYPT_H #include -#include - -#include "util.h" -#include "net.h" +#include +#include "uint256.h" #define SCRYPT_BUFFER_SIZE (131072 + 63) uint256 scrypt_blockhash(const uint8_t* input); -#endif // SCRYPT_MINE_H +#endif // SCRYPT_H -- 1.7.1