Would Base64Decoder work gracefully with chunking? Looking at below code 
which I slapped together from the Wiki example on chunking and with Jeff's 
help re EndOfFile (which I just did not see above the screen and only tried 
to search for in the Wiki and source code), I have this question: once the 
MeterFilter starts slicing and dicing the input, and feeding to the 
Base64Decoder, would the later be smart enough to process successfully? It 
seems that from every 3 input bytes Base64Decoder has to recover 2 data 
bytes. Does it mean that chunk size for this scenario has to be a multiple 
of 3?


                MeterFilter meter;
                StreamTransformationFilter 
decryptorFilter((StreamTransformation&)decryptor);
                Base64Decoder base64Dec;

                FileSource source(sourceStream, false);
                FileSink sink(destStream);

                source.Attach(new Redirector(decryptorFilter));
                if (Base64Encode)
                {
                    decryptorFilter.Attach(new Redirector(base64Dec));
                    base64Dec.Attach(new Redirector(meter)); // meter 
filter feeding base64 decryptor? will this work?
                }
                else
                {
                    decryptorFilter.Attach(new Redirector(meter));
                }
                meter.Attach(new Redirector(sink));

                word64 processed = 0;

                while (!FileUtil::EndOfFile(source) && 
!source.SourceExhausted())
                {
                    source.Pump(ChunkSize); // so hear we would have to 
adjust ChunkSize to the nearest greater multiple of 3?
                    decryptorFilter.Flush(false);

                    processed += ChunkSize;

                    if (ProgressCallback != nullptr)
                    {
                        if (processed % (ProgressEvery) == 0)
                        {
                            ProgressCallback(meter.GetTotalBytes());
                        }
                    }
                }



-- 
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