<br><br><div class="gmail_quote">On Wed, Jan 2, 2013 at 2:50 PM, Jaroslaw Staniek <span dir="ltr"><<a href="mailto:staniek@kde.org" target="_blank">staniek@kde.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">On 2 January 2013 22:52, Marijn Kruisselbrink <<a href="mailto:mkruisselbrink@kde.org">mkruisselbrink@kde.org</a>> wrote:<br>
> On Wed, Jan 2, 2013 at 1:26 PM, Jaroslaw Staniek <<a href="mailto:staniek@kde.org">staniek@kde.org</a>> wrote:<br>
>><br>
>> Hello Marijn,<br>
>> There are impementation-dependent casts from uchar to char:<br>
><br>
> Ah yes, that is indeed not good.<br>
><br>
>> Since this is your code, could you point me what are these values?<br>
><br>
> I assume I copied these values from whatever document documents the<br>
> encryption ms office uses... Not sure what the nicest way is to hardcode<br>
> binary data in c++ source code... "\xfe\xa7\xd2\x76\x3b\x4b\x9e\x79" might<br>
> work, but has the downside that there is a trailing 0 byte that should not<br>
> be included in the qbytearray. Signed char constants seem ugly, since<br>
> QByteArray expects regular char, not signed char (although I guess it would<br>
> be safe, since the signed->unsigned underflowing conversion is defined<br>
> unlike this unsigned->signed overflow).<br>
<br>
</div></div>It's implementaton defined: <a href="http://c0x.coding-guidelines.com/6.4.4.4.html#891" target="_blank">http://c0x.coding-guidelines.com/6.4.4.4.html#891</a><br>
<br>
How about this, similarly safe only when sizeof(char)==1 but warnings disappear:<br></blockquote><div>sizeof(char) is always 1, so yes, that looks good to me (if you replace sizeof(char) with 1).</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
-            const char blockKeyData1[] = {0xfe, 0xa7, 0xd2, 0x76,<br>
0x3b, 0x4b, 0x9e, 0x79};<br>
-            QByteArray blockKey1(blockKeyData1, sizeof(blockKeyData1));<br>
+            const char blockKeyData1[] = "\xfe\xa7\xd2\x76\x3b\x4b\x9e\x79";<br>
+            QByteArray blockKey1(blockKeyData1, sizeof(blockKeyData1)<br>
- sizeof(char));<br>
<div class="HOEnZb"><div class="h5"><br>
--<br>
regards / pozdrawiam, Jaroslaw Staniek<br>
 Kexi & Calligra & KDE | <a href="http://calligra.org/kexi" target="_blank">http://calligra.org/kexi</a> | <a href="http://kde.org" target="_blank">http://kde.org</a><br>
 Qt Certified Specialist | <a href="http://qt-project.org" target="_blank">http://qt-project.org</a><br>
 <a href="http://www.linkedin.com/in/jstaniek" target="_blank">http://www.linkedin.com/in/jstaniek</a><br>
</div></div></blockquote></div><br>