diff --git a/OpenCL/m16600_a0-pure.cl b/OpenCL/m16600_a0-pure.cl index d75edc039..d8baed9a0 100644 --- a/OpenCL/m16600_a0-pure.cl +++ b/OpenCL/m16600_a0-pure.cl @@ -188,6 +188,22 @@ __kernel void m16600_mxx (KERN_ATTR_RULES_ESALT (electrum_wallet_t)) mark_hash (plains_buf, d_return_buf, salt_pos, digests_cnt, 0, digests_offset + 0, gid, il_pos); } } + + if (esalt_bufs[digests_offset].salt_type == 2) + { + if ((u8) (out[0] >> 0) != 'x') continue; + if ((u8) (out[0] >> 8) != 'p') continue; + if ((u8) (out[0] >> 16) != 'r') continue; + if ((u8) (out[0] >> 24) != 'v') continue; + if (is_valid_base58_32 (out[1]) == 0) continue; + if (is_valid_base58_32 (out[2]) == 0) continue; + if (is_valid_base58_32 (out[3]) == 0) continue; + + if (atomic_inc (&hashes_shown[digests_offset]) == 0) + { + mark_hash (plains_buf, d_return_buf, salt_pos, digests_cnt, 0, digests_offset + 0, gid, il_pos); + } + } } } @@ -363,5 +379,21 @@ __kernel void m16600_sxx (KERN_ATTR_RULES_ESALT (electrum_wallet_t)) mark_hash (plains_buf, d_return_buf, salt_pos, digests_cnt, 0, digests_offset + 0, gid, il_pos); } } + + if (esalt_bufs[digests_offset].salt_type == 2) + { + if ((u8) (out[0] >> 0) != 'x') continue; + if ((u8) (out[0] >> 8) != 'p') continue; + if ((u8) (out[0] >> 16) != 'r') continue; + if ((u8) (out[0] >> 24) != 'v') continue; + if (is_valid_base58_32 (out[1]) == 0) continue; + if (is_valid_base58_32 (out[2]) == 0) continue; + if (is_valid_base58_32 (out[3]) == 0) continue; + + if (atomic_inc (&hashes_shown[digests_offset]) == 0) + { + mark_hash (plains_buf, d_return_buf, salt_pos, digests_cnt, 0, digests_offset + 0, gid, il_pos); + } + } } } diff --git a/OpenCL/m16600_a1-pure.cl b/OpenCL/m16600_a1-pure.cl index 6029c9aa3..3003ac381 100644 --- a/OpenCL/m16600_a1-pure.cl +++ b/OpenCL/m16600_a1-pure.cl @@ -184,6 +184,22 @@ __kernel void m16600_mxx (KERN_ATTR_ESALT (electrum_wallet_t)) mark_hash (plains_buf, d_return_buf, salt_pos, digests_cnt, 0, digests_offset + 0, gid, il_pos); } } + + if (esalt_bufs[digests_offset].salt_type == 2) + { + if ((u8) (out[0] >> 0) != 'x') continue; + if ((u8) (out[0] >> 8) != 'p') continue; + if ((u8) (out[0] >> 16) != 'r') continue; + if ((u8) (out[0] >> 24) != 'v') continue; + if (is_valid_base58_32 (out[1]) == 0) continue; + if (is_valid_base58_32 (out[2]) == 0) continue; + if (is_valid_base58_32 (out[3]) == 0) continue; + + if (atomic_inc (&hashes_shown[digests_offset]) == 0) + { + mark_hash (plains_buf, d_return_buf, salt_pos, digests_cnt, 0, digests_offset + 0, gid, il_pos); + } + } } } @@ -357,5 +373,21 @@ __kernel void m16600_sxx (KERN_ATTR_ESALT (electrum_wallet_t)) mark_hash (plains_buf, d_return_buf, salt_pos, digests_cnt, 0, digests_offset + 0, gid, il_pos); } } + + if (esalt_bufs[digests_offset].salt_type == 2) + { + if ((u8) (out[0] >> 0) != 'x') continue; + if ((u8) (out[0] >> 8) != 'p') continue; + if ((u8) (out[0] >> 16) != 'r') continue; + if ((u8) (out[0] >> 24) != 'v') continue; + if (is_valid_base58_32 (out[1]) == 0) continue; + if (is_valid_base58_32 (out[2]) == 0) continue; + if (is_valid_base58_32 (out[3]) == 0) continue; + + if (atomic_inc (&hashes_shown[digests_offset]) == 0) + { + mark_hash (plains_buf, d_return_buf, salt_pos, digests_cnt, 0, digests_offset + 0, gid, il_pos); + } + } } } diff --git a/OpenCL/m16600_a3-pure.cl b/OpenCL/m16600_a3-pure.cl index 5c1791fd6..76cd50d7c 100644 --- a/OpenCL/m16600_a3-pure.cl +++ b/OpenCL/m16600_a3-pure.cl @@ -197,6 +197,22 @@ __kernel void m16600_mxx (KERN_ATTR_VECTOR_ESALT (electrum_wallet_t)) mark_hash (plains_buf, d_return_buf, salt_pos, digests_cnt, 0, digests_offset + 0, gid, il_pos); } } + + if (esalt_bufs[digests_offset].salt_type == 2) + { + if ((u8) (out[0] >> 0) != 'x') continue; + if ((u8) (out[0] >> 8) != 'p') continue; + if ((u8) (out[0] >> 16) != 'r') continue; + if ((u8) (out[0] >> 24) != 'v') continue; + if (is_valid_base58_32 (out[1]) == 0) continue; + if (is_valid_base58_32 (out[2]) == 0) continue; + if (is_valid_base58_32 (out[3]) == 0) continue; + + if (atomic_inc (&hashes_shown[digests_offset]) == 0) + { + mark_hash (plains_buf, d_return_buf, salt_pos, digests_cnt, 0, digests_offset + 0, gid, il_pos); + } + } } } @@ -383,5 +399,21 @@ __kernel void m16600_sxx (KERN_ATTR_VECTOR_ESALT (electrum_wallet_t)) mark_hash (plains_buf, d_return_buf, salt_pos, digests_cnt, 0, digests_offset + 0, gid, il_pos); } } + + if (esalt_bufs[digests_offset].salt_type == 2) + { + if ((u8) (out[0] >> 0) != 'x') continue; + if ((u8) (out[0] >> 8) != 'p') continue; + if ((u8) (out[0] >> 16) != 'r') continue; + if ((u8) (out[0] >> 24) != 'v') continue; + if (is_valid_base58_32 (out[1]) == 0) continue; + if (is_valid_base58_32 (out[2]) == 0) continue; + if (is_valid_base58_32 (out[3]) == 0) continue; + + if (atomic_inc (&hashes_shown[digests_offset]) == 0) + { + mark_hash (plains_buf, d_return_buf, salt_pos, digests_cnt, 0, digests_offset + 0, gid, il_pos); + } + } } }