Overview (Bouncy Castle Library 1.52 API Specification)

ASN.1 Support Packages
Package | Description
--- | ---
org.bouncycastle.asn1 | A library for parsing and writing ASN.1 objects.
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.cmp | Support classes useful for encoding and supporting PKIX-CMP as described RFC 4210.
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.crmf | Support classes useful for encoding and supporting PKIX-CRMF as described RFC 4211.
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.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.esf | Support classes useful for encoding and supporting [ESF] RFC3126 Electronic Signature Formats for long term electronic signatures.
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.gnu | ASN.1 classes specific to the GNU APIs and applications.
org.bouncycastle.asn1.iana | ASN.1 classes specific to the Internet Assigned Numbers Authority (IANA).
org.bouncycastle.asn1.icao | ICAO ASN.1 classes for electronic passport.
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.x509 | Support classes for the ISIS-MTT X.509 Certificate Extensions.
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.misc | Miscellaneous object identifiers and objects.
org.bouncycastle.asn1.mozilla | Support classes useful for encoding objects used by mozilla.
org.bouncycastle.asn1.nist | Support classes for NIST related objects.
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.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.teletrust | Support classes for TeleTrust related objects.
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.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.

JCA/JCE Provider
Package | Description
--- | ---
org.bouncycastle.jcajce.provider.asymmetric |
org.bouncycastle.jcajce.provider.asymmetric.dh |
org.bouncycastle.jcajce.provider.asymmetric.dsa |
org.bouncycastle.jcajce.provider.asymmetric.dstu |
org.bouncycastle.jcajce.provider.asymmetric.ec |
org.bouncycastle.jcajce.provider.asymmetric.ecgost |
org.bouncycastle.jcajce.provider.asymmetric.elgamal |
org.bouncycastle.jcajce.provider.asymmetric.gost |
org.bouncycastle.jcajce.provider.asymmetric.ies |
org.bouncycastle.jcajce.provider.asymmetric.rsa |
org.bouncycastle.jcajce.provider.asymmetric.util |
org.bouncycastle.jcajce.provider.asymmetric.x509 |
org.bouncycastle.jcajce.provider.config |
org.bouncycastle.jcajce.provider.digest |
org.bouncycastle.jcajce.provider.keystore |
org.bouncycastle.jcajce.provider.keystore.bc |
org.bouncycastle.jcajce.provider.keystore.pkcs12 |
org.bouncycastle.jcajce.provider.symmetric |
org.bouncycastle.jcajce.provider.symmetric.util |
org.bouncycastle.jcajce.provider.util |
org.bouncycastle.jce.provider |

JCA/JCE Utility and Extension Packages
Package | Description
--- | ---
org.bouncycastle.jcajce |
org.bouncycastle.jcajce.io |
org.bouncycastle.jcajce.spec |
org.bouncycastle.jcajce.util |
org.bouncycastle.jce | Utility classes for use with the JCE.
org.bouncycastle.jce.exception |
org.bouncycastle.jce.interfaces | Interfaces for supporting Elliptic Curve Keys, El Gamal, and PKCS12 attributes.
org.bouncycastle.jce.netscape |
org.bouncycastle.jce.spec | Parameter specifications for supporting El Gamal, and Elliptic Curve.

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.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.srp | Support classes for Secure Remote Password (SRP) protocol.
org.bouncycastle.crypto.commitments | Classes for supporting commitment calculation.
org.bouncycastle.crypto.digests | Message digest classes.
org.bouncycastle.crypto.ec | Utility classes for support Elliptic Curve cryptographic transforms.
org.bouncycastle.crypto.encodings | Block encodings for asymmetric ciphers.
org.bouncycastle.crypto.engines | Basic cipher classes.
org.bouncycastle.crypto.examples | Simple examples of light weight API usage.
org.bouncycastle.crypto.generators | Generators for keys, key pairs and password based encryption algorithms.
org.bouncycastle.crypto.io | Classes for doing "enhanced" I/O with Digests and MACs.
org.bouncycastle.crypto.kems | Key Encapsulation Mechanisms.
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.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.signers | Basic signers.
org.bouncycastle.crypto.tls | A lightweight TLS API.
org.bouncycastle.crypto.util | Some general utility/conversion classes.

Math and Utility Packages
Package | Description
--- | ---
org.bouncycastle.math.ec | Math support for Elliptic Curve.
org.bouncycastle.math.ec.custom.djb | Experimental implementation of curve25519.
org.bouncycastle.math.ec.custom.sec | Custom implementations of (most of) the curves over Fp from the SEC specification.
org.bouncycastle.math.ec.endo |
org.bouncycastle.math.ec.tools |
org.bouncycastle.math.field |
org.bouncycastle.math.raw | Math support for raw multi-precision calculations.
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.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.test | Light weight test API.

Test Packages
Package | Description
--- | ---
org.bouncycastle.asn1.test | Test programs for the ASN.1 package.
org.bouncycastle.crypto.agreement.test |
org.bouncycastle.crypto.ec.test |
org.bouncycastle.crypto.prng.test |
org.bouncycastle.crypto.test | Example code and test classes for the lightweight API.
org.bouncycastle.crypto.tls.test |
org.bouncycastle.jce.provider.test |
org.bouncycastle.jce.provider.test.nist |
org.bouncycastle.jce.provider.test.rsa3 |

Post-Quantum Lightweight Crypto Packages
Package | Description
--- | ---
org.bouncycastle.pqc.crypto |
org.bouncycastle.pqc.crypto.gmss |
org.bouncycastle.pqc.crypto.gmss.util |
org.bouncycastle.pqc.crypto.mceliece |
org.bouncycastle.pqc.crypto.ntru |
org.bouncycastle.pqc.crypto.rainbow |
org.bouncycastle.pqc.crypto.rainbow.util |

Post-Quantum ASN.1 Packages
Package | Description
--- | ---
org.bouncycastle.pqc.asn1 |

Post-Quantum Lightweight Math Packages
Package | Description
--- | ---
org.bouncycastle.pqc.math.linearalgebra |
org.bouncycastle.pqc.math.ntru.euclid |
org.bouncycastle.pqc.math.ntru.polynomial |
org.bouncycastle.pqc.math.ntru.util |

Post-Quantum Provider
Package | Description
--- | ---
org.bouncycastle.pqc.jcajce.provider |
org.bouncycastle.pqc.jcajce.provider.gmss |
org.bouncycastle.pqc.jcajce.provider.mceliece |
org.bouncycastle.pqc.jcajce.provider.rainbow |
org.bouncycastle.pqc.jcajce.provider.util |
org.bouncycastle.pqc.jcajce.spec |

Post-Quantum Test Packages
Package | Description
--- | ---
org.bouncycastle.pqc.crypto.test |
org.bouncycastle.pqc.jcajce.provider.test |
org.bouncycastle.pqc.math.ntru.euclid.test |
org.bouncycastle.pqc.math.ntru.polynomial.test |
org.bouncycastle.pqc.math.ntru.util.test |