<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[hashcat Forum - hashcat]]></title>
		<link>https://hashcat.net/forum/</link>
		<description><![CDATA[hashcat Forum - https://hashcat.net/forum]]></description>
		<pubDate>Sun, 05 Apr 2026 00:15:59 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[SNMPv3 engineID minimum length, am I missing something?]]></title>
			<link>https://hashcat.net/forum/thread-13492.html</link>
			<pubDate>Sat, 21 Feb 2026 17:45:28 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://hashcat.net/forum/member.php?action=profile&uid=24">c4p0ne</a>]]></dc:creator>
			<guid isPermaLink="false">https://hashcat.net/forum/thread-13492.html</guid>
			<description><![CDATA[Regarding hashcat -m 25000 specifically but probably others too. So the question is about the<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>totoken.len_min[3] = 26</code></div></div><br />
in module_25000.c (and its siblings). RFC 3411 says engineID is 5-32 bytes, so the minimum should be 10 hex chars, not 26. IPv4-based engine IDs are 9 bytes (18 hex) and MAC-based are 11 bytes (22 hex). Well both of these appear to be under the floor.<br />
<br />
Also noticed m25000.pm uses<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>random_hex_string(26, 34)</code></div></div><br />
so the test suite never generates a short enough engineID to catch it. Is this a known limitation or an actual bug? Seems like a one-line fix across the all the sibling modules. Will someone knowledgeable please come to the rescue here and tell me if I'm looking at this wrong?]]></description>
			<content:encoded><![CDATA[Regarding hashcat -m 25000 specifically but probably others too. So the question is about the<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>totoken.len_min[3] = 26</code></div></div><br />
in module_25000.c (and its siblings). RFC 3411 says engineID is 5-32 bytes, so the minimum should be 10 hex chars, not 26. IPv4-based engine IDs are 9 bytes (18 hex) and MAC-based are 11 bytes (22 hex). Well both of these appear to be under the floor.<br />
<br />
Also noticed m25000.pm uses<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>random_hex_string(26, 34)</code></div></div><br />
so the test suite never generates a short enough engineID to catch it. Is this a known limitation or an actual bug? Seems like a one-line fix across the all the sibling modules. Will someone knowledgeable please come to the rescue here and tell me if I'm looking at this wrong?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Token Length Exception]]></title>
			<link>https://hashcat.net/forum/thread-13457.html</link>
			<pubDate>Sun, 04 Jan 2026 16:51:10 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://hashcat.net/forum/member.php?action=profile&uid=20712">Ricardo Alexis</a>]]></dc:creator>
			<guid isPermaLink="false">https://hashcat.net/forum/thread-13457.html</guid>
			<description><![CDATA[Hi members, Happy New Year.<br />
When I try to use <div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>hashcat -m 26620</code></div></div>, below error was occupied.<br />
<br />
"Token length exception" in hashcat terminal.<br />
<br />
How to resolve this issue?]]></description>
			<content:encoded><![CDATA[Hi members, Happy New Year.<br />
When I try to use <div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>hashcat -m 26620</code></div></div>, below error was occupied.<br />
<br />
"Token length exception" in hashcat terminal.<br />
<br />
How to resolve this issue?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Introduction & Tips for New Hashcat Users]]></title>
			<link>https://hashcat.net/forum/thread-13448.html</link>
			<pubDate>Fri, 26 Dec 2025 16:55:55 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://hashcat.net/forum/member.php?action=profile&uid=20681">b15063368</a>]]></dc:creator>
			<guid isPermaLink="false">https://hashcat.net/forum/thread-13448.html</guid>
			<description><![CDATA[Hello everyone! I’m new to Hashcat and excited to learn more about using it effectively. I understand this forum is for support, discussion, and sharing knowledge about Hashcat, the world’s advanced open-source password recovery tool that supports many hash algorithms and GPU/CPU acceleration.<br />
I’d like to share a few questions and tips for beginners:<br />
<ol type="1" class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Best practices for getting started:</span><br />
 What is the best way to begin with common hash types like MD5 or NTLM? Should I start with dictionary attacks or masks?<br />
</li>
</ol>
]]></description>
			<content:encoded><![CDATA[Hello everyone! I’m new to Hashcat and excited to learn more about using it effectively. I understand this forum is for support, discussion, and sharing knowledge about Hashcat, the world’s advanced open-source password recovery tool that supports many hash algorithms and GPU/CPU acceleration.<br />
I’d like to share a few questions and tips for beginners:<br />
<ol type="1" class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Best practices for getting started:</span><br />
 What is the best way to begin with common hash types like MD5 or NTLM? Should I start with dictionary attacks or masks?<br />
</li>
</ol>
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[looking for module]]></title>
			<link>https://hashcat.net/forum/thread-13425.html</link>
			<pubDate>Sun, 23 Nov 2025 01:20:49 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://hashcat.net/forum/member.php?action=profile&uid=20592">misterapple282</a>]]></dc:creator>
			<guid isPermaLink="false">https://hashcat.net/forum/thread-13425.html</guid>
			<description><![CDATA[hi!<br />
i’m looking for this module<br />
sha1(salt.sha1(salt.sha1(password))<br />
example <br />
<div style="text-align: left;" class="mycode_align"><span style="font-family: system-ui;" class="mycode_font"><span style="font-size: 1pt;" class="mycode_size">п</span></span></div>
<div style="text-align: left;" class="mycode_align"><span style="font-size: x-large;" class="mycode_size"><span style="font-family: Menlo;" class="mycode_font"><span style="font-family: system-ui;" class="mycode_font">salt: </span><span style="font-family: Menlo-Regular;" class="mycode_font">01rIbTytUx300851</span></span></span></div>
<div style="text-align: left;" class="mycode_align"><span style="font-size: x-large;" class="mycode_size"><span style="font-family: Menlo;" class="mycode_font"><span style="font-family: system-ui;" class="mycode_font">plaintext: </span><span style="font-family: Menlo-Regular;" class="mycode_font">romeoandjuliet</span></span></span></div>
<div style="text-align: left;" class="mycode_align"><span style="font-size: x-large;" class="mycode_size"><span style="font-family: Menlo;" class="mycode_font"><span style="font-family: system-ui;" class="mycode_font">digest: </span><span style="font-family: Menlo-Regular;" class="mycode_font">52cc8adbd7a00d40973c174f297833944162451d</span></span></span></div>]]></description>
			<content:encoded><![CDATA[hi!<br />
i’m looking for this module<br />
sha1(salt.sha1(salt.sha1(password))<br />
example <br />
<div style="text-align: left;" class="mycode_align"><span style="font-family: system-ui;" class="mycode_font"><span style="font-size: 1pt;" class="mycode_size">п</span></span></div>
<div style="text-align: left;" class="mycode_align"><span style="font-size: x-large;" class="mycode_size"><span style="font-family: Menlo;" class="mycode_font"><span style="font-family: system-ui;" class="mycode_font">salt: </span><span style="font-family: Menlo-Regular;" class="mycode_font">01rIbTytUx300851</span></span></span></div>
<div style="text-align: left;" class="mycode_align"><span style="font-size: x-large;" class="mycode_size"><span style="font-family: Menlo;" class="mycode_font"><span style="font-family: system-ui;" class="mycode_font">plaintext: </span><span style="font-family: Menlo-Regular;" class="mycode_font">romeoandjuliet</span></span></span></div>
<div style="text-align: left;" class="mycode_align"><span style="font-size: x-large;" class="mycode_size"><span style="font-family: Menlo;" class="mycode_font"><span style="font-family: system-ui;" class="mycode_font">digest: </span><span style="font-family: Menlo-Regular;" class="mycode_font">52cc8adbd7a00d40973c174f297833944162451d</span></span></span></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Problem with multi keys in kernel]]></title>
			<link>https://hashcat.net/forum/thread-13411.html</link>
			<pubDate>Tue, 21 Oct 2025 08:21:04 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://hashcat.net/forum/member.php?action=profile&uid=5727">zamgold</a>]]></dc:creator>
			<guid isPermaLink="false">https://hashcat.net/forum/thread-13411.html</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b">I am developing a kernel - a modified RC4, as a result, in the kernel there are many candidates for the correct key that meet my criteria, which I want to throw out to potfile.</span><br />
<span style="font-weight: bold;" class="mycode_b">if you use the function mark_hash - some keys are not included in the potfile, so I made the following implementation:</span><br />
<br />
<br />
<span style="font-style: italic;" class="mycode_i">KERNEL_FQ void m33545_comp (KERN_ATTR_TMPS(rc4_tmp_t))</span><br />
<span style="font-style: italic;" class="mycode_i">{</span><br />
<span style="font-style: italic;" class="mycode_i">  const u64 gid = get_global_id (0);</span><br />
<span style="font-style: italic;" class="mycode_i">  const u64 lid = get_local_id (0);</span><br />
<br />
<br />
<span style="font-style: italic;" class="mycode_i">  if (gid &gt;= GID_CNT) return;</span><br />
<br />
<br />
<br />
<span style="font-style: italic;" class="mycode_i">    LOCAL_VK u32 S[64 * FIXED_LOCAL_SIZE];</span><br />
<br />
<br />
<span style="font-style: italic;" class="mycode_i">    //MY RC4_REALIZATION</span><br />
<span style="font-style: italic;" class="mycode_i">    .....</span><br />
<br />
<span style="font-style: italic;" class="mycode_i">    if ( value &gt; CRITERION ) {</span><br />
<span style="font-style: italic;" class="mycode_i">        u32 idx = hc_atomic_inc (d_return_buf);</span><br />
<span style="font-style: italic;" class="mycode_i">        printf("\nkey=%02x%x value=%d hc_atomic_idx=%d\n", pws[gid].i[1], pws[gid].i[0],value, idx);</span><br />
<br />
<span style="font-style: italic;" class="mycode_i">        plains_buf[idx].salt_pos  = SALT_POS_HOST;</span><br />
<span style="font-style: italic;" class="mycode_i">        plains_buf[idx].digest_pos = 0;  // relative</span><br />
<span style="font-style: italic;" class="mycode_i">        plains_buf[idx].hash_pos  = DIGESTS_OFFSET_HOST + 0;    // absolute</span><br />
<span style="font-style: italic;" class="mycode_i">        plains_buf[idx].gidvid    = gid;</span><br />
<span style="font-style: italic;" class="mycode_i">        plains_buf[idx].il_pos    = 0;</span><br />
<span style="font-style: italic;" class="mycode_i">        plains_buf[idx].extra1    = 0;      // unused so far</span><br />
<span style="font-style: italic;" class="mycode_i">        plains_buf[idx].extra2    = 0;      // unused so far</span><br />
<span style="font-style: italic;" class="mycode_i">    }</span><br />
<br />
<span style="font-style: italic;" class="mycode_i">}</span><br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">here is part of my output to the screen:</span><br />
<br />
<br />
<span style="font-style: italic;" class="mycode_i">[</span><span style="font-style: italic;" class="mycode_i">s]tatus [p]ause ypass [c]heckpoint [f]inish [q]uit =&gt;<br />
key=05dfb32e79 value=1064 hc_atomic_idx=0<br />
<br />
key=0316b32e79 value=504 hc_atomic_idx=1<br />
<br />
key=3594b32e79 value=520 hc_atomic_idx=2<br />
<br />
key=4c9eb32e79 value=504 hc_atomic_idx=3<br />
<br />
key=6a96b32e79 value=648 hc_atomic_idx=4<br />
<br />
key=88e5b32e79 value=528 hc_atomic_idx=6<br />
<br />
key=8fbab32e79 value=536 hc_atomic_idx=5<br />
<br />
key=a1a5b32e79 value=520 hc_atomic_idx=7<br />
<br />
key=add1b32e79 value=576 hc_atomic_idx=8<br />
<br />
key=c13ab32e79 value=552 hc_atomic_idx=9<br />
<br />
key=bae8b32e79 value=512 hc_atomic_idx=10<br />
<br />
key=f6b6b32e79 value=520 hc_atomic_idx=11<br />
<br />
key=f295b32e79 value=568 hc_atomic_idx=12<br />
<br />
-&gt;check_crack2:13<br />
cuMemcpyDtoHAsync(): invalid argument<br />
<br />
<br />
&lt;-check_crack2 return:-1<br />
Session..........: hashcat<br />
Status...........: Exhausted<br />
Hash.Mode........: 33545 (RC4_MY)<br />
Hash.Target......: xxxxxxxxxxxxxxxxxxxxxx<br />
Time.Started.....: Tue Oct 21 12:56:06 2025 (0 secs)<br />
Time.Estimated...: Tue Oct 21 12:56:06 2025 (0 secs)<br />
Kernel.Feature...: Pure Kernel<br />
Guess.Mask.......: 792eb3?b?b [5]<br />
Guess.Queue......: 1/1 (100.00%)<br />
Speed.#1.........: 11787.5 kH/s (0.00ms) @ Accel:1024 Loops:1024 Thr:32 Vec:1<br />
Recovered........: 0/1 (0.00%) Digests (total), 0/1 (0.00%) Digests (new)<br />
Progress.........: 65536/65536 (100.00%)<br />
Rejected.........: 0/65536 (0.00%)<br />
Restore.Point....: 65536/65536 (100.00%)<br />
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1024<br />
Candidate.Engine.: Device Generator<br />
Candidates.#1....: &#36;HEX[792eb3e0b8] -&gt; &#36;HEX[792eb3ffff]<br />
Hardware.Mon.#1..: Temp: 65c Fan: 70% Util:100% Core:1860MHz Mem:9251MHz Bus:16<br />
<br />
Started: Tue Oct 21 12:56:03 2025<br />
Stopped: Tue Oct 21 12:56:07 2025</span><br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Th finction <span style="font-style: italic;" class="mycode_i">check_cracked  </span>from <span style="font-style: italic;" class="mycode_i">hashes.c</span> sees that I have 13 keys, but returns -1, although it should return 0! Then I have a error cuMemcpyDtoHAsync()</span><br />
<span style="font-weight: bold;" class="mycode_b">[b]What am I doing wrong, how do I implement this?</span>[/b]]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b">I am developing a kernel - a modified RC4, as a result, in the kernel there are many candidates for the correct key that meet my criteria, which I want to throw out to potfile.</span><br />
<span style="font-weight: bold;" class="mycode_b">if you use the function mark_hash - some keys are not included in the potfile, so I made the following implementation:</span><br />
<br />
<br />
<span style="font-style: italic;" class="mycode_i">KERNEL_FQ void m33545_comp (KERN_ATTR_TMPS(rc4_tmp_t))</span><br />
<span style="font-style: italic;" class="mycode_i">{</span><br />
<span style="font-style: italic;" class="mycode_i">  const u64 gid = get_global_id (0);</span><br />
<span style="font-style: italic;" class="mycode_i">  const u64 lid = get_local_id (0);</span><br />
<br />
<br />
<span style="font-style: italic;" class="mycode_i">  if (gid &gt;= GID_CNT) return;</span><br />
<br />
<br />
<br />
<span style="font-style: italic;" class="mycode_i">    LOCAL_VK u32 S[64 * FIXED_LOCAL_SIZE];</span><br />
<br />
<br />
<span style="font-style: italic;" class="mycode_i">    //MY RC4_REALIZATION</span><br />
<span style="font-style: italic;" class="mycode_i">    .....</span><br />
<br />
<span style="font-style: italic;" class="mycode_i">    if ( value &gt; CRITERION ) {</span><br />
<span style="font-style: italic;" class="mycode_i">        u32 idx = hc_atomic_inc (d_return_buf);</span><br />
<span style="font-style: italic;" class="mycode_i">        printf("\nkey=%02x%x value=%d hc_atomic_idx=%d\n", pws[gid].i[1], pws[gid].i[0],value, idx);</span><br />
<br />
<span style="font-style: italic;" class="mycode_i">        plains_buf[idx].salt_pos  = SALT_POS_HOST;</span><br />
<span style="font-style: italic;" class="mycode_i">        plains_buf[idx].digest_pos = 0;  // relative</span><br />
<span style="font-style: italic;" class="mycode_i">        plains_buf[idx].hash_pos  = DIGESTS_OFFSET_HOST + 0;    // absolute</span><br />
<span style="font-style: italic;" class="mycode_i">        plains_buf[idx].gidvid    = gid;</span><br />
<span style="font-style: italic;" class="mycode_i">        plains_buf[idx].il_pos    = 0;</span><br />
<span style="font-style: italic;" class="mycode_i">        plains_buf[idx].extra1    = 0;      // unused so far</span><br />
<span style="font-style: italic;" class="mycode_i">        plains_buf[idx].extra2    = 0;      // unused so far</span><br />
<span style="font-style: italic;" class="mycode_i">    }</span><br />
<br />
<span style="font-style: italic;" class="mycode_i">}</span><br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">here is part of my output to the screen:</span><br />
<br />
<br />
<span style="font-style: italic;" class="mycode_i">[</span><span style="font-style: italic;" class="mycode_i">s]tatus [p]ause ypass [c]heckpoint [f]inish [q]uit =&gt;<br />
key=05dfb32e79 value=1064 hc_atomic_idx=0<br />
<br />
key=0316b32e79 value=504 hc_atomic_idx=1<br />
<br />
key=3594b32e79 value=520 hc_atomic_idx=2<br />
<br />
key=4c9eb32e79 value=504 hc_atomic_idx=3<br />
<br />
key=6a96b32e79 value=648 hc_atomic_idx=4<br />
<br />
key=88e5b32e79 value=528 hc_atomic_idx=6<br />
<br />
key=8fbab32e79 value=536 hc_atomic_idx=5<br />
<br />
key=a1a5b32e79 value=520 hc_atomic_idx=7<br />
<br />
key=add1b32e79 value=576 hc_atomic_idx=8<br />
<br />
key=c13ab32e79 value=552 hc_atomic_idx=9<br />
<br />
key=bae8b32e79 value=512 hc_atomic_idx=10<br />
<br />
key=f6b6b32e79 value=520 hc_atomic_idx=11<br />
<br />
key=f295b32e79 value=568 hc_atomic_idx=12<br />
<br />
-&gt;check_crack2:13<br />
cuMemcpyDtoHAsync(): invalid argument<br />
<br />
<br />
&lt;-check_crack2 return:-1<br />
Session..........: hashcat<br />
Status...........: Exhausted<br />
Hash.Mode........: 33545 (RC4_MY)<br />
Hash.Target......: xxxxxxxxxxxxxxxxxxxxxx<br />
Time.Started.....: Tue Oct 21 12:56:06 2025 (0 secs)<br />
Time.Estimated...: Tue Oct 21 12:56:06 2025 (0 secs)<br />
Kernel.Feature...: Pure Kernel<br />
Guess.Mask.......: 792eb3?b?b [5]<br />
Guess.Queue......: 1/1 (100.00%)<br />
Speed.#1.........: 11787.5 kH/s (0.00ms) @ Accel:1024 Loops:1024 Thr:32 Vec:1<br />
Recovered........: 0/1 (0.00%) Digests (total), 0/1 (0.00%) Digests (new)<br />
Progress.........: 65536/65536 (100.00%)<br />
Rejected.........: 0/65536 (0.00%)<br />
Restore.Point....: 65536/65536 (100.00%)<br />
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1024<br />
Candidate.Engine.: Device Generator<br />
Candidates.#1....: &#36;HEX[792eb3e0b8] -&gt; &#36;HEX[792eb3ffff]<br />
Hardware.Mon.#1..: Temp: 65c Fan: 70% Util:100% Core:1860MHz Mem:9251MHz Bus:16<br />
<br />
Started: Tue Oct 21 12:56:03 2025<br />
Stopped: Tue Oct 21 12:56:07 2025</span><br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Th finction <span style="font-style: italic;" class="mycode_i">check_cracked  </span>from <span style="font-style: italic;" class="mycode_i">hashes.c</span> sees that I have 13 keys, but returns -1, although it should return 0! Then I have a error cuMemcpyDtoHAsync()</span><br />
<span style="font-weight: bold;" class="mycode_b">[b]What am I doing wrong, how do I implement this?</span>[/b]]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Help setting up Hashcat please]]></title>
			<link>https://hashcat.net/forum/thread-13391.html</link>
			<pubDate>Sun, 28 Sep 2025 19:18:48 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://hashcat.net/forum/member.php?action=profile&uid=16546">kerberstui</a>]]></dc:creator>
			<guid isPermaLink="false">https://hashcat.net/forum/thread-13391.html</guid>
			<description><![CDATA[I'll be brief. I don't know anything about Hashcat. I have the hash, I know the length is 11, and I formed groups of candidate letters and numbers, Group 1 = (G1), Group 2 = (G2).So, I have G1, G2, G3, and G4, within the groups are numbers and letters, some two-digit numbers. And what I want to do is test them only in that order. G1,G4,G2,G2,G3,G1,G2,G3,G4 and G3 so you only have to test what is in the groups at that position. I know the sequence I give is ten, but remember that there are two-digit numbers,So only a two-digit number completes the password's length of 11 . Can this be achieved? Can someone help me, please?]]></description>
			<content:encoded><![CDATA[I'll be brief. I don't know anything about Hashcat. I have the hash, I know the length is 11, and I formed groups of candidate letters and numbers, Group 1 = (G1), Group 2 = (G2).So, I have G1, G2, G3, and G4, within the groups are numbers and letters, some two-digit numbers. And what I want to do is test them only in that order. G1,G4,G2,G2,G3,G1,G2,G3,G4 and G3 so you only have to test what is in the groups at that position. I know the sequence I give is ten, but remember that there are two-digit numbers,So only a two-digit number completes the password's length of 11 . Can this be achieved? Can someone help me, please?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[$wp$2y$10$]]></title>
			<link>https://hashcat.net/forum/thread-13369.html</link>
			<pubDate>Sat, 06 Sep 2025 08:50:23 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://hashcat.net/forum/member.php?action=profile&uid=16772">174region174</a>]]></dc:creator>
			<guid isPermaLink="false">https://hashcat.net/forum/thread-13369.html</guid>
			<description><![CDATA[Hashes of this format began to appear on the forums.<br />
&#36;wp&#36;2y&#36;10&#36;........................:example<br />
We managed to parse this type of hash. This is not a simple bcrypt<br />
This password is encrypted several times.<br />
The approximate encryption algorithm is as follows.<br />
bcrypt hmac-sha384 base64<br />
 Next, I'll show you how to search for it. But we need to write a module for hashcat, because our search method is very inconvenient. but it's possible.<br />
cat test.dic | ./wp-sha384-hmac.bin | ./hashcat -m 3200 -a 0  3200.hash<br />
<br />
You need to compile from the code  wp-sha384-hmac.bin <br />
gcc wp-sha384-hmac.bin.c -O3 -march=native -flto -ffast-math -funroll-loops -o wp-sha384-hmac.bin -lssl -lcrypto<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>#include &lt;stdio.h&gt;<br />
#include &lt;stdlib.h&gt;<br />
#include &lt;string.h&gt;<br />
#include &lt;ctype.h&gt;<br />
<br />
#include &lt;openssl/hmac.h&gt;<br />
#include &lt;openssl/evp.h&gt;<br />
#include &lt;openssl/buffer.h&gt;<br />
<br />
#define HMAC_KEY "wp-sha384"<br />
#define HMAC_KEY_LEN 10<br />
<br />
char *trim_whitespace(char *str) {<br />
    if (!str) return NULL;<br />
<br />
    while (isspace((unsigned char)*str)) str++;<br />
<br />
    if (*str == '&#92;0')<br />
        return str;<br />
<br />
    char *end = str + strlen(str) - 1;<br />
    while (end &gt; str &amp;&amp; isspace((unsigned char)*end)) end--;<br />
<br />
    *(end + 1) = '&#92;0';<br />
    return str;<br />
}<br />
<br />
void process_stream(FILE *fp) {<br />
    char *line = NULL;<br />
    size_t len = 0;<br />
<br />
    while (getline(&amp;line, &amp;len, fp) != -1) {<br />
        char *clean = trim_whitespace(line);<br />
        size_t linelen = strlen(clean);<br />
<br />
        unsigned char hmac[EVP_MAX_MD_SIZE];<br />
        unsigned int hmac_len = 0;<br />
<br />
        HMAC(EVP_sha384(),<br />
            HMAC_KEY, HMAC_KEY_LEN,<br />
            (unsigned char *)clean, linelen,<br />
            hmac, &amp;hmac_len);<br />
<br />
        BIO *b64 = BIO_new(BIO_f_base64());<br />
        BIO_set_flags(b64, BIO_FLAGS_BASE64_NO_NL);<br />
        BIO *bio = BIO_new(BIO_s_mem());<br />
        b64 = BIO_push(b64, bio);<br />
<br />
        BIO_write(b64, hmac, hmac_len);<br />
        BIO_flush(b64);<br />
<br />
        BUF_MEM *bptr;<br />
        BIO_get_mem_ptr(b64, &amp;bptr);<br />
        fwrite(bptr-&gt;data, 1, bptr-&gt;length, stdout);<br />
        putchar('&#92;n');<br />
<br />
        BIO_free_all(b64);<br />
    }<br />
<br />
    free(line);<br />
}<br />
<br />
int main(int argc, char *argv[]) {<br />
    if (argc &lt; 2) {<br />
        process_stream(stdin);<br />
        return 0;<br />
    }<br />
<br />
    for (int i = 1; i &lt; argc; ++i) {<br />
        if (strcmp(argv[i], "-") == 0) {<br />
            process_stream(stdin);<br />
            continue;<br />
        }<br />
<br />
        FILE *fp = fopen(argv[i], "r");<br />
        if (!fp) {<br />
            perror(argv[i]);<br />
            continue;<br />
        }<br />
<br />
        process_stream(fp);<br />
        fclose(fp);<br />
    }<br />
<br />
    return 0;<br />
}</code></div></div>If your dictionary contains the password to your hash. Then you will have to search for it again in some way in your dictionary. That's the whole problem. We need your help with the revision.<br />
If necessary, I can post a hash with a known password for your experiments in this thread.]]></description>
			<content:encoded><![CDATA[Hashes of this format began to appear on the forums.<br />
&#36;wp&#36;2y&#36;10&#36;........................:example<br />
We managed to parse this type of hash. This is not a simple bcrypt<br />
This password is encrypted several times.<br />
The approximate encryption algorithm is as follows.<br />
bcrypt hmac-sha384 base64<br />
 Next, I'll show you how to search for it. But we need to write a module for hashcat, because our search method is very inconvenient. but it's possible.<br />
cat test.dic | ./wp-sha384-hmac.bin | ./hashcat -m 3200 -a 0  3200.hash<br />
<br />
You need to compile from the code  wp-sha384-hmac.bin <br />
gcc wp-sha384-hmac.bin.c -O3 -march=native -flto -ffast-math -funroll-loops -o wp-sha384-hmac.bin -lssl -lcrypto<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>#include &lt;stdio.h&gt;<br />
#include &lt;stdlib.h&gt;<br />
#include &lt;string.h&gt;<br />
#include &lt;ctype.h&gt;<br />
<br />
#include &lt;openssl/hmac.h&gt;<br />
#include &lt;openssl/evp.h&gt;<br />
#include &lt;openssl/buffer.h&gt;<br />
<br />
#define HMAC_KEY "wp-sha384"<br />
#define HMAC_KEY_LEN 10<br />
<br />
char *trim_whitespace(char *str) {<br />
    if (!str) return NULL;<br />
<br />
    while (isspace((unsigned char)*str)) str++;<br />
<br />
    if (*str == '&#92;0')<br />
        return str;<br />
<br />
    char *end = str + strlen(str) - 1;<br />
    while (end &gt; str &amp;&amp; isspace((unsigned char)*end)) end--;<br />
<br />
    *(end + 1) = '&#92;0';<br />
    return str;<br />
}<br />
<br />
void process_stream(FILE *fp) {<br />
    char *line = NULL;<br />
    size_t len = 0;<br />
<br />
    while (getline(&amp;line, &amp;len, fp) != -1) {<br />
        char *clean = trim_whitespace(line);<br />
        size_t linelen = strlen(clean);<br />
<br />
        unsigned char hmac[EVP_MAX_MD_SIZE];<br />
        unsigned int hmac_len = 0;<br />
<br />
        HMAC(EVP_sha384(),<br />
            HMAC_KEY, HMAC_KEY_LEN,<br />
            (unsigned char *)clean, linelen,<br />
            hmac, &amp;hmac_len);<br />
<br />
        BIO *b64 = BIO_new(BIO_f_base64());<br />
        BIO_set_flags(b64, BIO_FLAGS_BASE64_NO_NL);<br />
        BIO *bio = BIO_new(BIO_s_mem());<br />
        b64 = BIO_push(b64, bio);<br />
<br />
        BIO_write(b64, hmac, hmac_len);<br />
        BIO_flush(b64);<br />
<br />
        BUF_MEM *bptr;<br />
        BIO_get_mem_ptr(b64, &amp;bptr);<br />
        fwrite(bptr-&gt;data, 1, bptr-&gt;length, stdout);<br />
        putchar('&#92;n');<br />
<br />
        BIO_free_all(b64);<br />
    }<br />
<br />
    free(line);<br />
}<br />
<br />
int main(int argc, char *argv[]) {<br />
    if (argc &lt; 2) {<br />
        process_stream(stdin);<br />
        return 0;<br />
    }<br />
<br />
    for (int i = 1; i &lt; argc; ++i) {<br />
        if (strcmp(argv[i], "-") == 0) {<br />
            process_stream(stdin);<br />
            continue;<br />
        }<br />
<br />
        FILE *fp = fopen(argv[i], "r");<br />
        if (!fp) {<br />
            perror(argv[i]);<br />
            continue;<br />
        }<br />
<br />
        process_stream(fp);<br />
        fclose(fp);<br />
    }<br />
<br />
    return 0;<br />
}</code></div></div>If your dictionary contains the password to your hash. Then you will have to search for it again in some way in your dictionary. That's the whole problem. We need your help with the revision.<br />
If necessary, I can post a hash with a known password for your experiments in this thread.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[Discussion] Ideas for (at least one/two) new rules]]></title>
			<link>https://hashcat.net/forum/thread-13360.html</link>
			<pubDate>Mon, 25 Aug 2025 10:32:49 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://hashcat.net/forum/member.php?action=profile&uid=9867">Snoopy</a>]]></dc:creator>
			<guid isPermaLink="false">https://hashcat.net/forum/thread-13360.html</guid>
			<description><![CDATA[Wasn't sure about posting it directly at github. I think gathering some ideas in the forum first is a better approach. <br />
<br />
After all these new updates coming with the release of HC 7.0, how about brainstorming for some ideas for new rules?<br />
<br />
After years of using rules, or answering questions in the forum, there are some things which pop up frequently. So here are at least one, two suggestions for rules which came to my mind<br />
<br />
TOGGLE every xth char: i know this one can be replaced by T@ and maybe can be misleading because of, start with first char of the pass or not, so it think this is not a good example, but the next one could be<br />
<br />
Title: Capitalize every first letter in a pass, resetting trigger at non letter chars like space, colons or digits etc.<br />
example: "my first pass" -&gt; " My First Pass", my1first2pass -&gt; My1First2Pass"<br />
<br />
Untitle: reverse logic from Title<br />
<br />
Most other things frequently asked would involve UTF-8 support or multibyte rules, and i think this is not possible with the actual rules engine, am i right?<br />
<br />
Like deleting given words, replacing given words, replacing single chars with words and so on.]]></description>
			<content:encoded><![CDATA[Wasn't sure about posting it directly at github. I think gathering some ideas in the forum first is a better approach. <br />
<br />
After all these new updates coming with the release of HC 7.0, how about brainstorming for some ideas for new rules?<br />
<br />
After years of using rules, or answering questions in the forum, there are some things which pop up frequently. So here are at least one, two suggestions for rules which came to my mind<br />
<br />
TOGGLE every xth char: i know this one can be replaced by T@ and maybe can be misleading because of, start with first char of the pass or not, so it think this is not a good example, but the next one could be<br />
<br />
Title: Capitalize every first letter in a pass, resetting trigger at non letter chars like space, colons or digits etc.<br />
example: "my first pass" -&gt; " My First Pass", my1first2pass -&gt; My1First2Pass"<br />
<br />
Untitle: reverse logic from Title<br />
<br />
Most other things frequently asked would involve UTF-8 support or multibyte rules, and i think this is not possible with the actual rules engine, am i right?<br />
<br />
Like deleting given words, replacing given words, replacing single chars with words and so on.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Md5+ pair sum + base62 best approach to custom mode]]></title>
			<link>https://hashcat.net/forum/thread-13348.html</link>
			<pubDate>Thu, 14 Aug 2025 07:52:10 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://hashcat.net/forum/member.php?action=profile&uid=20408">Sasquatch</a>]]></dc:creator>
			<guid isPermaLink="false">https://hashcat.net/forum/thread-13348.html</guid>
			<description><![CDATA[Hi I have a  CCTV camera I got myself locked out of. I managed to get the stored hash and  password check algorithm out thanks to power of ghira and chatgpt.<br />
<br />
It is standard MD5 followed by pair sum and base62 conversion to 8 character hash.<br />
<br />
I have opencl kernel and host code that run 360MH/s on p400. And only 5300MH/s on rtx3070.<br />
<br />
I'm thinking, since hashcat hits ~40GH/s on 3070 can I add extra steps for my use case to existing module and how much will it slow down?<br />
<br />
Or should I just get vast.ai instance with 4090? And pay for the 2 weeks it would take at 6GH/s?<br />
<br />
Here is revelant opencl rernel section:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>that fixed it put my hasrate dropped from 5130 to 5100Mh/s what are sane values of local and -D STEPS_PER_THREAD for rtx3070<br />
it was 64 and 1 for p400(giving 360Mh/s<br />
<br />
my kernel snippet for refernce: <br />
[Code]<br />
<br />
__kernel void crack_kernel(<br />
const ulong base_idx,<br />
const ulong total,<br />
const uint charset_len,<br />
const int L,<br />
__constant const uchar *charset,<br />
__constant const uchar *target8,<br />
__global uint *found_count,<br />
__global ulong *found_index,<br />
__global uchar *found_digest<br />
) {<br />
ulong gid = (ulong)get_global_id(0);<br />
ulong idx = base_idx + gid;<br />
if (idx &gt;= total) return;<br />
<br />
uchar plain[16];  <br />
index_to_plain(idx, charset, charset_len, plain, L);  <br />
<br />
uchar digest[16];  <br />
md5_singleblock(plain, L, digest);  <br />
<br />
uchar out8[8];  <br />
// unrolled loop for 8 steps:  <br />
{  <br />
    uint v0 = (uint)digest[0] + (uint)digest[1];  <br />
    uint v1 = (uint)digest[2] + (uint)digest[3];  <br />
    uint v2 = (uint)digest[4] + (uint)digest[5];  <br />
    uint v3 = (uint)digest[6] + (uint)digest[7];  <br />
    uint v4 = (uint)digest[8] + (uint)digest[9];  <br />
    uint v5 = (uint)digest[10] + (uint)digest[11];  <br />
    uint v6 = (uint)digest[12] + (uint)digest[13];  <br />
    uint v7 = (uint)digest[14] + (uint)digest[15];  <br />
<br />
      <br />
out8[0] = map62[mod62_lut[v0 &amp; 0xFFu]];  <br />
    out8[1] = map62[mod62_lut[v1 &amp; 0xFFu]];  <br />
    out8[2] = map62[mod62_lut[v2 &amp; 0xFFu]];  <br />
    out8[3] = map62[mod62_lut[v3 &amp; 0xFFu]];  <br />
    out8[4] = map62[mod62_lut[v4 &amp; 0xFFu]];  <br />
    out8[5] = map62[mod62_lut[v5 &amp; 0xFFu]];  <br />
    out8[6] = map62[mod62_lut[v6 &amp; 0xFFu]];  <br />
    out8[7] = map62[mod62_lut[v7 &amp; 0xFFu]];  <br />
}  <br />
<br />
// compare with target8 without branches  <br />
int ok = 1;  <br />
for (int i=0; i&lt;8; i++) {  <br />
    if (out8[i] != target8[i]) {  <br />
        ok = 0; break;  <br />
    }  <br />
}  <br />
<br />
if (ok) {  <br />
    uint old = atomic_inc(found_count);  <br />
    if (old == 0u) {  <br />
        found_index[0] = idx;  <br />
        for (int i=0; i&lt;16; i++) found_digest[i] = digest[i];  <br />
    }  <br />
}<br />
<br />
}</code></div></div><br />
P.s I cannot change salt for known one, as I'm getting CRC error on boot and I can't find where it's stored(possibly in  protected CPU memory)<br />
<br />
And yes I realised(now) that I can gain some speed by  calculating salt indices on in host code  and comparing integers in kernel cutting out char conversion.]]></description>
			<content:encoded><![CDATA[Hi I have a  CCTV camera I got myself locked out of. I managed to get the stored hash and  password check algorithm out thanks to power of ghira and chatgpt.<br />
<br />
It is standard MD5 followed by pair sum and base62 conversion to 8 character hash.<br />
<br />
I have opencl kernel and host code that run 360MH/s on p400. And only 5300MH/s on rtx3070.<br />
<br />
I'm thinking, since hashcat hits ~40GH/s on 3070 can I add extra steps for my use case to existing module and how much will it slow down?<br />
<br />
Or should I just get vast.ai instance with 4090? And pay for the 2 weeks it would take at 6GH/s?<br />
<br />
Here is revelant opencl rernel section:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>that fixed it put my hasrate dropped from 5130 to 5100Mh/s what are sane values of local and -D STEPS_PER_THREAD for rtx3070<br />
it was 64 and 1 for p400(giving 360Mh/s<br />
<br />
my kernel snippet for refernce: <br />
[Code]<br />
<br />
__kernel void crack_kernel(<br />
const ulong base_idx,<br />
const ulong total,<br />
const uint charset_len,<br />
const int L,<br />
__constant const uchar *charset,<br />
__constant const uchar *target8,<br />
__global uint *found_count,<br />
__global ulong *found_index,<br />
__global uchar *found_digest<br />
) {<br />
ulong gid = (ulong)get_global_id(0);<br />
ulong idx = base_idx + gid;<br />
if (idx &gt;= total) return;<br />
<br />
uchar plain[16];  <br />
index_to_plain(idx, charset, charset_len, plain, L);  <br />
<br />
uchar digest[16];  <br />
md5_singleblock(plain, L, digest);  <br />
<br />
uchar out8[8];  <br />
// unrolled loop for 8 steps:  <br />
{  <br />
    uint v0 = (uint)digest[0] + (uint)digest[1];  <br />
    uint v1 = (uint)digest[2] + (uint)digest[3];  <br />
    uint v2 = (uint)digest[4] + (uint)digest[5];  <br />
    uint v3 = (uint)digest[6] + (uint)digest[7];  <br />
    uint v4 = (uint)digest[8] + (uint)digest[9];  <br />
    uint v5 = (uint)digest[10] + (uint)digest[11];  <br />
    uint v6 = (uint)digest[12] + (uint)digest[13];  <br />
    uint v7 = (uint)digest[14] + (uint)digest[15];  <br />
<br />
      <br />
out8[0] = map62[mod62_lut[v0 &amp; 0xFFu]];  <br />
    out8[1] = map62[mod62_lut[v1 &amp; 0xFFu]];  <br />
    out8[2] = map62[mod62_lut[v2 &amp; 0xFFu]];  <br />
    out8[3] = map62[mod62_lut[v3 &amp; 0xFFu]];  <br />
    out8[4] = map62[mod62_lut[v4 &amp; 0xFFu]];  <br />
    out8[5] = map62[mod62_lut[v5 &amp; 0xFFu]];  <br />
    out8[6] = map62[mod62_lut[v6 &amp; 0xFFu]];  <br />
    out8[7] = map62[mod62_lut[v7 &amp; 0xFFu]];  <br />
}  <br />
<br />
// compare with target8 without branches  <br />
int ok = 1;  <br />
for (int i=0; i&lt;8; i++) {  <br />
    if (out8[i] != target8[i]) {  <br />
        ok = 0; break;  <br />
    }  <br />
}  <br />
<br />
if (ok) {  <br />
    uint old = atomic_inc(found_count);  <br />
    if (old == 0u) {  <br />
        found_index[0] = idx;  <br />
        for (int i=0; i&lt;16; i++) found_digest[i] = digest[i];  <br />
    }  <br />
}<br />
<br />
}</code></div></div><br />
P.s I cannot change salt for known one, as I'm getting CRC error on boot and I can't find where it's stored(possibly in  protected CPU memory)<br />
<br />
And yes I realised(now) that I can gain some speed by  calculating salt indices on in host code  and comparing integers in kernel cutting out char conversion.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Hashcat to RX480]]></title>
			<link>https://hashcat.net/forum/thread-13347.html</link>
			<pubDate>Tue, 12 Aug 2025 20:15:01 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://hashcat.net/forum/member.php?action=profile&uid=20402">Haswl</a>]]></dc:creator>
			<guid isPermaLink="false">https://hashcat.net/forum/thread-13347.html</guid>
			<description><![CDATA[Hello everyone! Can you help me with using Hashcat on RX480? I installed HIP, but it gives me the error "hipGetErrorName is missing from HIP shared library." I understand that I need an older version of the driver and(or) HIP. Please advise.]]></description>
			<content:encoded><![CDATA[Hello everyone! Can you help me with using Hashcat on RX480? I installed HIP, but it gives me the error "hipGetErrorName is missing from HIP shared library." I understand that I need an older version of the driver and(or) HIP. Please advise.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Using the Assimilation Bridge (Python Plugin) for Rapid Prototyping]]></title>
			<link>https://hashcat.net/forum/thread-13346.html</link>
			<pubDate>Mon, 11 Aug 2025 09:11:11 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://hashcat.net/forum/member.php?action=profile&uid=1">atom</a>]]></dc:creator>
			<guid isPermaLink="false">https://hashcat.net/forum/thread-13346.html</guid>
			<description><![CDATA[The Assimilation Bridge, in particular its Python plugin, is designed for rapid prototyping.<br />
<br />
I originally added this plugin for situations where I had reversed some algorithm from an application or library, but usually it was a one-hash scenario. In most cases, I would simply write a quick proof of concept in, crack the single hash, and move on. The Python plugin is for such cases where the hashes are more resistant, for example when they are not based on a weak password. In that case you might need both computational power and some smart password guessing. You may want to take advantage of hashcat features such as the rule engine, hybrid attack modes, restart functionality, or built-in multithreading.<br />
<br />
Instead of just writing your own standalone cracking tool, you can later move your PoC logic into the Python bridge and directly benefit from hashcat features.<br />
<br />
We recently participated in the <a href="https://defcon.jabbercracky.com/" target="_blank" rel="noopener" class="mycode_url">Jabbercracky password contest</a> (DEFCON 33) where we faced a set of completely unknown hashes with no context at all. <br />
<br />
When you do not know the hash type and there is no obvious signature or pattern in the hashes, a great tool to try is <a href="https://www.techsolvency.com/pub/bin/mdxfind/" target="_blank" rel="noopener" class="mycode_url">mdxfind</a>. It is multithreaded, has many useful features, and is ideal for such situations. It supports iterations, external salt or username inputs, and more. In this contest, mdxfind could identify some of the algorithms, but some others the players had to figure out manually. <br />
<br />
That is a perfect example of when the Python bridge is useful because it gives you a programming language with access to a large pool of third-party cryptographic libraries, and using a programming language gives you maximum flexibility.<br />
<br />
<span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b"><span style="color: #ff4136;" class="mycode_color">Note!!! </span></span></span>that in order to use this you need a version <span style="font-weight: bold;" class="mycode_b">higher</span> than v7.0.0. For instance new version v7.1.0 or the beta binary from <a href="https://hashcat.net/beta" target="_blank" rel="noopener" class="mycode_url">https://hashcat.net/beta</a> or by compiling from GitHub master sources.<br />
<br />
<hr class="mycode_hr" />
<br />
0. Set up the Python bridge<br />
<br />
If hashcat -b -m 73000 runs successfully, you are ready for step 1. If you have never used it before, check out the <a href="https://github.com/hashcat/hashcat/blob/master/docs/hashcat-python-plugin-quickstart.md" target="_blank" rel="noopener" class="mycode_url">Quickstart Guide</a>.<br />
<br />
1. Download the contest hash list<br />
<br />
Here is a <a href="https://hashcat.net/misc/hash_list_3.txt" target="_blank" rel="noopener" class="mycode_url">mirror</a>.<br />
<br />
2. Convert it for use with the Python bridge<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&#36; cat hash_list_3.txt | grep -v '^&#92;&#36;2a&#92;&#36;' | sed -e 's/&#36;/*/g' &gt; hashes73000.txt</code></div></div><br />
Mode 73000 expects the format HASH*SALT. In this contest there were no salts, only peppers, so we leave the salt field empty and handle the pepper in our Python code.  We skip the bcrypts intentionally. You can also implement bcrypt in the Python bridge, but since bcrypt has a recognizable signature and is supported directly with mode 3200, it is better to handle those natively.<br />
<br />
We use mode 73000 instead of 72000 for better cross-platform compatibility.<br />
<br />
3. Edit <span style="font-weight: bold;" class="mycode_b">Python/generic_hash_mp.py</span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>import sys<br />
import struct<br />
import hashlib<br />
import hcshared<br />
import hcmp<br />
import hmac<br />
<br />
# SELF TEST pair<br />
ST_HASH = "9c016f79fdcdc7422af93fcc203b0eda43278d32e3a6edd607d35c63*"<br />
ST_PASS = "Location"<br />
<br />
def calc_hash(password: bytes, salt: dict) -&gt; list:<br />
&nbsp;&nbsp;results = []<br />
<br />
&nbsp;&nbsp;# SHA2-224 (20 percent)<br />
&nbsp;&nbsp;results.append(hashlib.sha224(password).hexdigest())<br />
<br />
&nbsp;&nbsp;# SHA2-224 with constant prefix (10 percent)<br />
&nbsp;&nbsp;results.append(hashlib.sha224(b"d3fc0n" + password).hexdigest())<br />
<br />
&nbsp;&nbsp;# SHA2-224 HMAC (10 percent)<br />
&nbsp;&nbsp;results.append(hmac.new(b"DEFCON", password, hashlib.sha224).hexdigest())<br />
<br />
&nbsp;&nbsp;# SHA2-224 of SHA2-224 (15 percent total with shuck bonus)<br />
&nbsp;&nbsp;results.append(hashlib.sha224(hashlib.sha224(password).hexdigest().encode()).hexdigest())<br />
<br />
&nbsp;&nbsp;# SHA2-224 of SHA1 (15 percent total with shuck bonus)<br />
&nbsp;&nbsp;results.append(hashlib.sha224(hashlib.sha1(password).hexdigest().encode()).hexdigest())<br />
<br />
&nbsp;&nbsp;# SHA2-384 (100k Flat)<br />
&nbsp;&nbsp;results.append(hashlib.sha384(password).hexdigest())<br />
<br />
&nbsp;&nbsp;return results</code></div></div><br />
4. Run hashcat normally<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&#36; ./hashcat -m 73000 hashes73000.txt example.dict<br />
hashcat (v7.0.0-117-ge6758bf60+) starting<br />
<br />
Initializing bridges. Please be patient...<br />
Loaded python library from: /home/atom/.pyenv/versions/3.13.3/lib/libpython3.13.so<br />
<br />
Assimilation Bridge<br />
===================<br />
* Unit #01 -&gt; #01: Python Interpreter (3.13.3 (main, Jun  2 2025, 22:02:22) [GCC 13.3.0])<br />
...<br />
Hashes: 275002 digests; 275002 unique digests, 1 unique salts<br />
...<br />
2397b137125c9057e24395767580e9766a340bc13447b5dca4f240d7*:CHOCOLATE<br />
b6a567591e336b320e866187f7993de073589e8518e0b24a6902bcf9*:Learning<br />
bb838248f9023a39bfa873d982aed3260279286ba51975684c42f0ec*:Property<br />
f1cc31f19daa3f07b0278cada69ddfce3619ccbcaf33dd584739e0d8*:Universal<br />
...</code></div></div><br />
- atom]]></description>
			<content:encoded><![CDATA[The Assimilation Bridge, in particular its Python plugin, is designed for rapid prototyping.<br />
<br />
I originally added this plugin for situations where I had reversed some algorithm from an application or library, but usually it was a one-hash scenario. In most cases, I would simply write a quick proof of concept in, crack the single hash, and move on. The Python plugin is for such cases where the hashes are more resistant, for example when they are not based on a weak password. In that case you might need both computational power and some smart password guessing. You may want to take advantage of hashcat features such as the rule engine, hybrid attack modes, restart functionality, or built-in multithreading.<br />
<br />
Instead of just writing your own standalone cracking tool, you can later move your PoC logic into the Python bridge and directly benefit from hashcat features.<br />
<br />
We recently participated in the <a href="https://defcon.jabbercracky.com/" target="_blank" rel="noopener" class="mycode_url">Jabbercracky password contest</a> (DEFCON 33) where we faced a set of completely unknown hashes with no context at all. <br />
<br />
When you do not know the hash type and there is no obvious signature or pattern in the hashes, a great tool to try is <a href="https://www.techsolvency.com/pub/bin/mdxfind/" target="_blank" rel="noopener" class="mycode_url">mdxfind</a>. It is multithreaded, has many useful features, and is ideal for such situations. It supports iterations, external salt or username inputs, and more. In this contest, mdxfind could identify some of the algorithms, but some others the players had to figure out manually. <br />
<br />
That is a perfect example of when the Python bridge is useful because it gives you a programming language with access to a large pool of third-party cryptographic libraries, and using a programming language gives you maximum flexibility.<br />
<br />
<span style="text-decoration: underline;" class="mycode_u"><span style="font-weight: bold;" class="mycode_b"><span style="color: #ff4136;" class="mycode_color">Note!!! </span></span></span>that in order to use this you need a version <span style="font-weight: bold;" class="mycode_b">higher</span> than v7.0.0. For instance new version v7.1.0 or the beta binary from <a href="https://hashcat.net/beta" target="_blank" rel="noopener" class="mycode_url">https://hashcat.net/beta</a> or by compiling from GitHub master sources.<br />
<br />
<hr class="mycode_hr" />
<br />
0. Set up the Python bridge<br />
<br />
If hashcat -b -m 73000 runs successfully, you are ready for step 1. If you have never used it before, check out the <a href="https://github.com/hashcat/hashcat/blob/master/docs/hashcat-python-plugin-quickstart.md" target="_blank" rel="noopener" class="mycode_url">Quickstart Guide</a>.<br />
<br />
1. Download the contest hash list<br />
<br />
Here is a <a href="https://hashcat.net/misc/hash_list_3.txt" target="_blank" rel="noopener" class="mycode_url">mirror</a>.<br />
<br />
2. Convert it for use with the Python bridge<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&#36; cat hash_list_3.txt | grep -v '^&#92;&#36;2a&#92;&#36;' | sed -e 's/&#36;/*/g' &gt; hashes73000.txt</code></div></div><br />
Mode 73000 expects the format HASH*SALT. In this contest there were no salts, only peppers, so we leave the salt field empty and handle the pepper in our Python code.  We skip the bcrypts intentionally. You can also implement bcrypt in the Python bridge, but since bcrypt has a recognizable signature and is supported directly with mode 3200, it is better to handle those natively.<br />
<br />
We use mode 73000 instead of 72000 for better cross-platform compatibility.<br />
<br />
3. Edit <span style="font-weight: bold;" class="mycode_b">Python/generic_hash_mp.py</span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>import sys<br />
import struct<br />
import hashlib<br />
import hcshared<br />
import hcmp<br />
import hmac<br />
<br />
# SELF TEST pair<br />
ST_HASH = "9c016f79fdcdc7422af93fcc203b0eda43278d32e3a6edd607d35c63*"<br />
ST_PASS = "Location"<br />
<br />
def calc_hash(password: bytes, salt: dict) -&gt; list:<br />
&nbsp;&nbsp;results = []<br />
<br />
&nbsp;&nbsp;# SHA2-224 (20 percent)<br />
&nbsp;&nbsp;results.append(hashlib.sha224(password).hexdigest())<br />
<br />
&nbsp;&nbsp;# SHA2-224 with constant prefix (10 percent)<br />
&nbsp;&nbsp;results.append(hashlib.sha224(b"d3fc0n" + password).hexdigest())<br />
<br />
&nbsp;&nbsp;# SHA2-224 HMAC (10 percent)<br />
&nbsp;&nbsp;results.append(hmac.new(b"DEFCON", password, hashlib.sha224).hexdigest())<br />
<br />
&nbsp;&nbsp;# SHA2-224 of SHA2-224 (15 percent total with shuck bonus)<br />
&nbsp;&nbsp;results.append(hashlib.sha224(hashlib.sha224(password).hexdigest().encode()).hexdigest())<br />
<br />
&nbsp;&nbsp;# SHA2-224 of SHA1 (15 percent total with shuck bonus)<br />
&nbsp;&nbsp;results.append(hashlib.sha224(hashlib.sha1(password).hexdigest().encode()).hexdigest())<br />
<br />
&nbsp;&nbsp;# SHA2-384 (100k Flat)<br />
&nbsp;&nbsp;results.append(hashlib.sha384(password).hexdigest())<br />
<br />
&nbsp;&nbsp;return results</code></div></div><br />
4. Run hashcat normally<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>&#36; ./hashcat -m 73000 hashes73000.txt example.dict<br />
hashcat (v7.0.0-117-ge6758bf60+) starting<br />
<br />
Initializing bridges. Please be patient...<br />
Loaded python library from: /home/atom/.pyenv/versions/3.13.3/lib/libpython3.13.so<br />
<br />
Assimilation Bridge<br />
===================<br />
* Unit #01 -&gt; #01: Python Interpreter (3.13.3 (main, Jun  2 2025, 22:02:22) [GCC 13.3.0])<br />
...<br />
Hashes: 275002 digests; 275002 unique digests, 1 unique salts<br />
...<br />
2397b137125c9057e24395767580e9766a340bc13447b5dca4f240d7*:CHOCOLATE<br />
b6a567591e336b320e866187f7993de073589e8518e0b24a6902bcf9*:Learning<br />
bb838248f9023a39bfa873d982aed3260279286ba51975684c42f0ec*:Property<br />
f1cc31f19daa3f07b0278cada69ddfce3619ccbcaf33dd584739e0d8*:Universal<br />
...</code></div></div><br />
- atom]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Wrong password written to the POT file and output file]]></title>
			<link>https://hashcat.net/forum/thread-13323.html</link>
			<pubDate>Fri, 25 Jul 2025 18:06:52 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://hashcat.net/forum/member.php?action=profile&uid=53">Dr-Tibetor</a>]]></dc:creator>
			<guid isPermaLink="false">https://hashcat.net/forum/thread-13323.html</guid>
			<description><![CDATA[The following NTLM hashes have been identified by the latest version of Hashcat as the corresponding strings. All hashes is differnet and strings are identical. Probably the problem is in the file write length limit or in the processing.<br />
<br />
29c37a5bfc5bcd22f185f1dcc5abd86f:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
f4661dc96fb199341e1d170582c0d28a:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
149c937814608b36cacf0824dfa1a817:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
198ebcb6b0c4cf477410fa72dee74716:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
e8a810c553c4e247c172dca674785626:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
49a93b0ef986ab6386c93392da128654:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
0ed82038ed3ddf6874afa080ddd28943:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
1a9b93d008375fcca9bdb60a62af31a6:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
52b00e4ebb1fb9bcbd5604bac23987ba:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
64bc754c198340891a4b23ef5be23d2b:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
f16a739b1354618a9222567a308dd720:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
4e370d11be575098e9eb0ce1f06172e8:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
2e4a4d75e8c16b8f6b07c84fb83e3c8b:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
de810a323d7d5eb8ffd247fc2b1f0289:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
c983b5bd585ad803ccceaa6ebe6821fb:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
b156548bd18ea0c72dfbfd120ff66a1b:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
c207fcc5c7b2d0687cadfc67d622ec63:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
9cce330bd69c57be2798da52e3646178:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦]]></description>
			<content:encoded><![CDATA[The following NTLM hashes have been identified by the latest version of Hashcat as the corresponding strings. All hashes is differnet and strings are identical. Probably the problem is in the file write length limit or in the processing.<br />
<br />
29c37a5bfc5bcd22f185f1dcc5abd86f:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
f4661dc96fb199341e1d170582c0d28a:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
149c937814608b36cacf0824dfa1a817:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
198ebcb6b0c4cf477410fa72dee74716:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
e8a810c553c4e247c172dca674785626:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
49a93b0ef986ab6386c93392da128654:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
0ed82038ed3ddf6874afa080ddd28943:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
1a9b93d008375fcca9bdb60a62af31a6:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
52b00e4ebb1fb9bcbd5604bac23987ba:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
64bc754c198340891a4b23ef5be23d2b:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
f16a739b1354618a9222567a308dd720:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
4e370d11be575098e9eb0ce1f06172e8:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
2e4a4d75e8c16b8f6b07c84fb83e3c8b:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
de810a323d7d5eb8ffd247fc2b1f0289:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
c983b5bd585ad803ccceaa6ebe6821fb:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
b156548bd18ea0c72dfbfd120ff66a1b:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
c207fcc5c7b2d0687cadfc67d622ec63:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦<br />
9cce330bd69c57be2798da52e3646178:Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦Ð Ñ—Ð¡â€”Ð â€¦]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[New algo module]]></title>
			<link>https://hashcat.net/forum/thread-13318.html</link>
			<pubDate>Thu, 17 Jul 2025 07:08:31 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://hashcat.net/forum/member.php?action=profile&uid=20314">xray013</a>]]></dc:creator>
			<guid isPermaLink="false">https://hashcat.net/forum/thread-13318.html</guid>
			<description><![CDATA[Hello,<br />
<br />
I need new hashcat module with algo sha256(sha256(&#36;salt.&#36;pass).&#36;pass) in OPTIMIZED mode (i created pure mode, but optimized very hard for me) - so i need only m0xxxxx-a0-optimized.cl and module_0xxxxx.c files<br />
<br />
I will pay for this work.<br />
<br />
Please PM me.<span style="color: #e8eaed;" class="mycode_color"><span style="font-size: 1pt;" class="mycode_size">I will pay forI wi\\ll pay for this workыы\\\\\\\<br />
 this work</span></span>]]></description>
			<content:encoded><![CDATA[Hello,<br />
<br />
I need new hashcat module with algo sha256(sha256(&#36;salt.&#36;pass).&#36;pass) in OPTIMIZED mode (i created pure mode, but optimized very hard for me) - so i need only m0xxxxx-a0-optimized.cl and module_0xxxxx.c files<br />
<br />
I will pay for this work.<br />
<br />
Please PM me.<span style="color: #e8eaed;" class="mycode_color"><span style="font-size: 1pt;" class="mycode_size">I will pay forI wi\\ll pay for this workыы\\\\\\\<br />
 this work</span></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Alternative PBKDF1-SHA1 plugin]]></title>
			<link>https://hashcat.net/forum/thread-13315.html</link>
			<pubDate>Wed, 16 Jul 2025 19:22:59 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://hashcat.net/forum/member.php?action=profile&uid=14702">penguinkeeper</a>]]></dc:creator>
			<guid isPermaLink="false">https://hashcat.net/forum/thread-13315.html</guid>
			<description><![CDATA[Hello! For <a href="https://github.com/hashcat/hashcat/pull/4092" target="_blank" rel="noopener" class="mycode_url">this pull request</a>, adding PBKDF1-SHA1, there are 2 ways to tackle it. The faster but less stable way (exec inside), or the slower but more stable way (exec outside). In this case, I developed both but the slower but more stable way ended up being the one chosen by Atom to use in public Hashcat. To avoid developing that second plugin being a waste of time, it's being posted here so hopefully it can help someone in the future get a few more percent performance <img src="https://hashcat.net/forum/images/smilies/smile.gif" alt="Smile" title="Smile" class="smilie smilie_1" /><br />
<br />
Performance increases are not guaranteed, especially for very weak hardware and support for this plugin is *not* official, please don't make a github issue if you have issues and instead just comment here.<br />
<br />
Links:<br />
<a href="https://mega.nz/file/fQIFkLgD#3uoyDNv6dcjRjRQ3Yrrq5nvH-W-oiSeSDvhqgRGMW9M" target="_blank" rel="noopener" class="mycode_url">https://mega.nz/file/fQIFkLgD#3uoyDNv6dc...vhqgRGMW9M</a><br />
<a href="https://drive.google.com/file/d/17_S6JyOZrhuaPt-WDxtiF-Qv8DoR1Nv8/view?usp=sharing" target="_blank" rel="noopener" class="mycode_url">https://drive.google.com/file/d/17_S6JyO...sp=sharing</a>]]></description>
			<content:encoded><![CDATA[Hello! For <a href="https://github.com/hashcat/hashcat/pull/4092" target="_blank" rel="noopener" class="mycode_url">this pull request</a>, adding PBKDF1-SHA1, there are 2 ways to tackle it. The faster but less stable way (exec inside), or the slower but more stable way (exec outside). In this case, I developed both but the slower but more stable way ended up being the one chosen by Atom to use in public Hashcat. To avoid developing that second plugin being a waste of time, it's being posted here so hopefully it can help someone in the future get a few more percent performance <img src="https://hashcat.net/forum/images/smilies/smile.gif" alt="Smile" title="Smile" class="smilie smilie_1" /><br />
<br />
Performance increases are not guaranteed, especially for very weak hardware and support for this plugin is *not* official, please don't make a github issue if you have issues and instead just comment here.<br />
<br />
Links:<br />
<a href="https://mega.nz/file/fQIFkLgD#3uoyDNv6dcjRjRQ3Yrrq5nvH-W-oiSeSDvhqgRGMW9M" target="_blank" rel="noopener" class="mycode_url">https://mega.nz/file/fQIFkLgD#3uoyDNv6dc...vhqgRGMW9M</a><br />
<a href="https://drive.google.com/file/d/17_S6JyOZrhuaPt-WDxtiF-Qv8DoR1Nv8/view?usp=sharing" target="_blank" rel="noopener" class="mycode_url">https://drive.google.com/file/d/17_S6JyO...sp=sharing</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Extend ethereum wallet, PBKDF2-HMAC-SHA256 to allow arbitrary cipher length]]></title>
			<link>https://hashcat.net/forum/thread-12520.html</link>
			<pubDate>Thu, 06 Mar 2025 07:04:32 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://hashcat.net/forum/member.php?action=profile&uid=19779">bobby_newport</a>]]></dc:creator>
			<guid isPermaLink="false">https://hashcat.net/forum/thread-12520.html</guid>
			<description><![CDATA[Hi All,<br />
<br />
I am trying to develop my own module that is very similar to module 15600.  It is a crypto wallet that has a keystore very similar to Ethereum Wallet. It uses PBKDF2-HMAC-SHA256, the correct password can be confirmed by comparing a mac to a generated mac which is the keccak hash of the last 16 bytes of the derived key and cipher text.  I have tested the logic and it does work. <br />
<br />
Module 15600 expects the cipher to be 64 characters long, but the wallet I am trying to crack can be much longer. The current cipher text I have is 156 characters long. <br />
<br />
I have been going at it for several days and struggling. I have also looked at module 16300 for guidance. I am hoping to get some direction on the changes that I need to make. Within the module c file I am replacing this part<br />
<br />
<span style="color: #cccccc;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font"><span style="color: #9cdcfe;" class="mycode_color">  ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[ <span style="color: #b5cea8;" class="mycode_color">0</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[ <span style="color: #b5cea8;" class="mycode_color">8</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">16</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">24</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">32</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">40</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">48</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">56</span>]);<br />
</span></span><br />
with this part<br />
<span style="color: #cccccc;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font"><br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[ <span style="color: #b5cea8;" class="mycode_color">0</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[ <span style="color: #b5cea8;" class="mycode_color">8</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">16</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">24</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">32</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">40</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">48</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">56</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">8</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">64</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">9</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">72</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">10</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">80</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">11</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">88</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">12</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">96</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">13</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">104</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">14</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">112</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">15</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">120</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">16</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">128</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">17</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">136</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">18</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">144</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">19</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">152</span>]);</span></span><br />
<br />
<br />
With the encoder I have replaced <br />
<br />
<span style="color: #cccccc;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font"><span style="color: #569cd6;" class="mycode_color">const</span> <span style="color: #569cd6;" class="mycode_color">int</span> <span style="color: #9cdcfe;" class="mycode_color">line_len</span> <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">snprintf</span> (line_buf, line_size, <span style="color: #ce9178;" class="mycode_color">"</span><span style="color: #9cdcfe;" class="mycode_color">%s</span><span style="color: #ce9178;" class="mycode_color">*</span><span style="color: #9cdcfe;" class="mycode_color">%u</span><span style="color: #ce9178;" class="mycode_color">*</span><span style="color: #9cdcfe;" class="mycode_color">%s</span><span style="color: #ce9178;" class="mycode_color">*</span><span style="color: #9cdcfe;" class="mycode_color">%08x%08x%08x%08x%08x%08x%08x%08x</span><span style="color: #ce9178;" class="mycode_color">*</span><span style="color: #9cdcfe;" class="mycode_color">%08x%08x%08x%08x%08x%08x%08x%08x</span><span style="color: #ce9178;" class="mycode_color">"</span>,<br />
    <span style="color: #9cdcfe;" class="mycode_color">SIGNATURE_ETHEREUM_PBKDF2</span>,<br />
    <span style="color: #9cdcfe;" class="mycode_color">salt</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">salt_iter</span> <span style="color: #d4d4d4;" class="mycode_color">+</span> <span style="color: #b5cea8;" class="mycode_color">1</span>,<br />
    <span style="color: #9cdcfe;" class="mycode_color">tmp_salt</span>,<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>])<br />
  );</span></span><br />
<br />
<span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font"><span style="color: #000000;" class="mycode_color">with this part</span></span><br />
<br />
<span style="color: #cccccc;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font"><span style="color: #569cd6;" class="mycode_color">const</span> <span style="color: #569cd6;" class="mycode_color">int</span> <span style="color: #9cdcfe;" class="mycode_color">line_len</span> <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">snprintf</span> (line_buf, line_size, <span style="color: #ce9178;" class="mycode_color">"</span><span style="color: #9cdcfe;" class="mycode_color">%s</span><span style="color: #ce9178;" class="mycode_color">*</span><span style="color: #9cdcfe;" class="mycode_color">%u</span><span style="color: #ce9178;" class="mycode_color">*</span><span style="color: #9cdcfe;" class="mycode_color">%s</span><span style="color: #ce9178;" class="mycode_color">*</span><span style="color: #9cdcfe;" class="mycode_color">%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x</span><span style="color: #ce9178;" class="mycode_color">*</span><span style="color: #9cdcfe;" class="mycode_color">%08x%08x%08x%08x%08x%08x%08x%08x</span><span style="color: #ce9178;" class="mycode_color">"</span>,<br />
    <span style="color: #9cdcfe;" class="mycode_color">SIGNATURE_CRYPTO_PBKDF2</span>,<br />
    <span style="color: #9cdcfe;" class="mycode_color">salt</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">salt_iter</span> <span style="color: #d4d4d4;" class="mycode_color">+</span> <span style="color: #b5cea8;" class="mycode_color">1</span>,<br />
    <span style="color: #9cdcfe;" class="mycode_color">tmp_salt</span>,<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">8</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">9</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">10</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">11</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">12</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">13</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">14</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">15</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">16</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">17</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">18</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">19</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>])<br />
  );</span></span><br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font">In the kernel I have replaced this</span></span><br />
<br />
<span style="color: #cccccc;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font"><span style="color: #6a9955;" class="mycode_color">/**</span><br />
<span style="color: #6a9955;" class="mycode_color">   * keccak</span><br />
<span style="color: #6a9955;" class="mycode_color">   */</span><br />
  u32 <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">8</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>];<br />
  u32 <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hc_swap32_S</span> (<span style="color: #9cdcfe;" class="mycode_color">tmps</span>[gid].<span style="color: #9cdcfe;" class="mycode_color">out</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hc_swap32_S</span> (<span style="color: #9cdcfe;" class="mycode_color">tmps</span>[gid].<span style="color: #9cdcfe;" class="mycode_color">out</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hc_swap32_S</span> (<span style="color: #9cdcfe;" class="mycode_color">tmps</span>[gid].<span style="color: #9cdcfe;" class="mycode_color">out</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hc_swap32_S</span> (<span style="color: #9cdcfe;" class="mycode_color">tmps</span>[gid].<span style="color: #9cdcfe;" class="mycode_color">out</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>]);<br />
  u64 <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">25</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">0</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>], <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">1</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>], <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">2</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">3</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">4</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">5</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">6</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0x01</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">7</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">8</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">9</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">10</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">11</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">12</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">13</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">14</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">15</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">16</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">17</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">18</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">19</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">20</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">21</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">22</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">23</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">24</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;</span></span><br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font">with </span></span><br />
<br />
<span style="color: #cccccc;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font">u32 <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">20</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">8</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">8</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">9</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">9</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">10</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">10</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">11</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">11</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">12</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">12</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">13</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">13</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">14</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">14</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">15</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">15</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">16</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">16</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">17</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">17</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">18</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">18</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">19</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">19</span>];<br />
  u32 <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hc_swap32_S</span> (<span style="color: #9cdcfe;" class="mycode_color">tmps</span>[gid].<span style="color: #9cdcfe;" class="mycode_color">out</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hc_swap32_S</span> (<span style="color: #9cdcfe;" class="mycode_color">tmps</span>[gid].<span style="color: #9cdcfe;" class="mycode_color">out</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hc_swap32_S</span> (<span style="color: #9cdcfe;" class="mycode_color">tmps</span>[gid].<span style="color: #9cdcfe;" class="mycode_color">out</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hc_swap32_S</span> (<span style="color: #9cdcfe;" class="mycode_color">tmps</span>[gid].<span style="color: #9cdcfe;" class="mycode_color">out</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>]);<br />
  u64 <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">25</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">0</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>], <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">1</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>], <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">2</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">3</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">4</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">5</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">6</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">9</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">8</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">7</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">11</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">10</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">8</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">13</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">12</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">9</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">15</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">14</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">10</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">17</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">16</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">11</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">19</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">18</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">12</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0x01</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">13</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">14</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">15</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">16</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">17</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">18</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">19</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">20</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">21</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">22</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">23</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">24</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;</span></span><br />
<br />
<span style="font-family: Consolas, Courier New, monospace;" class="mycode_font"><span style="color: #000000;" class="mycode_color">I am clearly missing something as the test fails and when I ignore the test, it doesn't return the true password that is in the list. The error when running the module is </span></span><br />
<br />
<span style="font-family: Consolas, Courier New, monospace;" class="mycode_font"><span style="color: #000000;" class="mycode_color">* Device #1: ATTENTION! OpenCL kernel self-test failed.<br />
</span></span><br />
<br />
<span style="font-family: Consolas, Courier New, monospace;" class="mycode_font"><span style="color: #000000;" class="mycode_color">Your device driver installation is probably broken.</span></span><br />
<span style="font-family: Consolas, Courier New, monospace;" class="mycode_font"><span style="color: #000000;" class="mycode_color">See also: <a href="https://hashcat.net/faq/wrongdriver" target="_blank" rel="noopener" class="mycode_url">https://hashcat.net/faq/wrongdriver</a></span></span><br />
<br />
<span style="font-family: Consolas, Courier New, monospace;" class="mycode_font"><span style="color: #000000;" class="mycode_color">Aborting session due to kernel self-test failure.</span></span><br />
<br />
<span style="font-family: Consolas, Courier New, monospace;" class="mycode_font"><span style="color: #000000;" class="mycode_color">You can use --self-test-disable to override, but do not report related errors.</span></span><br />
<br />
<span style="font-family: Consolas, Courier New, monospace;" class="mycode_font"><span style="color: #000000;" class="mycode_color">Module 15600, along with many others work without an issue so I know it is a problem with my code. </span></span><br />
<br />
<br />
<span style="font-family: Consolas, Courier New, monospace;" class="mycode_font"><span style="color: #000000;" class="mycode_color">In an ideal world the module would take a range of cipher lengths, which would open it to many more wallets. Full disclosure, I have minimal understanding of the C language (mainly Python and Java). </span></span><br />
<br />
<span style="font-family: Consolas, Courier New, monospace;" class="mycode_font"><span style="color: #000000;" class="mycode_color">Any help will be appreciated.</span></span>]]></description>
			<content:encoded><![CDATA[Hi All,<br />
<br />
I am trying to develop my own module that is very similar to module 15600.  It is a crypto wallet that has a keystore very similar to Ethereum Wallet. It uses PBKDF2-HMAC-SHA256, the correct password can be confirmed by comparing a mac to a generated mac which is the keccak hash of the last 16 bytes of the derived key and cipher text.  I have tested the logic and it does work. <br />
<br />
Module 15600 expects the cipher to be 64 characters long, but the wallet I am trying to crack can be much longer. The current cipher text I have is 156 characters long. <br />
<br />
I have been going at it for several days and struggling. I have also looked at module 16300 for guidance. I am hoping to get some direction on the changes that I need to make. Within the module c file I am replacing this part<br />
<br />
<span style="color: #cccccc;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font"><span style="color: #9cdcfe;" class="mycode_color">  ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[ <span style="color: #b5cea8;" class="mycode_color">0</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[ <span style="color: #b5cea8;" class="mycode_color">8</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">16</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">24</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">32</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">40</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">48</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">56</span>]);<br />
</span></span><br />
with this part<br />
<span style="color: #cccccc;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font"><br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[ <span style="color: #b5cea8;" class="mycode_color">0</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[ <span style="color: #b5cea8;" class="mycode_color">8</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">16</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">24</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">32</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">40</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">48</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">56</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">8</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">64</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">9</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">72</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">10</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">80</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">11</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">88</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">12</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">96</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">13</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">104</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">14</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">112</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">15</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">120</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">16</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">128</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">17</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">136</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">18</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">144</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">19</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hex_to_u32</span> (<span style="color: #d4d4d4;" class="mycode_color">&amp;</span><span style="color: #9cdcfe;" class="mycode_color">ciphertext_pos</span>[<span style="color: #b5cea8;" class="mycode_color">152</span>]);</span></span><br />
<br />
<br />
With the encoder I have replaced <br />
<br />
<span style="color: #cccccc;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font"><span style="color: #569cd6;" class="mycode_color">const</span> <span style="color: #569cd6;" class="mycode_color">int</span> <span style="color: #9cdcfe;" class="mycode_color">line_len</span> <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">snprintf</span> (line_buf, line_size, <span style="color: #ce9178;" class="mycode_color">"</span><span style="color: #9cdcfe;" class="mycode_color">%s</span><span style="color: #ce9178;" class="mycode_color">*</span><span style="color: #9cdcfe;" class="mycode_color">%u</span><span style="color: #ce9178;" class="mycode_color">*</span><span style="color: #9cdcfe;" class="mycode_color">%s</span><span style="color: #ce9178;" class="mycode_color">*</span><span style="color: #9cdcfe;" class="mycode_color">%08x%08x%08x%08x%08x%08x%08x%08x</span><span style="color: #ce9178;" class="mycode_color">*</span><span style="color: #9cdcfe;" class="mycode_color">%08x%08x%08x%08x%08x%08x%08x%08x</span><span style="color: #ce9178;" class="mycode_color">"</span>,<br />
    <span style="color: #9cdcfe;" class="mycode_color">SIGNATURE_ETHEREUM_PBKDF2</span>,<br />
    <span style="color: #9cdcfe;" class="mycode_color">salt</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">salt_iter</span> <span style="color: #d4d4d4;" class="mycode_color">+</span> <span style="color: #b5cea8;" class="mycode_color">1</span>,<br />
    <span style="color: #9cdcfe;" class="mycode_color">tmp_salt</span>,<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">ethereum_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>])<br />
  );</span></span><br />
<br />
<span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font"><span style="color: #000000;" class="mycode_color">with this part</span></span><br />
<br />
<span style="color: #cccccc;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font"><span style="color: #569cd6;" class="mycode_color">const</span> <span style="color: #569cd6;" class="mycode_color">int</span> <span style="color: #9cdcfe;" class="mycode_color">line_len</span> <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">snprintf</span> (line_buf, line_size, <span style="color: #ce9178;" class="mycode_color">"</span><span style="color: #9cdcfe;" class="mycode_color">%s</span><span style="color: #ce9178;" class="mycode_color">*</span><span style="color: #9cdcfe;" class="mycode_color">%u</span><span style="color: #ce9178;" class="mycode_color">*</span><span style="color: #9cdcfe;" class="mycode_color">%s</span><span style="color: #ce9178;" class="mycode_color">*</span><span style="color: #9cdcfe;" class="mycode_color">%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x</span><span style="color: #ce9178;" class="mycode_color">*</span><span style="color: #9cdcfe;" class="mycode_color">%08x%08x%08x%08x%08x%08x%08x%08x</span><span style="color: #ce9178;" class="mycode_color">"</span>,<br />
    <span style="color: #9cdcfe;" class="mycode_color">SIGNATURE_CRYPTO_PBKDF2</span>,<br />
    <span style="color: #9cdcfe;" class="mycode_color">salt</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">salt_iter</span> <span style="color: #d4d4d4;" class="mycode_color">+</span> <span style="color: #b5cea8;" class="mycode_color">1</span>,<br />
    <span style="color: #9cdcfe;" class="mycode_color">tmp_salt</span>,<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">8</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">9</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">10</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">11</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">12</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">13</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">14</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">15</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">16</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">17</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">18</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">crypto_pbkdf2</span>-&gt;<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">19</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>]),<br />
    <span style="color: #dcdcaa;" class="mycode_color">byte_swap_32</span> (<span style="color: #9cdcfe;" class="mycode_color">digest</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>])<br />
  );</span></span><br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font">In the kernel I have replaced this</span></span><br />
<br />
<span style="color: #cccccc;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font"><span style="color: #6a9955;" class="mycode_color">/**</span><br />
<span style="color: #6a9955;" class="mycode_color">   * keccak</span><br />
<span style="color: #6a9955;" class="mycode_color">   */</span><br />
  u32 <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">8</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>];<br />
  u32 <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hc_swap32_S</span> (<span style="color: #9cdcfe;" class="mycode_color">tmps</span>[gid].<span style="color: #9cdcfe;" class="mycode_color">out</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hc_swap32_S</span> (<span style="color: #9cdcfe;" class="mycode_color">tmps</span>[gid].<span style="color: #9cdcfe;" class="mycode_color">out</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hc_swap32_S</span> (<span style="color: #9cdcfe;" class="mycode_color">tmps</span>[gid].<span style="color: #9cdcfe;" class="mycode_color">out</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hc_swap32_S</span> (<span style="color: #9cdcfe;" class="mycode_color">tmps</span>[gid].<span style="color: #9cdcfe;" class="mycode_color">out</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>]);<br />
  u64 <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">25</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">0</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>], <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">1</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>], <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">2</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">3</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">4</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">5</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">6</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0x01</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">7</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">8</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">9</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">10</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">11</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">12</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">13</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">14</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">15</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">16</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">17</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">18</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">19</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">20</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">21</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">22</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">23</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">24</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;</span></span><br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font">with </span></span><br />
<br />
<span style="color: #cccccc;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font">u32 <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">20</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">8</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">8</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">9</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">9</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">10</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">10</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">11</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">11</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">12</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">12</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">13</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">13</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">14</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">14</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">15</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">15</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">16</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">16</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">17</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">17</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">18</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">18</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">19</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #9cdcfe;" class="mycode_color">esalt_bufs</span>[DIGESTS_OFFSET_HOST].<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">19</span>];<br />
  u32 <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hc_swap32_S</span> (<span style="color: #9cdcfe;" class="mycode_color">tmps</span>[gid].<span style="color: #9cdcfe;" class="mycode_color">out</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hc_swap32_S</span> (<span style="color: #9cdcfe;" class="mycode_color">tmps</span>[gid].<span style="color: #9cdcfe;" class="mycode_color">out</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hc_swap32_S</span> (<span style="color: #9cdcfe;" class="mycode_color">tmps</span>[gid].<span style="color: #9cdcfe;" class="mycode_color">out</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hc_swap32_S</span> (<span style="color: #9cdcfe;" class="mycode_color">tmps</span>[gid].<span style="color: #9cdcfe;" class="mycode_color">out</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>]);<br />
  u64 <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">25</span>];<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">0</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>], <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">1</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>], <span style="color: #9cdcfe;" class="mycode_color">key</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">2</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">1</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">0</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">3</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">3</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">2</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">4</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">5</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">4</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">5</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">7</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">6</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">6</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">9</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">8</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">7</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">11</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">10</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">8</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">13</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">12</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[ <span style="color: #b5cea8;" class="mycode_color">9</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">15</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">14</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">10</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">17</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">16</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">11</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #dcdcaa;" class="mycode_color">hl32_to_64_S</span> (<span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">19</span>], <span style="color: #9cdcfe;" class="mycode_color">ciphertext</span>[<span style="color: #b5cea8;" class="mycode_color">18</span>]);<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">12</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0x01</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">13</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">14</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">15</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">16</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">17</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">18</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">19</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">20</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">21</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">22</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">23</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;<br />
  <span style="color: #9cdcfe;" class="mycode_color">st</span>[<span style="color: #b5cea8;" class="mycode_color">24</span>] <span style="color: #d4d4d4;" class="mycode_color">=</span> <span style="color: #b5cea8;" class="mycode_color">0</span>;</span></span><br />
<br />
<span style="font-family: Consolas, Courier New, monospace;" class="mycode_font"><span style="color: #000000;" class="mycode_color">I am clearly missing something as the test fails and when I ignore the test, it doesn't return the true password that is in the list. The error when running the module is </span></span><br />
<br />
<span style="font-family: Consolas, Courier New, monospace;" class="mycode_font"><span style="color: #000000;" class="mycode_color">* Device #1: ATTENTION! OpenCL kernel self-test failed.<br />
</span></span><br />
<br />
<span style="font-family: Consolas, Courier New, monospace;" class="mycode_font"><span style="color: #000000;" class="mycode_color">Your device driver installation is probably broken.</span></span><br />
<span style="font-family: Consolas, Courier New, monospace;" class="mycode_font"><span style="color: #000000;" class="mycode_color">See also: <a href="https://hashcat.net/faq/wrongdriver" target="_blank" rel="noopener" class="mycode_url">https://hashcat.net/faq/wrongdriver</a></span></span><br />
<br />
<span style="font-family: Consolas, Courier New, monospace;" class="mycode_font"><span style="color: #000000;" class="mycode_color">Aborting session due to kernel self-test failure.</span></span><br />
<br />
<span style="font-family: Consolas, Courier New, monospace;" class="mycode_font"><span style="color: #000000;" class="mycode_color">You can use --self-test-disable to override, but do not report related errors.</span></span><br />
<br />
<span style="font-family: Consolas, Courier New, monospace;" class="mycode_font"><span style="color: #000000;" class="mycode_color">Module 15600, along with many others work without an issue so I know it is a problem with my code. </span></span><br />
<br />
<br />
<span style="font-family: Consolas, Courier New, monospace;" class="mycode_font"><span style="color: #000000;" class="mycode_color">In an ideal world the module would take a range of cipher lengths, which would open it to many more wallets. Full disclosure, I have minimal understanding of the C language (mainly Python and Java). </span></span><br />
<br />
<span style="font-family: Consolas, Courier New, monospace;" class="mycode_font"><span style="color: #000000;" class="mycode_color">Any help will be appreciated.</span></span>]]></content:encoded>
		</item>
	</channel>
</rss>