# Package org.bouncycastle.crypto.engines

Basic cipher classes.

See: Description

- Class Summary
  Class | Description
  --- | ---
  AESEngine | an implementation of the AES (Rijndael), from FIPS-197.
  AESFastEngine | Deprecated unfortunately this class is has a few side channel issues.
  AESLightEngine | an implementation of the AES (Rijndael), from FIPS-197.
  AESWrapEngine | an implementation of the AES Key Wrapper from the NIST Key Wrap Specification.
  AESWrapPadEngine |
  ARIAEngine | RFC 5794.
  ARIAWrapEngine | an implementation of the ARIA Key Wrapper from the NIST Key Wrap Specification.
  ARIAWrapPadEngine |
  AsconAEAD128 | Ascon-AEAD128 was introduced in NIST Special Publication (SP) 800-232 Additional details and the specification can be found in: NIST SP 800-232 Ascon-Based Lightweight Cryptography Standards for Constrained Devices.
  AsconEngine | Deprecated Now superseded.
  AsconPermutationFriend |
  AsconPermutationFriend.AsconPermutation |
  BlowfishEngine | A class that provides Blowfish key encryption operations, such as encoding data and generating keys.
  CamelliaEngine | Camellia - based on RFC 3713.
  CamelliaLightEngine | Camellia - based on RFC 3713, smaller implementation, about half the size of CamelliaEngine.
  CamelliaWrapEngine | An implementation of the Camellia key wrapper based on RFC 3657/RFC 3394.
  CAST5Engine | A class that provides CAST key encryption operations, such as encoding data and generating keys.
  CAST6Engine | A class that provides CAST6 key encryption operations, such as encoding data and generating keys.
  ChaCha7539Engine | Implementation of Daniel J.
  ChaChaEngine | Implementation of Daniel J.
  CramerShoupCiphertext | Class, holding Cramer Shoup ciphertexts (u1, u2, e, v)
  CramerShoupCoreEngine | Essentially the Cramer-Shoup encryption / decryption algorithms according to "A practical public key cryptosystem provably secure against adaptive chosen ciphertext attack."
  CryptoProWrapEngine |
  DESedeEngine | a class that provides a basic DESede (or Triple DES) engine.
  DESedeWrapEngine | Wrap keys according to RFC 3217.
  DESEngine | a class that provides a basic DES engine.
  DSTU7624Engine |
  DSTU7624WrapEngine | Implementation of DSTU7624 KEY WRAP mode
  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
  ElGamalEngine | this does your basic ElGamal algorithm.
  EthereumIESEngine | Support class for constructing integrated encryption ciphers for doing basic message exchanges on top of key agreement ciphers.
  EthereumIESEngine.HandshakeKDFFunction | Basic KDF generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033 This implementation is based on ISO 18033/P1363a.
  GiftCofbEngine | 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
  GOST28147Engine | implementation of GOST 28147-89
  GOST28147WrapEngine |
  GOST3412_2015Engine | Implementation of GOST 3412 2015 (aka "Kuznyechik") RFC 7801, GOST 3412
  Grain128AEADEngine | Grain-128 AEAD, based on the current round 3 submission, https://grain-128aead.github.io/
  Grain128Engine | Implementation of Martin Hell's, Thomas Johansson's and Willi Meier's stream cipher, Grain-128.
  Grainv1Engine | Implementation of Martin Hell's, Thomas Johansson's and Willi Meier's stream cipher, Grain v1.
  HC128Engine | HC-128 is a software-efficient stream cipher created by Hongjun Wu.
  HC256Engine | HC-256 is a software-efficient stream cipher created by Hongjun Wu.
  IDEAEngine | A class that provides a basic International Data Encryption Algorithm (IDEA) engine.
  IESEngine | Support class for constructing integrated encryption ciphers for doing basic message exchanges on top of key agreement ciphers.
  ISAACEngine | Implementation of Bob Jenkin's ISAAC (Indirection Shift Accumulate Add and Count).
  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
  LEAEngine | LEA Cipher engine.
  NaccacheSternEngine | NaccacheStern Engine.
  NoekeonEngine | A Noekeon engine, using direct-key mode.
  NullEngine | The no-op engine that just copies bytes through, irrespective of whether encrypting and decrypting.
  OldIESEngine | Support class for constructing integrated encryption ciphers for doing basic message exchanges on top of key agreement ciphers.
  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
  RC2Engine | an implementation of RC2 as described in RFC 2268 "A Description of the RC2(r) Encryption Algorithm" R.
  RC2WrapEngine | Wrap keys according to RFC 3217 - RC2 mechanism
  RC4Engine |
  RC532Engine | The specification for RC5 came from the `RC5 Encryption Algorithm` publication in RSA CryptoBytes, Spring of 1995.
  RC564Engine | The specification for RC5 came from the `RC5 Encryption Algorithm` publication in RSA CryptoBytes, Spring of 1995.
  RC6Engine | An RC6 engine.
  RFC3211WrapEngine | an implementation of the RFC 3211 Key Wrap Specification.
  RFC3394WrapEngine | an implementation of the AES Key Wrapper from the NIST Key Wrap Specification as described in RFC 3394.
  RFC5649WrapEngine | An implementation of the AES Key Wrap with Padding specification as described in RFC 5649.
  RijndaelEngine | an implementation of Rijndael, based on the documentation and reference implementation by Paulo Barreto, Vincent Rijmen, for v2.0 August '99.
  RomulusEngine | 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
  RomulusEngine.RomulusParameters |
  RSABlindedEngine | this does your basic RSA algorithm with blinding
  RSABlindingEngine | This does your basic RSA Chaum's blinding and unblinding as outlined in "Handbook of Applied Cryptography", page 475.
  RSAEngine | this does your basic RSA algorithm.
  Salsa20Engine | Implementation of Daniel J.
  SEEDEngine | Implementation of the SEED algorithm as described in RFC 4009
  SEEDWrapEngine | An implementation of the SEED key wrapper based on RFC 4010/RFC 3394.
  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.
  SerpentEngineBase |
  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.
  SkipjackEngine | a class that provides a basic SKIPJACK engine.
  SM2Engine | SM2 public key encryption engine - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02.
  SM4Engine | SM4 Block Cipher - SM4 is a 128 bit block cipher with a 128 bit key.
  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
  TEAEngine | An TEA engine.
  ThreefishEngine | Implementation of the Threefish tweakable large block cipher in 256, 512 and 1024 bit block sizes.
  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.
  TwofishEngine | A class that provides Twofish encryption operations.
  VMPCEngine |
  VMPCKSA3Engine |
  XChaCha20Engine | Implementation of the XChaCha20 stream cipher (extended-nonce ChaCha20) as described in draft-irtf-cfrg-xchacha-03.
  XoodyakEngine | Xoodyak v1, Xoodyak with reference to C Reference Impl from:
  XSalsa20Engine | Implementation of Daniel J.
  XTEAEngine | An XTEA engine.
  Zuc128CoreEngine | Zuc128Engine implementation.
  Zuc128Engine | Zuc256 implementation.
  Zuc256CoreEngine | Zuc256 implementation.
  Zuc256Engine | Zuc256 implementation.

- Enum Summary
  Enum | Description
  --- | ---
  AsconEngine.AsconParameters |
  ElephantEngine.ElephantParameters |
  ISAPEngine.IsapType |
  PhotonBeetleEngine.PhotonBeetleParameters |
  SM2Engine.Mode |
  SparkleEngine.SparkleParameters |

- Exception Summary
  Exception | Description
  --- | ---
  CramerShoupCoreEngine.CramerShoupCiphertextException | CS exception for wrong cipher-texts

## Package org.bouncycastle.crypto.engines Description

Basic cipher classes.