Browse Source

myr-gr: clean up

2upstream 1.5.2-tpruvot
Tanguy Pruvot 10 years ago
parent
commit
c7d3498bd8
  1. 4
      ccminer.cpp
  2. 43
      groestlcoin.cpp
  3. 6
      myriadgroestl.cpp

4
ccminer.cpp

@ -83,6 +83,7 @@ enum sha_algos {
ALGO_BLAKE, ALGO_BLAKE,
ALGO_BLAKECOIN, ALGO_BLAKECOIN,
ALGO_DEEP, ALGO_DEEP,
ALGO_DMD_GR,
ALGO_DOOM, ALGO_DOOM,
ALGO_FRESH, ALGO_FRESH,
ALGO_FUGUE256, /* Fugue256 */ ALGO_FUGUE256, /* Fugue256 */
@ -105,7 +106,6 @@ enum sha_algos {
ALGO_X14, ALGO_X14,
ALGO_X15, ALGO_X15,
ALGO_X17, ALGO_X17,
ALGO_DMD_GR,
}; };
static const char *algo_names[] = { static const char *algo_names[] = {
@ -113,6 +113,7 @@ static const char *algo_names[] = {
"blake", "blake",
"blakecoin", "blakecoin",
"deep", "deep",
"dmd-gr",
"doom", /* is luffa */ "doom", /* is luffa */
"fresh", "fresh",
"fugue256", "fugue256",
@ -135,7 +136,6 @@ static const char *algo_names[] = {
"x14", "x14",
"x15", "x15",
"x17", "x17",
"dmd-gr",
}; };
bool opt_debug = false; bool opt_debug = false;

43
groestlcoin.cpp

@ -12,48 +12,21 @@
((((x) << 24) & 0xff000000u) | (((x) << 8) & 0x00ff0000u) | \ ((((x) << 24) & 0xff000000u) | (((x) << 8) & 0x00ff0000u) | \
(((x) >> 8) & 0x0000ff00u) | (((x) >> 24) & 0x000000ffu)) (((x) >> 8) & 0x0000ff00u) | (((x) >> 24) & 0x000000ffu))
void sha256func(unsigned char *hash, const unsigned char *data, int len) // CPU-groestl
{
uint32_t S[16], T[16];
int i, r;
sha256_init(S);
for (r = len; r > -9; r -= 64) {
if (r < 64)
memset(T, 0, 64);
memcpy(T, data + len - r, r > 64 ? 64 : (r < 0 ? 0 : r));
if (r >= 0 && r < 64)
((unsigned char *)T)[r] = 0x80;
for (i = 0; i < 16; i++)
T[i] = be32dec(T + i);
if (r < 56)
T[15] = 8 * len;
sha256_transform(S, T, 0);
}
/*
memcpy(S + 8, sha256d_hash1 + 8, 32);
sha256_init(T);
sha256_transform(T, S, 0);
*/
for (i = 0; i < 8; i++)
be32enc((uint32_t *)hash + i, T[i]);
}
extern "C" void groestlhash(void *state, const void *input) extern "C" void groestlhash(void *state, const void *input)
{ {
// CPU-groestl sph_groestl512_context ctx_groestl;
sph_groestl512_context ctx_groestl[2];
//these uint512 in the c++ source of the client are backed by an array of uint32 //these uint512 in the c++ source of the client are backed by an array of uint32
uint32_t hashA[16], hashB[16]; uint32_t hashA[16], hashB[16];
sph_groestl512_init(&ctx_groestl[0]); sph_groestl512_init(&ctx_groestl);
sph_groestl512 (&ctx_groestl[0], input, 80); //6 sph_groestl512 (&ctx_groestl, input, 80); //6
sph_groestl512_close(&ctx_groestl[0], hashA); //7 sph_groestl512_close(&ctx_groestl, hashA); //7
sph_groestl512_init(&ctx_groestl[1]); sph_groestl512_init(&ctx_groestl);
sph_groestl512 (&ctx_groestl[1], hashA, 64); //6 sph_groestl512 (&ctx_groestl, hashA, 64); //6
sph_groestl512_close(&ctx_groestl[1], hashB); //7 sph_groestl512_close(&ctx_groestl, hashB); //7
memcpy(state, hashB, 32); memcpy(state, hashB, 32);
} }

6
myriadgroestl.cpp

@ -17,18 +17,18 @@ void myriadgroestl_cpu_hash(int thr_id, int threads, uint32_t startNounce, void
extern "C" void myriadhash(void *state, const void *input) extern "C" void myriadhash(void *state, const void *input)
{ {
sph_groestl512_context ctx_groestl;
uint32_t hashA[16], hashB[16]; uint32_t hashA[16], hashB[16];
sph_groestl512_context ctx_groestl;
SHA256_CTX sha256;
sph_groestl512_init(&ctx_groestl); sph_groestl512_init(&ctx_groestl);
sph_groestl512 (&ctx_groestl, input, 80); sph_groestl512 (&ctx_groestl, input, 80);
sph_groestl512_close(&ctx_groestl, hashA); sph_groestl512_close(&ctx_groestl, hashA);
SHA256_CTX sha256;
SHA256_Init(&sha256); SHA256_Init(&sha256);
SHA256_Update(&sha256,(unsigned char *)hashA, 64); SHA256_Update(&sha256,(unsigned char *)hashA, 64);
SHA256_Final((unsigned char *)hashB, &sha256); SHA256_Final((unsigned char *)hashB, &sha256);
memcpy(state, hashB, 32); memcpy(state, hashB, 32);
} }

Loading…
Cancel
Save