mirror of
https://github.com/xmrig/xmrig.git
synced 2025-01-09 20:39:27 +00:00
Added argon2/chukwav2 algorithm
New Turtlecoin algorithm. Source: https://github.com/turtlecoin/turtlecoin/blob/development/src/crypto/hash.h#L57
This commit is contained in:
parent
793a2454ad
commit
4f7186cb0e
10 changed files with 5830 additions and 5800 deletions
|
@ -145,7 +145,7 @@ size_t inline generate<Algorithm::RANDOM_X>(Threads<CpuThreads> &threads, uint32
|
||||||
template<>
|
template<>
|
||||||
size_t inline generate<Algorithm::ARGON2>(Threads<CpuThreads> &threads, uint32_t limit)
|
size_t inline generate<Algorithm::ARGON2>(Threads<CpuThreads> &threads, uint32_t limit)
|
||||||
{
|
{
|
||||||
return generate("argon2", threads, Algorithm::AR2_CHUKWA, limit);
|
return generate("argon2", threads, Algorithm::AR2_CHUKWA_V2, limit);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -180,6 +180,7 @@ bool xmrig::CpuWorker<N>::selfTest()
|
||||||
# ifdef XMRIG_ALGO_ARGON2
|
# ifdef XMRIG_ALGO_ARGON2
|
||||||
if (m_algorithm.family() == Algorithm::ARGON2) {
|
if (m_algorithm.family() == Algorithm::ARGON2) {
|
||||||
return verify(Algorithm::AR2_CHUKWA, argon2_chukwa_test_out) &&
|
return verify(Algorithm::AR2_CHUKWA, argon2_chukwa_test_out) &&
|
||||||
|
verify(Algorithm::AR2_CHUKWA_V2, argon2_chukwa_v2_test_out) &&
|
||||||
verify(Algorithm::AR2_WRKZ, argon2_wrkz_test_out);
|
verify(Algorithm::AR2_WRKZ, argon2_wrkz_test_out);
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
|
|
|
@ -23,9 +23,10 @@
|
||||||
#define ALGO_RX_SFX 22
|
#define ALGO_RX_SFX 22
|
||||||
#define ALGO_RX_KEVA 23
|
#define ALGO_RX_KEVA 23
|
||||||
#define ALGO_AR2_CHUKWA 24
|
#define ALGO_AR2_CHUKWA 24
|
||||||
#define ALGO_AR2_WRKZ 25
|
#define ALGO_AR2_CHUKWA_V2 25
|
||||||
#define ALGO_ASTROBWT_DERO 26
|
#define ALGO_AR2_WRKZ 26
|
||||||
#define ALGO_KAWPOW_RVN 27
|
#define ALGO_ASTROBWT_DERO 27
|
||||||
|
#define ALGO_KAWPOW_RVN 28
|
||||||
|
|
||||||
#define FAMILY_UNKNOWN 0
|
#define FAMILY_UNKNOWN 0
|
||||||
#define FAMILY_CN 1
|
#define FAMILY_CN 1
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -115,6 +115,8 @@ static AlgoName const algorithm_names[] = {
|
||||||
# ifdef XMRIG_ALGO_ARGON2
|
# ifdef XMRIG_ALGO_ARGON2
|
||||||
{ "argon2/chukwa", nullptr, Algorithm::AR2_CHUKWA },
|
{ "argon2/chukwa", nullptr, Algorithm::AR2_CHUKWA },
|
||||||
{ "chukwa", nullptr, Algorithm::AR2_CHUKWA },
|
{ "chukwa", nullptr, Algorithm::AR2_CHUKWA },
|
||||||
|
{ "argon2/chukwav2", nullptr, Algorithm::AR2_CHUKWA_V2 },
|
||||||
|
{ "chukwav2", nullptr, Algorithm::AR2_CHUKWA_V2 },
|
||||||
{ "argon2/wrkz", nullptr, Algorithm::AR2_WRKZ },
|
{ "argon2/wrkz", nullptr, Algorithm::AR2_WRKZ },
|
||||||
# endif
|
# endif
|
||||||
# ifdef XMRIG_ALGO_ASTROBWT
|
# ifdef XMRIG_ALGO_ASTROBWT
|
||||||
|
@ -227,6 +229,9 @@ size_t xmrig::Algorithm::l3() const
|
||||||
case AR2_CHUKWA:
|
case AR2_CHUKWA:
|
||||||
return oneMiB / 2;
|
return oneMiB / 2;
|
||||||
|
|
||||||
|
case AR2_CHUKWA_V2:
|
||||||
|
return oneMiB;
|
||||||
|
|
||||||
case AR2_WRKZ:
|
case AR2_WRKZ:
|
||||||
return oneMiB / 4;
|
return oneMiB / 4;
|
||||||
|
|
||||||
|
@ -335,6 +340,7 @@ xmrig::Algorithm::Family xmrig::Algorithm::family(Id id)
|
||||||
|
|
||||||
# ifdef XMRIG_ALGO_ARGON2
|
# ifdef XMRIG_ALGO_ARGON2
|
||||||
case AR2_CHUKWA:
|
case AR2_CHUKWA:
|
||||||
|
case AR2_CHUKWA_V2:
|
||||||
case AR2_WRKZ:
|
case AR2_WRKZ:
|
||||||
return ARGON2;
|
return ARGON2;
|
||||||
# endif
|
# endif
|
||||||
|
|
|
@ -70,6 +70,7 @@ public:
|
||||||
RX_SFX, // "rx/sfx" RandomSFX (Safex Cash).
|
RX_SFX, // "rx/sfx" RandomSFX (Safex Cash).
|
||||||
RX_KEVA, // "rx/keva" RandomKEVA (Keva).
|
RX_KEVA, // "rx/keva" RandomKEVA (Keva).
|
||||||
AR2_CHUKWA, // "argon2/chukwa" Argon2id (Chukwa).
|
AR2_CHUKWA, // "argon2/chukwa" Argon2id (Chukwa).
|
||||||
|
AR2_CHUKWA_V2, // "argon2/chukwav2" Argon2id (Chukwa v2).
|
||||||
AR2_WRKZ, // "argon2/wrkz" Argon2id (WRKZ)
|
AR2_WRKZ, // "argon2/wrkz" Argon2id (WRKZ)
|
||||||
ASTROBWT_DERO, // "astrobwt" AstroBWT (Dero)
|
ASTROBWT_DERO, // "astrobwt" AstroBWT (Dero)
|
||||||
KAWPOW_RVN, // "kawpow/rvn" KawPow (RVN)
|
KAWPOW_RVN, // "kawpow/rvn" KawPow (RVN)
|
||||||
|
|
|
@ -40,6 +40,9 @@ inline void single_hash(const uint8_t *__restrict__ input, size_t size, uint8_t
|
||||||
if (ALGO == Algorithm::AR2_CHUKWA) {
|
if (ALGO == Algorithm::AR2_CHUKWA) {
|
||||||
argon2id_hash_raw_ex(3, 512, 1, input, size, input, 16, output, 32, ctx[0]->memory);
|
argon2id_hash_raw_ex(3, 512, 1, input, size, input, 16, output, 32, ctx[0]->memory);
|
||||||
}
|
}
|
||||||
|
else if (ALGO == Algorithm::AR2_CHUKWA_V2) {
|
||||||
|
argon2id_hash_raw_ex(4, 1024, 1, input, size, input, 16, output, 32, ctx[0]->memory);
|
||||||
|
}
|
||||||
else if (ALGO == Algorithm::AR2_WRKZ) {
|
else if (ALGO == Algorithm::AR2_WRKZ) {
|
||||||
argon2id_hash_raw_ex(4, 256, 1, input, size, input, 16, output, 32, ctx[0]->memory);
|
argon2id_hash_raw_ex(4, 256, 1, input, size, input, 16, output, 32, ctx[0]->memory);
|
||||||
}
|
}
|
||||||
|
|
|
@ -275,6 +275,8 @@ xmrig::CnHash::CnHash()
|
||||||
# ifdef XMRIG_ALGO_ARGON2
|
# ifdef XMRIG_ALGO_ARGON2
|
||||||
m_map[Algorithm::AR2_CHUKWA][AV_SINGLE][Assembly::NONE] = argon2::single_hash<Algorithm::AR2_CHUKWA>;
|
m_map[Algorithm::AR2_CHUKWA][AV_SINGLE][Assembly::NONE] = argon2::single_hash<Algorithm::AR2_CHUKWA>;
|
||||||
m_map[Algorithm::AR2_CHUKWA][AV_SINGLE_SOFT][Assembly::NONE] = argon2::single_hash<Algorithm::AR2_CHUKWA>;
|
m_map[Algorithm::AR2_CHUKWA][AV_SINGLE_SOFT][Assembly::NONE] = argon2::single_hash<Algorithm::AR2_CHUKWA>;
|
||||||
|
m_map[Algorithm::AR2_CHUKWA_V2][AV_SINGLE][Assembly::NONE] = argon2::single_hash<Algorithm::AR2_CHUKWA_V2>;
|
||||||
|
m_map[Algorithm::AR2_CHUKWA_V2][AV_SINGLE_SOFT][Assembly::NONE] = argon2::single_hash<Algorithm::AR2_CHUKWA_V2>;
|
||||||
m_map[Algorithm::AR2_WRKZ][AV_SINGLE][Assembly::NONE] = argon2::single_hash<Algorithm::AR2_WRKZ>;
|
m_map[Algorithm::AR2_WRKZ][AV_SINGLE][Assembly::NONE] = argon2::single_hash<Algorithm::AR2_WRKZ>;
|
||||||
m_map[Algorithm::AR2_WRKZ][AV_SINGLE_SOFT][Assembly::NONE] = argon2::single_hash<Algorithm::AR2_WRKZ>;
|
m_map[Algorithm::AR2_WRKZ][AV_SINGLE_SOFT][Assembly::NONE] = argon2::single_hash<Algorithm::AR2_WRKZ>;
|
||||||
# endif
|
# endif
|
||||||
|
|
|
@ -385,6 +385,20 @@ const static uint8_t argon2_chukwa_test_out[160] = {
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// "argon2/chukwav2"
|
||||||
|
const static uint8_t argon2_chukwa_v2_test_out[160] = {
|
||||||
|
0x77, 0xCF, 0x69, 0x58, 0xB3, 0x53, 0x6E, 0x1F, 0x9F, 0x0D, 0x1E, 0xA1, 0x65, 0xF2, 0x28, 0x11,
|
||||||
|
0xCA, 0x7B, 0xC4, 0x87, 0xEA, 0x9F, 0x52, 0x03, 0x0B, 0x50, 0x50, 0xC1, 0x7F, 0xCD, 0xD8, 0xF5,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||||
|
};
|
||||||
|
|
||||||
// "argon2/wrkz"
|
// "argon2/wrkz"
|
||||||
const static uint8_t argon2_wrkz_test_out[160] = {
|
const static uint8_t argon2_wrkz_test_out[160] = {
|
||||||
0x35, 0xE0, 0x83, 0xD4, 0xB9, 0xC6, 0x4C, 0x2A, 0x68, 0x82, 0x0A, 0x43, 0x1F, 0x61, 0x31, 0x19,
|
0x35, 0xE0, 0x83, 0xD4, 0xB9, 0xC6, 0x4C, 0x2A, 0x68, 0x82, 0x0A, 0x43, 0x1F, 0x61, 0x31, 0x19,
|
||||||
|
|
Loading…
Reference in a new issue