|
|
|
@ -407,19 +407,32 @@ static uint32_t scrypt_1024_1_1_256_sp(const uint32_t* input, char* scratchpad)
@@ -407,19 +407,32 @@ static uint32_t scrypt_1024_1_1_256_sp(const uint32_t* input, char* scratchpad)
|
|
|
|
|
return PBKDF2_SHA256_80_128_32(input, X); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool scanhash_scrypt(struct thr_info *thr, const unsigned char *pmidstate, unsigned char *pdata, |
|
|
|
|
unsigned char *phash1, unsigned char *phash, |
|
|
|
|
const unsigned char *ptarget, |
|
|
|
|
uint32_t max_nonce, uint32_t *last_nonce, |
|
|
|
|
uint32_t n) |
|
|
|
|
/* Used externally as confirmation of correct OCL code */ |
|
|
|
|
bool scrypt_test(unsigned char *pdata, const unsigned char *ptarget, uint32_t nonce) |
|
|
|
|
{ |
|
|
|
|
uint32_t tmp_hash7, Htarg = ((const uint32_t *)ptarget)[7]; |
|
|
|
|
char *scratchbuf; |
|
|
|
|
uint32_t data[20]; |
|
|
|
|
|
|
|
|
|
be32enc_vect(data, (const uint32_t *)pdata, 19); |
|
|
|
|
data[19] = byteswap(nonce); |
|
|
|
|
scratchbuf = alloca(131584); |
|
|
|
|
tmp_hash7 = scrypt_1024_1_1_256_sp(data, scratchbuf); |
|
|
|
|
|
|
|
|
|
return (tmp_hash7 <= Htarg); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool scanhash_scrypt(struct thr_info *thr, const unsigned char __maybe_unused *pmidstate, |
|
|
|
|
unsigned char *pdata, unsigned char __maybe_unused *phash1, |
|
|
|
|
unsigned char __maybe_unused *phash, const unsigned char *ptarget, |
|
|
|
|
uint32_t max_nonce, uint32_t *last_nonce, uint32_t n) |
|
|
|
|
{ |
|
|
|
|
uint32_t *nonce = (uint32_t *)(pdata + 76); |
|
|
|
|
unsigned char *scratchbuf; |
|
|
|
|
char *scratchbuf; |
|
|
|
|
uint32_t data[20]; |
|
|
|
|
uint32_t tmp_hash7; |
|
|
|
|
uint32_t Htarg = ((const uint32_t *)ptarget)[7]; |
|
|
|
|
bool ret = false; |
|
|
|
|
int i; |
|
|
|
|
|
|
|
|
|
be32enc_vect(data, (const uint32_t *)pdata, 19); |
|
|
|
|
|
|
|
|
@ -446,7 +459,7 @@ bool scanhash_scrypt(struct thr_info *thr, const unsigned char *pmidstate, unsig
@@ -446,7 +459,7 @@ bool scanhash_scrypt(struct thr_info *thr, const unsigned char *pmidstate, unsig
|
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
out_ret: |
|
|
|
|
|
|
|
|
|
free(scratchbuf);; |
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|