On 2 January 2013 22:52, Marijn Kruisselbrink <[email protected]> wrote: > On Wed, Jan 2, 2013 at 1:26 PM, Jaroslaw Staniek <[email protected]> wrote: >> >> Hello Marijn, >> There are impementation-dependent casts from uchar to char: > > Ah yes, that is indeed not good. > >> Since this is your code, could you point me what are these values? > > I assume I copied these values from whatever document documents the > encryption ms office uses... Not sure what the nicest way is to hardcode > binary data in c++ source code... "\xfe\xa7\xd2\x76\x3b\x4b\x9e\x79" might > work, but has the downside that there is a trailing 0 byte that should not > be included in the qbytearray. Signed char constants seem ugly, since > QByteArray expects regular char, not signed char (although I guess it would > be safe, since the signed->unsigned underflowing conversion is defined > unlike this unsigned->signed overflow).
It's implementaton defined: http://c0x.coding-guidelines.com/6.4.4.4.html#891 How about this, similarly safe only when sizeof(char)==1 but warnings disappear: - const char blockKeyData1[] = {0xfe, 0xa7, 0xd2, 0x76, 0x3b, 0x4b, 0x9e, 0x79}; - QByteArray blockKey1(blockKeyData1, sizeof(blockKeyData1)); + const char blockKeyData1[] = "\xfe\xa7\xd2\x76\x3b\x4b\x9e\x79"; + QByteArray blockKey1(blockKeyData1, sizeof(blockKeyData1) - sizeof(char)); -- regards / pozdrawiam, Jaroslaw Staniek Kexi & Calligra & KDE | http://calligra.org/kexi | http://kde.org Qt Certified Specialist | http://qt-project.org http://www.linkedin.com/in/jstaniek _______________________________________________ calligra-devel mailing list [email protected] https://mail.kde.org/mailman/listinfo/calligra-devel
