The following provides an overview of Bouncy Castle's capabilities and support, with relevant links to external standards and documentation.
Bouncy Castle Java supports the following formats and standards.
Supported Standard
External Reference
X.509 and PKIX.
The following lists certifications with relevant links to certificates and documentation.
Type
Language
Version
External Reference
Documentation
FIPS 140-2
Java
1.0.2.3
1.0.2.2
1.0.2.1
FIPS 140-2
Java
1.0.1
FIPS 140-2
Java
1.0.0
For more information about the Bouncy Castle FIPS Java API and how it presents cryptography, refer to The Bouncy Castle FIPS Java API in 100 Examples and sample code at https://downloads.bouncycastle.org/fips-java/code/bc-fips-100-java.tar.gz and https://downloads.bouncycastle.org/fips-java/code/bc-fips-100-java.zip.
Bouncy Castle supports the following public key algorithm types and key size/curves.
Algorithm
External Reference
Diffie-Hellman
DSA
FIPS PUB 186-4, RFC 6979
DSTU
DSTU 4145-2002
ECDSA/ECDH
X9.62, FIPS PUB 186-4, RFC 5639,
RFC 6979, SP 800-56A
EdDSA/XDH
ElGamal
RFC 4880
GOST
RFC 4490, RFC 7836
LMS/HSS
RFC 8554, RFC 8708
SM2
RFC 8998
RSA
RFC 8017, FIPS PUB 186-4, SP 800-56B
XMSS
RFC 8391
Bouncy Castle supports the following symmetric key algorithms.
Algorithm
External Reference
AES
FIPS PUB 197, RFC 3394, RFC 5649
ARIA
RFC 5794, RFC 5649
Ascon
CAESAR, NIST Lightweight Competition Finalist
Camellia
RFC 3713, RFC 3657
CAST 5
RFC 2144
CAST 6
RFC 2612
CHACHA-7359
RFC 7359
DSTU 7624
DSTU 7624:2014
GOST 28147
RFC 5830
GOST 3412-2015
RFC 7801
GRAIN
eSTREAM Project
HC
eSTREAM Project
LEA
ISO/IEC 29192-2:2019
RC2
RFC 2268, RFC 3217
RC5
RFC 2040
Salsa20
eSTREAM Project
SEED
RFC 4269
SM4
RFC 8998
TripleDES
FIPS PUB 46-3, RFC 3217
Bouncy Castle supports the following Message Digests and Expandable Output Functions (XOFs).
Algorithm
External Reference
Ascon (Hash, XOF)
NIST Lightweight Competition Finalist
Blake2
RFC 7693
Blake3
cSHAKE-128, cSHAKE-256
SP 800-185
Kangaroo
KMAC-128, KMAC-256
SP 800-185
MD5
RFC 1321
ParallelHash-128, ParallelHash-256
SP 800-185
RIPEMD-128, RIPEMD-160, RIPEMD-256, RIPEMD-320
SHA-1
FIPS PUB 180-4
SHA224, SHA256, SHA384, SHA512, SHA512/224, SHA512/256
FIPS PUB 180-4
SHAKE-128, SHAKE-256
FIPS PUB 202, RFC 8702
SHA3-224, SHA3-256, SHA3-384, SHA3-512
FIPS PUB 202
SM3
RFC 8998
Tiger
Project NESSIE
TupleHash-128, TupleHash-256
SP 800-185
Whirlpool
Project NESSIE, ISO/IEC 10118-3
The following stateful hash-based signature algorithms are standardized and implemented.
Signature Algorithm
External Reference
LMS
XMSS
For further details on these algorithms, refer to NIST Post-Quantum Cryptography.
The Post-Quantum Cryptography (PQC) algorithms below are still under development. Published standards are unlikely to appear before mid-2024 and the algorithms may still change. You can start experimenting, but note that while the Key Encapsulation Algorithms (KEMs) are suitable for use with hybrid cryptography using short-term keys, the PQC algorithms below are still not suitable for use with anything long-term.
Key Encapsulation Algorithms
Status
Crystals-Kyber
Finalist, for standardization
BIKE
Round 4 Candidate
HQC
Round 4 Candidate
Classic McEliece
Round 4 Candidate, used by BIS
SABER
Round 3 Candidate
FrodoKEM
Round 3 Alternate Candidate, used by BIS
NTRU
Round 3 Candidate
NTRU Prime
Round 3 Alternate Candidate
Signature Algorithm
Status
Crystals-Dilithium
Finalist, for standardization
SPHINCS+
Finalist, for standardization
Falcon
Finalist, for standardization
Picnic
Round 3 Candidate
Rainbow
Round 3 Candidate (cat III and cat V submission only)
GeMSS
Round 3 Candidate
Bouncy Castle supports the following CRL formats and standards.
Supported Standard
External Reference
CRL creation and URL based CRL Distribution Points.
The following lists Certificate Enrollment Protocols and/or interfaces.
Protocol/Interface
External Reference
Documentation