Follow us on:  Google+   

Latest Java Releases

Release 1.54 is now available for download.

This is primarily a security release concerning (D)TLS 1.2. Motivated by CVE-2015-7575, we have added validation that the signature algorithm received in DigitallySigned structures is actually one of those offered (in signature_algorithms extension or CertificateRequest). With our default TLS configuration, we do not believe there is an exploitable vulnerability in any earlier releases. Users that are customizing the signature_algorithms extension, or running a server supporting client authentication, are advised to double-check that they are not offering any signature algorithms involving MD5.

In terms of new features, the CMS API now supports the PKCS#7 ANY type for encapsulated content, RFC 3370, Camellia, and SEED are now supported for key agreement in CMS, and CTR/SIC modes now provide an explicit internal counter if initialised with a short IV. TLS/DTLS now includes a non-blocking API. The Blake2b digests are now actually supported in the provider (sorry, it got missed in 1.53...) and ClassCastException issues with Cipher.getOutputSize() for IES ciphers have been fixed. Finally, in accordance with advice from the algorithm's authors, Serpent has been modified to conform to the NESSIE vector suite, the previous version of Serpent, which conforms to the NIST submission format, is now called Tnepres.

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

Change Warning (users of 1.52 or earlier): 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. Please also see the porting guide for advice on porting to this release from much earlier ones (release 1.45 or earlier).

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 for additional time that was contributed back to this release through left over consulting time provided as part of their support agreements. Thank you, one and all!

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-154.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.

Are you serious about your cryptography?

If you have gotten this far you would have worked out that while we try not to take ourselves too seriously, we're very serious about what we do.

The Bouncy Castle project is now funded by a mixture of donations and support contracts through Crypto Workshop. The money raised through these efforts funds certification, lab testing, and developer time that's needed to review contributions, implement new algorithms and standards, as well as maintain the existing set of APIs. These are all serious things, and we undertsand that these tasks, and others, need to be done.

So, if you are as serious as we are about this, get a support contract, consider sponsoring some work, or if you don't have the resources for that consider a visit to our donations page. If you do get a support contract or sponsor some major work, your organisation will also benefit from a closer working relationship with the Bouncy Castle developers and our FIPS early access program. It's up to you.

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-154.jar
  bcpkix-jdk15on-154.jar bcmail-jdk15on-154.jar bcpg-jdk15on-154.jar bctest-jdk15on-154.jar
JDK 1.4 bcprov-jdk14-154.jar
  bcpkix-jdk14-154.jar bcmail-jdk14-154.jar bcpg-jdk14-154.jar bctest-jdk14-154.jar
JDK 1.3 bcprov-jdk13-154.jar
bcpkix-jdk13-154.jar bcmail-jdk13-154.jar bcpg-jdk13-154.jar bctest-jdk13-154.jar
JDK 1.2 bcprov-jdk12-154.jar
bcpkix-jdk12-154.jar   bcpg-jdk12-154.jar bctest-jdk12-154.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-154.jar bcprov-ext-debug-jdk15on-154.jar
JDK 1.4 bcprov-debug-jdk14-154.jar bcprov-ext-debug-jdk14-154.jar

Sources and JavaDoc

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

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

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

  JCE with provider and lightweight API Lightweight API  
JDK 1.5 - JDK 1.8 bcprov-jdk15on-154.tar.gz lcrypto-jdk15on-154.tar.gz
JDK 1.4 bcprov-jdk14-154.tar.gz lcrypto-jdk14-154.tar.gz
JDK 1.3 jce-jdk13-154.tar.gz lcrypto-jdk13-154.tar.gz
JDK 1.2 jce-jdk12-154.tar.gz lcrypto-jdk12-154.tar.gz
JDK 1.1 jce-jdk11-154.tar.gz lcrypto-jdk11-154.tar.gz
J2ME     lcrypto-j2me-154.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.