thank you very much! This also works for the current ms compiler. I will 
use it as temporary fix.

Am Mittwoch, 5. Dezember 2018 12:46:50 UTC+1 schrieb Jeffrey Walton:
>
>
>
> On Monday, December 3, 2018 at 6:13:40 PM UTC-5, Jeffrey Walton wrote:
>>
>>
>> On Monday, December 3, 2018 at 11:58:54 AM UTC-5, [email protected] 
>> wrote:
>>>
>>> Hi,
>>> when decrypting using pipelines I would normally do something like:
>>>
>>> StringSource ss(cipher_hex, true, new HexDecoder(new 
>>> StreamTransformationFilter(dec, new StringSink(recover))));
>>>
>>> Now i ran into a problem using the Panama Stream Cipher:
>>>
>>>     AutoSeededRandomPool prng;
>>>     std::string plain("High-school students – who have been protesting 
>>> against changes to colleges and the university system – also seized on the 
>>> mood of protest and stepped up their blockades.");
>>>     std::string cipher_hex, recover1, recover2, cipher_bin;
>>>
>>>     SecByteBlock key(32), iv(32);
>>>     prng.GenerateBlock(key, key.size());
>>>     prng.GenerateBlock(iv, iv.size());
>>>
>>>     PanamaCipher<LittleEndian>::Encryption enc;
>>>     enc.SetKeyWithIV(key, key.size(), iv, iv.size());
>>>     PanamaCipher<LittleEndian>::Decryption dec;
>>>     dec.SetKeyWithIV(key, key.size(), iv, iv.size());
>>>
>>>     StringSource (plain, true, new StreamTransformationFilter(enc, new 
>>> HexEncoder(new StringSink(cipher_hex))));
>>>
>>>     // works fine, recover1 = plain
>>>     StringSource (cipher_hex, true, new HexDecoder(new StringSink(
>>> cipher_bin)));
>>>     StringSource (cipher_bin, true, new StreamTransformationFilter(dec, 
>>> new StringSink(recover1)));
>>>
>>>     dec.Resynchronize(iv, iv.size());
>>>
>>>     // does not work, recover2 = "High-school students – who have been 
>>> protesting against changes –Ö)‘à« ç›áS` ¥¨~]Šm Q­ÿö:Û (...) "
>>>     StringSource (cipher_hex, true, new HexDecoder(new 
>>> StreamTransformationFilter(dec, new StringSink(recover2))));
>>>
>>> Is this expected behaviour? Is it not possible to use a Decoder inside 
>>> the decryption pipeline of a stream cipher?
>>>
>>
>> No, its not expected behavior.
>>
>> I can duplicate it with GCC 8.2.1 on Fedora 29. Clang 6.0.1 is OK on 
>> Fedora 29.
>>
>> GCC 6 and Clang 6 are OK on OS X.
>>
>> Let me see if I can find a workaround in the code.
>>
>
> I'm still looking for a solution.
>
> The unusual thing I'm seeing is, it is happening at character 70. I would 
> expect something unusual to happen on a simd-word or block boundary.
>
>    $ echo 'Two: High-school students – who have been protesting against 
> change' | wc -c
>    70
>
> For the moment you can work around the issue by opening panama.h, and 
> defining CRYPTOPP_DISABLE_PANAMA_ASM. It is a safety for X32 and Clang, but 
> it works for GCC as well.
>
> Jeff
>

-- 
You received this message because you are subscribed to "Crypto++ Users". More 
information about Crypto++ and this group is available at 
http://www.cryptopp.com and 
http://groups.google.com/forum/#!forum/cryptopp-users.
--- 
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.

Reply via email to