The new version uses the bouncy castle library which allows handling encryption and decryption using streams. We have added some integration tests that were necessary to update the library and the code safely. Also we have some time to do some memory profiling analysis.
To validate that the current implementation handles really complex and big cases we created a small example with 2 services:
An encryption service that reads files from one directory and outputs the encrypted file to a different directory.
A decryption service that reads files from the encrypted directory and outputs the decrypted version to a different directory.
The Mule config is the following:
The memory profiling was done using a set of 23 files (12GB total):
12 of them are of 366MB.
11 of them are of 732MB.
The following figures show that the new PGP module uses only 40MB for encryption and decryption:
MuleSoft provides the most widely used integration platform for connecting any application, data source or API, whether in the cloud or on-premises. With Anypoint Platform®, MuleSoft delivers a complete integration experience built on proven open source technology, eliminating the pain and cost of point-to-point integration. Anypoint Platform includes CloudHub™ iPaaS, Mule ESB™, and a unified solution for API management™, design and publishing.