I've refactored my code several times.
You say " You should probably call MessageEnd() on the
StreamTransformationFilter."
I'm not sure how I get to the STF now, as my code now looks like:
CryptoPP::CFB_Mode<CryptoPP::AES>::Encryption *e = new
CryptoPP::CFB_Mode<CryptoPP::AES>::Encryption((const byte *)_key.constData(),
_key.length(), (const byte *)binIv.constData(), 1);
_fileSource->Attach(new CryptoPP::MeterFilter);
_fileSource->Attach(new CryptoPP::StreamTransformationFilter(*e));
if (_base64Output) {
_fileSource->Attach(new CryptoPP::Base64Encoder());
}
_fileSource->Attach(new CryptoPP::FileSink(outFilename_));
I changed my pump function to be:
void Hash::aesEncryptFilePump() {
qlonglong readLength = qMin(_blockSize, totalBytesToEncrypt -
bytesEncrypted);
qlonglong remainder = _fileSource->Pump(readLength);
_fileSource->AttachedTransformation()->MessageEnd();
bytesEncrypted += readLength - remainder;
//_fileSource->Pump(readLength);
emit bytesEncryptedChanged(bytesEncrypted);
if (_fileSource->SourceExhausted())
{
aesEncryptFileClose();
emit aesEncryptFileComplete(inFilename);
}
}
Which seems to be what is needed per
https://www.cryptopp.com/wiki/User_Guide:_filters.h However you mentioned
calling it on the STF. Shouldn't the MessageEnd() cascade down?
--
--
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.