Ok, I understand it now. Thank you very much for your help!

On 16 mayo, 00:02, Jeffrey Walton <[email protected]> wrote:
> Hi Guillem,
>
> See PKCS 7 inhttp://en.wikipedia.org/wiki/Padding_(cryptography).
>
> Jeff
>
> On 5/15/09, Guillem Rosset <[email protected]> wrote:
>
>
>
> > This is my setup:
>
> > ...
> > ECB_Mode<AES>::Encryption  m_Encryptor;
> > m_Encryptor.SetKey(key, sizeof(key);
>
> > StreamTransformationFilter* m_pStream = new StreamTransformationFilter
> > (m_Encryptor);
> > ...
>
> > void CAESBase::Encrypt(const byte* _pData, int _iSize, byte*
> > _pBufferOut)
> > {
> >  if (_pData && _pBufferOut)
> >  {
> >    m_pStream->Initialize();
> >    m_pStream->Put(_pData, _iSize);
> >    m_pStream->MessageEnd();
>
> >    int iSize = m_pStream->TotalBytesRetrievable();
> >    if (_pBufferOut->Init(iSize) == RET_OK)
> >    {
> >      byte* pOut = (byte*) _pBufferOut->GetNextPtrToWrite(iSize);
> >      m_pStream->Get(pOut, iSize);
> >    }
> >  }
> > }
>
> > When I call the Encrypt method, if _iSize is an exact multiple of
> > block size (16 bytes), the StreamTransformationFilter adds one full
> > block of padding data, so when I call TotalBytesRetrievable I get
> > _iSize + 16.
>
> > I've been debugging through Crypto++ code and I think it should be
> > necessary to check the remaining data size in m_queue before calling
> > LastPut from FilterWithBufferedInput::PutMaybeModifiable. If the queue
> > size is 0, LastPuts adds a full block with just padding data.
>
> > Is this a bug or it's the expected result? We're working in an
> > environment where data size send accross network is critical.
>
> > Thank you very much for your help!
--~--~---------~--~----~------------~-------~--~----~
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.
-~----------~----~----~----~------~----~------~--~---

Reply via email to