Padding not removed after decryption (Twofish)

View: New views
3 Messages — Rating Filter:   Alert me  

Padding not removed after decryption (Twofish)

by rajkosto-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


Hello, i use crypto++ for encrypting/decrypting with Twofish.
The problem i have is, that after encrypting data, then decrypting
that exact data, the padding remains.
This is how i encrypt and decrypt

string input = { some hex bytes };

CryptoPP::CBC_Mode<CryptoPP::Twofish>::Encryption TFEncryptGTC;

//Set IV
TFEncryptGTC.Resynchronize(vector);

//encrypt
string encrypted;
CryptoPP::StringSource(input, true, new
CryptoPP::StreamTransformationFilter(TFEncryptGTC, new
CryptoPP::StringSink(encrypted)));

//After that, i do the reverse with the data i got after encrypting

CryptoPP::CBC_Mode<CryptoPP::Twofish>::Decryption TFDecryptGTC;

//Set IV (same as the one used for encryption ofcourse)
TFDecryptGTC.Resynchronize(vector);

//decrypt
string output;

CryptoPP::StringSource(encrypted, true, new
CryptoPP::StreamTransformationFilter(TFDecryptGTC, new
CryptoPP::StringSink(output)));

the output i get isnt the same as the input i put in ! instead, it's
input + some bytes like 0x00 0xcd 0xcd 0xcd or 0x00 0xfd 0xfd 0xfd...

if i run this output through encryption and decryption again, i will
get another trailing padding ! so it would have 2 times 0x00 0xcd 0xcd
0xcd at the end...

why isnt decryption removing the padding that streamtransformation
added to perform encryption properly ?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the "Crypto++ Users" Google Group.
To unsubscribe, send an email to cryptopp-users-unsubscribe@....
More information about Crypto++ and this group is available at http://www.cryptopp.com.
-~----------~----~----~----~------~----~------~--~---


Re: Padding not removed after decryption (Twofish)

by Jeffrey Walton-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


> input + some bytes like 0x00 0xcd 0xcd 0xcd or
> 0x00 0xfd 0xfd 0xfd...
This appears to be is uninitialized memory in a Debug build. I suspect
it is coming form Visual Studio, and not Crypto++.

> string input = { some hex bytes };
Most likely the culprit

Jeff

On 7/3/09, rajkosto <rajko@...> wrote:

>
> Hello, i use crypto++ for encrypting/decrypting with Twofish.
> The problem i have is, that after encrypting data, then decrypting
> that exact data, the padding remains.
> This is how i encrypt and decrypt
>
> string input = { some hex bytes };
>
> CryptoPP::CBC_Mode<CryptoPP::Twofish>::Encryption TFEncryptGTC;
>
> //Set IV
> TFEncryptGTC.Resynchronize(vector);
>
> //encrypt
> string encrypted;
> CryptoPP::StringSource(input, true, new
> CryptoPP::StreamTransformationFilter(TFEncryptGTC, new
> CryptoPP::StringSink(encrypted)));
>
> //After that, i do the reverse with the data i got after encrypting
>
> CryptoPP::CBC_Mode<CryptoPP::Twofish>::Decryption TFDecryptGTC;
>
> //Set IV (same as the one used for encryption ofcourse)
> TFDecryptGTC.Resynchronize(vector);
>
> //decrypt
> string output;
>
> CryptoPP::StringSource(encrypted, true, new
> CryptoPP::StreamTransformationFilter(TFDecryptGTC, new
> CryptoPP::StringSink(output)));
>
> the output i get isnt the same as the input i put in ! instead, it's
> input + some bytes like 0x00 0xcd 0xcd 0xcd or 0x00 0xfd 0xfd 0xfd...
>
> if i run this output through encryption and decryption again, i will
> get another trailing padding ! so it would have 2 times 0x00 0xcd 0xcd
> 0xcd at the end...
>
> why isnt decryption removing the padding that streamtransformation
> added to perform encryption properly ?

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the "Crypto++ Users" Google Group.
To unsubscribe, send an email to cryptopp-users-unsubscribe@....
More information about Crypto++ and this group is available at http://www.cryptopp.com.
-~----------~----~----~----~------~----~------~--~---


Re: Padding not removed after decryption (Twofish)

by rajkosto-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


you were right. thanks.
and that wasnt the culprit, i was making length +4 more than it was
somewhere
i recoded the entire thing now, and it doesnt happen

On Jul 3, 9:01 pm, Jeffrey Walton <noloa...@...> wrote:

> > input + some bytes like 0x00 0xcd 0xcd 0xcd or
> > 0x00 0xfd 0xfd 0xfd...
>
> This appears to be is uninitialized memory in a Debug build. I suspect
> it is coming form Visual Studio, and not Crypto++.
>
> > string input = { some hex bytes };
>
> Most likely the culprit
>
> Jeff
>
> On 7/3/09, rajkosto <ra...@...> wrote:
>
>
>
> > Hello, i use crypto++ for encrypting/decrypting with Twofish.
> > The problem i have is, that after encrypting data, then decrypting
> > that exact data, the padding remains.
> > This is how i encrypt and decrypt
>
> > string input = { some hex bytes };
>
> > CryptoPP::CBC_Mode<CryptoPP::Twofish>::Encryption TFEncryptGTC;
>
> > //Set IV
> > TFEncryptGTC.Resynchronize(vector);
>
> > //encrypt
> > string encrypted;
> > CryptoPP::StringSource(input, true, new
> > CryptoPP::StreamTransformationFilter(TFEncryptGTC, new
> > CryptoPP::StringSink(encrypted)));
>
> > //After that, i do the reverse with the data i got after encrypting
>
> > CryptoPP::CBC_Mode<CryptoPP::Twofish>::Decryption TFDecryptGTC;
>
> > //Set IV (same as the one used for encryption ofcourse)
> > TFDecryptGTC.Resynchronize(vector);
>
> > //decrypt
> > string output;
>
> > CryptoPP::StringSource(encrypted, true, new
> > CryptoPP::StreamTransformationFilter(TFDecryptGTC, new
> > CryptoPP::StringSink(output)));
>
> > the output i get isnt the same as the input i put in ! instead, it's
> > input + some bytes like 0x00 0xcd 0xcd 0xcd or 0x00 0xfd 0xfd 0xfd...
>
> > if i run this output through encryption and decryption again, i will
> > get another trailing padding ! so it would have 2 times 0x00 0xcd 0xcd
> > 0xcd at the end...
>
> > why isnt decryption removing the padding that streamtransformation
> > added to perform encryption properly ?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the "Crypto++ Users" Google Group.
To unsubscribe, send an email to cryptopp-users-unsubscribe@....
More information about Crypto++ and this group is available at http://www.cryptopp.com.
-~----------~----~----~----~------~----~------~--~---