The following provides an overview of Bouncy Castle's capabilities and support, with relevant links to external standards and documentation.
Packages and Standards
Bouncy Castle Java supports the following formats and standards.
|
Supported Standard |
External Reference |
|---|---|
|
X.509 and PKIX. |
|
|
CMP |
|
|
CMS/PKCS#7: Cryptographic Message Syntax |
|
|
CRMF |
|
|
DANE: DNS-Based Authentication of Named Entities |
|
|
DVCS: Internet X.509 Public Key Infrastructure Data Validation and Certification Server Protocols |
|
|
DTLS: Datagram Transport Layer Security |
|
|
EAC: Extended Access Control (EAC) Certificates |
|
|
ERS: Evidence Record Syntax |
|
|
EST: Enrollment over Secure Transport |
|
|
ITS: Intelligent Transportation Systems |
|
|
OpenPGP: OpenPGP Message Format |
|
|
PKCS#10: Certification Request Syntax |
|
|
PKCS#12: Personal Information Exchange Syntax |
|
|
TLS: Transport Layer Security |
RFC 5246, RFC 5932, RFC 6209, RFC 8446, NIST SP 800-52 Rev. 2 |
|
TSP: Time-Stamp Protocol |
|
|
Algorithm Identifiers for ML-DSA |
|
|
Algorithm Identifiers for ML-KEM |
|
|
Algorithm Identifiers for SLH-DSA |
Certifications
The following lists certifications with relevant links to certificates and documentation.
|
Type |
Language |
Version |
External Reference |
Documentation |
|---|---|---|---|---|
|
FIPS 140-3 |
Java |
2.1.1 |
Cryptographic Module Validation Program (CMVP) Certificate #4943 |
|
|
FIPS 140-3 |
Java |
2.0.0 |
Cryptographic Module Validation Program (CMVP) Certificate #4743 |
|
|
FIPS 140-2 |
Java |
1.0.2.4 |
Cryptographic Module Validation Program (CMVP) Certificate #4616 |
|
|
FIPS 140-2 |
Java |
1.0.2.3
|
Cryptographic Module Validation Program (CMVP) Certificate #3514 |
|
|
FIPS 140-2 |
Java |
1.0.1 |
Cryptographic Module Validation Program (CMVP) Certificate #3152 (Historical) |
|
|
FIPS 140-2 |
Java |
1.0.0 |
Cryptographic Module Validation Program (CMVP) Certificate #2768 (Historical) |
|
|
FIPS 140-2 |
C# |
1.0.2 |
Cryptographic Module Validation Program (CMVP) Certificate #4416 |
|
|
FIPS 140-2 |
C# |
1.0.1 |
Cryptographic Module Validation Program (CMVP) Certificate #2792 (Historical) |
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://www.bouncycastle.org/fips-java/code/bc-fips-100-java.tar.gz and https://www.bouncycastle.org/fips-java/code/bc-fips-100-java.zip.
Algorithms and Key Types
Bouncy Castle supports the following public key algorithm types and key size/curves.
|
Algorithm |
External Reference |
Java |
C# |
FIPS Java |
FIPS C# |
|---|---|---|---|---|---|
|
Diffie-Hellman |
|
|
|
|
|
|
DSA |
FIPS PUB 186-4, RFC 6979 |
|
|
|
|
|
DSTU |
DSTU 4145-2002 |
|
|
|
|
|
ECDSA/ECDH |
X9.62, FIPS PUB 186-5, RFC 5639, RFC 6979, SP 800-56A Rev 3 |
|
|
|
|
|
EdDSA/XDH |
|
|
|
|
|
|
ElGamal |
|
|
|
|
|
|
GOST |
|
|
|
|
|
|
LMS/HSS |
|
|
|
|
|
|
RSA |
|
|
|
|
|
|
SM2 |
|
|
|
|
|
|
XMSS |
|
|
|
|
Symmetric Key Algorithms
Bouncy Castle supports the following symmetric key algorithms.
|
Algorithm |
External Reference |
Key Sizes (bits) |
Block Size (bits) |
Java |
C# |
FIPS Java |
FIPS C# |
Notes |
|---|---|---|---|---|---|---|---|---|
|
AES |
FIPS PUB 197, RFC 3394, RFC 5649 |
128, 192, 256 |
128 |
|
|
|
|
|
|
ARIA |
RFC 5794, RFC 5649 |
128, 192, 256 |
128 |
|
|
|
|
|
|
Ascon |
CAESAR, NIST Lightweight Competition Finalist |
128, 160 |
|
|
|
|
|
|
|
Camellia |
RFC 3713, RFC 3657 |
128, 192, 256 |
128 |
|
|
|
|
|
|
CAST 5 |
RFC 2144 |
0...128 |
64 |
|
|
|
|
|
|
CAST 6 |
RFC 2612 |
0...256 |
128 |
|
|
|
|
|
|
CHACHA-7359 |
RFC 7359 |
128, 256 |
|
|
|
|
|
|
|
DSTU 7624 |
DSTU 7624:2014 |
128, 256, 512 |
128, 256, 512 |
|
|
|
|
|
|
GOST 28147 |
RFC 5830 |
256 |
64 |
|
|
|
|
|
|
GOST 3412-2015 |
RFC 7801 |
256 |
128 |
|
|
|
|
|
|
GRAIN |
eSTREAM Project |
128 |
|
|
|
|
|
|
|
HC |
eSTREAM Project |
128, 256 |
|
|
|
|
|
|
|
LEA |
ISO/IEC 29192-2:2019 |
128 |
128, 192, 256 |
|
|
|
|
|
|
RC2 |
RFC 2268, RFC 3217 |
0...1024 |
64 |
|
|
|
|
|
|
RC5 |
RFC 2040 |
128 |
64, 128 |
|
|
|
|
|
|
Salsa20 |
eSTREAM Project |
128, 256 |
|
|
|
|
|
|
|
SEED |
RFC 4269 |
128 |
128 |
|
|
|
|
|
|
SM4 |
RFC 8998 |
128 |
128 |
|
|
|
|
|
|
TripleDES |
FIPS PUB 46-3, RFC 3217 |
112, 168 |
64 |
|
|
|
|
|
Message Digests and Expandable Output Functions
Bouncy Castle supports the following Message Digests and Expandable Output Functions (XOFs).
|
Algorithm |
External Reference |
Java |
C# |
FIPS Java |
FIPS C# |
|---|---|---|---|---|---|
|
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 |
|
|
|
|
|
SHA3-224, SHA3-256, SHA3-384, SHA3-512 |
FIPS PUB 202 |
|
|
|
|
|
SHAKE-128, SHAKE-256 |
FIPS PUB 202, RFC 8702 |
|
|
|
|
|
SM3 |
RFC 8998 |
|
|
|
|
|
Tiger |
Project NESSIE |
|
|
|
|
|
TupleHash-128, TupleHash-256 |
SP 800-185 |
|
|
|
|
|
Whirlpool |
Project NESSIE, ISO/IEC 10118-3 |
|
|
|
|
Post Quantum Algorithm Support
The following algorithms are standardized and implemented.
Key Encapsulation Algorithm (KEM)
|
Key Encapsulation Algorithm |
External Reference |
|---|---|
|
ML-KEM |
Signature Algorithms
|
Signature Algorithm |
External Reference |
|---|---|
|
ML-DSA |
|
|
SLH-DSA |
|
|
LMS |
|
|
XMSS |
NIST PQC Competition Algorithms
For further details on these algorithms, refer to NIST Post-Quantum Cryptography.
The Post-Quantum Cryptography (PQC) algorithms below have been part of the NIST PQC competition, but have not been standardized. These are available for experimenting and hybrid cryptography but are unsuitable for long-term use.
Key Encapsulation Algorithms (KEMs)
|
Key Encapsulation Algorithm |
Status |
|---|---|
|
BIKE |
Round 4 Candidate |
|
HQC |
Round 4 Finalist |
|
Classic McEliece |
Round 4 Candidate, used by BIS |
|
SABER |
Round 3 Candidate |
|
FrodoKEM |
Round 3 Alternate Candidate, used by BIS |
|
NTRU |
Round 3 Candidate, used by Nippon Telecom |
|
NTRU Prime |
Round 3 Alternate Candidate, used by OpenSSH |
Signature Algorithms
|
Signature Algorithm |
Status |
|---|---|
|
Falcon |
Finalist, will be standardized as FN-DSA |
|
Picnic |
Round 3 Candidate |
|
Rainbow |
Round 3 Candidate (cat III and cat V submission only) |
|
GeMSS |
Round 3 Candidate |
CRL, OCSP and Certificate Distribution
Bouncy Castle supports the following CRL formats and standards.
Certificate Enrollment Protocols
The following lists Certificate Enrollment Protocols and/or interfaces.