All Packages
Package Summary
Package
Description
Root namespace for the Bouncy Castle library.
A library for parsing and writing ASN.1 objects.
Support classes for the French ANSSI EC curves.
ASN.1 classes specific to the Bouncy Castle APIs.
Support classes for CRYPTO-PRO related objects - such as GOST identifiers.
Support classes for Chinese Standard (GM) standard curves and algorithms.
Object identifier constants from the IANA-allocated PKIX OID registry — currently
covering the HMAC-SHA-1 OID used by IKE / IPsec.
Support classes for NIST related objects.
Support classes useful for encoding and supporting OCSP objects.
Support classes useful for encoding and supporting the various RSA PKCS documents.
ASN.1 types for the IETF PLANTS working group's Merkle Tree Certificate work
(
draft-ietf-plants-merkle-tree-certs), including the
MerkleTreeCertEntry and MTCProof structures.Classes for support of the SEC standard for Elliptic Curve.
Support classes for TeleTrust related objects.
Support classes for the Ukrainian DSTU standard.
An ASN.1 dump utility.
Support classes for the creation and processing of object based on X.500 names.
Template classes for the common styles used for converting X.500 names to strings and back.
Support classes useful for encoding and processing X.509 certificates.
Support classes useful for encoding and processing messages based around RFC3739
Support classes for the German SigI (Signature Interoperability Specification) standard.
Support classes useful for encoding and supporting X9.62 elliptic curve.
Base classes for the lightweight API.
Basic key agreement classes.
Support classes for Elliptic Curve Password Authenticated Key Exchange by Juggling (EC J-PAKE) key exchange.
Support classes for Password Authenticated Key Exchange by Juggling (J-PAKE) key exchange.
Support classes for KDF based key derivation functions.
Support classes for the Owl augmented PAKE (Hao, Bag, Chen, Lopez 2024).
Support classes for Secure Remote Password (SRP) protocol.
BLS signatures over the BLS12-381 curve, per draft-irtf-cfrg-bls-signature.
Classes for supporting commitment calculation.
Crypto-services-constraint framework: lets callers limit which cryptographic
primitives the lightweight API will produce (by key size, by allowlist, by purpose).
Message digest classes.
Utility classes for support Elliptic Curve cryptographic transforms.
Block encodings for asymmetric ciphers.
Basic cipher classes.
Format-Preserving Encryption per NIST SP 800-38G: FF1 and FF3-1 modes that produce
ciphertext in the same alphabet (digits / strings) as the input plaintext.
Generators for keys, key pairs and password based encryption algorithms.
Hash to curve implementation
Hybrid Public Key Encryption (HPKE) per
RFC 9180.
Classes for doing "enhanced" I/O with Digests and MACs.
Key Encapsulation Mechanisms.
The Classic McEliece key encapsulation mechanism as standardised in ISO/IEC 18033-2:2006/Amd
2:2026 (Clause 13): lightweight engine internals for the non-pc and pc ("plaintext confirmation")
parameter sets, each in a plain and a semi-systematic ("f") key-generation variant.
The FrodoKEM key encapsulation mechanism as standardised in ISO/IEC 18033-2:2006/Amd 2:2026
(Clause 14): lightweight engine internals for the salted "FrodoKEM" and ephemeral "eFrodoKEM"
SHAKE parameter sets.
ML-KEM (FIPS 203) bindings of the lightweight KEM API
(
EncapsulatedSecretGenerator /
EncapsulatedSecretExtractor), backing
MLKEMGenerator and
MLKEMExtractor.Classes for creating MACs and HMACs.
Modes for symmetric ciphers.
GCM mode support classes.
Lookup tables for KGCM (the GCM analogue used by the Ukrainian DSTU 7624 Kalyna
cipher).
Paddings for symmetric ciphers.
Classes for parameter objects for ciphers and generators.
Helper classes for parsing "on the wire" public keys.
Lightweight psuedo-random number generators and SecureRandom builders.
SP800-90A deterministic random bit generators, can be used stand alone or in conjunction with SP800SecureRandomBuilder class.
Basic signers.
Engine for LMS and the HSS multi-tree variant per RFC 8554 (hash-based stateful signatures).
Internal ML-DSA (FIPS 204) engine backing
MLDSASigner
and HashMLDSASigner.Internal SLH-DSA (FIPS 205) engine backing
SLHDSASigner
and HashSLHDSASigner.Threshold-cryptography helpers — Shamir secret sharing over GF(28) and
supporting polynomial arithmetic.
Legacy lightweight TLS support — predates and is largely superseded by the standalone
org.bouncycastle.tls TLS / JSSE module.Some general utility/conversion classes.
Internationalisation framework used by BC's validators (chiefly the S/MIME signed-mail
validator and the PKIX cert-path validator) to render failure messages from
resource bundles.
Output filters (HTML escaper, trusted-input passthrough) used by the message renderer
in
org.bouncycastle.i18n to safely interpolate dynamic arguments into
localised strings.The Bouncy Castle math package.
Math support for Elliptic Curve.
Experimental implementation of curve25519.
Custom implementation of SM2 EC curve, SM2-P256V1.
Custom implementations of (most of) the curves over Fp from the SEC specification.
Endomorphism support for the EC math classes — the GLV / GLS decomposition tables
that accelerate scalar multiplication on suitable curves (secp256k1, etc.).
Constant-time scalar-multiplication implementations for the Curve25519 and Curve448
elliptic curves per RFC 7748.
Constant-time implementations of the Ed25519 and Ed448 signature schemes per RFC 8032,
sitting on top of the Curve25519 / Curve448 scalar-multiplication in
org.bouncycastle.math.ec.rfc7748.Curve, extension-field and pairing arithmetic for the SM9 identity-based
cryptographic algorithms (GM/T 0044.5-2016): the 256-bit Barreto-Naehrig curve
with its G1 group (see
SM9Curve, backed by
the constant-time Montgomery curve
SM9P256V1Curve), the G2 sextic twist over F_p2
(SM9G2Point), the F_p2/F_p4/F_p12
1-2-4-12 tower, and the R-ate pairing e: G1 x G2 -> G_T
(SM9Pairing, target group
Fp12).Standalone tools for working with elliptic curves — discrete log calculators, curve
parameter generators, and table-generation utilities used to bootstrap the named
curves in
org.bouncycastle.math.ec.Polynomial-field math (GF(2m) with various basis representations) used to
back the F2m elliptic curves in
org.bouncycastle.math.ec.Math support for raw multi-precision calculations.
ASN.1 Support classes for PQC algorithms.
Root of the lightweight Post-Quantum Cryptography implementations.
Lightweight implementation of AIMer, an MPC-in-the-Head signature scheme built on the
AIM2 one-way function, in the NIST PQC additional-digital-signatures round.
Lightweight implementation of FAEST — symmetric-primitive digital signature
scheme based on AES and the VOLE-in-the-Head proof system.
Lightweight implementation of Falcon, the NTRU-lattice-based signature scheme
selected for standardisation by NIST.
Lightweight implementation of HAETAE, a module-lattice-based signature scheme in the
NIST PQC additional-digital-signatures round.
Lightweight implementation of HQC (Hamming Quasi-Cyclic), a code-based KEM that NIST
selected for standardisation as a backup to ML-KEM.
Lightweight implementation of LMS and the HSS multi-tree variant per RFC 8554
(hash-based stateful signatures).
Lightweight implementation of MAYO, a UOV-based signature scheme in the NIST PQC
additional-digital-signatures round.
Lightweight implementation of MQOM ("MQ on my Mind"), an MPC-in-the-Head signature
scheme in the NIST PQC additional-digital-signatures round.
Low level implementation of the NewHope key exchange algorithm.
The NTRU algorithm based on the round 3 submission of the NIST post-quantum cryptography.
Lightweight implementation of NTRU+ (Korean post-quantum KEM submission).
Lightweight implementation of NTRU Prime — the streamlined-NTRU and NTRU LPRime
KEM variants from the NIST PQC Round 3 alternates.
Lightweight implementation of QR-UOV, a quotient-ring variant of the UOV multivariate
signature scheme in the NIST PQC additional-digital-signatures round.
Lightweight implementation of SABER, a module-lattice KEM from the NIST PQC Round 3
finalists.
Lightweight implementation of SDitH ("Syndrome Decoding in the Head"), a code-based
MPC-in-the-Head signature scheme in the NIST PQC additional-digital-signatures round.
Lightweight implementation of SMAUG-T (Korean post-quantum KEM submission).
Lightweight implementation of SNOVA, a UOV-variant signature scheme in the NIST PQC
additional-digital-signatures round.
Low level implementation of the SPHINCS-256 signature algorithm.
Lightweight implementation of SQIsign (Short Quaternion and Isogeny Signature), an
isogeny-based signature scheme in the NIST PQC additional-digital-signatures round.
Lightweight implementation of UOV (Unbalanced Oil and Vinegar), a multivariate-quadratic
signature scheme in the NIST PQC additional-digital-signatures round.
Shared PQC factory utilities —
PublicKeyFactory, PrivateKeyFactory,
SubjectPublicKeyInfoFactory, PrivateKeyInfoFactory and the OID lookup
helpers that route PQC parameter sets between the wire-format ASN.1 layer and the
lightweight Parameters types.Low level implementation of the XMSS and XMSS^MT signature algorithms.
Lightweight implementation of X-Wing, the hybrid KEM combining X25519 and ML-KEM-768
(draft-connolly-cfrg-xwing-kem).
Lightweight implementation of BIKE (Bit-Flipping Key Encapsulation), a code-based
KEM from the NIST PQC Round 4 alternates.
Lightweight implementation of CRYSTALS-Dilithium (the NIST Round 3 submission that
was subsequently standardised as ML-DSA / FIPS 204).
Lightweight implementation of Hawk, an NTRU-lattice-based signature scheme in the
NIST PQC additional-digital-signatures round.
Lightweight implementation of SPHINCS+ (the NIST PQC Round 3 submission that was
subsequently standardised as SLH-DSA / FIPS 205).
Contains the polynomial classes used in the NTRU round 3 algorithm.
Parameter sets and supporting polynomial arithmetic for the NTRU-family KEM
implementations.
General purpose utility classes used throughout the APIs.
Classes for producing and reading Base64 and Hex strings.
General purpose I/O helper classes and wrappers.
Classes for reading and writing raw PEM objects.
Light weight test API.