I workarounded that by changing whrpool.cpp:612:
Line:
digest[i] = s[i] = block[i] ^ (k[i] = digest[i]);
To:
#if defined (__SUNPRO_CC)
word64 block_i = 0;
memcpy(&block_i, &block[i], sizeof(block_i));
digest[i] = s[i] = block_i ^ (k[i] = digest[i]);
#else
digest[i] = s[i] = block[i] ^ (k[i] = digest[i]);
#endif
Now it fails here:
Testing MAC algorithm VMAC(AES)-64.
....signal BUS (invalid address alignment) in
CryptoPP::VMAC_Base::VHASH_Update_Template<false> at line 596 in file
"vmac.cpp"
596 INNER_LOOP_ITERATION(0);^M
(dbx) where
=>[1] CryptoPP::VMAC_Base::VHASH_Update_Template<false>(this = 0x101167a10,
data = 0xffffffff7fffa57c, blocksRemainingInWord64 = 304U), line 596 in
"vmac.cpp"
[2] CryptoPP::VMAC_Base::VHASH_Update(this = 0x101167a10, data =
0xffffffff7fffa57c, blocksRemainingInWord64 = 304U), line 817 in "vmac.cpp"
[3] CryptoPP::VMAC_Base::HashMultipleBlocks(this = 0x101167a10, data =
0xffffffff7fffa57c, length = 2543U), line 824 in "vmac.cpp"
[4] CryptoPP::IteratedHashBase<unsigned
long,CryptoPP::MessageAuthenticationCode>::Update(this = 0x101167a10, input
= 0xffffffff7fffa57c
"abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcab"
... use -L option to see the whole string , len = 2543U), line 57 in
"iterhash.cpp"
[5] CryptoPP::HashVerificationFilter::NextPutMultiple(this =
0xffffffff7fffba20, inString = 0xffffffff7fffa576
"abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcab"
... use -L option to see the whole string , length = 2549U), line 837 in
"filters.cpp"
[6] CryptoPP::FilterWithBufferedInput::NextPutMaybeModifiable(this =
0xffffffff7fffba20, inString = 0xffffffff7fffa576
"abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcab"
... use -L option to see the whole string , length = 2549U, modifiable =
false), line 397 in "filters.h"
[7] CryptoPP::FilterWithBufferedInput::PutMaybeModifiable(this =
0xffffffff7fffba20, inString = 0xffffffff7fffa576
"abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcab"
... use -L option to see the whole string , length = 2549U, messageEnd = 0,
blocking = true, modifiable = false), line 387 in "filters.cpp"
[8] CryptoPP::FilterWithBufferedInput::Put2(this = 0xffffffff7fffba20,
inString = 0xffffffff7fffa576
"abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcab"
... use -L option to see the whole string , length = 2549U, messageEnd = 0,
blocking = true), line 337 in "filters.h"
[9] CryptoPP::BufferedTransformation::ChannelPut2(this =
0xffffffff7fffba20, channel = CLASS, begin = 0xffffffff7fffa576
"abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcab"
... use -L option to see the whole string , length = 2549U, messageEnd = 0,
blocking = true), line 441 in "cryptlib.cpp"
[10] CryptoPP::BufferedTransformation::ChannelPut(this =
0xffffffff7fffba20, channel = CLASS, inString = 0xffffffff7fffa576
"abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcab"
... use -L option to see the whole string , length = 2549U, blocking =
true), line 1856 in "cryptlib.h"
[11] CryptoPP::Test::RandomizedTransfer(source = CLASS, target = CLASS,
finish = false, channel = CLASS), line 93 in "datatest.cpp"
[12] CryptoPP::Test::PutDecodedDatumInto(data = CLASS, name = 0x100bccca0
"Message", target = CLASS), line 139 in "datatest.cpp"
[13] CryptoPP::Test::TestDigestOrMAC(v = CLASS, testDigest = false), line
606 in "datatest.cpp"
[14] CryptoPP::Test::TestDataFile(filename = CLASS, overrideParameters =
CLASS, totalTests = 4U, failedTests = 0), line 807 in "datatest.cpp"
[15] CryptoPP::Test::RunTestDataFile(filename = 0x100acd7a7
"TestVectors/vmac.txt", overrideParameters = CLASS, thorough = true), line
846 in "datatest.cpp"
[16] CryptoPP::Test::ValidateVMAC(), line 2632 in "validat1.cpp"
[17] CryptoPP::Test::ValidateAll(thorough = false), line 152 in
"validat1.cpp"
[18] Validate(alg = 0, thorough = false, seedInput = (nil)), line 916 in
"test.cpp"
[19] main(argc = 2, argv = 0xffffffff7ffff3f8), line 406 in "test.cpp"
(dbx)
--
--
You received this message because you are subscribed to the "Crypto++ Users"
Google Group.
To unsubscribe, send an email to [email protected].
More information about Crypto++ and this group is available at
http://www.cryptopp.com.
---
You received this message because you are subscribed to the Google Groups
"Crypto++ Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.