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 cryptopp-users-unsubscr...@googlegroups.com.
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 cryptopp-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to