Explore our Bouncy Castle for Java, Java FIPS and Java LTS documentation for concise guidance and examples.
Find documentation, specifications, code examples and more to get started with Bouncy Castle for Java, Java FIPS and Java LTS.
Go directly to our API documentation for a complete specification of all classes, methods, and parameters.
Find out detailed information about the latest release and search in older release notes.
View the complete list of Certifications, supported Algorithms, Key Types, Message Digests and Expandable Output Functions, Post Quantum Algorithms CRLs, OCSP, Certificate Distribution, Certificate Enrollment Protocols and more.
Find our test packages on GitHub, they will help you quickly validate if you are on the right track
Details about our current plans and versions in progress for the Bouncy Castle Java FIPS APIs can be found on the Java FIPS Roadmap.
Find out detailed information about the latest Bouncy Castle Java, Java FIPS, and Java LTS releases here:
Release notes for Bouncy Castle Java
This is the documentation, specifications, code examples, and more for the Bouncy Castle Java, Java FIPS and LTS APIs.
The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms and cryptographic protocols that make use of the algorithms.
The package is organized so that it contains a low-level lightweight API suitable for use in any environment with additional infrastructure built on top of that to construct a provider conforming to the JCA framework.
Each distribution is built around a provider jar and includes extra jars for supporting X.509, PKIX, JavaMail, JakartaMail, OpenPGP, TLS, and MLS.
Except where otherwise stated, this software is distributed under LICENSE. The OpenPGP library and the MLS library both make use of additional open-source code, see Third Party Licenses.
Disclaimer: Currently, we have no knowledge of any patents that impact the Bouncy Castle APIs which require disclosure. Patent applicability does vary from country to country and users of the library are responsible for understanding the legal landscape in their own jurisdiction.
That said, patent holders who wish to alert us to possible issues that may affect our user community are welcome to contact us via feedback-crypto@bouncycastle.org if they would like a disclosure notice included here.
The complete Specification and lists of Certifications, Supported Algorithms, Key Types, Message Digests and Expandable Output Functions, Post Quantum Algorithms CRLs, OCSP, Certificate Distribution, Certificate Enrollment Protocols and more, can be found here
Note: the Bouncy Castle Specifications can be found on the Specification and Interoperability page.
java.lang.SecurityException: Unsupported keysize or algorithm parameters at javax.crypto.Cipher.init(DashoA6275)
While there are some example packages for the Bouncy Castle Java distribution, the best place to find examples of use for the different features available in the Bouncy Castle APIs is in the different test packages written to exercise those features.
Here you can find Bouncy Castle Java FIPS-specific documentation. If you can't find what you're looking for here, please see the general Bouncy Castle Java documentation above.
Latest release
Security Policy | BC-FJA-SecurityPolicy-2.0.0.pdf |
Known Issues | Download file: BC-FJA-KnownIssues-2.0.0.csv |
User Guides | BC-FJA-UserGuide-2.0.0.pdf |
BC-FJA-(D)TLSUserGuide-2.0.19.pdf |
Find examples of how to use the different features in the Bouncy Castle APIs in the test packages.
Here you can find Bouncy Castle Java LTS-specific documentation. If you can't find what you're looking for, please see the general Bouncy Castle Java documentation above.
Furthermore, the LTS project extends its support beyond Java, offering acceleration for Intel and ARM architectures where the underlying operating system allows for it.