# Package org.bouncycastle.crypto.io

Classes for doing "enhanced" I/O with Digests and MACs.

- Class Summary
  Class | Description
  --- | ---
  CipherInputStream | 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.
  CipherOutputStream | 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.
  DigestInputStream |
  DigestOutputStream |
  MacInputStream |
  MacOutputStream |
  SignerInputStream |
  SignerOutputStream |

- Exception Summary
  Exception | Description
  --- | ---
  CipherIOException | `IOException` wrapper around an exception indicating a problem with the use of a cipher.
  InvalidCipherTextIOException | `IOException` wrapper around an exception indicating an invalid ciphertext, such as in authentication failure during finalisation of an AEAD cipher.