# Package org.bouncycastle.crypto

Base classes for the lightweight API.

- Interface Summary
  Interface | Description
  --- | ---
  AsymmetricBlockCipher | base interface that a public/private key block cipher needs to conform to.
  AsymmetricCipherKeyPairGenerator | interface that a public/private key pair generator should conform to.
  BasicAgreement | The basic interface that basic Diffie-Hellman implementations conforms to.
  BlockCipher | Block cipher engines are expected to conform to this interface.
  CharToByteConverter | Interface for a converter that produces a byte encoding for a char array.
  CipherParameters | all parameter classes implement this.
  Committer | General interface fdr classes that produce and validate commitments.
  DerivationFunction | base interface for general purpose byte derivation functions.
  DerivationParameters | Parameters for key/byte stream derivation classes
  Digest | interface that a message digest conforms to.
  DigestDerivationFunction | base interface for general purpose Digest based byte derivation functions.
  DSA | interface for classes implementing algorithms modeled similar to the Digital Signature Alorithm.
  DSAExt | An "extended" interface for classes implementing DSA-style algorithms, that provides access to the group order.
  ExtendedDigest |
  KeyEncapsulation | The basic interface for key encapsulation mechanisms.
  KeyEncoder |
  KeyParser |
  Mac | The base interface for implementations of message authentication codes (MACs).
  MacDerivationFunction | base interface for general purpose Mac based byte derivation functions.
  RawAgreement |
  Signer | Generic signer interface for hash based and message recovery signers.
  SignerWithRecovery | Signer with message recovery.
  SkippingCipher | Ciphers producing a key stream which can be reset to particular points in the stream implement this.
  SkippingStreamCipher | General interface for a stream cipher that supports skipping.
  StagedAgreement |
  StreamCipher | the interface stream ciphers conform to.
  Wrapper |
  Xof | With FIPS PUB 202 a new kind of message digest was announced which supported extendable output, or variable digest sizes.

- Class Summary
  Class | Description
  --- | ---
  AsymmetricCipherKeyPair | a holding class for public/private parameter pairs.
  BufferedAsymmetricBlockCipher | a buffer wrapper for an asymmetric block cipher, allowing input to be accumulated in a piecemeal fashion until final processing.
  BufferedBlockCipher | A wrapper class that allows block ciphers to be used to process data in a piecemeal fashion.
  CipherKeyGenerator | The base class for symmetric, or secret, cipher key generators.
  Commitment | General holding class for a commitment.
  CryptoServicesPermission | Permissions that need to be configured if a SecurityManager is used.
  CryptoServicesRegistrar | Basic registrar class for providing defaults for cryptography services in this module.
  CryptoServicesRegistrar.Property | Available properties that can be set.
  EphemeralKeyPair |
  KeyGenerationParameters | The base class for parameters to key generators.
  PBEParametersGenerator | super class for all Password Based Encryption (PBE) parameter generator classes.
  StreamBlockCipher | A parent class for block cipher modes that do not require block aligned data to be processed, but can function in a streaming mode.

- Enum Summary
  Enum | Description
  --- | ---
  PasswordConverter | Standard char[] to byte[] converters for password based derivation algorithms.

- Exception Summary
  Exception | Description
  --- | ---
  CryptoException | the foundation class for the hard exceptions thrown by the crypto packages.
  DataLengthException | 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.
  InvalidCipherTextException | this exception is thrown whenever we find something we don't expect in a message.
  MaxBytesExceededException | this exception is thrown whenever a cipher requires a change of key, iv or similar after x amount of bytes enciphered
  OutputLengthException |
  RuntimeCryptoException | the foundation class for the exceptions thrown by the crypto packages.