<feed xmlns='http://www.w3.org/2005/Atom'>
<title>monero_c.git/patches, branch v0.18.3.3-RC40</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git-private.cyanek.com/monero_c.git/atom?h=v0.18.3.3-RC40</id>
<link rel='self' href='https://git-private.cyanek.com/monero_c.git/atom?h=v0.18.3.3-RC40'/>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/'/>
<updated>2024-04-26T06:15:47+00:00</updated>
<entry>
<title>fix darwin cross compilation build</title>
<updated>2024-04-26T06:15:47+00:00</updated>
<author>
<name>Czarek Nakamoto</name>
<email>cyjan@mrcyjanek.net</email>
</author>
<published>2024-04-26T06:15:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/commit/?id=62d5d5d393105ab0b031a27c8f923595ce508c58'/>
<id>urn:sha1:62d5d5d393105ab0b031a27c8f923595ce508c58</id>
<content type='text'>
</content>
</entry>
<entry>
<title>-fPIC</title>
<updated>2024-04-25T17:17:09+00:00</updated>
<author>
<name>Czarek Nakamoto</name>
<email>cyjan@mrcyjanek.net</email>
</author>
<published>2024-04-25T17:17:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/commit/?id=bc0705e5d924c0189f3dea338bcb50d70a32a8fd'/>
<id>urn:sha1:bc0705e5d924c0189f3dea338bcb50d70a32a8fd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix build issues with wownero-seed</title>
<updated>2024-04-25T16:45:38+00:00</updated>
<author>
<name>Czarek Nakamoto</name>
<email>cyjan@mrcyjanek.net</email>
</author>
<published>2024-04-25T16:45:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/commit/?id=1f2656712b95cf105aa4e70c6857006752312bc0'/>
<id>urn:sha1:1f2656712b95cf105aa4e70c6857006752312bc0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix wownero build in contrib/depends system</title>
<updated>2024-04-25T12:36:57+00:00</updated>
<author>
<name>Czarek Nakamoto</name>
<email>cyjan@mrcyjanek.net</email>
</author>
<published>2024-04-25T12:11:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/commit/?id=c8a28fae5e50017606623d4962d3a527ee775c64'/>
<id>urn:sha1:c8a28fae5e50017606623d4962d3a527ee775c64</id>
<content type='text'>
</content>
</entry>
<entry>
<title>wownero-seed support</title>
<updated>2024-04-25T08:07:36+00:00</updated>
<author>
<name>Czarek Nakamoto</name>
<email>cyjan@mrcyjanek.net</email>
</author>
<published>2024-04-25T08:07:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/commit/?id=b7eab542df8e5be2cdc2180dba2dfedc66f07a14'/>
<id>urn:sha1:b7eab542df8e5be2cdc2180dba2dfedc66f07a14</id>
<content type='text'>
</content>
</entry>
<entry>
<title>add missing functionality from for cake's polyseed implementation</title>
<updated>2024-04-22T10:49:17+00:00</updated>
<author>
<name>Czarek Nakamoto</name>
<email>cyjan@mrcyjanek.net</email>
</author>
<published>2024-04-22T10:49:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/commit/?id=7e49b4ad69e6e66696f5ce38ff4f1bc2ffe169cd'/>
<id>urn:sha1:7e49b4ad69e6e66696f5ce38ff4f1bc2ffe169cd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>update polyseed commit</title>
<updated>2024-04-22T07:33:21+00:00</updated>
<author>
<name>Czarek Nakamoto</name>
<email>cyjan@mrcyjanek.net</email>
</author>
<published>2024-04-22T07:33:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/commit/?id=90658235f6ff166e8252dbb17e798c73c9d77ac2'/>
<id>urn:sha1:90658235f6ff166e8252dbb17e798c73c9d77ac2</id>
<content type='text'>
change POLYSEED_COIN to wownero in the fork
update wownero patches
</content>
</entry>
<entry>
<title>fix regarding the issues raised during security audit</title>
<updated>2024-04-19T14:37:42+00:00</updated>
<author>
<name>Czarek Nakamoto</name>
<email>cyjan@mrcyjanek.net</email>
</author>
<published>2024-04-19T14:37:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/commit/?id=22f6fb4b63b96fcd9371d019fa323efcd1da1eef'/>
<id>urn:sha1:22f6fb4b63b96fcd9371d019fa323efcd1da1eef</id>
<content type='text'>
In the polyseed-examples repository, the `utf8_nfc` and `utf8_nfkd` functions will never return a value exceeding `POLYSEED_STR_SIZE - 1`
In your code, the utf8_norm function has variable return behavior that seems odd
In case of a normalization error, the underlying normalizer will return a negative value, at which point your function just returns POLYSEED_STR_SIZE (this is unclear)
In case the buffer isn't large enough, the normalizer will return the required buffer size but have undefined internal behavior, at which point your function returns a value exceeding POLYSEED_STR_SIZE
Otherwise, it uses the normalizer's return value (indicating the written size) to continue with re-encoding

tobtoht: Czarek Nakamoto: polyseed asserts that the return value &lt; POLYSEED_STR_SIZE, so if normalization fails the program crashes..
&gt; I think my idea was to have have polyseed check the return value and return an error code instead of asserting, which would in turn throw the "Unicode normalization failed" error
&gt; I'll upstream that. In the meantime you can replace the injected function with
```cpp
    inline size_t utf8_norm(const char* str, polyseed_str norm, utf8proc_option_t options) {
      utf8proc_int32_t buffer[POLYSEED_STR_SIZE];
      utf8proc_ssize_t result;

      result = utf8proc_decompose(reinterpret_cast&lt;const uint8_t*&gt;(str), 0, buffer, POLYSEED_STR_SIZE, options);
      if (result &lt; 0 || result &gt; (POLYSEED_STR_SIZE - 1)) {
        throw std::runtime_error("Unicode normalization failed");
      }

      result = utf8proc_reencode(buffer, result, options);
      if (result &lt; 0 || result &gt; POLYSEED_STR_SIZE) {
        throw std::runtime_error("Unicode normalization failed");
      }

      strcpy(norm, reinterpret_cast&lt;const char*&gt;(buffer));
      sodium_memzero(buffer, sizeof(buffer));
      return result;
    }
```
</content>
</entry>
<entry>
<title>polyseed fix</title>
<updated>2024-04-15T14:17:54+00:00</updated>
<author>
<name>Czarek Nakamoto</name>
<email>cyjan@mrcyjanek.net</email>
</author>
<published>2024-04-15T14:14:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/commit/?id=1b58a960da7040d17fce1e374d05ffc14947afec'/>
<id>urn:sha1:1b58a960da7040d17fce1e374d05ffc14947afec</id>
<content type='text'>
tobtoht:
Since only the composed languages are broken, it could also be that canonical composition is producing weird output. Try dumping whatever seed string is being fed to polyseed_decode to hex and we should be able to tell.
Or try removing UTF8PROC_LUMP from utf8_nfc
</content>
</entry>
<entry>
<title>credit tobtoht</title>
<updated>2024-04-12T09:50:32+00:00</updated>
<author>
<name>Czarek Nakamoto</name>
<email>cyjan@mrcyjanek.net</email>
</author>
<published>2024-04-12T09:50:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git-private.cyanek.com/monero_c.git/commit/?id=f5a6dbdd8ef45493a24c1a6130ad4168ca1dddaf'/>
<id>urn:sha1:f5a6dbdd8ef45493a24c1a6130ad4168ca1dddaf</id>
<content type='text'>
</content>
</entry>
</feed>
