Merge pull request #1805 from mcovalt/electrum_salt_type_2
Electrum Salt-Type 2
This commit is contained in:
@@ -236,6 +236,26 @@ DECLSPEC int is_valid_hex_32 (const u32 v)
|
||||
return 1;
|
||||
}
|
||||
|
||||
DECLSPEC int is_valid_base58_8 (const u8 v)
|
||||
{
|
||||
if (v > 'z') return 0;
|
||||
if (v < '1') return 0;
|
||||
if ((v > '9') && (v < 'A')) return 0;
|
||||
if ((v > 'Z') && (v < 'a')) return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
DECLSPEC int is_valid_base58_32 (const u32 v)
|
||||
{
|
||||
if (is_valid_base58_8 ((u8) (v >> 0)) == 0) return 0;
|
||||
if (is_valid_base58_8 ((u8) (v >> 8)) == 0) return 0;
|
||||
if (is_valid_base58_8 ((u8) (v >> 16)) == 0) return 0;
|
||||
if (is_valid_base58_8 ((u8) (v >> 24)) == 0) return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
DECLSPEC int find_keyboard_layout_map (const u32 search, const int search_len, __local keyboard_layout_mapping_t *s_keyboard_layout_mapping_buf, const int keyboard_layout_mapping_cnt)
|
||||
{
|
||||
for (int idx = 0; idx < keyboard_layout_mapping_cnt; idx++)
|
||||
|
||||
@@ -373,6 +373,22 @@ __kernel void m16600_m04 (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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -742,6 +758,22 @@ __kernel void m16600_s04 (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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -429,6 +429,22 @@ __kernel void m16600_m04 (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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -856,6 +872,22 @@ __kernel void m16600_s04 (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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -291,6 +291,22 @@ DECLSPEC void m16600 (SHM_TYPE u32a *s_te0, SHM_TYPE u32a *s_te1, SHM_TYPE u32a
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user