Top Description Classes
module bcprov

Package org.bouncycastle.crypto.engines


Basic cipher classes.

Class Summary

Modifier and TypeClass and Description
pack-priv abstract class
pack-priv abstract class
public class
AESEngine

an implementation of the AES (Rijndael), from FIPS-197.

public class
AESFastEngine

Deprecated unfortunately this class is has a few side channel issues. In an environment where encryption/decryption may be closely observed it should not be used.
an implementation of the AES (Rijndael), from FIPS-197.
public class
AESLightEngine

an implementation of the AES (Rijndael), from FIPS-197.

public class
AESWrapEngine

an implementation of the AES Key Wrapper from the NIST Key Wrap Specification.

public class
public class
ARIAEngine

RFC 5794.

public class
ARIAWrapEngine

an implementation of the ARIA Key Wrapper from the NIST Key Wrap Specification.

public class
public class
AsconAEAD128

Ascon-AEAD128 was introduced as part of the NIST Lightweight Cryptography competition and described in the NIST Special Publication SP 800-232 (Initial Public Draft).

pack-priv abstract class
public class
AsconEngine

Deprecated Now superseded. Please refer to AsconAEAD128Engine for future implementations.
The AsconEngine class provides an implementation of ASCON AEAD version 1.2, based on the official specification available at: https://ascon.iaik.tugraz.at/ and the updated specification document from the NIST competition: ASCON Specification (Finalist Round) .
public class
BlowfishEngine

A class that provides Blowfish key encryption operations, such as encoding data and generating keys.

public class
CamelliaEngine

Camellia - based on RFC 3713.

public class
CamelliaLightEngine

Camellia - based on RFC 3713, smaller implementation, about half the size of CamelliaEngine.

public class
CamelliaWrapEngine

An implementation of the Camellia key wrapper based on RFC 3657/RFC 3394.

public class
CAST5Engine

A class that provides CAST key encryption operations, such as encoding data and generating keys.

public class
CAST6Engine

A class that provides CAST6 key encryption operations, such as encoding data and generating keys.

public class
ChaCha7539Engine

Implementation of Daniel J.

public class
ChaChaEngine

Implementation of Daniel J.

public class
CramerShoupCiphertext

Class, holding Cramer Shoup ciphertexts (u1, u2, e, v)

public class
CramerShoupCoreEngine

Essentially the Cramer-Shoup encryption / decryption algorithms according to "A practical public key cryptosystem provably secure against adaptive chosen ciphertext attack." (Crypto 1998)

public class
pack-priv class
DESBase

a class that provides a basic DES engine.

public class
DESedeEngine

a class that provides a basic DESede (or Triple DES) engine.

public class
DESedeWrapEngine

Wrap keys according to RFC 3217.

public class
DESEngine

a class that provides a basic DES engine.

public class
public class
DSTU7624WrapEngine

Implementation of DSTU7624 KEY WRAP mode

public class
ElephantEngine

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

public class
ElGamalEngine

this does your basic ElGamal algorithm.

public class
EthereumIESEngine

Support class for constructing integrated encryption ciphers for doing basic message exchanges on top of key agreement ciphers.

public class
GOST28147Engine

implementation of GOST 28147-89

public class
public class
GOST3412_2015Engine

Implementation of GOST 3412 2015 (aka "Kuznyechik") RFC 7801, GOST 3412

public class
Grain128AEADEngine

Grain-128 AEAD, based on the current round 3 submission, https://grain-128aead.github.io/

public class
Grain128Engine

Implementation of Martin Hell's, Thomas Johansson's and Willi Meier's stream cipher, Grain-128.

public class
Grainv1Engine

Implementation of Martin Hell's, Thomas Johansson's and Willi Meier's stream cipher, Grain v1.

public class
HC128Engine

HC-128 is a software-efficient stream cipher created by Hongjun Wu.

public class
HC256Engine

HC-256 is a software-efficient stream cipher created by Hongjun Wu.

public class
IDEAEngine

A class that provides a basic International Data Encryption Algorithm (IDEA) engine.

public class
IESEngine

Support class for constructing integrated encryption ciphers for doing basic message exchanges on top of key agreement ciphers.

public class
ISAACEngine

Implementation of Bob Jenkin's ISAAC (Indirection Shift Accumulate Add and Count).

public class
ISAPEngine

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

ISAP AEAD v2 with reference to C Reference Impl from: https://github.com/isap-lwc/isap-code-package

public class
LEAEngine

LEA Cipher engine.

public class
NaccacheSternEngine

NaccacheStern Engine.

public class
NoekeonEngine

A Noekeon engine, using direct-key mode.

public class
NullEngine

The no-op engine that just copies bytes through, irrespective of whether encrypting and decrypting.

public class
OldIESEngine

Support class for constructing integrated encryption ciphers for doing basic message exchanges on top of key agreement ciphers.

public class
PhotonBeetleEngine

Photon-Beetle, https://csrc.nist.gov/CSRC/media/Projects/lightweight-cryptography/documents/finalist-round/updated-spec-doc/photon-beetle-spec-final.pdf

Photon-Beetle with reference to C Reference Impl from: https://github.com/PHOTON-Beetle/Software

public class
RC2Engine

an implementation of RC2 as described in RFC 2268 "A Description of the RC2(r) Encryption Algorithm" R. Rivest.

public class
RC2WrapEngine

Wrap keys according to RFC 3217 - RC2 mechanism

public class
public class
RC532Engine

The specification for RC5 came from the RC5 Encryption Algorithm publication in RSA CryptoBytes, Spring of 1995.

public class
RC564Engine

The specification for RC5 came from the RC5 Encryption Algorithm publication in RSA CryptoBytes, Spring of 1995.

public class
RC6Engine

An RC6 engine.

public class
RFC3211WrapEngine

an implementation of the RFC 3211 Key Wrap Specification.

public class
RFC3394WrapEngine

an implementation of the AES Key Wrapper from the NIST Key Wrap Specification as described in RFC 3394.

public class
RFC5649WrapEngine

An implementation of the AES Key Wrap with Padding specification as described in RFC 5649.

public class
RijndaelEngine

an implementation of Rijndael, based on the documentation and reference implementation by Paulo Barreto, Vincent Rijmen, for v2.0 August '99.

public class
RSABlindedEngine

this does your basic RSA algorithm with blinding

public class
RSABlindingEngine

This does your basic RSA Chaum's blinding and unblinding as outlined in "Handbook of Applied Cryptography", page 475.

pack-priv class
RSACoreEngine

this does your basic RSA algorithm.

public class
RSAEngine

this does your basic RSA algorithm.

public class
Salsa20Engine

Implementation of Daniel J.

public class
SEEDEngine

Implementation of the SEED algorithm as described in RFC 4009

public class
SEEDWrapEngine

An implementation of the SEED key wrapper based on RFC 4010/RFC 3394.

public class
SerpentEngine

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.

public abstract class
public class
Shacal2Engine

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.

public class
SkipjackEngine

a class that provides a basic SKIPJACK engine.

public class
SM2Engine

SM2 public key encryption engine - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02.

public class
SM4Engine

SM4 Block Cipher - SM4 is a 128 bit block cipher with a 128 bit key.

public class
SparkleEngine

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

public class
TEAEngine

An TEA engine.

public class
ThreefishEngine

Implementation of the Threefish tweakable large block cipher in 256, 512 and 1024 bit block sizes.

public class
TnepresEngine

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.

public class
TwofishEngine

A class that provides Twofish encryption operations.

pack-priv class
public class
public class
public class
XoodyakEngine

Xoodyak v1,

Xoodyak with reference to C Reference Impl from:

public class
XSalsa20Engine

Implementation of Daniel J.

public class
XTEAEngine

An XTEA engine.

public class
Zuc128CoreEngine

Zuc128Engine implementation.

public class
Zuc128Engine

Zuc256 implementation.

public class
Zuc256CoreEngine

Zuc256 implementation.

public class
Zuc256Engine

Zuc256 implementation.