Follow us on:  Google+   

Latest Java Releases

Release 1.53 is now available for download.

This release introduces the FIPS PUB 202 SHA3 digests and SHAKE extendible output functions. The original Keccak is also included for those wishing to use the original configuration of the function. Also added is the SM4 block cipher, the SHA-3 contestant Blake2b, and EC Key Agreement now supports a range of SEC and NIST variations. X9.31, ISO9796-2, and PSS signatures now support SHA512-224 and SHA512-256. An ASN.1 ObjectIdentifier cache based on an intern() method has been introduced to reduce memory requirements for large ASN.1 object such as CRLs and provide better user control. In terms of bug fixes, an issue which could cause cipher failure with the BC provider and JCE/JSSE using NIO has been fixed, looping certificate chains will no longer cause an OutOfMemoryException in PKCS12 KeyStores, irregular post-amble in SMIME signatures no longer cause verification issues, and the JceCRMFEncryptorBuilder now recognises key size specific object identifiers properly. The provider has also been updated to reflect changes in JDK 1.8 which broke X509Certificate.hashCode() and X509Certificate.verify(PublicKey, Provider). OpenPGP fixes include validation of hashed sub-packets with long length encoding, and it is now possible to add a password to a PGP key which did not have one originally. Finally, ECIES has been modified to be properly compliant with Shoup's definition of it and is now compatible with Crypto++ from version 6.0. We would also like to thank the team at Crypto++ for working with us on ECIES, interpretation combined with consensus is a great step forward for interoperability!

Further details on other additions and bug fixes can be found in the release notes file accompanying the release.

Change Warning: The PEM Parser now returns an X509TrustedCertificate block when parsing an openssl trusted certificate, the new object was required to allow the proper return of the trusted certificate's attribute block.

Others have contributed to this release, both with code and/or financially. You can find them listed in the contributors file. We would also like to thank holders of Crypto Workshop support contracts as an additional 100 hours of time was contributed back to this release through left over consulting time provided as part of their support agreements. Thank you, one and all!

One other note: if you're new to the new style of operator in OpenPGP and CMS and co, a brief document on how they are supposed to hang together is available on the BC wiki. If you think you are likely to do this a lot, you might also be interested in our guide project, which is now available as an initial draft. Please also see the porting guide for advice on porting to this release from much earlier ones (pre 1.46).

If you're interested in grabbing the lot in one hit (includes JCE, JCE provider, light weight API, J2ME, range of JDK compatibility classes, signed jars, fries, and king prawns...) download crypto-153.tar.gz or, otherwise if you are only interested in one version in particular, see below. Early access to our FIPS hardened version of the Java APIs is now available as well, contact us at for further information.

Keeping the Bouncy Castle Project Going

With various algorithm changes, updates, security issues in protocols, and having to write vendor statements for organisations like CERT, keeping the Bouncy Castle project going is turning into a full time job and several of us have now given up permanent work in order to free up time to work on it. If you are making use of our software, and are interested in making sure we are always here when you need us, there are two principal ways you can help.

The first is by getting a support contract or by sponsoring specific work on the project. Not only will you get a hot-line to Bouncy Castle developers, consulting time, and release alerts if you need them, but you also join our FIPS early access program. You can find out further information on support contracts and consulting at Crypto Workshop.

Secondly, the Bouncy Castle APIs are formally owned by a registered Australian Charity, the Legion of the Bouncy Castle Inc, ABN 84 166 338 567. Without considering the costs of actually doing what we do from release to release, we're also funding certifications, such as FIPS, for the APIs. We can accept donations via PayPal, Bitcoin, or direct transfer. If this sounds more like you, and you want to see this project continue to prosper, please visit our donations page to help. Thanks!

Signed JAR files

From release 1.40 some implementations of encryption algorithms were removed from the regular jar files at the request of a number of users. Jars with names of the form *-ext-* still include these (at the moment the list is: NTRU).

  Provider Clean room JCE
and provider
SMIME OpenPGP/BCPG Test Classes
JDK 1.5 - JDK 1.8 bcprov-jdk15on-153.jar
  bcpkix-jdk15on-153.jar bcmail-jdk15on-153.jar bcpg-jdk15on-153.jar bctest-jdk15on-153.jar
JDK 1.4 bcprov-jdk14-153.jar
  bcpkix-jdk14-153.jar bcmail-jdk14-153.jar bcpg-jdk14-153.jar bctest-jdk14-153.jar
JDK 1.3 bcprov-jdk13-153.jar
bcpkix-jdk13-153.jar bcmail-jdk13-153.jar bcpg-jdk13-153.jar bctest-jdk13-153.jar
JDK 1.2 bcprov-jdk12-153.jar
bcpkix-jdk12-153.jar   bcpg-jdk12-153.jar bctest-jdk12-153.jar

The following signed provider jars are provided so that you can make use of the debug information in them. In the case of the non-provider jars (bcpkix, bcpg, and bcmail), the jar files do not need to be signed to work. You can rebuild them with debug turned on, or operate directly from the source, if you need.

  Providers with debug
JDK 1.5 - JDK 1.8 bcprov-debug-jdk15on-153.jar bcprov-ext-debug-jdk15on-153.jar
JDK 1.4 bcprov-debug-jdk14-153.jar bcprov-ext-debug-jdk14-153.jar

Sources and JavaDoc

JDK 1.5 - JDK 1.8 bcpkix-jdk15on-153.tar.gz
JDK 1.4 bcpkix-jdk14-153.tar.gz
JDK 1.3 bcpkix-jdk13-153.tar.gz
JDK 1.2 bcpkix-jdk12-153.tar.gz
JDK 1.1 bcpkix-jdk11-153.tar.gz

JDK 1.5 - JDK 1.8 bcpg-jdk15on-153.tar.gz
JDK 1.4 bcpg-jdk14-153.tar.gz
JDK 1.3 bcpg-jdk13-153.tar.gz
JDK 1.2 bcpg-jdk12-153.tar.gz
JDK 1.1 bcpg-jdk11-153.tar.gz

JDK 1.5 - JDK 1.8 bcmail-jdk15on-153.tar.gz
JDK 1.4 bcmail-jdk14-153.tar.gz
JDK 1.3 bcmail-jdk13-153.tar.gz

  JCE with provider and lightweight API Lightweight API  
JDK 1.5 - JDK 1.8 bcprov-jdk15on-153.tar.gz lcrypto-jdk15on-153.tar.gz
JDK 1.4 bcprov-jdk14-153.tar.gz lcrypto-jdk14-153.tar.gz
JDK 1.3 jce-jdk13-153.tar.gz lcrypto-jdk13-153.tar.gz
JDK 1.2 jce-jdk12-153.tar.gz lcrypto-jdk12-153.tar.gz
JDK 1.1 jce-jdk11-153.tar.gz lcrypto-jdk11-153.tar.gz
J2ME     lcrypto-j2me-153.tar.gz

  Releases no longer maintained
JDK 1.0 lcrypto-jdk10-133.tar.gz


  1. The tar archives were created using GNU tar (some versions of Solaris tar will have problems extracting them)
  2. The J2ME source distribution includes zips for the class files

You can find the release notes, documentation, and specifications here.

You can find checksums for confirming the integrity of the distributions here

Too slow? You can also find the latest versions on one of our mirrors:

Beta Access
The current working betas, when available, for the next release for JDK 1.3 to JDK 1.8 can be found at If you need a beta to be made available for another version of Java please ask by emailing

Maven Access
The BC jars are now mirrored on the Maven central repository. You can find them at

GIT Access
Just want to look at the source? The source code repository is now mirrored on GitHub and accessible from here. The repository can be cloned using either

git clone
or git protocol
git clone git://

CVS Access
Just want to look at the source? The source code repository is accessible via ViewVC from here

FTP Access
Previous releases, as well as the latest ones, can be downloaded from our ftp server Please note the FTP server does not support passive mode.