Skip navigation links
Bouncy Castle Cryptography Library 1.85
Lightweight Crypto Packages 
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.
ASN.1 Support Packages 
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.
Utility Packages 
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  
Post-Quantum Lightweight Crypto Packages 
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).
Post-Quantum Lightweight Math Packages 
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  
Post-Quantum ASN.1 Packages 
Package Description
org.bouncycastle.pqc.asn1
ASN.1 Support classes for PQC algorithms.
Post-Quantum Test Packages 
Package Description
org.bouncycastle.pqc.crypto.test  
Skip navigation links
Bouncy Castle Cryptography Library 1.85