| Package | Description |
|---|---|
| org.bouncycastle.crypto |
Base classes for the lightweight API.
|
| org.bouncycastle.crypto.agreement |
Basic key agreement classes.
|
| org.bouncycastle.crypto.agreement.ecjpake |
Support classes for Elliptic Curve Password Authenticated Key Exchange by Juggling (EC J-PAKE) key exchange.
|
| org.bouncycastle.crypto.agreement.jpake |
Support classes for Password Authenticated Key Exchange by Juggling (J-PAKE) key exchange.
|
| org.bouncycastle.crypto.agreement.kdf |
Support classes for KDF based key derivation functions.
|
| org.bouncycastle.crypto.agreement.owl |
Support classes for the Owl augmented PAKE (Hao, Bag, Chen, Lopez 2024).
|
| org.bouncycastle.crypto.agreement.owl.test | |
| org.bouncycastle.crypto.agreement.srp |
Support classes for Secure Remote Password (SRP) protocol.
|
| org.bouncycastle.crypto.agreement.test | |
| org.bouncycastle.crypto.bls |
BLS signatures over the BLS12-381 curve, per draft-irtf-cfrg-bls-signature.
|
| org.bouncycastle.crypto.commitments |
Classes for supporting commitment calculation.
|
| org.bouncycastle.crypto.constraints |
Crypto-services-constraint framework: lets callers limit which cryptographic
primitives the lightweight API will produce (by key size, by allowlist, by purpose).
|
| org.bouncycastle.crypto.digests |
Message digest classes.
|
| org.bouncycastle.crypto.ec |
Utility classes for support Elliptic Curve cryptographic transforms.
|
| org.bouncycastle.crypto.ec.test | |
| org.bouncycastle.crypto.encodings |
Block encodings for asymmetric ciphers.
|
| org.bouncycastle.crypto.engines |
Basic cipher classes.
|
| org.bouncycastle.crypto.fpe |
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.
|
| org.bouncycastle.crypto.generators |
Generators for keys, key pairs and password based encryption algorithms.
|
| org.bouncycastle.crypto.hash2curve |
Hash to curve implementation
|
| org.bouncycastle.crypto.hash2curve.data | |
| org.bouncycastle.crypto.hash2curve.impl | |
| org.bouncycastle.crypto.hash2curve.test | |
| org.bouncycastle.crypto.hash2curve.test.impl | |
| org.bouncycastle.crypto.hpke |
Hybrid Public Key Encryption (HPKE) per
RFC 9180.
|
| org.bouncycastle.crypto.io |
Classes for doing "enhanced" I/O with Digests and MACs.
|
| org.bouncycastle.crypto.kems |
Key Encapsulation Mechanisms.
|
| org.bouncycastle.crypto.kems.cmce |
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.
|
| org.bouncycastle.crypto.kems.frodo |
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.
|
| org.bouncycastle.crypto.kems.mlkem |
ML-KEM (FIPS 203) bindings of the lightweight KEM API
(
EncapsulatedSecretGenerator /
EncapsulatedSecretExtractor) sitting on top of the
org.bouncycastle.pqc.crypto.mlkem primitives. |
| org.bouncycastle.crypto.macs |
Classes for creating MACs and HMACs.
|
| org.bouncycastle.crypto.modes |
Modes for symmetric ciphers.
|
| org.bouncycastle.crypto.modes.gcm |
GCM mode support classes.
|
| org.bouncycastle.crypto.modes.kgcm |
Lookup tables for KGCM (the GCM analogue used by the Ukrainian DSTU 7624 Kalyna
cipher).
|
| org.bouncycastle.crypto.paddings |
Paddings for symmetric ciphers.
|
| org.bouncycastle.crypto.params |
Classes for parameter objects for ciphers and generators.
|
| org.bouncycastle.crypto.parsers |
Helper classes for parsing "on the wire" public keys.
|
| org.bouncycastle.crypto.prng |
Lightweight psuedo-random number generators and SecureRandom builders.
|
| org.bouncycastle.crypto.prng.drbg |
SP800-90A deterministic random bit generators, can be used stand alone or in conjunction with SP800SecureRandomBuilder class.
|
| org.bouncycastle.crypto.prng.test | |
| org.bouncycastle.crypto.signers |
Basic signers.
|
| org.bouncycastle.crypto.signers.mldsa |
ML-DSA (FIPS 204) bindings of the lightweight signer API.
|
| org.bouncycastle.crypto.signers.slhdsa |
SLH-DSA (FIPS 205) bindings of the lightweight signer API.
|
| org.bouncycastle.crypto.test |
Example code and test classes for the lightweight API.
|
| org.bouncycastle.crypto.test.cavp | |
| org.bouncycastle.crypto.test.speedy | |
| org.bouncycastle.crypto.threshold |
Threshold-cryptography helpers — Shamir secret sharing over GF(28) and
supporting polynomial arithmetic.
|
| org.bouncycastle.crypto.threshold.test | |
| org.bouncycastle.crypto.tls |
Legacy lightweight TLS support — predates and is largely superseded by the standalone
org.bouncycastle.tls TLS / JSSE module. |
| org.bouncycastle.crypto.util |
Some general utility/conversion classes.
|
| Package | Description |
|---|---|
| org.bouncycastle.asn1 |
A library for parsing and writing ASN.1 objects.
|
| org.bouncycastle.asn1.anssi |
Support classes for the French ANSSI EC curves.
|
| org.bouncycastle.asn1.bc |
ASN.1 classes specific to the Bouncy Castle APIs.
|
| org.bouncycastle.asn1.bsi |
ASN.1 classes specific to the Bundesamt für Sicherheit in der Informationstechnik (BSI) standards.
|
| org.bouncycastle.asn1.cmc |
Support classes for Certificate Management over CMS (CMC) - RFC 5272 and RFC 6402.
|
| org.bouncycastle.asn1.cmc.test | |
| org.bouncycastle.asn1.cmp |
Support classes useful for encoding and supporting PKIX-CMP as described RFC 4210.
|
| org.bouncycastle.asn1.cmp.test | |
| org.bouncycastle.asn1.cms |
Support classes useful for encoding and supporting Cryptographic Message Syntax as described in PKCS#7 and RFC 3369 (formerly RFC 2630).
|
| org.bouncycastle.asn1.cms.ecc |
Support classes for CMS ECC - RFC 5753/3278.
|
| org.bouncycastle.asn1.cms.test | |
| org.bouncycastle.asn1.crmf |
Support classes useful for encoding and supporting PKIX-CRMF as described RFC 4211.
|
| org.bouncycastle.asn1.crmf.test | |
| org.bouncycastle.asn1.cryptlib |
Object identifier constants from the cryptlib OID arc (Peter Gutmann's cryptlib).
|
| org.bouncycastle.asn1.cryptopro |
Support classes for CRYPTO-PRO related objects - such as GOST identifiers.
|
| org.bouncycastle.asn1.dvcs |
Support classes useful for encoding and processing Data Validation and Certification Server (DVCS) protocols as described in RFC 3029.
|
| org.bouncycastle.asn1.dvcs.test | |
| org.bouncycastle.asn1.eac |
ASN.1 classes specific to the Bundesamt für Sicherheit in der Informationstechnik (BSI) Technical Guideline Advanced Security Mechanisms for Machine Readable Travel Documents.
|
| org.bouncycastle.asn1.edec |
Object identifier constants for the Edwards-curve EdDSA algorithms per RFC 8410
(id-X25519, id-X448, id-Ed25519, id-Ed448).
|
| org.bouncycastle.asn1.esf |
Support classes useful for encoding and supporting [ESF] RFC3126
Electronic Signature Formats for long term electronic signatures.
|
| org.bouncycastle.asn1.esf.test | |
| org.bouncycastle.asn1.ess |
Support classes useful for encoding and supporting Enhanced Security Services for S/MIME as described RFC 2634 and RFC 5035.
|
| org.bouncycastle.asn1.ess.test | |
| org.bouncycastle.asn1.est |
Support classes for Enrollment over Secure Transport (EST) - RFC 7030.
|
| org.bouncycastle.asn1.gm |
Support classes for Chinese Standard (GM) standard curves and algorithms.
|
| org.bouncycastle.asn1.gnu |
Object identifier constants from the GNU project's OID arc, including the OIDs used
by GnuPG for the Camellia and Brainpool curves.
|
| org.bouncycastle.asn1.iana |
Object identifier constants from the IANA-allocated PKIX OID registry — currently
covering the HMAC-SHA-1 OID used by IKE / IPsec.
|
| org.bouncycastle.asn1.icao |
ICAO ASN.1 classes for electronic passport.
|
| org.bouncycastle.asn1.icao.test | |
| org.bouncycastle.asn1.isara |
Object identifier constants from ISARA Corporation's quantum-safe OID arc — most
notably the XMSS / XMSS-MT signature OIDs they registered.
|
| org.bouncycastle.asn1.isismtt |
Support classes for the ISIS-MTT Project.
|
| org.bouncycastle.asn1.isismtt.ocsp |
Support classes for the ISIS-MTT profile for OCSP.
|
| org.bouncycastle.asn1.isismtt.test | |
| org.bouncycastle.asn1.isismtt.x509 |
Support classes for the ISIS-MTT X.509 Certificate Extensions.
|
| org.bouncycastle.asn1.iso |
Support classes for various ISO Standards.
|
| org.bouncycastle.asn1.kisa |
Support classes for the Korea Information Security Agency (KISA) standard - SEED algorithm.
|
| org.bouncycastle.asn1.microsoft |
Support for Microsoft specific ASN.1 classes and object identifiers.
|
| org.bouncycastle.asn1.microsoft.test | |
| org.bouncycastle.asn1.misc |
Miscellaneous object identifiers and objects.
|
| org.bouncycastle.asn1.misc.test | |
| org.bouncycastle.asn1.mod | |
| org.bouncycastle.asn1.mozilla |
ASN.1 types and OID constants for Mozilla's SignedPublicKeyAndChallenge (SPKAC) form
— the browser-side certificate-enrolment structure historically emitted by
<keygen> elements. |
| org.bouncycastle.asn1.nist |
Support classes for NIST related objects.
|
| org.bouncycastle.asn1.nsri |
Support classes algorithms from the Korean National Security Research Institute.
|
| org.bouncycastle.asn1.ntt |
ASN.1 classes relevant to the standards produced by Nippon Telegraph and Telephone.
|
| org.bouncycastle.asn1.ocsp |
Support classes useful for encoding and supporting OCSP objects.
|
| org.bouncycastle.asn1.oiw |
Objects and OID for the support of ISO OIW.
|
| org.bouncycastle.asn1.pkcs |
Support classes useful for encoding and supporting the various RSA PKCS documents.
|
| org.bouncycastle.asn1.plants |
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. |
| org.bouncycastle.asn1.rosstandart |
Support classes algorithms from the Russian Federal Agency on Technical Regulating and Metrology - Rosstandart.
|
| org.bouncycastle.asn1.sec |
Classes for support of the SEC standard for Elliptic Curve.
|
| org.bouncycastle.asn1.smime |
Support classes useful for encoding and supporting S/MIME.
|
| org.bouncycastle.asn1.smime.test | |
| org.bouncycastle.asn1.teletrust |
Support classes for TeleTrust related objects.
|
| org.bouncycastle.asn1.test |
Test programs for the ASN.1 package.
|
| org.bouncycastle.asn1.tsp |
Support classes useful for encoding and supporting Time Stamp Protocol as described RFC 3161.
|
| org.bouncycastle.asn1.ua |
Support classes for the Ukrainian DSTU standard.
|
| org.bouncycastle.asn1.util |
An ASN.1 dump utility.
|
| org.bouncycastle.asn1.util.test | |
| org.bouncycastle.asn1.x500 |
Support classes for the creation and processing of object based on X.500 names.
|
| org.bouncycastle.asn1.x500.style |
Template classes for the common styles used for converting X.500 names to strings and back.
|
| org.bouncycastle.asn1.x509 |
Support classes useful for encoding and processing X.509 certificates.
|
| org.bouncycastle.asn1.x509.qualified |
Support classes useful for encoding and processing messages based around RFC3739
|
| org.bouncycastle.asn1.x509.sigi |
Support classes for the German SigI (Signature Interoperability Specification) standard.
|
| org.bouncycastle.asn1.x9 |
Support classes useful for encoding and supporting X9.62 elliptic curve.
|
| Package | Description |
|---|---|
| org.bouncycastle.math |
The Bouncy Castle math package.
|
| org.bouncycastle.math.ec |
Math support for Elliptic Curve.
|
| org.bouncycastle.math.ec.custom.djb |
Experimental implementation of curve25519.
|
| org.bouncycastle.math.ec.custom.gm |
Custom implementation of SM2 EC curve, SM2-P256V1.
|
| org.bouncycastle.math.ec.custom.sec |
Custom implementations of (most of) the curves over Fp from the SEC specification.
|
| org.bouncycastle.math.ec.custom.sec.test | |
| org.bouncycastle.math.ec.endo |
Endomorphism support for the EC math classes — the GLV / GLS decomposition tables
that accelerate scalar multiplication on suitable curves (secp256k1, etc.).
|
| org.bouncycastle.math.ec.rfc7748 |
Constant-time scalar-multiplication implementations for the Curve25519 and Curve448
elliptic curves per RFC 7748.
|
| org.bouncycastle.math.ec.rfc7748.test | |
| org.bouncycastle.math.ec.rfc8032 |
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. |
| org.bouncycastle.math.ec.rfc8032.test | |
| org.bouncycastle.math.ec.test | |
| org.bouncycastle.math.ec.tools |
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. |
| org.bouncycastle.math.field |
Polynomial-field math (GF(2m) with various basis representations) used to
back the F2m elliptic curves in
org.bouncycastle.math.ec. |
| org.bouncycastle.math.raw |
Math support for raw multi-precision calculations.
|
| org.bouncycastle.math.raw.test | |
| org.bouncycastle.math.test | |
| org.bouncycastle.util |
General purpose utility classes used throughout the APIs.
|
| org.bouncycastle.util.encoders |
Classes for producing and reading Base64 and Hex strings.
|
| org.bouncycastle.util.encoders.test | |
| org.bouncycastle.util.io |
General purpose I/O helper classes and wrappers.
|
| org.bouncycastle.util.io.pem |
Classes for reading and writing raw PEM objects.
|
| org.bouncycastle.util.io.pem.test | |
| org.bouncycastle.util.io.test | |
| org.bouncycastle.util.test |
Light weight test API.
|
| org.bouncycastle.util.utiltest |
| Package | Description |
|---|---|
| org.bouncycastle.pqc.crypto |
Root of the lightweight Post-Quantum Cryptography implementations.
|
| org.bouncycastle.pqc.crypto.aimer |
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.
|
| org.bouncycastle.pqc.crypto.cmce |
Lightweight implementation of Classic McEliece (Round 4 NIST PQC KEM finalist).
|
| org.bouncycastle.pqc.crypto.crystals.dilithium |
Lightweight implementation of CRYSTALS-Dilithium (the NIST Round 3 submission that
was subsequently standardised as ML-DSA / FIPS 204).
|
| org.bouncycastle.pqc.crypto.faest |
Lightweight implementation of FAEST — symmetric-primitive digital signature
scheme based on AES and the VOLE-in-the-Head proof system.
|
| org.bouncycastle.pqc.crypto.falcon |
Lightweight implementation of Falcon, the NTRU-lattice-based signature scheme
selected for standardisation by NIST.
|
| org.bouncycastle.pqc.crypto.frodo |
Lightweight implementation of FrodoKEM (a learning-with-errors KEM that did not
advance past Round 3 of the NIST PQC process; retained as a conservative reference).
|
| org.bouncycastle.pqc.crypto.haetae |
Lightweight implementation of HAETAE, a module-lattice-based signature scheme in the
NIST PQC additional-digital-signatures round.
|
| org.bouncycastle.pqc.crypto.hawk |
Lightweight implementation of Hawk, an NTRU-lattice-based signature scheme in the
NIST PQC additional-digital-signatures round.
|
| org.bouncycastle.pqc.crypto.hqc |
Lightweight implementation of HQC (Hamming Quasi-Cyclic), a code-based KEM that NIST
selected for standardisation as a backup to ML-KEM.
|
| org.bouncycastle.pqc.crypto.lms |
Lightweight implementation of LMS and the HSS multi-tree variant per RFC 8554
(hash-based stateful signatures).
|
| org.bouncycastle.pqc.crypto.mayo |
Lightweight implementation of MAYO, a UOV-based signature scheme in the NIST PQC
additional-digital-signatures round.
|
| org.bouncycastle.pqc.crypto.mldsa |
Lightweight implementation of ML-DSA (Module-Lattice-Based Digital Signature Algorithm)
as standardised by NIST FIPS 204.
|
| org.bouncycastle.pqc.crypto.mlkem |
Lightweight implementation of ML-KEM (Module-Lattice-Based Key-Encapsulation Mechanism)
as standardised by NIST FIPS 203.
|
| org.bouncycastle.pqc.crypto.mqom |
Lightweight implementation of MQOM ("MQ on my Mind"), an MPC-in-the-Head signature
scheme in the NIST PQC additional-digital-signatures round.
|
| org.bouncycastle.pqc.crypto.newhope |
Low level implementation of the NewHope key exchange algorithm.
|
| org.bouncycastle.pqc.crypto.ntru |
The NTRU algorithm based on the round 3 submission of the NIST post-quantum cryptography.
|
| org.bouncycastle.pqc.crypto.ntruplus |
Lightweight implementation of NTRU+ (Korean post-quantum KEM submission).
|
| org.bouncycastle.pqc.crypto.ntruprime |
Lightweight implementation of NTRU Prime — the streamlined-NTRU and NTRU LPRime
KEM variants from the NIST PQC Round 3 alternates.
|
| org.bouncycastle.pqc.crypto.qruov |
Lightweight implementation of QR-UOV, a quotient-ring variant of the UOV multivariate
signature scheme in the NIST PQC additional-digital-signatures round.
|
| org.bouncycastle.pqc.crypto.saber |
Lightweight implementation of SABER, a module-lattice KEM from the NIST PQC Round 3
finalists.
|
| org.bouncycastle.pqc.crypto.sdith |
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.
|
| org.bouncycastle.pqc.crypto.slhdsa |
Lightweight implementation of SLH-DSA (Stateless Hash-Based Digital Signature
Algorithm) as standardised by NIST FIPS 205, succeeding the SPHINCS+ submission in
org.bouncycastle.pqc.legacy.sphincsplus. |
| org.bouncycastle.pqc.crypto.snova |
Lightweight implementation of SNOVA, a UOV-variant signature scheme in the NIST PQC
additional-digital-signatures round.
|
| org.bouncycastle.pqc.crypto.sphincs |
Low level implementation of the SPHINCS-256 signature algorithm.
|
| org.bouncycastle.pqc.crypto.sqisign |
Lightweight implementation of SQIsign (Short Quaternion and Isogeny Signature), an
isogeny-based signature scheme in the NIST PQC additional-digital-signatures round.
|
| org.bouncycastle.pqc.crypto.uov |
Lightweight implementation of UOV (Unbalanced Oil and Vinegar), a multivariate-quadratic
signature scheme in the NIST PQC additional-digital-signatures round.
|
| org.bouncycastle.pqc.crypto.util |
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. |
| org.bouncycastle.pqc.crypto.xmss |
Low level implementation of the XMSS and XMSS^MT signature algorithms.
|
| org.bouncycastle.pqc.crypto.xwing |
Lightweight implementation of X-Wing, the hybrid KEM combining X25519 and ML-KEM-768
(draft-connolly-cfrg-xwing-kem).
|
| Package | Description |
|---|---|
| org.bouncycastle.pqc.math.ntru |
Contains the polynomial classes used in the NTRU round 3 algorithm.
|
| org.bouncycastle.pqc.math.ntru.parameters |
Parameter sets and supporting polynomial arithmetic for the NTRU-family KEM
implementations.
|
| org.bouncycastle.pqc.math.ntru.test |
| Package | Description |
|---|---|
| org.bouncycastle.pqc.asn1 |
ASN.1 Support classes for PQC algorithms.
|
| Package | Description |
|---|---|
| org.bouncycastle.pqc.crypto.test |