I am running Crypto++ (master branch) on Xcode (14.3.1) with an iOS (16.6) app. I am attempting to isolate an issue where Crypto++'s gunzip is not inflating a properly formatted JSON file correctly for me. I am providing an already compressed JSON file whose original size is 1.3 MB. After inflation, I end up with 1.01 MB of data. My issue is that I cannot isolate why I am losing data during the inflation. The compression algorithm used is a multi-threaded compression algorithm adhering to the gzip formatting standard. I can successfully inflate this same compressed JSON file using gzip on OSX, Linux, Windows, but not on iOS using gzip inside the Crypto++ framework.   

The snippet of code doing the inflation is:

```
std::string GZipUtils::decompressData(const std::vector<uint8_t> &bytes) {
        std::string decompressed;

        CryptoPP::Gunzip unzipper(new CryptoPP::StringSink(decompressed));
        unzipper.Put((CryptoPP::byte *) bytes.data(), bytes.size());
        unzipper.MessageEnd();

        return decompressed;
}
```


I would like to note that no errors are being thrown and the Put function returns 0 after the API call, which indicates all bytes were processed. We originally were using the Put2 API call, which produces the same result as Put. It appears Put is calling Put2.

I have attached the compressed and uncompressed JSON files. 


[uncompressed.json](https://github.com/weidai11/cryptopp/files/13191291/uncompressed.json)
[compressed.json.gz](https://github.com/weidai11/cryptopp/files/13205504/compressed.json.gz)

Loss of data after inflation using gunzip
This is a GitHub Issue
repo:cryptopp
owner:weidai11
Title : Loss of data after inflation using gunzip
Issue date:

--- start body ---
I am running Crypto++ (master branch) on Xcode (14.3.1) with an iOS (16.6) app. I am attempting to isolate an issue where Crypto++'s gunzip is not inflating a properly formatted JSON file correctly for me. I am providing an already compressed JSON file whose original size is 1.3 MB. After inflation, I end up with 1.01 MB of data. My issue is that I cannot isolate why I am losing data during the inflation. The compression algorithm used is a multi-threaded compression algorithm adhering to the gzip formatting standard. I can successfully inflate this same compressed JSON file using gzip on OSX, Linux, Windows, but not on iOS using gzip inside the Crypto++ framework.   

The snippet of code doing the inflation is:

```
std::string GZipUtils::decompressData(const std::vector<uint8_t> &bytes) {
        std::string decompressed;

        CryptoPP::Gunzip unzipper(new CryptoPP::StringSink(decompressed));
        unzipper.Put((CryptoPP::byte *) bytes.data(), bytes.size());
        unzipper.MessageEnd();

        return decompressed;
}
```


I would like to note that no errors are being thrown and the Put function returns 0 after the API call, which indicates all bytes were processed. We originally were using the Put2 API call, which produces the same result as Put. It appears Put is calling Put2.

I have attached the compressed and uncompressed JSON files. 


[uncompressed.json](https://github.com/weidai11/cryptopp/files/13191291/uncompressed.json)
[compressed.json.gz](https://github.com/weidai11/cryptopp/files/13205504/compressed.json.gz)

--- end body ---

None