MacOutputStream (Bouncy Castle Library 1.54 API Specification)
Date: 2015-12-29

org.bouncycastle.jcajce.io

## Class MacOutputStream

- java.lang.Object
- - java.io.OutputStream
  - - org.bouncycastle.jcajce.io.MacOutputStream

- All Implemented Interfaces:
    java.io.Closeable, java.io.Flushable, java.lang.AutoCloseable

      public final class MacOutputStream
      extends java.io.OutputStream

  An output stream which calculates a MAC based on the data that is written to it.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `MacOutputStream(javax.crypto.Mac mac)` Base constructor - specify the MAC algorithm to use.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `byte[]` | `getMac()` Execute doFinal() and return the calculated MAC.
    `void` | `write(byte[] bytes, int off, int len)` Write a block of data of length len starting at offset off in the byte array bytes to the stream.
    `void` | `write(int b)` Write a single byte to the stream.

    - ### Methods inherited from class java.io.OutputStream

      `close, flush, write`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### MacOutputStream

          public MacOutputStream(javax.crypto.Mac mac)

      Base constructor - specify the MAC algorithm to use.
      Parameters:
        `mac` - the MAC implementation to use as the basis of the stream.

  - ### Method Detail

    - #### write

          public void write(int b)
                     throws java.io.IOException

      Write a single byte to the stream.
      Specified by:
        `write` in class `java.io.OutputStream`
      Parameters:
        `b` - the byte value to write.
      Throws:
        `java.io.IOException` - in case of failure.

    - #### write

          public void write(byte[] bytes,
                   int off,
                   int len)
                     throws java.io.IOException

      Write a block of data of length len starting at offset off in the byte array bytes to the stream.
      Overrides:
        `write` in class `java.io.OutputStream`
      Parameters:
        `bytes` - byte array holding the data.
        `off` - offset into bytes that the data starts at.
        `len` - the length of the data block to write.
      Throws:
        `java.io.IOException` - in case of failure.

    - #### getMac

          public byte[] getMac()

      Execute doFinal() and return the calculated MAC.
      Returns:
        the MAC calculated from the output written to the stream.