Skip to main content
Skip table of contents

Interoperability

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.

Certifications

The following lists certifications with relevant links to certificates and documentation.

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

SP 800-56A

(tick)

(tick)

(tick)

(tick)

DSA

FIPS PUB 186-4, RFC 6979

(tick)

(tick)

(tick)

(tick)

DSTU

DSTU 4145-2002

(tick)

(tick)

(tick)

ECDSA/ECDH

X9.62, FIPS PUB 186-4, RFC 5639, RFC 6979, SP 800-56A

(tick)

(tick)

(tick)

(tick)

EdDSA/XDH

RFC 7748, RFC 8032, RFC 8410

(tick)

(tick)

(tick)

(tick)

ElGamal

RFC 4880

(tick)

(tick)

(tick)

(tick)

GOST

RFC 4490, RFC 7836

(tick)

(tick)

(tick)

LMS/HSS

RFC 8554, RFC 8708

(tick)

(tick)

(tick)

SM2

RFC 8998

(tick)

(tick)

(tick)

RSA

RFC 8017, FIPS PUB 186-4, SP 800-56B

(tick)

(tick)

(tick)

(tick)

XMSS

RFC 8391

(tick)

(tick)

Symmetric Key Algorithms

Bouncy Castle supports the following symmetric key block based 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

(tick)

(tick)

(tick)

(tick)

ARIA

RFC 5794, RFC 5649

128, 192, 256

128

(tick)

(tick)

(tick)

Camellia

RFC 3713, RFC 3657

128, 192, 256

128

(tick)

(tick)

(tick)

(tick)

CAST 5

RFC 2144

0...128

64

(tick)

(tick)

(tick)

CAST 6

RFC 2612

0...256

128

(tick)

(tick)

DSTU 7624

DSTU 7624:2014

128, 256, 512

128, 256, 512

(tick)

(tick)

(tick)

GOST 28147

RFC 5830

256

64

(tick)

(tick)

(tick)

GOST 3412-2015

RFC 7801

256

128

(tick)

(tick)

LEA

ISO/IEC 29192-2:2019

128

128, 192, 256

(tick)

RC2

RFC 2268, RFC 3217

0...1024

64

(tick)

(tick)

(tick)

RC5

RFC 2040

128

64, 128

(tick)

(tick)

SEED

RFC 4269

128

128

(tick)

(tick)

(tick)

(tick)

SM4

RFC 8998

128

128

(tick)

(tick)

TripleDES

FIPS PUB 46-3, RFC 3217

112, 168

64

(tick)

(tick)

(tick)

Bouncy Castle supports the following symmetric key stream based algorithms.

Algorithm

External Reference

Key Sizes (bits)

Java

C#

FIPS Java

FIPS C#

Notes

Ascon

CAESAR, NIST Lightweight Competition Finalist

128, 160

(tick)

(tick)

CHACHA-7359

RFC 7359

128, 256

(tick)

(tick)

(tick)

GRAIN

eSTREAM Project

128

(tick)

(tick)

HC

eSTREAM Project

128, 256

(tick)

(tick)

RC4

RFC 4345

40...2048

(tick)

(tick)

(tick)

(tick)

Unsafe - legacy use only.

Salsa20

eSTREAM Project

128, 256

(tick)

(tick)

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

(tick)

(tick)

Blake2

RFC 7693

(tick)

(tick)

Blake3

(tick)

(tick)

cSHAKE-128, cSHAKE-256

SP 800-185

(tick)

(tick)

(tick)

(tick)

Kangaroo

(tick)

KMAC-128, KMAC-256

SP 800-185

(tick)

(tick)

(tick)

(tick)

MD5

RFC 1321

(tick)

(tick)

(tick)

(tick)

ParallelHash-128, ParallelHash-256

SP 800-185

(tick)

(tick)

(tick)

(tick)

RIPEMD-128, RIPEMD-160, RIPEMD-256, RIPEMD-320

(tick)

(tick)

(tick)

SHA-1

FIPS PUB 180-4

(tick)

(tick)

(tick)

(tick)

SHA224, SHA256, SHA384, SHA512, SHA512/224, SHA512/256

FIPS PUB 180-4

(tick)

(tick)

(tick)

(tick)

SHA3-224, SHA3-256, SHA3-384, SHA3-512

FIPS PUB 202

(tick)

(tick)

(tick)

(tick)

SHAKE-128, SHAKE-256

FIPS PUB 202, RFC 8702

(tick)

(tick)

(tick)

(tick)

SM3

RFC 8998

(tick)

(tick)

Tiger

Project NESSIE

(tick)

(tick)

(tick)

TupleHash-128, TupleHash-256

SP 800-185

(tick)

(tick)

(tick)

(tick)

Whirlpool

Project NESSIE, ISO/IEC 10118-3

(tick)

(tick)

(tick)

Post Quantum Algorithm Support

The following algorithms are standardized and implemented.

Key Encapsulation Algorithm (KEM)

Key Encapsulation Algorithm

External Reference

ML-KEM

FIPS PUB 203

Signature Algorithms

Signature Algorithm

External Reference

ML-DSA

FIPS PUB 204

SLH-DSA

FIPS PUB 205

LMS

SP 800-208, RFC 8554, RFC 8708

XMSS

SP 800-208, RFC 8391

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

Supported Standard

External Reference

CRL creation and URL based CRL Distribution Points.

RFC 5280

Online Certificate Status Protocol (OCSP), including AIA-extension and must-staple extension.

RFC 2560, RFC 6960RFC 5019 and RFC 8964

The German Common PKI SigG CertHash OCSP extension.

Certificate Enrollment Protocols

The following lists Certificate Enrollment Protocols and/or interfaces.

Protocol / Interface

External Reference

Documentation

Simple Certificate Enrollment Protocol (SCEP).

SCEP draft 23

SCEP

Certificate Management Protocol (CMP).

RFC 4210

CMP

Enrollment over Secure Transport (EST).

RFC 7030

EST

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.