Reading Time: 2 minutes

With the release of Mule ESB 2.2.7 (and the upcoming 3.1.0), you will see a reloaded version of the PGP module. The previous version was using the Cryptix library which currently RIP and doesn’t handle large files.

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.

latest report
Learn why we are the Leaders in API management and iPaaS

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:

Encryption:
Encryption's memory profiling

Decryption:
Decryption's memory profiling

Looking forward to hearing your comments!