Logo BorderCastle JCE Provider

A re-packaged version of the BouncyCastle JCE provider with different package name for more deployment freedom.

Why in general?

Originally, this was an attempt at improving the situation on Android, where the shipped embedded version of BouncyCastle was somewhat cut-down and thus not suitable for various purposes.

Apart from being crippled in certain regards, it was also difficult (if not impossible) to use an updated version of BouncyCastle due to class loader conflicts, because they would use identical class and package names.

BorderCastle is the same as the stock BouncyCastle with a couple of small changes and additions to allow for broader uses.

Why not SpongyCastle?

Why another fork apart from the already available SpongyCastle?

First of all, SpongyCastle doesn't appear to be maintained any longer and thus it is not reflecting recent BouncyCastle versions.

More importantly, as a manufacturer of software libraries and components, it turned out to be important to allow flexible combination of our libraries with other components, while not enforcing dependency version restrictions on the users of our libraries.

Hence, an application making use of our library could still make use of any version of SpongyCastle or BouncyCastle without running into class loader problems, while still guaranteeing the tested and well-defined environment of our BorderCastle version.

Of course, a lot of code duplication could be avoided by using the BorderCastle classes everywhere - simply by renaming the imported packages.

Changes in respect to BouncyCastle

Current version

The current version of BorderCastle is derived from the BouncyCastle version 1.81.

The BorderCastle JCE provider is signed with a special JCE code signing certificate for JCE provider signing (issued by the "JCE Code Signing CA, Oracle Corporation"). Check the wiki for more information.

This allows the provider to be used for both, on Android and with "normal" Java on desktop/server systems where the Oracle JRE requires JCE providers to be signed.

License

BorderCastle is licensed under the same adaptation of the MIT X11 License as the original BouncyCastle library.

Downloads

Binary signed downloads can be found on the Releases page.

Building

The wiki describes the necessary steps for building and the resulting files.

Contributors