Package 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 | Description
    --- | ---
    `MacOutputStream​(javax.crypto.Mac mac)` | Base constructor - specify the MAC algorithm to use.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | 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, nullOutputStream, 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.