<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ouroboros/src/lib/hash.c, branch 0.24.0</title>
<subtitle>Ouroboros main repository</subtitle>
<id>https://ouroboros.rocks/cgit/ouroboros/atom?h=0.24.0</id>
<link rel='self' href='https://ouroboros.rocks/cgit/ouroboros/atom?h=0.24.0'/>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/'/>
<updated>2026-06-29T06:32:59+00:00</updated>
<entry>
<title>lib: Add MurmurHash3 hash_mix64 for hash tables</title>
<updated>2026-06-29T06:32:59+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2026-06-21T10:38:06+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=b46359c11b879d610997eb1e9069e943e19c4244'/>
<id>urn:sha1:b46359c11b879d610997eb1e9069e943e19c4244</id>
<content type='text'>
Adds a (non-cryptographic) MurmurHash3 fmix64 finalizer for hashing an
integer key to a table index, replacing the MD5-based bucket hashing
in the pft.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>lib: Fix missing newlines in hash.c</title>
<updated>2026-06-01T05:43:48+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2026-05-30T10:33:26+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=8ca71e4d4b62c05110a73c20a6aa28fa86a6fa53'/>
<id>urn:sha1:8ca71e4d4b62c05110a73c20a6aa28fa86a6fa53</id>
<content type='text'>
Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>lib: Fix mixed declarations in hash.c</title>
<updated>2026-05-27T13:54:57+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2026-05-24T08:21:16+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=8ee68491daad630f5cd9168852f974633ce5ffd4'/>
<id>urn:sha1:8ee68491daad630f5cd9168852f974633ce5ffd4</id>
<content type='text'>
The contexts are not declared at the top of the function anymore after
addition of the CRC8/CRC16 variants (no implementation in libgcrypt).

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>lib: Add CRC-8 and CRC-16 checksums</title>
<updated>2026-05-06T07:04:48+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2026-04-26T05:38:43+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=964c26eb326dc26c032a3ccba10cb6d376bb3cf4'/>
<id>urn:sha1:964c26eb326dc26c032a3ccba10cb6d376bb3cf4</id>
<content type='text'>
These checksum will be handy for header checksums.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>lib: Add CRC-64/NVMe checksum</title>
<updated>2026-05-06T07:04:41+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2026-04-25T20:46:05+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=20d4a472800cbc9338f0c6c9c3dfce8eb13663c7'/>
<id>urn:sha1:20d4a472800cbc9338f0c6c9c3dfce8eb13663c7</id>
<content type='text'>
Add CRC-64/NVMe implementation with compile-time hardware backend
selection:

  x86 PCLMUL+SSE4.1 fold-by-16 (HAVE_PCLMUL)
  aarch64 PMULL fold-by-16 when (HAVE_PMULL)

and a byte-table fallback.

It's added as HASH_CRC64 to enum hash_algo (in the internal-use-only
section after HASH_MD5). Both mem_hash() and hash_len() early-return
for HASH_CRC64 because libgcrypt has no CRC-64/NVMe.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>build: Update copyright to 2026</title>
<updated>2026-02-18T06:54:56+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2026-02-15T09:21:02+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=0d72b59c2964208ea34ce2322978344d7ff1a223'/>
<id>urn:sha1:0d72b59c2964208ea34ce2322978344d7ff1a223</id>
<content type='text'>
Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>lib: Fix CRC32 hashing</title>
<updated>2024-02-19T15:06:34+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2024-02-19T15:05:59+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=c58cc09cf50a18058efb59e1b4fb73ab1e3a45a2'/>
<id>urn:sha1:c58cc09cf50a18058efb59e1b4fb73ab1e3a45a2</id>
<content type='text'>
I assumed that all hashes were stored in Big Endian, but apparently
the CRC32 was still in machine endianness when calculated by the
rhash implementation. Fixed and updated hash tests a bit.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>build: Update licenses to 2024</title>
<updated>2024-01-13T09:20:14+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2024-01-05T08:07:30+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=8742a31bf672c5bc087601ec39ab1feb206d2446'/>
<id>urn:sha1:8742a31bf672c5bc087601ec39ab1feb206d2446</id>
<content type='text'>
Slow but steady.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>lib: Refactor hash internals</title>
<updated>2023-02-23T13:01:00+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2023-02-19T12:18:52+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=59703c95fb529386574a334c9cff7cd5d4f16255'/>
<id>urn:sha1:59703c95fb529386574a334c9cff7cd5d4f16255</id>
<content type='text'>
The internal hash enum now matches the public one w.r.t. directory
hash policies. This removes some unnecessary conversion.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
<entry>
<title>build: Update copyright to 2023</title>
<updated>2023-02-13T20:10:10+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2023-02-09T16:38:30+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=c3814fa77eb7afbe6e798ded0fdff2df74ad8642'/>
<id>urn:sha1:c3814fa77eb7afbe6e798ded0fdff2df74ad8642</id>
<content type='text'>
2022 was a rather slow year...

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
</feed>
