All Classes and Interfaces

Class
Description
 
 
This class provides some default behavior and common implementation for a X500NameStyle.
The AccessDescription object.
Implements a certificate only JKS key store.
An AEADCipher based on a BlockCipher.
A cipher mode that includes authenticated encryption with a streaming mode and optional associated data.
 
ParameterSpec for AEAD modes which allows associated data to be added via an algorithm parameter spec.In normal circumstances you would only want to use this if you had to work with the pre-JDK1.7 Cipher class as associated data is ignored for the purposes of returning a Cipher's parameters.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
PBEWithAES-CBC
PBEWithMD5And128BitAES-OpenSSL
PBEWithMD5And192BitAES-OpenSSL
PBEWithMD5And256BitAES-OpenSSL
PBEWithSHA1AES-CBC
 
 
PBEWithSHA256AES-CBC
 
 
PBEWithSHA256And128BitAES-BC
PBEWithSHA256And192BitAES-BC
PBEWithSHA256And256BitAES-BC
PBEWithSHA1And128BitAES-BC
PBEWithSHA1And192BitAES-BC
PBEWithSHA1And256BitAES-BC
 
 
 
 
 
 
 
 
 
 
 
 
an implementation of the AES (Rijndael), from FIPS-197.
Deprecated.
unfortunately this class is has a few side channel issues.
an implementation of the AES (Rijndael), from FIPS-197.
an implementation of the AES Key Wrapper from the NIST Key Wrap Specification.
 
Simple holder for affine field coordinates.
A RuntimeException that carries several underlying exceptions rather than a single cause - for example the complete set of problems found when reviewing a malformed structure, where surfacing only the first would lose information.
 
 
 
 
 
 
 
 
 
 
 
Implementation of the AIMer asymmetric key pair generator following the AIMer signature scheme specifications.
 
 
 
 
 
 
 
Common base for AIMer public and private key parameter classes; carries the AIMerParameters parameter set the key belongs to.
Parameter set for the AIMer PQC signature scheme (KpqC Round 2 submission).
 
Lightweight private key parameters for AIMer.
Lightweight public key parameters for AIMer.
Implementation of the AIMer digital signature scheme as specified in the AIMer documentation.
 
Factory methods for common AlgorithmIdentifiers.
 
 
 
 
 
 
 
AlgorithmParameters for the RFC 8032 EdDSA instance selectors (prehash / context) carried by EdDSAParameterSpec.
 
 
 
 
 
 
 
 
General JCA/JCE utility methods.
 
Base interface for mapping from an alphabet to a set of indexes suitable for use with FPE.
X.509 Section 9.8.3.
X.509 Section 9.8.4.
 
Wrapper for a private key that carries annotations that can be used for tracking or debugging.
ANSSI Elliptic curve table.
Object Identifiers belong to the French Agency, ANSSI.
 
 
 
 
PBEWithSHAAnd128BitRC4
PBEWithSHAAnd128BitRC4
PBEWithSHAAnd40BitRC4
PBEWithSHAAnd40BitRC4
 
 
 
 
Argon2 PBKDF - Based on the results of https://password-hashing.net/ and https://www.ietf.org/archive/id/draft-irtf-cfrg-argon2-03.txt
A single 1024-byte memory block used by the Argon2 mixing function.
Strategy for allocating and recycling Argon2 Argon2BytesGenerator.Block objects.
Bounded pool that recycles up to maxBlocks Argon2BytesGenerator.Block objects.
Key spec for use with the Argon2 SecretKeyFactory (RFC 9106).
Configuration parameters for the Argon2 PBKDF.
Fluent builder for Argon2Parameters.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
RFC 5794.
an implementation of the ARIA Key Wrapper from the NIST Key Wrap Specification.
 
General array utilities.
Iterator backed by a specific array.
Ascon-AEAD128 was introduced in NIST Special Publication (SP) 800-232
Ascon-CXOF128 was introduced in NIST Special Publication (SP) 800-232
Deprecated.
use Ascon Hash 256 Digest
 
Deprecated.
Now superseded.
 
Ascon-Hash256 was introduced in NIST Special Publication (SP) 800-232
 
 
Deprecated.
Now superseded - please use AsconXof128
 
Ascon-XOF128 was introduced in NIST Special Publication (SP) 800-232
An ASN1 class that encodes to nothing, used in the OER library to deal with the Optional type.
Base class for BIT STRING objects
A basic parser for a BIT STRING object
ASN.1 BMPString object encodes BMP (Basic Multilingual Plane) subset (aka UCS-2) of UNICODE (ISO 10646) characters in codepoints 0 to 65535.
Public facade of ASN.1 Boolean data.
Marker interface for CHOICE objects - if you implement this in a role your own object any attempt to tag the object implicitly will convert the tag to an explicit one as the encoding rules require.
Utility class for dumping ASN.1 objects as (hopefully) human friendly strings.
Basic interface to produce serialisers for ASN.1 encodings.
Mutable class for building ASN.1 constructed objects such as SETs or SEQUENCEs.
Supported encoding formats.
Class representing the ASN.1 ENUMERATED type.
Exception thrown in cases of corrupted or unexpected data in a stream.
Class representing the DER-type External
Parser DER EXTERNAL tagged objects.
Base class representing the ASN.1 GeneralizedTime type.
ASN.1 GENERAL-STRING data type.
Basic class for streaming generators.
 
ASN.1 IA5String object - this is a ISO 646 (ASCII) string encoding code points 0 to 127.
A general purpose ASN.1 decoder - note: this class differs from the others in that it returns null after it has read the last object in the stream.
Class representing the ASN.1 INTEGER type.
A NULL object - use DERNull.INSTANCE for populating structures.
NumericString object - this is an ascii string of characters {0,1,2,3,4,5,6,7,8,9, }.
Base class for defining an ASN.1 object.
 
Class representing the ASN.1 OBJECT IDENTIFIER type.
Abstract base for the ASN.1 OCTET STRING data type
A basic parser for an OCTET STRING object
Stream that produces output based on the default encoding for the passed in objects.
Exception thrown when correctly encoded, but unexpected data is found in a stream while building an object.
Base class for ASN.1 primitive objects.
ASN.1 PrintableString object.
 
ASN.1 SEQUENCE and SEQUENCE OF constructs.
A basic parser for a SEQUENCE object
ASN.1 SET and SET OF constructs.
A basic parser for a SET object
A parser for ASN.1 streams which also returns, where possible, parsers for the objects it encounters.
General interface implemented by ASN.1 STRING objects for extracting the content String.
ASN.1 T61String (also the teletex string), try not to use this if you don't need to.
ASN.1 TaggedObject - in ASN.1 notation this is any object preceded by a [n] where n is some number - these are assumed to follow the construction rules (as with sequences).
Interface for the parsing of a generic tagged ASN.1 object.
White-box tests for ASN1TimeFormat, the strict structural validator for UTCTime / GeneralizedTime content.
ASN.1 UniversalString object - encodes UNICODE (ISO 10646) characters using 32-bit format.
- * UTC time object.
 
 
 
ASN.1 VisibleString object encoding ISO 646 (ASCII) character code points 32 to 126.
 
base interface that a public/private key block cipher needs to conform to.
The AsymmetricBlockCipher class extends CipherSpiExt.
a holding class for public/private parameter pairs.
interface that a public/private key pair generator should conform to.
The AsymmetricHybridCipher class extends CipherSpiExt.
 
 
 
 
 
 
 
 
Holding class for the AttributeTypeAndValue structures that make up an RDN.
 
The AuthorityInformationAccess object.
The AuthorityKeyIdentifier object.
 
Utility class for converting Base32 data to bytes and back again.
A streaming Base32 encoder.
Utility class for converting Base64 data to bytes and back again.
A streaming Base64 encoder.
 
 
 
 
 
 
 
 
Basic KDF generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
This implementation is based on ISO 18033/P1363a.
 
 
 
 
 
 
 
 
 
 
The basic interface that basic Diffie-Hellman implementations conforms to.
A basic alphabet mapper that just creates a mapper based on the passed in array of characters.
 
An EntropySourceProvider where entropy generation is based on a SecureRandom output using SecureRandom.generateSeed().
 
 
 
 
 
OCSP RFC 2560, RFC 6960
 
 
 
 
 
 
 
 
Deprecated.
the standardised Classic McEliece KEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see org.bouncycastle.crypto.params.CMCEParameters and org.bouncycastle.jcajce.spec.CMCEParameterSpec).
 
Deprecated.
the standardised Classic McEliece KEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see org.bouncycastle.crypto.params.CMCEParameters and org.bouncycastle.jcajce.spec.CMCEParameterSpec).
 
 
 
 
 
 
 
 
Represent two kind of GOST34.10 2012 PrivateKeys: with 256 and 512 size
Represent two kind of GOST34.10 2012 PublicKeys: with 256 and 512 size
 
 
 
 
 
 
 
 
 
 
 
 
 
 
LoadStoreParameter to allow configuring of the PBKDF used to generate encryption keys for use in the keystore.
 
 
 
 
 
Deprecated.
This class does not support configuration on creation, use BCFKSLoadStoreParameter for best results.
 
 
Deprecated.
the standardised FrodoKEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see FrodoKEMParameters / FrodoKEMParameterSpec).
Deprecated.
the standardised FrodoKEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see FrodoKEMParameters / FrodoKEMParameterSpec).
 
 
JCA private key wrapper for HAETAE.
JCA public key wrapper for HAETAE.
JCA private key wrapper for Hawk.
JCA public key wrapper for Hawk.
 
 
A JCA/JCE helper that refers to the BC provider for all it's needs.
Marker interface for key implementations that are implemented inside Bouncy Castle.
all BC provider keystores implement this interface.
 
the BouncyCastle store.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Object Identifiers belonging to iso.org.dod.internet.private.enterprise.legion-of-the-bouncy-castle (1.3.6.1.4.1.22554)
 
 
 
 
 
A provider representation for a RSA private key, with CRT factors included.
 
 
Core of password hashing scheme Bcrypt, designed by Niels Provos and David Mazières, corresponds to the C reference implementation.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Variation of BCStyle that insists on strict ordering for equality and hashCode comparisons
 
 
 
Interface exposing some additional methods on a BC native certificate object.
 
 
 
 
 
 
BDS.
 
 
A parser for indefinite-length BIT STRINGs.
Base class for generators for indefinite-length structures.
ASN.1 OctetStrings, with indefinite length rules, and constructed form support.
A generator for indefinite-length OCTET STRINGs
A parser for indefinite-length OCTET STRINGs.
Indefinite length SEQUENCE of objects.
A stream generator for DER SEQUENCEs
Parser for indefinite-length SEQUENCEs.
Indefinite length SET and SET OF constructs.
Parser for indefinite-length SETs.
BER TaggedObject - in ASN.1 notation this is any object preceded by a [n] where n is some number - these are assumed to follow the construction rules (as with sequences).
 
BigInteger utilities.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
The BiometricData object.
Schnorr signatures for secp256k1 per BIP-340 (with the BIP-340bis variable-length-message extension).
 
Basic bits of security constraint.
 
 
 
 
 
 
Implementation of the cryptographic hash function BLAKE2b.
 
 
 
 
 
 
 
Implementation of the cryptographic hash function BLAKE2s.
 
Implementation of the eXtendable Output Function (XOF) BLAKE2xs.
 
 
 
Blake3 implementation.
Bouncy implementation of Blake3Mac.
Blake3 Parameters.
Block cipher engines are expected to conform to this interface.
 
Block cipher padders are expected to conform to this interface
 
 
 
 
 
 
 
 
A class that provides Blowfish key encryption operations, such as encoding data and generating keys.
Helper for aggregating BLS12-381 signatures and verifying aggregates.
BLS signatures BasicScheme over BLS12-381, per draft-irtf-cfrg-bls-signature (variant: public keys in G1, signatures in G2; suite BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_).
Curve parameters for BLS12-381 G1, the prime-order subgroup of E(Fp) defined by y^2 = x^3 + 4 over Fp, as standardised in draft-irtf-cfrg-bls-signature and RFC 9380 sec. 8.8.1.
CurveProcessor for the BLS12381G1_XMD:SHA-256_SSWU_RO_ hash-to-curve suite.
Map-to-curve implementation for the BLS12381G1_XMD:SHA-256_SSWU_RO_ suite (RFC 9380 sec. 8.8.1).
Curve parameters for BLS12-381 G2, the prime-order subgroup of E(Fp^2) defined by y^2 = x^3 + 4 * (1 + I) over Fp^2.
Implementation of the BLS12381G2_XMD:SHA-256_SSWU_RO_ hash-to-curve suite (RFC 9380 sec. 8.8.2): a deterministic, uniform map from a byte string and a domain-separation tag to a point in the BLS12-381 G2 prime-order subgroup.
Affine point on the BLS12-381 G2 curve E: y^2 = x^3 + 4*(1+I) over Fp^2.
BLS signatures MessageAugmentation suite over BLS12-381, per draft-irtf-cfrg-bls-signature: signature suite BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_AUG_.
Optimal ate pairing on BLS12-381: a bilinear, non-degenerate map e: G1 x G2 -> GT where GT is the order-r subgroup of Fp^12 ^*.
BLS signatures ProofOfPossession suite over BLS12-381, per draft-irtf-cfrg-bls-signature: signature suite BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_POP_ together with a separate proof-of-possession message that uses the BLS_POP_BLS12381G2_XMD:SHA-256_SSWU_RO_POP_ DST.
Zcash-format compressed point serialization for BLS12-381 G1 and G2, matching the encoding used by Zcash, Eth2, Filecoin, and the IETF pairing-friendly-curves draft.
Fast subgroup-membership tests for BLS12-381 G1 and G2, replacing the naive [r] * P == 0 scalar multiplication (255-bit).
 
Generates a BLS signature scheme keypair.
 
Family identifier for BLS signature schemes — currently the BLS12-381 pairing-friendly curve from draft-irtf-cfrg-pairing-friendly-curves.
Private-key parameters for a BLS signature scheme.
Public-key parameters for a BLS signature scheme.
Generic BLS12-381 signer implementing the BC Signer interface.
 
To add the provider at runtime use:
 
PBEWithMD5AndDES
PBEWithSHA1AndDES
PBEWithSHAAnd2-KeyTripleDES-CBC
PBEWithSHAAnd3-KeyTripleDES-CBC
OldPBEWithSHAAnd3-KeyTripleDES-CBC
OldPBEWithSHAAndTwofish-CBC
 
uses the appropriate mixer to generate the key and IV if neccessary.
a buffer wrapper for an asymmetric block cipher, allowing input to be accumulated in a piecemeal fashion until final processing.
A wrapper class that allows block ciphers to be used to process data in a piecemeal fashion.
A buffering class to allow translation from one format to another to be done in discrete chunks.
A buffering class to allow translation from one format to another to be done in discrete chunks.
An output stream that buffers data to be feed into an encapsulated output stream.
Utility methods and constants for bytes.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Camellia - based on RFC 3713.
Camellia - based on RFC 3713, smaller implementation, about half the size of CamelliaEngine.
An implementation of the Camellia key wrapper based on RFC 3657/RFC 3394.
 
 
 
 
 
 
 
A class that provides CAST key encryption operations, such as encoding data and generating keys.
 
 
 
 
 
 
 
 
A class that provides CAST6 key encryption operations, such as encoding data and generating keys.
implements Cipher-Block-Chaining (CBC) mode on top of a simple cipher.
standard CBC Block Cipher MAC - if no padding is specified the default of pad of zeroes is used.
 
Implements the Counter with Cipher Block Chaining mode (CCM) detailed in NIST Special Publication 800-38C.
 
Deprecated.
use AEADParameters
 
The method used to retrieve a related certificate, as defined by draft-ietf-lamps-certdiscovery (Certificate Discovery in PKIX).
 
an X509Certificate structure.
class for dealing with X509 certificates.
PKIX RFC-2459 The X.509 v2 CRL syntax is as follows.
This class helps to support crossCerfificatePairs in a LDAP directory according RFC 2587
 
PKCS10 Certification request object.
PKCS10 CertificationRequestInfo object.
CertPolicyId, used in the CertificatePolicies and PolicyMappings X509V3 Extensions.
 
 
implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
 
 
 
 
 
 
 
 
 
 
 
 
Implementation of Daniel J.
Implementation of Daniel J.
 
Interface for a converter that produces a byte encoding for a char array.
Factory methods for creating Cipher objects and CipherOutputStreams.
A CipherInputStream is composed of an InputStream and a cipher so that read() methods return data that are read in from the underlying InputStream but have been additionally processed by the Cipher.
A CipherInputStream is composed of an InputStream and a cipher so that read() methods return data that are read in from the underlying InputStream but have been additionally processed by the Cipher.
IOException wrapper around an exception indicating a problem with the use of a cipher.
The base class for symmetric, or secret, cipher key generators.
Factory methods for generating secret key generators for symmetric ciphers.
A CipherOutputStream is composed of an OutputStream and a cipher so that write() methods process the written data with the cipher, and the output of the cipher is in turn written to the underlying OutputStream.
A CipherOutputStream is composed of an OutputStream and a cipher so that write() methods process the written data with the cipher, and the output of the cipher is in turn written to the underlying OutputStream.
all parameter classes implement this.
 
 
 
classes that inherit from us.
classes that inherit from us.
 
 
 
 
 
The CipherSpiExt class extends CipherSpi.
 
CMAC - as specified at www.nuee.nagoya-u.ac.jp/labs/tiwata/omac/omac.html
A non-NIST variant which allows passing of an IV to the underlying CBC cipher.
 
Deprecated.
the standardised Classic McEliece KEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see org.bouncycastle.crypto.params.CMCEParameters and org.bouncycastle.jcajce.spec.CMCEParameterSpec).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
The Classic McEliece KEM as standardised in ISO/IEC 18033-2:2006/Amd 2:2026, Clause 13.
 
Deprecated.
the standardised Classic McEliece KEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see org.bouncycastle.crypto.params.CMCEParameters and org.bouncycastle.jcajce.spec.CMCEParameterSpec).
 
Deprecated.
the standardised Classic McEliece KEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see org.bouncycastle.crypto.params.CMCEParameters and org.bouncycastle.jcajce.spec.CMCEParameterSpec).
 
Deprecated.
the standardised Classic McEliece KEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see org.bouncycastle.crypto.params.CMCEParameters and org.bouncycastle.jcajce.spec.CMCEParameterSpec).
 
Deprecated.
the standardised Classic McEliece KEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see org.bouncycastle.crypto.params.CMCEParameters and org.bouncycastle.jcajce.spec.CMCEParameterSpec).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Deprecated.
the standardised Classic McEliece KEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see org.bouncycastle.crypto.params.CMCEParameters and org.bouncycastle.jcajce.spec.CMCEParameterSpec).
 
Deprecated.
the standardised Classic McEliece KEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see org.bouncycastle.crypto.params.CMCEParameters and org.bouncycastle.jcajce.spec.CMCEParameterSpec).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Deprecated.
the standardised Classic McEliece KEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see org.bouncycastle.crypto.params.CMCEParameters and org.bouncycastle.jcajce.spec.CMCEParameterSpec).
 
Deprecated.
the standardised Classic McEliece KEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see org.bouncycastle.crypto.params.CMCEParameters and org.bouncycastle.jcajce.spec.CMCEParameterSpec).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Deprecated.
the standardised Classic McEliece KEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see org.bouncycastle.crypto.params.CMCEParameters and org.bouncycastle.jcajce.spec.CMCEParameterSpec).
Parameter sets for the Classic McEliece KEM as standardised in ISO/IEC 18033-2:2006/Amd 2:2026, Clause 13.
Deprecated.
the standardised Classic McEliece KEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see org.bouncycastle.crypto.params.CMCEParameters and org.bouncycastle.jcajce.spec.CMCEParameterSpec).
AlgorithmSpec for the standardised Classic McEliece (ISO/IEC 18033-2:2006/Amd 2:2026, Clause 13).
Deprecated.
the standardised Classic McEliece KEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see org.bouncycastle.crypto.params.CMCEParameters and org.bouncycastle.jcajce.spec.CMCEParameterSpec).
 
ASN.1 Encoding for a Classic McEliece private key for fully populated:
 
Deprecated.
the standardised Classic McEliece KEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see org.bouncycastle.crypto.params.CMCEParameters and org.bouncycastle.jcajce.spec.CMCEParameterSpec).
 
Classic McEliece Public Key Format.
 
Deprecated.
the standardised Classic McEliece KEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see org.bouncycastle.crypto.params.CMCEParameters and org.bouncycastle.jcajce.spec.CMCEParameterSpec).
A simple collection backed store.
General holding class for a commitment.
General interface fdr classes that produce and validate commitments.
Type to assist in build LMS messages.
 
 
 
 
 
Registry of the Composite ML-KEM parameter sets from Composite ML-KEM for use in X.509 Public Key Infrastructure.
 
Experimental implementation of Composite ML-KEM according to Composite ML-KEM for use in X.509 Public Key Infrastructure.
 
JCE KeyGenerator SPI for Composite ML-KEM as defined in the IETF LAMPS draft: Composite ML-KEM for use in X.509 Public Key Infrastructure
 
 
 
 
 
 
 
 
 
 
 
 
A composite private key class for Composite ML-KEM.
 
A composite key class.
 
Experimental implementation of composite signatures according to https://www.ietf.org/archive/id/draft-ounsworth-pq-composite-sigs-13.
 
Parameters for the CompositeSignature algorithm.
Generator for Concatenation Key Derivation Function defined in NIST SP 800-56A, Sect 5.8.1
Implemented by the BC provider.
 
 
 
 
 
 
Class, holding Cramer Shoup ciphertexts (u1, u2, e, v)
Essentially the Cramer-Shoup encryption / decryption algorithms according to "A practical public key cryptosystem provably secure against adaptive chosen ciphertext attack."
CS exception for wrong cipher-texts
 
a Cramer Shoup key pair generator
 
 
 
 
 
CRL Bag for PKCS#12
 
 
The CRLNumber object.
The CRLReason enumeration.
the foundation class for the hard exceptions thrown by the crypto packages.
GOST Algorithms OBJECT IDENTIFIERS : { iso(1) member-body(2) ru(643) rans(2) cryptopro(2)}
 
 
 
 
 
Permissions that need to be configured if a SecurityManager is used.
Basic registrar class for providing defaults for cryptography services in this module.
Available properties that can be set.
Customizable SHAKE function.
 
A SP800-90A CTR DRBG.
A Cipher Text Stealing (CTS) mode cipher.
 
 
 
 
Process curve specific functions
 
this exception is thrown if a buffer that is meant to have output copied into it turns out to be too short, or if we've been given insufficient input.
Exception thrown if an attempt is made to decode invalid data, or some other failure occurs.
A wrapper class that allows block ciphers to be used to process data in a piecemeal fashion.
JcaJceHelper that obtains all algorithms using the default JCA/JCE mechanism (i.e. without specifying a provider).
 
 
XMSSOid^MT class.
XMSSOid class.
DeltaCertificateDescriptor ::= SEQUENCE { serialNumber CertificateSerialNumber, signature [0] EXPLICIT AlgorithmIdentifier {SIGNATURE_ALGORITHM, {...}}
A BIT STRING with DER encoding - the first byte contains the count of padding bits included in the byte array's last byte.
DER BMPString object encodes BMP (Basic Multilingual Plane) subset (aka UCS-2) of UNICODE (ISO 10646) characters in codepoints 0 to 65535.
Deprecated.
use ASN1Dump.
Exception thrown when an ASN.1 primitive cannot be serialized as DER - typically because its in-memory contents do not satisfy the DER restrictions of X.690 (e.g. a UTCTime / GeneralizedTime parsed leniently from the wire that is then asked to round-trip through a DEROutputStream).
Class representing the DER-type External
Parser DER EXTERNAL tagged objects.
DER Generalized time object.
ASN.1 GENERAL-STRING data type.
Basic class for streaming DER encoding generators.
 
DER IA5String object - this is a ISO 646 (ASCII) string encoding code points 0 to 127.
base interface for general purpose byte derivation functions.
Parameters for key/byte stream derivation classes
Builder and holder class for preparing SP 800-56A compliant MacData.
Builder to create OtherInfo
 
An ASN.1 DER NULL object.
DER NumericString object - this is an ascii string of characters {0,1,2,3,4,5,6,7,8,9, }.
Carrier class for a DER encoding OCTET STRING
Parser for DER encoded OCTET STRINGS
Builder and holder class for preparing SP 800-56A compliant OtherInfo.
Builder to create OtherInfo
DER PrintableString object.
Definite length SEQUENCE, encoding tells explicit number of bytes that the content of this sequence occupies.
A stream generator for DER SEQUENCEs
A DER encoded SET object
DER T61String (also the teletex string), try not to use this if you don't need to.
DER TaggedObject - in ASN.1 notation this is any object preceded by a [n] where n is some number - these are assumed to follow the construction rules (as with sequences).
DER UniversalString object - encodes UNICODE (ISO 10646) characters using 32-bit format.
DER UTC time object.
DER UTF8String object.
 
DER VisibleString object encoding ISO 646 (ASCII) character code points 32 to 126.
 
 
 
 
 
DES64
DES64with7816-4Padding
DES9797Alg3
DES9797Alg3with7816-4Padding
DES CFB8
 
 
 
DES - the default for this is to generate a key in a-b-a format that's 24 bytes long but has 16 bytes of key material (the first 8 bytes is repeated as the last 8 bytes).
 
PBEWithMD2AndDES
PBEWithMD2AndDES
PBEWithMD5AndDES
PBEWithMD5AndDES
PBEWithSHA1AndDES
PBEWithSHA1AndDES
 
 
 
 
 
 
DESede64
DESede64with7816-4Padding
DESede CFB8
 
 
DESede - the default for this is to generate a key in a-b-a format that's 24 bytes long but has 16 bytes of key material (the first 8 bytes is repeated as the last 8 bytes).
generate a desEDE key in the a-b-c format.
 
PBEWithSHAAnd2-KeyTripleDES-CBC
PBEWithSHAAnd2-KeyTripleDES-CBC
PBEWithSHAAnd3-KeyTripleDES-CBC
PBEWithSHAAnd3-KeyTripleDES-CBC
 
 
a class that provides a basic DESede (or Triple DES) engine.
 
 
Wrap keys according to RFC 3217.
a class that provides a basic DES engine.
 
 
 
 
 
a Diffie-Hellman key exchange engine.
a Diffie-Hellman key agreement class.
a basic Diffie-Hellman key pair generator.
Deprecated.
use DomainParameters
Extension class for DHParameterSpec that wraps a DHDomainParameters object and provides the q domain parameter.
A DHPrivateKeySpec that also carries a set of DH domain parameters.
A DHPublicKeySpec that also carries a set of DH domain parameters.
 
 
RFC 2631 Diffie-hellman KEK derivation function.
 
a Diffie-Hellman key pair generator.
 
 
 
 
 
 
 
X9.42 definition of a DHPublicKey
 
Standard Diffie-Hellman groups from various IETF specifications.
FFC Unified static/ephemeral agreement as described in NIST SP 800-56A.
Parameter spec to provide Diffie-Hellman Unified model keys and user keying material.
Parameters holder for private unified static/ephemeral agreement as described in NIST SP 800-56A.
Parameters holder for static/ephemeral agreement as described in NIST SP 800-56A.
utility class for converting jce/jca DH objects objects into their org.bouncycastle.crypto counterparts.
utility class for converting jce/jca DH objects objects into their org.bouncycastle.crypto counterparts.
 
Deprecated.
use ValidationParams
interface that a message digest conforms to.
base interface for general purpose Digest based byte derivation functions.
Basic factory class for message digests.
 
The DigestInfo object.
Implements the sign and verify functions for a Signature Scheme using a hash function to allow processing of large messages.
Implements the sign and verify functions for a Signature Scheme using a hash function to allow processing of large messages.
 
 
Random generation based on the digest with counter.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Deprecated.
to be deleted - use ML-DSA instead.
 
 
 
 
 
 
 
 
 
 
 
 
 
Deprecated.
to be deleted - use ML-DSA instead.
 
Deprecated.
to be deleted - use ML-DSA instead.
 
 
The DirectoryString CHOICE object.
 
DisplayText class, used in CertificatePolicies X509 V3 extensions (in policy qualifiers).
The DistributionPoint object.
The DistributionPointName object.
A Definite length BIT STRING
Parser for a DL encoded BIT STRING.
Class representing the Definite-Length-type External
Base class for stream generators for definite-length structures.
A stream generator for definite-length (primitive) OCTET STRINGs.
The DLSequence encodes a SEQUENCE using definite length form.
A stream generator for definite-length SEQUENCEs.
Parser class for DL SEQUENCEs.
The DLSet encodes ASN.1 SET value without element ordering, and always using definite length form.
Parser class for DL SETs.
Definite Length TaggedObject - in ASN.1 notation this is any object preceded by a [n] where n is some number - these are assumed to follow the construction rules (as with sequences).
X9.44 Diffie-Hellman domain parameters.
 
DRBG Configuration
 
 
 
interface for classes implementing algorithms modeled similar to the Digital Signature Alorithm.
 
 
 
 
Deprecated.
No longer used
An interface for different encoding formats for DSA signatures.
An "extended" interface for classes implementing DSA-style algorithms, that provides access to the group order.
Interface define calculators of K values for DSA/ECDSA.
 
a DSA key pair generator.
 
 
 
 
Generate suitable parameters for DSA, in line with FIPS 186-2, or FIPS 186-3.
 
 
The Digital Signature Algorithm - as described in "Handbook of Applied Cryptography", pages 452 - 453.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
utility class for converting jce/jca DSA objects objects into their org.bouncycastle.crypto counterparts.
 
 
 
 
 
 
 
 
ParameterSpec for a DSTU4145 key.
 
DSTU4145 encodes points somewhat differently than X9.62 It compresses the point to the size of the field element
 
DSTU 4145-2002
 
 
 
 
 
 
 
 
 
 
 
 
Reference implementation of national ukrainian standard of hashing transformation DSTU7564.
Implementation of DSTU7564 MAC mode
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Implementation of DSTU7624 MAC mode.
Implementation of DSTU7624 KEY WRAP mode
General class for providing point pairs for use with DualEC DRBG.
A SP800-90A Dual EC DRBG.
A Two-Pass Authenticated-Encryption Scheme Optimized for Simplicity and Efficiency - by M.
 
 
 
 
 
Parameters for ECCSI key generation.
A key pair generator for the ECCSI scheme (Elliptic Curve-based Certificateless Signatures for Identity-based Encryption) as defined in RFC 6507.
Represents the private key parameters for the Elliptic Curve-based Certificateless Signature Infrastructure (ECCSI) scheme as defined in RFC 6507.
Represents the public key parameters for the Elliptic Curve-based Certificateless Signature Infrastructure (ECCSI) scheme as defined in RFC 6507.
Implementation of Elliptic Curve-based Certificateless Signatures for Identity-Based Encryption (ECCSI) as defined in RFC 6507.
base class for an elliptic curve
 
 
Elliptic curves over F2m.
Elliptic curve over Fp
 
P1363 7.2.1 ECSVDP-DH ECSVDP-DH is Elliptic Curve Secret Value Derivation Primitive, Diffie-Hellman version.
P1363 7.2.2 ECSVDP-DHC ECSVDP-DHC is Elliptic Curve Secret Value Derivation Primitive, Diffie-Hellman version with cofactor multiplication.
 
 
EC Unified static/ephemeral agreement as described in NIST SP 800-56A using EC co-factor Diffie-Hellman.
X9.63 based key derivation function for ECDH CMS.
 
Parameters holder for private unified static/ephemeral agreement as described in NIST SP 800-56A.
Parameters holder for public unified static/ephemeral agreement as described in NIST SP 800-56A using EC DH/CDH.
 
EC-DSA as described in X9.62
this does your basic decryption ElGamal style using EC
this does your basic ElGamal encryption algorithm using EC
 
 
 
 
 
Class representing the Elements of the finite field F2m in polynomial basis (PB) representation.
 
this transforms the original randomness used for an ElGamal encryption by a fixed value.
 
 
Signature for GOST34.10 2012 256.
 
Signature for GOST34.10 2012 512.
 
Deprecated.
Use ECGOST3410Signer instead.
table of the available named parameters for GOST 3410-2001 / 2012.
a table of locally supported named curves.
 
 
GOST R 34.10-2001 and GOST R 34.10-2012 Signature Algorithm
The ECIES Key Encapsulation Mechanism (ECIES-KEM) from ISO 18033-2.
The ECIES Key Encapsulation Mechanism (ECIES-KEM) from ISO 18033-2.
Deprecated.
use ECIESKEMGenerator, ECIESKEMExtractor
 
A pre-computed elliptic curve over a prime field, in short-Weierstrass form for use during an EC J-PAKE exchange.
Standard pre-computed elliptic curves for use by EC J-PAKE.
A participant in a Password Authenticated Key Exchange by Juggling (J-PAKE) exchange.
The payload sent/received during the first round of a EC J-PAKE exchange.
The payload sent/received during the second round of a EC J-PAKE exchange.
The payload sent/received during the optional third round of a EC J-PAKE exchange, which is for explicit key confirmation.
Primitives needed for a EC J-PAKE exchange.
generic interface for an Elliptic Curve Key.
 
 
 
base class for an Elliptic Curve Key Spec
Utility class for EC Keys.
Utility class to allow conversion of EC key parameters to explicit from named curves and back (where possible).
 
 
 
Interface for classes encapsulating a point multiplication algorithm for ECPoints.
Named curve generation spec
specification signifying that the curve parameters can also be referred to by name.
specification signifying that the curve parameters can also be referred to by name.
A general class that reads all X9.62 style EC curve tables.
a table of locally supported named curves.
 
this does your basic Elgamal encryption algorithm using EC
this transforms the original randomness used for an ElGamal encryption.
EC-NR as described in IEEE 1363-2000 - a signature algorithm for Elliptic Curve which also offers message recovery.
 
 
 
basic domain parameters for an Elliptic Curve public or private key.
base class for points on elliptic curves.
 
 
Elliptic curve points over F2m
Elliptic curve points over Fp
All BC elliptic curve keys implement this interface.
 
Utility class for handling EC point decoding.
the elliptic curve private key object from SEC 1
interface for Elliptic Curve Private keys.
 
Elliptic Curve private key specification.
Deprecated.
use ECPrivateKey
interface for elliptic curve public keys.
 
Elliptic Curve public key specification
Package protected class containing zero knowledge proof, for an EC J-PAKE exchange.
Schnorr non-interactive zero-knowledge proof over an elliptic curve, as used in the Owl key exchange.
utility class for converting jce/jca ECDSA, ECDH, and ECDHC objects into their org.bouncycastle.crypto counterparts.
GOST VKO key agreement class - RFC 7836 Section 4.3
A low-level implementation of the Ed25519, Ed25519ctx, and Ed25519ph instantiations of the Edwards-Curve Digital Signature Algorithm specified in RFC 8032.
 
Methods that work with expanded format for private keys (xk/xkOff) i.e.
 
 
 
 
 
 
 
 
A low-level implementation of the Ed448 and Ed448ph instantiations of the Edwards-Curve Digital Signature Algorithm specified in RFC 8032.
 
 
 
 
 
 
 
 
 
ParameterSpec for EdDSA signature algorithms.
 
 
 
 
EDIPartyName ::= Sequence { nameAssigner [0] DirectoryString OPTIONAL, partyName [1] DirectoryString }
Elephant AEAD v2, based on the current round 3 submission, https://www.esat.kuleuven.be/cosic/elephant/ Reference C implementation: https://github.com/TimBeyne/Elephant Specification: https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/elephant-spec-final.pdf
 
 
 
this does your basic ElGamal algorithm.
 
 
 
a ElGamal key pair generator.
 
 
 
 
 
 
 
This class specifies an ElGamal private key with its associated parameters.
Deprecated.
just use DHPublicKey.
 
This class specifies an ElGamal public key with its associated parameters.
utility class for converting jce/jca ElGamal objects objects into their org.bouncycastle.crypto counterparts.
Implements the Elligator 2 Map to curve according to section 6.7.1 of RFC 9380 This is the straight-line implementation optimized for Montgomery curves as defined in section F.3.
 
 
Interface implemented by objects that can be converted into byte arrays.
Encodable digests allow you to download an encoded copy of their internal state.
Encodable services allow you to download an encoded copy of their internal state.
Encode and decode byte arrays (typically from binary to 7-bit ASCII encodings).
Exception thrown if an attempt is made to encode invalid data, or some other failure occurs.
The EncryptedData object.
EncryptedObjectStoreData ::= SEQUENCE { encryptionAlgorithm AlgorithmIdentifier encryptedContent OCTET STRING }
EncryptedPrivateKeyObjectData ::= SEQUENCE { encryptedPrivateKeyInfo EncryptedPrivateKeyInfo, certificates SEQUENCE OF Certificate }
 
EncryptedSecretKeyData ::= SEQUENCE { keyEncryptionAlgorithm AlgorithmIdentifier, encryptedKeyData OCTET STRING }
 
 
 
Base interface describing an entropy source for a DRBG.
 
Utility methods for making use of EntropySources.
 
 
Support class for constructing integrated encryption ciphers for doing basic message exchanges on top of key agreement ciphers.
Basic KDF generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
This implementation is based on ISO 18033/P1363a.
 
 
Pair for a value exchange algorithm where the responding party has no private key, such as NewHope.
Interface for NewHope style key material exchange generators.
Exception thrown by a stateful signature algorithm when the private key counter is exhausted.
 
 
 
 
 
The extendedKeyUsage object.
an object for the elements in the X.509 V3 extension block.
 
Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension Extension ::= SEQUENCE { extnId EXTENSION.&id ({ExtensionSet}), critical BOOLEAN DEFAULT FALSE, extnValue OCTET STRING }
Generator for X.509 extensions
 
 
 
Wrapper class which returns an "ExternalValue" for the public key encoding.
Based on External Keys And Signatures For Use In Internet PKI draft-ounsworth-pq-external-pubkeys-00
This is an extended exception.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Implementation of the FAEST asymmetric key pair generator following the FAEST signature scheme specifications.
 
 
 
 
 
 
 
 
 
 
 
 
 
FAEST parameter sets per the v2.0 algorithm specification.
 
FAEST private key: encoded as owfInput || owfKey (matching the upstream SK_INPUT || SK_KEY layout).
FAEST public key: encoded as owfInput || owfOutput.
FAEST signature generation and verification engine.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ASN.1 Encoding for a FALCON private key for fully populated:
 
 
Classic McEliece Public Key Format.
 
 
 
Basic 20 byte finger print class.
 
 
 
Class holding precomputation data for fixed-point multiplications.
 
A secure random that returns pre-seeded data to calls of nextBytes() or generateSeed().
A secure random that returns pre-seeded data to calls of nextBytes() or generateSeed().
BigInteger Source - in this case we expect requests for data that will be used for BigIntegers.
Data Source - in this case we just expect requests for byte arrays.
Base class for sources of fixed "Randomness"
Immutable element of Fp^12 = Fp^6[w] / (w^2 - v), the outer level of the BLS12-381 pairing field tower.
Immutable element of Fp^2 = Fp[I] / (I^2 + 1), used as the base field of BLS12-381 G2.
Immutable element of Fp^6 = Fp^2[v] / (v^3 - (1 + I)), the cubic extension of Fp2Element used as the inner level of the BLS12-381 pairing field tower.
Base class for format-preserving encryption.
NIST SP 800-38G, FF1 format preserving encryption.
NIST SP 800-38G, FF3-1 format preserving encryption.
 
 
Deprecated.
the standardised FrodoKEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see FrodoKEMParameters / FrodoKEMParameterSpec).
 
 
 
 
 
 
 
 
 
 
 
 
 
FrodoKEM as standardised in ISO/IEC 18033-2:2006/Amd 2:2026, Clause 14, for the SHAKE parameter sets at security levels 976 and 1344.
 
Deprecated.
the standardised FrodoKEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see FrodoKEMParameters / FrodoKEMParameterSpec).
 
Deprecated.
the standardised FrodoKEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see FrodoKEMParameters / FrodoKEMParameterSpec).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Parameter sets for FrodoKEM as standardised in ISO/IEC 18033-2:2006/Amd 2:2026, Clause 14.
AlgorithmSpec for the standardised FrodoKEM (ISO/IEC 18033-2).
 
 
 
 
Deprecated.
the standardised FrodoKEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see FrodoKEMParameters / FrodoKEMParameterSpec).
Deprecated.
the standardised FrodoKEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see FrodoKEMParameters / FrodoKEMParameterSpec).
Deprecated.
the standardised FrodoKEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see FrodoKEMParameters / FrodoKEMParameterSpec).
Deprecated.
the standardised FrodoKEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see FrodoKEMParameters / FrodoKEMParameterSpec).
Deprecated.
the standardised FrodoKEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see FrodoKEMParameters / FrodoKEMParameterSpec).
Deprecated.
the standardised FrodoKEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see FrodoKEMParameters / FrodoKEMParameterSpec).
Deprecated.
the standardised FrodoKEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see FrodoKEMParameters / FrodoKEMParameterSpec).
Deprecated.
the standardised FrodoKEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see FrodoKEMParameters / FrodoKEMParameterSpec).
Deprecated.
the standardised FrodoKEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see FrodoKEMParameters / FrodoKEMParameterSpec).
Deprecated.
the standardised FrodoKEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see FrodoKEMParameters / FrodoKEMParameterSpec).
Deprecated.
the standardised FrodoKEM (ISO/IEC 18033-2:2006/Amd 2:2026) is now provided under org.bouncycastle.crypto and org.bouncycastle.jcajce (see FrodoKEMParameters / FrodoKEMParameterSpec).
An implementation of the CBC mode for GOST 3412 2015 cipher.
An implementation of the CFB mode for GOST 3412 2015 cipher.
implements the GOST 3412 2015 CTR counter mode (GCTR).
An implementation of the OFB mode for GOST 3412 2015 cipher.
An implementation of the GOST CFB mode with CryptoPro key meshing as described in RFC 4357.
Implements the Galois/Counter mode (GCM) detailed in NIST Special Publication 800-38D.
 
 
 
GCM-SIV Mode.
 
 
base implementation of MD4 family style digest as outlined in "Handbook of Applied Cryptography", pages 344 - 347.
A basic hash-committer based on the one described in "Making Mix Nets Robust for Electronic Voting by Randomized Partial Checking", by Jakobsson, Juels, and Rivest (11th Usenix Security Symposium, 2002).
The GeneralName object.
 
 
Class for containing a restriction object subtrees in NameConstraints.
 
Generic implementation of the sqrt_ratio(u, v) operation defined in RFC 9380.
 
Deprecated.
moved to GF16; this type now delegates there and will be removed in a future release.
Constant-time GF(2^8) primitives over the AES reduction polynomial x^8 + x^4 + x^3 + x + 1 (0x11b).
GIFT-COFB v1.1, based on the current round 3 submission, https://www.isical.ac.in/~lightweight/COFB/ Reference C implementation: https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-submissions/elephant.zip Specification: https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/gift-cofb-spec-final.pdf
 
 
 
 
 
 
 
 
The GMAC specialisation of Galois/Counter mode (GCM) detailed in NIST Special Publication 800-38D.
 
 
Classes that inherit from us
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Chinese standard GM named curves.
 
 
 
 
implements the GOST 28147 OFB counter mode (GCTR).
 
 
 
 
 
 
 
 
 
 
 
 
GOST28147
 
Gost28147-89-EncryptedKey ::= SEQUENCE { encryptedKey Gost28147-89-Key, maskKey [0] IMPLICIT Gost28147-89-Key OPTIONAL, macKey Gost28147-89-MAC }
 
implementation of GOST 28147-89
implementation of GOST 28147-89 MAC
ASN.1 algorithm identifier parameters for GOST-28147
A parameter spec for the GOST-28147 cipher.
Deprecated.
use org.bouncycastle.jcajce.spec.GOST28147ParameterSpec
 
A parameter spec for the GOST-28147 cipher.
Main interface for a GOST 3410-94 key.
 
a GOST3410 key pair generator.
 
table of the available named parameters for GOST 3410-94.
 
generate suitable parameters for GOST3410.
ParameterSpec for a GOST 3410-1994/2001/2012 algorithm parameters.
ParameterSpec for a GOST 3410-94 key.
 
 
 
 
This class specifies a GOST3410-94 private key with its associated parameters.
 
 
 
ParameterSpec for a GOST 3410-94 key parameters.
This class specifies a GOST3410-94 public key with its associated parameters.
GOST R 34.10-94 Signature Algorithm
utility class for converting jce/jca GOST3410-94 objects objects into their org.bouncycastle.crypto counterparts.
 
 
implementation of GOST R 34.11-2012 256-bit
implementation of GOST R 34.11-2012 512-bit
Base class for GOST3411-2012 256-bit and GOST3411-2012 512-bit digests.
 
 
 
GOST3411 HMac
 
 
 
 
 
 
PBEWithHmacGOST3411
implementation of GOST R 34.11-94
 
 
 
 
 
 
 
GOST3412 2015 CMAC( OMAC1)
 
 
Implementation of GOST 3412 2015 (aka "Kuznyechik") RFC 7801, GOST 3412
GostR3410-KeyTransport ::= SEQUENCE { sessionEncryptedKey Gost28147-89-EncryptedKey, transportParameters [0] IMPLICIT GostR3410-TransportParameters OPTIONAL }
GostR3410-TransportParameters ::= SEQUENCE { encryptionParamSet OBJECT IDENTIFIER, ephemeralPublicKey [0] IMPLICIT SubjectPublicKeyInfo OPTIONAL, ukm OCTET STRING }
 
 
 
 
Grain-128 AEAD, based on the current round 3 submission, https://grain-128aead.github.io/
Implementation of Martin Hell's, Thomas Johansson's and Willi Meier's stream cipher, Grain-128.
 
 
 
 
 
Implementation of Martin Hell's, Thomas Johansson's and Willi Meier's stream cipher, Grain v1.
BSI Key Derivation Function Parameters for Session Keys (see BSI-TR-03111 Section 4.3.3)
BSI Key Derivation Function for Session Keys (see BSI-TR-03111 Section 4.3.3)
Utility functions for hash 2 curve
BCPQC registration for HAETAE: Haetae.Mappings.configure(ConfigurableProvider) populates the provider's KeyFactory, KeyPairGenerator and Signature service tables with the unparameterised "Haetae" form plus per-parameter-set aliases (HAETAE-2 / HAETAE-3 / HAETAE-5) and their OID aliases.
 
Marker interface implemented by HAETAE public and private JCA keys; exposes the underlying HaetaeParameterSpec so callers can identify which HAETAE parameter set the key belongs to.
KeyFactorySpi for HAETAE.
 
 
 
 
 
KeyPairGenerator SPI for HAETAE.
 
 
 
Common base for HAETAE public and private key parameter classes; carries the HAETAEParameters parameter set the key belongs to.
Parameters for the HAETAE signature scheme (Modes 2, 3, and 5).
AlgorithmParameterSpec for the HAETAE PQC signature scheme (KpqC).
Lightweight private key parameters for HAETAE.
Lightweight public key parameters for HAETAE.
 
 
 
 
 
Haraka-256 v2, https://eprint.iacr.org/2016/098.pdf
Haraka-512 v2, https://eprint.iacr.org/2016/098.pdf
Base class for Haraka v2, https://eprint.iacr.org/2016/098.pdf
A basic hash-committer as described in "Making Mix Nets Robust for Electronic Voting by Randomized Partial Checking", by Jakobsson, Juels, and Rivest (11th Usenix Security Symposium, 2002).
 
Deprecated.
use org.bouncycastle.crypto.signers.HashMLDSASigner
 
 
 
 
 
 
 
 
 
 
External-hash form of HashML-DSA: bytes passed to Signature.update(...) are treated as the pre-computed message digest, dispatched to HashMLDSASigner.generateSignature(byte[]) / HashMLDSASigner.verifySignature(byte[], byte[]).
SLH-DSA signer.
Deprecated.
use org.bouncycastle.crypto.signers.HashSLHDSASigner
A SP800-90A Hash DRBG.
Supported profiles for instantiating an instance of HashToEllipticCurve.
Main class for implementing hash to elliptic curve according to RFC 9380
Generic implementation of hash to field
BCPQC registration for Hawk: Hawk.Mappings.configure(ConfigurableProvider) populates the provider's KeyFactory, KeyPairGenerator and Signature service tables with the unparameterised "Hawk" form plus per-parameter-set aliases (HAWK-256 / HAWK-512 / HAWK-1024) and their OID aliases.
 
Marker interface implemented by Hawk public and private JCA keys; exposes the underlying HawkParameterSpec so callers can identify which Hawk parameter set the key belongs to.
KeyFactorySpi for Hawk.
 
 
 
Key generation parameters for Hawk.
Lightweight Hawk key pair generator.
KeyPairGenerator SPI for Hawk.
 
 
 
Common base for Hawk public and private key parameter classes; carries the HawkParameters parameter set the key belongs to.
Parameter set for the Hawk PQC signature scheme.
AlgorithmParameterSpec for the Hawk PQC signature scheme.
Lightweight private key parameters for Hawk.
Lightweight public key parameters for Hawk.
Lightweight Hawk signer / verifier.
 
 
 
 
 
HC-128 is a software-efficient stream cipher created by Hongjun Wu.
 
 
 
 
 
HC-256 is a software-efficient stream cipher created by Hongjun Wu.
Utility class for converting hex data to bytes and back again.
A streaming Hex encoder.
Converters for going from hex to binary and back.
 
 
 
 
 
 
 
 
HMAC-based Extract-and-Expand Key Derivation Function (HKDF) implemented according to IETF RFC 5869, May 2010 as specified by H.
Parameter class for the HKDFBytesGenerator class.
 
HMAC implementation based on RFC2104 H(K XOR opad, H(K XOR ipad, text))
A deterministic K calculator based on the algorithm in section 3.2 of RFC 6979.
A SP800-90A HMAC DRBG.
The Holder object.
Hybrid Public Key Encryption (HPKE) per RFC 9180.
An HPKE encryption / decryption context produced by one of the HPKE.setup*R (recipient) factory methods, or — via the HPKEContextWithEncapsulation subclass — by one of the HPKE.setup*S (sender) factories.
Sender-side HPKEContext that additionally carries the enc octet string produced by the KEM's encapsulation step.
Polynomial class for HPS parameters with q = 4096
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SP 800-56C Hybrid Value spec, by default to allow the secret in a key agreement to be created as "Z | T" where T is some other secret value as described in Section 2.
IANA: { iso(1) identifier-organization(3) dod(6) internet(1) } == IETF defined things
 
 
 
 
 
 
 
 
 
 
 
A class that provides a basic International Data Encryption Algorithm (IDEA) engine.
key pair for use with an integrated encryptor - together they provide what's required to generate the message.
 
 
 
 
 
Classes that inherit from us
 
 
 
 
 
 
 
 
 
 
 
 
Classes that inherit from us
 
 
Classes that inherit from us
 
 
 
 
 
 
 
 
 
 
 
 
Support class for constructing integrated encryption ciphers for doing basic message exchanges on top of key agreement ciphers.
 
Classes that inherit from us
 
Parameter spec for an integrated encryptor KEM, as in IEEE_Std_1609_2
key pair for use with an integrated encryptor
parameters for using an integrated cipher in stream mode.
Parameter spec for an integrated encryptor, as in IEEE P1363a
 
 
Implementation of IetfAttrSyntax as specified by RFC3281.
 
Interface implemented by objects that can be converted from streaming to in-memory objects.
Utility methods and constants for ints.
 
this exception is thrown whenever we find something we don't expect in a message.
IOException wrapper around an exception indicating an invalid ciphertext, such as in authentication failure during finalisation of an AEAD cipher.
Utility methods for processing String objects containing IP addresses.
Implementation of Bob Jenkin's ISAAC (Indirection Shift Accumulate Add and Count). see: https://www.burtleburtle.net/bob/rand/isaacafa.html
ISAP Hash v2, https://isap.iaik.tugraz.at/ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/isap-spec-final.pdf
 
ISAP AEAD v2, https://isap.iaik.tugraz.at/ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/isap-spec-final.pdf
 
A padder that adds ISO10126-2 padding to a block.
parameters for Key derivation functions for ISO-18033
The Iso4217CurrencyCode object.
A padder that adds the padding according to the scheme referenced in ISO 7814-4 - scheme 2 from ISO 9797-1.
ISO 9796-1 padding.
ISO9796-2 - mechanism using a hash function with recovery (scheme 2 and 3).
ISO9796-2 - mechanism using a hash function with recovery (scheme 1)
DES based CBC Block Cipher MAC according to ISO9797, algorithm 3 (ANSI X9.19 Retail MAC) This could as well be derived from CBCBlockCipherMac, but then the property mac in the base class must be changed to protected
 
 
 
 
 
 
 
 
 
 
 
 
 
 
IssuingDistributionPoint ::= SEQUENCE { distributionPoint [0] DistributionPointName OPTIONAL, onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE, onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE, onlySomeReasons [3] ReasonFlags OPTIONAL, indirectCRL [4] BOOLEAN DEFAULT FALSE, onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE }
Utility class to allow use of Iterable feature in JDK 1.5+
 
Factory interface for instantiating JCA/JCE primitives.
General JCA/JCE utility methods.
 
 
 
 
 
 
A provider representation for a RSA private key, with CRT factors included.
 
 
 
 
Deprecated.
use org.bouncycastle.jcajce.config.PKCS12StoreParameter
Implements a certificate only JKS key store.
JournaledAlgorithm keeps state of the JournalingSecureRandom and the AlgorithmIdentifier necessary to fully resume an encryption session.
A SecureRandom that maintains a journal of its output.
A participant in a Password Authenticated Key Exchange by Juggling (J-PAKE) exchange.
A pre-computed prime order group for use during a J-PAKE exchange.
Standard pre-computed prime order groups for use by J-PAKE.
The payload sent/received during the first round of a J-PAKE exchange.
The payload sent/received during the second round of a J-PAKE exchange.
The payload sent/received during the optional third round of a J-PAKE exchange, which is for explicit key confirmation.
Primitives needed for a J-PAKE exchange.
Kangaroo.
Kangaroo Parameters.
Parameter Builder.
KangarooTwelve.
MarsupilamiFourteen.
Implementation of DSTU7624 CCM mode.
Implementation of DSTU7624 CTR mode
KDF1 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
This implementation is based on ISO 18033/IEEE P1363a.
KDF2 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
This implementation is based on IEEE P1363/ISO 18033.
This KDF has been defined by the publicly available NIST SP 800-108 specification.
This KDF has been defined by the publicly available NIST SP 800-108 specification.
This KDF has been defined by the publicly available NIST SP 800-108 specification.
Note that counter is only supported at the location presented in the NIST SP 800-108 specification, not in the additional locations present in the CAVP test vectors.
This KDF has been defined by the publicly available NIST SP 800-108 specification.
Note that counter is only supported at the location presented in the NIST SP 800-108 specification, not in the additional locations present in the CAVP test vectors.
parameters for Key derivation functions for IEEE P1363a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
implementation of Keccak based on following KeccakNISTInterface.c from https://keccak.noekeon.org/
Abstract base for HPKE Key Encapsulation Mechanisms per RFC 9180 §4.
 
Builder class for creating a KEMExtractSpec.
 
Builder class for creating a KEMGenerateSpec.
 
 
 
Deprecated.
use KTSParameterSpec
Diffie-Hellman key agreement.
Diffie-Hellman key agreement using elliptic curve keys, ala IEEE P1363 both the simple one, and the simple one with cofactors are supported.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
KeyAgreement according to BSI TR-03111 chapter 4.3.1
KeyAgreement according to BSI TR-03111 chapter 4.3.1
KeyAgreement according to BSI TR-03111 chapter 4.3.1
KeyAgreement according to BSI TR-03111 chapter 4.3.1
KeyAgreement according to BSI TR-03111 chapter 4.3.1
KeyAgreement according to BSI TR-03111 chapter 4.3.1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
KeyFactory for Composite ML-KEM keys as defined in Composite ML-KEM for use in X.509 Public Key Infrastructure.
KeyFactory for composite signatures.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
KeyFactory for the "RSASSA-PSS" algorithm.
 
 
 
The base class for parameters to key generators.
KeyPairGenerator for Composite ML-KEM (draft-ietf-lamps-pq-composite-kem).
KeyPairGenerator class for composite signatures.
 
 
 
 
 
KeyPairGenerator for GOST34.10 2012.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
The KeyPurposeId object.
ASN.1 def for Diffie-Hellman key exchange KeySpecificInfo structure.
The KeyUsage object.
 
 
Implementation of DSTU7624 GCM mode.
 
Utilities for the GF(2^m) field with corresponding extension polynomial:
Utilities for the GF(2^m) field with corresponding extension polynomial:
Utilities for the GF(2^m) field with corresponding extension polynomial:
The GMAC specialisation of Galois/Counter mode (GCM) detailed in NIST Special Publication 800-38D as adapted for the Kalyna version of GCM.
KMAC - MAC with optional XOF mode.
ParameterSpec for the KMAC variants of SHAKE as used by CMS (RFC 8702 §3.4).
KMACwithSHAKE128-params ::= SEQUENCE { kMACOutputLength INTEGER DEFAULT 256, -- Output length in bits customizationString OCTET STRING DEFAULT ''H }
KMACwithSHAKE256-params ::= SEQUENCE { kMACOutputLength INTEGER DEFAULT 512, -- Output length in bits customizationString OCTET STRING DEFAULT ''H }
Parameter spec for doing KTS based wrapping via the Cipher API.
Builder class for creating a KTSParameterSpec.
Implementation of DSTU7624 XTS mode
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
JCA/JCE provider plumbing for the LEA (Lightweight Encryption Algorithm) block cipher.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
LEA Cipher engine.
Legacy bits of security constraint.
 
Extension to tie an alternate certificate to the containing certificate.
 
 
 
 
 
 
 
 
ParameterSpec for keys using the LMS Hierarchical Signature System (HSS).
Deprecated.
use LMSKeyGenParameterSpec
 
Base interface for Leighton-Micali Hash-Based Signatures (LMS) keys.
 
 
ParameterSpec for the Leighton-Micali Hash-Based Signature (LMS) scheme.
 
 
 
 
Deprecated.
use LMSKeyGenParameterSpec
Base interface for an LMS private key
 
 
 
 
 
ASN.1 uses an EN locale for its internal formatting.
 
Base class for SHA-384 and SHA-512.
Utility methods and constants for longs.
 
 
 
The base interface for implementations of message authentication codes (MACs).
 
base interface for general purpose Mac based byte derivation functions.
 
 
An output stream which calculates a MAC based on the data that is written to it.
Interface for Map to Curve
this exception is thrown whenever a cipher requires a change of key, iv or similar after x amount of bytes enciphered
 
 
 
 
 
 
 
 
 
Implementation of the MAYO asymmetric key pair generator following the MAYO signature scheme specifications.
 
 
 
 
 
 
 
 
 
 
Implementation of the MAYO digital signature scheme as specified in the MAYO documentation.
 
 
MD2 HMac
 
 
implementation of MD2 as outlined in RFC1319 by B.Kaliski from RSA Laboratories April 1992
 
 
MD4 HashMac
 
 
implementation of MD4 as RFC 1320 by R.
 
 
MD5 HashMac
 
 
implementation of MD5 as outlined in "Handbook of Applied Cryptography", pages 346 - 347.
Interface for Memoable objects.
Exception to be thrown on a failure to reset an object implementing Memoable.
 
Base interface for a PQC encryption algorithm.
The MessageExpansion interface defines a contract for expanding a message.
Base interface for a PQC signing algorithm.
 
Generator for MGF1 as defined in PKCS 1v2
parameters for mask derivation functions.
 
 
Lightweight ML-DSA (FIPS 204) engine — key generation, signing and verification.
 
 
 
 
 
 
 
 
 
 
 
Deprecated.
use org.bouncycastle.crypto.params.MLDSAKeyGenerationParameters
 
Deprecated.
use org.bouncycastle.crypto.generators.MLDSAKeyPairGenerator
 
 
 
 
 
 
 
 
 
 
Deprecated.
use org.bouncycastle.crypto.params.MLDSAKeyParameters
 
Deprecated.
use org.bouncycastle.crypto.params.MLDSAParameters
AlgorithmSpec for ML-DSA
 
 
Deprecated.
use org.bouncycastle.crypto.params.MLDSAPrivateKeyParameters
PrivateKeySpec for ML-DSA.
An ML-DSA private key wrapper which acts as a proxy to allow an ML-DSA public key to be passed in for external-mu calculation.
 
 
Deprecated.
use org.bouncycastle.crypto.params.MLDSAPublicKeyParameters
PublicKeySpec for ML-DSA.
 
Deprecated.
use org.bouncycastle.crypto.signers.MLDSASigner
 
 
 
 
 
 
 
 
 
Deprecated.
use org.bouncycastle.crypto.kems.MLKEMExtractor
 
Deprecated.
use org.bouncycastle.crypto.kems.MLKEMGenerator
 
 
 
 
 
 
Deprecated.
use org.bouncycastle.crypto.params.MLKEMKeyGenerationParameters
 
 
 
 
 
Deprecated.
use org.bouncycastle.crypto.generators.MLKEMKeyPairGenerator
 
 
 
 
 
Deprecated.
use org.bouncycastle.crypto.params.MLKEMKeyParameters
 
Deprecated.
use org.bouncycastle.crypto.params.MLKEMParameters
AlgorithmSpec for ML-KEM
 
 
Deprecated.
use org.bouncycastle.crypto.params.MLKEMKeyPrivateKeyParameters
PrivateKeySpec for ML-DSA.
 
 
Deprecated.
use org.bouncycastle.crypto.params.MLKEMKeyPublicKeyParameters
PublicKeySpec for ML-DSA.
Modular inversion as implemented in this class is based on the paper "Fast constant-time gcd computation and modular inversion" by Daniel J.
 
The MonetaryValue object.
 
Curve processor for Montgomery curves of the form B * y^2 = x^3 + A * x^2 + x Internally we treat this as a long Weierstrass curve y^2 = x^3 + a2 * x^2 + a4 * x + a6 with a2 = A / B, a4 = 1 / B, a6 = 0.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Parameter set descriptors for MQOM v2.1 ("MQ on my Mind").
AlgorithmParameterSpec for MQOM v2.1.
 
 
MQOM v2.1 lightweight signer.
 
Parameter spec to provide MQV ephemeral keys and user keying material.
Deprecated.
use MQVParameterSpec for passing the ephemeral key.
 
Deprecated.
use MQVParameterSpec for passing the ephemeral key.
 
ASN.1 structure for the id-pe-mtcCertificationAuthority extension defined in Section 5.5 of draft-ietf-plants-merkle-tree-certs:
OID constants used by the experimental encoding of Merkle Tree Certificates (draft-ietf-plants-merkle-tree-certs).
Base interface for a cipher engine capable of processing multiple blocks at a time.
 
 
NaccacheStern Engine.
Parameters for NaccacheStern public private key generation.
Key generation parameters for NaccacheStern cipher.
Public key parameters for NaccacheStern cipher.
Private key parameters for NaccacheStern cipher.
 
 
 
JcaJceHelper that obtains all algorithms using a specific named provider.
Structure for a name or pseudonym.
 
 
 
 
 
 
 
 
 
 
 
Handles NetScape certificate request (KEYGEN), these are constructed as:
 
 
 
 
 
 
 
 
OtherInfo Generator for which can be used for populating the SuppPrivInfo field used to provide shared secret data used with NIST SP 800-56A agreement algorithms.
Party U (initiator) generation.
Party V (responder) generation.
 
 
 
 
A processor with associated builders for doing secret key transformation using the New Hope algorithm.
Party U (initiator) processor builder.
Party V (responder) processor builder.
A Cipher Text Stealing (CTS) mode cipher.
Curve processor for NIST curves (P-256, P-384, P-521) where the cofactor is 1.
Utility class for fetching curves using their NIST names as published in FIPS-PUB 186-3
NIST: iso/itu(2) joint-assign(16) us(840) organization(1) gov(101) csor(3)
 
 
 
 
 
 
 
 
 
A Noekeon engine, using direct-key mode.
Wrapper removes exposure to the Memoable interface on an ExtendedDigest implementation.
 
 
 
NoticeReference class, used in CertificatePolicies X509 V3 extensions (in policy qualifiers).
 
 
 
 
NTRU-HPS parameter set with n = 509 and q = 2048.
NTRU-HPS parameter set with n = 677 and q = 2048.
NTRU-HPS parameter set with n = 1229 and q = 4096.
NTRU-HPS parameter set with n = 821 and q = 4096.
Abstract class for NTRU-HPS parameter classes.
NTRU-HRSS parameter set with n = 1373.
NTRU-HRSS parameter set with n = 701.
Abstract class for NTRU-HRSS parameter classes.
NTRU secret encapsulation extractor.
Encapsulate a secret using NTRU. returns a SecretWithEncapsulation as encapsulation.
 
 
Key generation parameters for NTRU.
 
Key generator for NTRU.
 
Abstract class for NTRU key pair.
 
 
 
 
 
 
 
 
 
NTRU LPRime Parameter Specs
 
 
 
NTRU cipher parameter sets
Abstract class for all NTRU parameter sets.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Implementation of the NTRU+ asymmetric key pair generator following the NTRU+ KEM specifications.
 
 
 
 
 
 
 
 
 
 
 
 
 
NTRU private key parameter class.
NTRU public key parameter class.
 
The no-op engine that just copies bytes through, irrespective of whether encrypting and decrypting.
Parsing
Optimal Asymmetric Encryption Padding (OAEP) - see PKCS 1 V 2.
ObjectData ::= SEQUENCE { type INTEGER, identifier UTF8String, creationDate GeneralizedTime, lastModifiedDate GeneralizedTime, data OCTET STRING, comment UTF8String OPTIONAL }
ObjectDataSequence ::= SEQUENCE OF ObjectData
ObjectDigestInfo ASN.1 structure used in v2 attribute certificates.
 
ObjectStore ::= SEQUENCE { CHOICE { encryptedObjectStoreData EncryptedObjectStoreData, objectStoreData ObjectStoreData } integrityCheck ObjectStoreIntegrityCheck }
ObjectStoreData ::= SEQUENCE { version INTEGER.
ObjectStoreIntegrityCheck ::= CHOICE { PbkdMacIntegrityCheck [0] EXPLICIT SignatureCheck }
OIDs for RFC 2560 and RFC 6960 Online Certificate Status Protocol - OCSP.
 
OCSP RFC 2560, RFC 6960
OCSP RFC 2560, RFC 6960
implements a Output-FeedBack (OFB) mode on top of a simple cipher.
Deprecated.
Will be removed
A Cipher Text Stealing (CTS) mode cipher.
HMAC implementation based on RFC2104 H(K XOR opad, H(K XOR ipad, text))
Support class for constructing integrated encryption ciphers for doing basic message exchanges on top of key agreement ciphers.
Password hashing scheme BCrypt, designed by Niels Provos and David Mazières, using the String format and the Base64 encoding of the reference implementation on OpenBSD.
Implements OpenPGP's rather strange version of Cipher-FeedBack (CFB) mode on top of a simple cipher.
OpenSSHPrivateKeySpec holds and encoded OpenSSH private key.
A collection of utility methods for parsing OpenSSH private keys.
Holds an OpenSSH encoded public key.
OpenSSHPublicKeyUtil utility classes for parsing OpenSSH public keys.
Generator for PBE derived keys and ivs as usd by OpenSSL.
 
 
 
Generic implementation of HashToScalar as used in OPRF (RFC 9497).
ASN.1 def for Diffie-Hellman key exchange OtherInfo structure.
OtherInfo Generator for which can be used for populating the SuppPrivInfo field used to provide shared secret data used with NIST SP 800-56A agreement algorithms.
Party U (initiator) generation.
Party V (responder) generation.
The OtherName object.
 
Utility class for creating OutputStreams from different JCA/JCE operators.
The payload sent by the client during the third pass of an Owl exchange.
The payload sent by the client in the first pass of an Owl exchange.
The payload sent by the server during the second pass of an Owl exchange.
A client in the Elliptic Curve Owl key exchange protocol.
A client in the Owl key exchange protocol specifically for the user registration phase.
A pre-computed elliptic curve over a prime field, in short-Weierstrass form for use during an Owl exchange.
Standard pre-computed elliptic curves for use by Owl.
The final payload generated by the OwlServerRegistration during the user registration of a Owl exchange.
The payload sent by OwlClientRegistration, during the user registration phase of an Owl exchange.
The payload sent/received during the explicit key confirmation stage of the protocol,
A server in the Elliptic Curve Owl key exchange protocol.
A server in the Owl key exchange protocol specifically for the user registration phase.
 
Deprecated.
use org.bouncycastle.util.pack
Utility methods for converting byte arrays into ints and longs, and back again.
Deprecated.
use org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher instead.
A wrapper class that allows block ciphers to be used to process data in a piecemeal fashion with padding.
ParallelHash - a hash designed to support the efficient hashing of very long strings, by taking advantage of the parallelism available in modern processors with an optional XOF mode.
 
 
 
 
Cipher parameters with a fixed salt value associated with them.
 
 
 
ParSet ::= SEQUENCE { T INTEGER h SEQUENCE OF INTEGER w SEQUENCE OF INTEGER K SEQUENCE OF INTEGER }
Standard char[] to byte[] converters for password based derivation algorithms.
 
uses the appropriate mixer to generate the key and IV if necessary.
 
super class for all Password Based Encryption (PBE) parameter generator classes.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A password based key for use with PBKDF1 as defined in PKCS#5.
A password based key for use with PBKDF1 as defined in PKCS#5 with full PBE parameters.
 
 
Configuration class for a PBKDF using PKCS#5 Scheme 2.
 
A password based key for use with PBKDF2 as defined in PKCS#5.
Extension of PBEKeySpec which takes into account the PRF algorithm setting available in PKCS#5 PBKDF2.
A password based key for use with PBKDF2 as defined in PKCS#5 with full PBE parameters.
PBKDF2-params ::= SEQUENCE { salt CHOICE { specified OCTET STRING, otherSource AlgorithmIdentifier {{PBKDF2-SaltSources}} }, iterationCount INTEGER (1..MAX), keyLength INTEGER (1..MAX) OPTIONAL, prf AlgorithmIdentifier {{PBKDF2-PRFs}} DEFAULT algid-hmacWithSHA1 }
Base class for PBKDF configs.
Base interface for keys associated with various password based key derivation functions (PBKDF).
Carrier for the contents of a PBEKey stored in a BCFKS keystore.
PbkdMacIntegrityCheck ::= SEQUENCE { macAlgorithm AlgorithmIdentifier, pbkdAlgorithm KeyDerivationFunc, mac OCTET STRING }
From https://datatracker.ietf.org/doc/html/rfc8018
Exception thrown on failure to generate a PEM object.
Class representing a PEM header (name, value) pair.
A generic PEM object - type, header properties, and byte content.
Base interface for generators of PEM objects.
Base interface for parsers to convert PEM objects into specific objects.
A generic PEM reader, based on the format outlined in RFC 1421
 
A generic PEM writer, based on RFC 1421
Contains personal data for the otherName field in the subjectAltNames extension.
the infamous Pfx from PKCS12
Implements OpenPGP's rather strange version of Cipher-FeedBack (CFB) mode on top of a simple cipher.
Photon-Beetle, https://www.isical.ac.in/~lightweight/beetle/ https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/photon-beetle-spec-final.pdf
 
Photon-Beetle, https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/photon-beetle-spec-final.pdf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Deprecated.
use classes in org.bouncycastle.pkcs.
 
 
allow us to set attributes on objects that can go into a PKCS12 store.
 
A password based key for use with PKCS#12.
BC's JCA-visible KeyStoreSpi for the PKCS#12 keystore family (provider "BC", types PKCS12, PKCS12-DEF, PKCS12-3DES-40RC2, PKCS12-3DES-3DES, PKCS12-AES256-AES128 and the -DEF- aliases).
 
 
 
 
 
 
 
 
A password based key for use with PKCS#12 with full PBE parameters.
LoadStoreParameter to allow configuring of the PBKDF used to generate encryption keys for use in the keystore.
 
Generator for PBE derived keys and ivs as defined by PKCS 12 V1.0.
 
BC's JCA-visible KeyStoreSpi for the PBMAC1-protected PKCS#12 keystore variant (provider "BC", type PKCS12-PBMAC1).
 
LoadStoreParameter to allow for additional config with PKCS12 files.
Deprecated.
use org.bouncycastle.jcajce.PKCS12StoreParameter
 
 
Deprecated.
Replaced by
invalid reference
org.bouncycastle.pkcs.util.PKCS12Util
; this class does not understand RFC 9579 PBMAC1-protected PKCS#12 files (it throws UnsupportedOperationException for them) and will be removed in a future release.
this does your basic PKCS 1 v1.5 padding - whether or not you should be using this depends on your application - see PKCS1 Version 2 for details.
Generator for PBE derived keys and ivs as defined by PKCS 5 V2.0 Scheme 1.
Generator for PBE derived keys and ivs as defined by PKCS 5 V2.0 Scheme 2.
A padder that adds PKCS7/PKCS5 padding to a block.
pkcs-1 OBJECT IDENTIFIER ::=
 
CertPathValidatorSpi implementation for X.509 Attribute Certificates la RFC 3281.
CertPath implementation for X.509 certificates.
Implements the PKIX CertPathBuilding algorithm for BouncyCastle.
Implements the PKIX CertPathBuilding algorithm for BouncyCastle.
CertPathValidatorSpi implementation for X.509 Certificate validation � la RFC 3280.
CertPathValidatorSpi implementation for X.509 Certificate validation � la RFC 3280.
 
 
Generic interface for a PKIX based certificate store.
This class is a Selector implementation for certificates.
Builder for a PKIXCertStoreSelector.
Generic interface for a PKIX based CRL store.
This class is a Selector implementation for X.509 certificate revocation lists.
Builder for a PKIXCRLStoreSelector.
This class contains extended parameters for PKIX certification path builders.
Builder for a PKIXExtendedBuilderParameters object.
This class extends the PKIXParameters with a validity model parameter.
Builder for a PKIXExtendedParameters object.
 
 
 
 
 
PKIX RFC 5280
 
PolicyMappings V3 extension, described in RFC3280.
PolicyQualifierId, used in the CertificatePolicies X509V3 extension.
Policy qualifiers, used in the X509V3 CertificatePolicies extension.
Poly1305 message authentication code, designed by D.
 
 
 
 
Generates keys for the Poly1305 MAC.
 
 
PQC:
OtherInfo Generator for which can be used for populating the SuppPrivInfo field used to provide shared secret data used with NIST SP 800-56A agreement algorithms.
Party U (initiator) generation.
Party V (responder) generation.
 
Interface for classes storing precomputation data for multiplication algorithms.
 
 
Utility methods for generating primes and testing for primality.
Used to return the output from the Enhanced Miller-Rabin Probabilistic Primality Test
Used to return the output from the Shawe-Taylor Random_Prime Routine
a utility class that will extract X509Principal objects from X.509 certificates.
Class for instancing AnnotatedPrivateKeys.
Factory for creating private key objects from PKCS8 PrivateKeyInfo objects.
Factory for creating private key objects from PKCS8 PrivateKeyInfo objects.
Hash codes for private keys derived from public parameters and the derived public value.
RFC 5958
Factory to create ASN.1 private key info objects from lightweight private keys.
Factory to create ASN.1 private key info objects from lightweight private keys.
PrivateKeyPossessionStatement ::= SEQUENCE { signer IssuerAndSerialNumber, cert Certificate OPTIONAL }
Deprecated.
use PrivateKeyPossessionStatement
PrivateKeyUsagePeriod ::= SEQUENCE { notBefore [0] GeneralizedTime OPTIONAL, notAfter [1] GeneralizedTime OPTIONAL }
Utility method for accessing properties values - properties can be set in java.security, thread local, and system properties.
 
A permission class to define what can be done with the ConfigurableProvider interface.
JcaJceHelper that obtains all algorithms from a specific Provider instance.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
RSA-PSS as described in PKCS# 1 v 2.1.
Factory to create asymmetric public key parameters for asymmetric ciphers from range of ASN.1 encoded SubjectPublicKeyInfo objects.
Factory to create asymmetric public key parameters for asymmetric ciphers from range of ASN.1 encoded SubjectPublicKeyInfo objects.
The QCStatement object.
The QcType statementInfo defined by ETSI EN 319 412-5 sec. 4.2.3, used inside a QCStatement whose statementId is ETSIQCObjectIdentifiers.id_etsi_qcs_QcType.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Common base for QR-UOV public and private key parameter classes; carries the QRUOVParameters parameter set the key belongs to.
Parameter sets for the QR-UOV multivariate signature scheme (NIST PQC additional signatures Round 2 submission).
 
Lightweight private key parameters for QR-UOV.
Lightweight public key parameters for QR-UOV.
QR-UOV signature implementation.
Utility class to convert decimal numbers (BigInteger) into a number in the base provided and the other way round.
 
 
 
 
 
 
 
 
Generic interface for objects generating random bytes.
 
An encoded key spec that just wraps the minimal data for a public/private key representation.
 
 
 
RC2CBC
RC2
 
RC2
 
 
PBEWithMD2AndRC2
PBEWithMD5AndRC2
PBEWithMD5AndRC2
PBEWithSHA1AndRC2
PBEWithSHA1AndRC2
PBEWithSHAAnd128BitRC2-CBC
PBEWithSHAAnd128BitRC2-CBC
PBEWithSHAAnd40BitRC2-CBC
PBEWithSHAAnd40BitRC2-CBC
 
 
an implementation of RC2 as described in RFC 2268 "A Description of the RC2(r) Encryption Algorithm" R.
 
Wrap keys according to RFC 3217 - RC2 mechanism
 
 
 
 
 
 
RC5
RC564
 
RC5
 
 
The specification for RC5 came from the RC5 Encryption Algorithm publication in RSA CryptoBytes, Spring of 1995.
The specification for RC5 came from the RC5 Encryption Algorithm publication in RSA CryptoBytes, Spring of 1995.
 
 
 
 
 
 
 
 
 
 
 
 
 
An RC6 engine.
Holding class for a single Relative Distinguished Name (RDN).
The ReasonFlags object.
RFC 9763 sec. 3 RelatedCertificate certificate extension value.
Descriptor for a related certificate, as defined by draft-ietf-lamps-certdiscovery (Certificate Discovery in PKIX).
A simple object to indicate that a symmetric cipher should reuse the last key provided.
Deprecated.
use super class org.bouncycastle.jcajce.spec.RepeatedSecretKeySpec
 
 
OCSP RFC 2560, RFC 6960
OCSP RFC 2560, RFC 6960
Takes bytes generated by an underling RandomGenerator and reverses the order in each small window (of configurable size).
 
an implementation of the RFC 3211 Key Wrap Specification.
an implementation of the AES Key Wrapper from the NIST Key Wrap Specification as described in RFC 3394.
 
 
An implementation of the AES Key Wrap with Padding specification as described in RFC 5649.
 
 
 
 
 
an implementation of Rijndael, based on the documentation and reference implementation by Paulo Barreto, Vincent Rijmen, for v2.0 August '99.
 
 
RIPEMD128 HashMac
 
 
implementation of RIPEMD128
 
 
RIPEMD160 HMac
 
 
PBEWithHmacRIPEMD160
PBEWithHmacRIPEMD160
implementation of RIPEMD see, https://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html
 
 
RIPEMD256 HMac
 
 
implementation of RIPEMD256.
 
 
RIPEMD320 HMac
 
 
implementation of RIPEMD 320.
Implementation of the RoleSyntax object as specified by the RFC3281.
Romulus v1.3, based on the current round 3 submission, https://romulusae.github.io/romulus/ Reference C implementation: https://github.com/romulusae/romulus Specification: https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/romulus-spec-final.pdf
 
Romulus v1.3, based on the current round 3 submission, https://romulusae.github.io/romulus/ Reference C implementation: https://github.com/romulusae/romulus Specification: https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/romulus-spec-final.pdf
 
 
 
this does your basic RSA algorithm with blinding
This does your basic RSA Chaum's blinding and unblinding as outlined in "Handbook of Applied Cryptography", page 475.
Generate a random factor suitable for use with RSA blind signatures as outlined in Chaum's blinding and unblinding as outlined in "Handbook of Applied Cryptography", page 475.
 
Client side of the RSA Blind Signature Scheme with Appendix (RSABSSA) defined in RFC 9474.
Variant parameters for the RSA Blind Signature Scheme with Appendix (RSABSSA) defined in RFC 9474.
Server side of the RSA Blind Signature Scheme with Appendix (RSABSSA) defined in RFC 9474.
 
this does your basic RSA algorithm.
 
Cipher SPI implementing the ISO 18033-2 / RFC 9690 RSA-KEM key-transport scheme, registered under the JCE service name "RSA-KTS-KEM-KWS" and aliased against the id-kem-rsa object identifier (1.0.18033.2.2.4).
The RSA Key Encapsulation Mechanism (RSA-KEM) from ISO 18033-2.
The RSA Key Encapsulation Mechanism (RSA-KEM) from ISO 18033-2.
Deprecated.
use RSAKEMGenerator, RSAKEMExtractor
 
an RSA key pair generator.
 
 
 
Deprecated.
use RSAPrivateKey
 
Deprecated.
use org.bouncycastle.asn1.pkcs.RSAPublicKey
 
utility class for converting java.security RSA objects into their org.bouncycastle.crypto counterparts.
the foundation class for the exceptions thrown by the crypto packages.
 
 
 
 
 
 
 
 
 
 
 
 
 
Expires 13 May 2022 SABERPrivateKey ::= SEQUENCE { version INTEGER {v0(0)} -- version (round 3) z OCTET STRING, -- 32-byte random value z s OCTET STRING, -- short integer polynomial s PublicKey [0] IMPLICIT SABERPublicKey OPTIONAL, -- see next section hpk OCTET STRING -- H(pk) }
 
Expires 13 May 2022 SABERPublicKey := SEQUENCE { seed_A OCTET STRING, -- 32-byte seed b OCTET STRING -- short integer polynomial b }
 
 
Implements the receiver side of the SAKKE (Sakai-Kasahara Key Encryption) protocol as defined in RFC 6508.
This class implements the SAKKE (Sakai-Kasahara Key Encryption) Key Encapsulation Mechanism as defined in RFC 6508.
Represents a private key for the Sakai-Kasahara Key Encryption (SAKKE) scheme, as defined in RFC 6508.
Represents the public parameters for the SAKKE (Sakai-Kasahara Key Encryption) scheme as defined in RFC 6508.
 
 
 
 
 
Implementation of Daniel J.
Extended digest which provides the ability to store state and provide an encoding.
 
 
 
 
 
Implementation of the scrypt a password-based key derivation function.
 
 
 
 
 
 
Configuration class for a PBKDF based around scrypt.
 
Key spec for use with the scrypt SecretKeyFactory.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SDitH parameter set descriptor.
AlgorithmSpec for SDitH (Syndrome-Decoding-in-the-Head), exposed via the BCPQC provider.
SDitH private key, in the same expanded form that the reference KAT files write out (sdith_full_key_t).
 
SDitH (Syndrome-Decoding-in-the-Head) signer for the Hypercube variant.
 
Certicom object identifiers
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
RFC 7292 - SecretBag carrier for arbitrary secret values stored in a PKCS#12 SafeBag of type secretBag (PKCSObjectIdentifiers.secretBag).
SecretKeyData ::= SEQUENCE { keyAlgorithm OBJECT IDENTIFIER, keyBytes OCTET STRING }
Deprecated.
class appears to be no longer in use, maybe getting imported by others though.
Carrier class for a KEM/KTS secret key plus its encapsulation.
 
Secret sharing (also called secret splitting) refers to methods for distributing a secret among a group.
Interface describing secret with encapsulation details.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Source provider for SecureRandom implementations.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Implementation of the SEED algorithm as described in RFC 4009
An implementation of the SEED key wrapper based on RFC 4010/RFC 3394.
Interface a selector from a store should conform to.
The SemanticsInformation object.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Serpent is a 128-bit 32-round block cipher with variable key lengths, including 128, 192 and 256 bit keys conjectured to be at least as secure as three-key triple-DES.
 
 
Base class for a constraint, serves to provide storage for the set of exceptions (if any).
 
 
SHA_Interleave - RFC 2945, section 3.1.
SHA1 HMac
 
 
 
PBEWithHmacSHA
SHA1 HMac
implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349.
Implementation of the SHA_Interleave function from RFC 2945, section 3.1, as used by SRP-SHA1 to produce a session key twice the length of a regular SHA-1 hash.
 
 
 
 
 
 
SHA-224 as described in RFC 3874
 
 
 
 
HMACSHA256
 
PBEWithHmacSHA
FIPS 180-2 implementation of SHA-256.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
HMACSHA384
 
 
FIPS 180-2 implementation of SHA-384.
implementation of SHA-3 based on following KeccakNISTInterface.c from https://keccak.noekeon.org/
 
 
 
 
 
 
 
 
 
 
 
HMACSHA512
 
 
 
SHA-512 HMac
FIPS 180-2 implementation of SHA-512.
FIPS 180-4 implementation of SHA-512/t
 
 
 
 
 
 
 
 
Block cipher Shacal2, designed by Helena Handschuh and David Naccache, based on hash function SHA-256, using SHA-256-Initialization-Values as data and SHA-256-Data as key.
implementation of SHAKE based on following KeccakNISTInterface.c from https://keccak.noekeon.org/
 
 
 
 
 
Wrapper class that reduces the output length of a particular digest to only the first n bytes of the digest function.
Utility methods and constants for shorts.
Implements the Segmented Integer Counter (SIC) mode on top of a simple block cipher.
Object Identifiers of SigI specifciation (German Signature Law Interoperability specification).
 
SignatureCheck ::= SEQUENCE { signatureAlgorithm AlgorithmIdentifier, certificates [0] EXPLICIT Certificates OPTIONAL, signatureValue BIT STRING } Certificates ::= SEQUENCE OF Certificate
Signature class for composite signatures.
 
 
 
 
 
 
 
 
 
 
 
Signature SPI for HAETAE.
Signature SPI for Hawk.
 
 
 
 
 
 
 
 
 
JCA SignatureSpi for UOV.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a PKCS#7 signed data object.
Generic signer interface for hash based and message recovery signers.
a PKCS#7 signer info object.
 
 
Signer with message recovery.
 
 
 
 
 
Implements the Simplified Shallue van de Woestijne Map to curve according to section 6.6.2 of RFC 9380 This is the straight-line implementation optimized for Weierstrass curves as defined in section F.2.
 
Implementation of SipHash as specified in "SipHash: a fast short-input PRF", by Jean-Philippe Aumasson and Daniel J.
 
 
 
 
 
Implementation of SipHash with 128 bit output.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Skein HMac
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Implementation of the Skein parameterised hash function in 256, 512 and 1024 bit block sizes, based on the Threefish tweakable block cipher.
Implementation of the Skein family of parameterised hash functions in 256, 512 and 1024 bit block sizes, based on the Threefish tweakable block cipher.
 
Implementation of the Skein parameterised MAC function in 256, 512 and 1024 bit block sizes, based on the Threefish tweakable block cipher.
Parameters for the Skein hash function - a series of byte[] strings identified by integer tags.
A builder for SkeinParameters.
Parameters for the Skein hash function - a series of byte[] strings identified by integer tags.
A builder for SkeinParameterSpec.
 
 
 
 
 
 
 
a class that provides a basic SKIPJACK engine.
Ciphers producing a key stream which can be reset to particular points in the stream implement this.
General interface for a stream cipher that supports skipping.
 
 
 
Deprecated.
use org.bouncycastle.crypto.signers.slhdsa.SLHDSASigner
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Deprecated.
use org.bouncycastle.crypto.params.SLHDSAKeyGenerationParameters
 
Deprecated.
use org.bouncycastle.crypto.generators.SLHDSAKeyPairGenerator
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Deprecated.
use org.bouncycastle.crypto.params.SLHDSAKeyParameters
 
Deprecated.
use org.bouncycastle.crypto.params.SLHDSAParameters
AlgorithmSpec for SLH-DSA
 
 
Deprecated.
use org.bouncycastle.crypto.params.SLHDSAPrivateKeyParameters
 
 
Deprecated.
use org.bouncycastle.crypto.params.SLHDSAPublicKeyParameters
SLH-DSA signer.
Deprecated.
use org.bouncycastle.crypto.signers.SLHDSASigner
SM2 public key encryption engine - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02.
 
SM2 Key Exchange protocol - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02
Private parameters for an SM2 key exchange.
Public parameters for an SM2 key exchange.
 
 
 
 
 
 
Parameter spec for SM2 ID parameter
The SM2 Digital Signature algorithm.
 
 
SM3 HMac
 
 
Implementation of Chinese SM3 digest as described at https://tools.ietf.org/html/draft-shen-sm3-hash-01 and at .... ( Chinese PDF )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SM4 Block Cipher - SM4 is a 128 bit block cipher with a 128 bit key.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Implementation of the Snova asymmetric key pair generator following the Snova signature scheme specifications.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Implementation of the Snova digital signature scheme as specified in the Snova documentation.
 
 
 
 
 
 
 
 
 
StreamLined NTRU Prime Parameter Specs
 
 
 
Interface to SP800-90A deterministic random bit generators.
 
Builder class for making SecureRandom objects based on SP 800-90A Deterministic Random Bit Generators (DRBG).
Sparkle v1.2, based on the current round 3 submission, https://sparkle-lwc.github.io/ Reference C implementation: https://github.com/cryptolu/sparkle Specification: https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/sparkle-spec-final.pdf
 
 
Sparkle v1.2, based on the current round 3 submission, https://sparkle-lwc.github.io/ Reference C implementation: https://github.com/cryptolu/sparkle Specification: https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/sparkle-spec-final.pdf
 
 
Deprecated.
use org.bouncycastle.jcajce.util.SpecUtil
 
 
 
 
Key generation spec for SPHINCS-256 to allow specifying of tree hash.
 
 
 
SPHINCS-256 signer.
 
 
 
 
 
 
Deprecated.
to be deleted - use SLH-DSA instead.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
AlgorithmSpec for SPHINCS+.
Deprecated.
to be deleted - use SLH-DSA instead.
See https://datatracker.ietf.org/doc/draft-uni-qsckeys-sphincsplus/00/ for details ASN.1 Encoding for a SphincsPlus private key for fully populated:
 
Deprecated.
to be deleted - use SLH-DSA instead.
See https://datatracker.ietf.org/doc/draft-uni-qsckeys-sphincsplus/00/ for details.
 
SPHINCS+ signer.
 
 
 
 
 
 
 
 
 
 
 
 
SQIsign key-pair generator wired for all three NIST parameter sets (lvl1, lvl3, lvl5).
 
 
 
 
Parameter sets for SQIsign (Short Quaternion and Isogeny Signature), the NIST PQC additional-signatures candidate based on isogenies of supersingular elliptic curves.
 
 
 
SQIsign signer.
The result of a sqrt_ratio calculation
Interface for a calculator of SqrtRatio
Implements the client side SRP-6a protocol.
 
Implements the server side SRP-6a protocol.
 
 
Generates new SRP verifier for user
 
 
 
Base interface for a PQC stateful signature algorithm.
Deprecated.
it's better to avoid this and use extractKeyShard methods where possible.
A generic interface describing a simple store of objects.
Exception thrown if there's an issue doing a match in store.
A parent class for block cipher modes that do not require block aligned data to be processed, but can function in a streaming mode.
the interface stream ciphers conform to.
Exception thrown when too much data is written to an InputStream
 
 
Utility methods to assist with stream processing.
An interface defining a list of strings.
String utilities.
X.509 Section 9.8.2.
This extension may contain further X.500 attributes of the subject.
The SubjectKeyIdentifier object.
The object that contains the public key stored in a certificate.
Factory to create ASN.1 subject public key info objects from lightweight public keys.
Factory to create ASN.1 subject public key info objects from lightweight public keys.
 
 
 
 
 
 
 
Target structure used in target information extension for attribute certificates from RFC 3281.
Target information extension for attributes certificates according to RFC 3281.
Targets structure used in target information extension for attribute certificates from RFC 3281.
A padder that adds Trailing-Bit-Compliment padding to a block.
The TBSCertificate object.
Represents the ASN.1 structure TBSCertificateLogEntry.
Deprecated.
use TBSCertificate
PKIX RFC-2459 - TBSCertList object.
 
 
 
 
 
 
 
An TEA engine.
An input stream which copies anything read through it to another stream.
An output stream which copies anything written into it to another stream.
Elliptic curves defined in "ECC Brainpool Standard Curves and Curve Generation" https://www.ecc-brainpool.org/download/draft_pkix_additional_ecc_dp.txt
Object identifiers based on the TeleTrust branch.
 
 
A fixed secure random designed to return data for someone needing to create a single BigInteger.
A fixed secure random designed to return data for someone needing random bytes.
A class for returning "quick entropy" for testing purposes.
 
A thread based seed generator - one source of randomness.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Implementation of the Threefish tweakable large block cipher in 256, 512 and 1024 bit block sizes.
 
 
Tiger HMac
 
 
PBEWithHmacTiger
PBEWithHmacTiger
Tiger HMac
 
 
 
 
 
 
 
 
 
 
 
Key Spec class for generating TLS key/iv material.
 
 
Tnepres is a 128-bit 32-round block cipher with variable key lengths, including 128, 192 and 256 bit keys conjectured to be at least as secure as three-key triple-DES.
 
General interface for a translator.
TupleHash - a hash designed to simply hash a tuple of input strings, any or all of which may be empty strings, in an unambiguous way with an optional XOF mode.
Parameters for tweakable block ciphers.
 
 
 
 
 
 
PBEWithSHAAndTwofish-CBC
PBEWithSHAAndTwofish-CBC
 
 
A class that provides Twofish encryption operations.
The TypeOfBiometricData object.
Ukrainian object identifiers
This is a testing utility class to check the property that an OutputStream is never closed in some particular context - typically when wrapped by another OutputStream that should not be forwarding its OutputStream.close() calls.
 
 
Marker interface for an Unbalanced Oil and Vinegar (UOV) key.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Parameter set for the Unbalanced Oil and Vinegar (UOV) signature scheme.
AlgorithmSpec for the Unbalanced Oil and Vinegar (UOV) signature scheme.
 
 
Unbalanced Oil and Vinegar (UOV) signer, classic variant.
Convert binary data to and from UrlBase64 encoding.
Convert binary data to and from UrlBase64 encoding.
 
UserNotice class, used in CertificatePolicies X509 extensions (in policy qualifiers).
Utilities for working with UTF-8 encodings.
Generator for Version 1 TBSCertificateStructures.
Generator for Version 2 AttributeCertificateInfo
 
Generator for Version 2 TBSCertList structures.
Generator for Version 3 TBSCertificateStructures.
Diffie-Hellman domain validation parameters.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Whirlpool HMac
 
 
Implementation of WhirlpoolDigest, based on Java source published by Barreto and Rijmen.
Class implementing the WNAF (Window Non-Adjacent Form) multiplication algorithm.
Class holding precomputation data for the WNAF (Window Non-Adjacent Form) algorithm.
 
 
 
Class implementing the WTNAF (Window τ-adic Non-Adjacent Form) algorithm.
Class holding precomputation data for the WTNAF (Window τ-adic Non-Adjacent Form) algorithm.
A low-level implementation of X25519 (RFC 7748).
 
 
 
 
 
 
 
A low-level implementation of X448 (RFC 7748).
 
 
 
 
 
 
 
The X.500 Name object.
A builder class for making X.500 Name objects.
This interface provides a profile to conform to when DNs are being converted into strings and back.
class for breaking up an X500 Name into it's component tokens, ala java.util.StringTokenizer.
For some reason the class path project thinks that such a KeyFactory will exist.
 
 
 
Deprecated.
Do not use this class directly - either use org.bouncycastle.cert (bcpkix) or CertificateFactory.
Deprecated.
use org.bouncycastle.asn1.x509.Certificate
 
Deprecated.
use CertificateFactory or the PEMParser in the openssl package (pkix jar).
The following extensions are listed in RFC 2459 as relevant to CRL Entries ReasonCode Hode Instruction Code Invalidity Date Certificate Issuer (critical)
Deprecated.
Do not use this class directly - either use org.bouncycastle.cert (bcpkix) or CertificateFactory.
 
The default converter for X509 DN entries when going from their string value to ASN.1 strings.
Deprecated.
use Extension
Deprecated.
Deprecated.
use org.bouncycastle.asn1.x509.ExtensionsGenerator
A holding class for constructing an X509 Key Usage extension.
An expanded set of parameters for an LDAPCertStore
 
This is a general purpose implementation to get X.509 certificates and CRLs from a LDAP location.
Deprecated.
use org.bouncycastle.asn1.x500.X500Name.
It turns out that the number of standard ways the fields in a DN should be encoded into their ASN.1 counterparts is rapidly approaching the number of machines on the internet.
Deprecated.
use X500NameTokenizer
 
Deprecated.
use the X500Name class.
 
 
This class is a collection based Bouncy Castle X509Store SPI implementation for certificate pairs.
 
A SPI implementation of Bouncy Castle X509Store for getting attribute certificates from an LDAP directory.
A SPI implementation of Bouncy Castle X509Store for getting cross certificates pairs from an LDAP directory.
A SPI implementation of Bouncy Castle X509Store for getting certificates form a LDAP directory.
A SPI implementation of Bouncy Castle X509Store for getting certificate revocation lists from an LDAP directory.
A padder that adds X9.23 padding to a block - if a SecureRandom is passed in random padding is assumed, otherwise padding with zeros is used.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
X9.31-1998 - signing using a hash.
Table of the current named curves defined in X.962 EC-DSA.
The Parameters ASN.1 CHOICE from X9.62.
ASN.1 def for Elliptic-Curve Curve structure.
ASN.1 def for Elliptic-Curve ECParameters structure.
A holding class that allows for X9ECParameters to be lazily constructed.
Class for describing an ECPoint as a DER object.
class for processing an FieldElement as a DER object.
ASN.1 def for Elliptic-Curve Field ID structure.
A class which converts integers to byte arrays, allowing padding and calculations to be done according the the filed size of the curve or field element involved.
Object identifiers for the various X9 standards.
 
 
 
 
 
 
 
Implementation of the XChaCha20 stream cipher (extended-nonce ChaCha20) as described in draft-irtf-cfrg-xchacha-03.
XChaCha20-Poly1305 AEAD construction as described in draft-irtf-cfrg-xchacha-03 sec. 2.4.
Key agreement using X25519 or X448.
 
ParameterSpec for XDH key agreement algorithms.
 
 
 
Parameters holder for private unified static/ephemeral agreement using Edwards Curves.
Parameters holder for public unified static/ephemeral agreement using Edwards Curves.
 
XmdMessageExpansion is an implementation of the MessageExpansion interface, used to expand a given message to a specified length in bytes while following cryptographic domain separation principles.
XMSS.
 
 
XMSS address.
 
 
 
XMSS key-pair generation parameters.
Key pair generator for XMSS keys.
 
 
XMSSKeyParams
XMSS^MT.
 
 
XMSS^MT key-pair generation parameters.
Key pair generator for XMSS^MT keys.
 
 
XMMSMTKeyParams
XMSS^MT Parameters.
 
XMMSMTPrivateKey
Base interface for an XMSSMT private key
XMSS^MT Private Key.
 
XMSSMTPublicKey
XMSS^MT Public Key.
 
XMSS^MT Signature.
 
 
 
 
 
 
 
 
 
 
 
 
 
XMSS^MT Signer class.
Binary tree node.
 
XMSS Parameters.
 
XMMSPrivateKey
Base interface for an XMSS private key
XMSS Private Key.
 
XMSSPublicKey
XMSS Public Key.
 
Reduced XMSS Signature.
 
XMSS Signature.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Deprecated.
use Encodable
Utils for XMSS implementation.
With FIPS PUB 202 a new kind of message digest was announced which supported extendable output, or variable digest sizes.
 
Xoodyak v1, https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/xoodyak-spec-final.pdf
 
Xoodyak v1,
 
 
 
 
 
Implementation of Daniel J.
 
 
 
 
 
An XTEA engine.
Implements the decapsulation process of the X-Wing hybrid Key Encapsulation Mechanism (KEM).
Implements the encapsulation process of the X-Wing hybrid Key Encapsulation Mechanism (KEM).
 
Generates key pairs compatible with the X-Wing hybrid Key Encapsulation Mechanism (KEM).
 
 
 
A padder that adds NULL byte padding to a block.
 
 
 
 
 
 
 
 
 
 
 
Zuc128Engine implementation.
Zuc256 implementation.
Zuc128 Mac implementation.
Zuc256 implementation.
Zuc256 implementation.
Zuc256 Mac implementation.