This project aims to be a full replacement for the crippled versions of the Bouncy Castle cryptographic libraries which ship with Android. As noted here:
http://code.google.com/p/android/issues/detail?id=3280
...the Android platform unfortunately incorporates a cut-down version of Bouncy Castle, which also makes installing an updated version of the libraries difficult due to classloader conflicts.
Spongy Castle is the stock Bouncy Castle libraries with a couple of small changes to make it work on Android:
- all package names have been moved from org.bouncycastle.* to org.spongycastle.* - so no classloader conflicts
- the Java Security API Provider name is now SC rather than BC
No class names have been changed, so the BouncyCastleProvider class remains Bouncy, not Spongy, but moves to the org.spongycastle.jce.provider package.
You can directly download the latest jar here (this is just a link to the published artifact in Maven Central).
You register it just the same as the standard BouncyCastleProvider:
static {
Security.addProvider(new org.spongycastle.jce.provider.BouncyCastleProvider());
}
You can see an example of Spongy Castle in active use in the toy-android-ssh-agent project:
There's also an even simpler demo project showing how to include Spongy Castle in a vanilla Eclipse project:
https://github.com/rtyley/spongycastle-eclipse#readme
Spongy Castle artifacts have been published to Maven Central, you can use scprov-jdk15 as a drop-in replacement for the official Bouncy Castle artifact bcprov-jdk15.
I suggest you use the maven-android-plugin to make the most of this :-)
Bouncy Castle uses an adaptation of the MIT X11 License and as Spongy Castle is a simple re-package of Bouncy Castle, you should consider it to be licenced under those same terms.