org.bouncycastle.crypto.engines

## Class Zuc256CoreEngine

- java.lang.Object
- - org.bouncycastle.crypto.engines.Zuc128CoreEngine
  - - org.bouncycastle.crypto.engines.Zuc256CoreEngine

- All Implemented Interfaces:
    StreamCipher, Memoable
  Direct Known Subclasses:
    Zuc256Engine

      public class Zuc256CoreEngine
      extends Zuc128CoreEngine

  Zuc256 implementation. Based on https://www.is.cas.cn/ztzl2016/zouchongzhi/201801/W020180126529970733243.pdf

- - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `Zuc256CoreEngine()` Constructor for streamCipher.
    `protected` | `Zuc256CoreEngine(int pLength)` Constructor for Mac.
    `protected` | `Zuc256CoreEngine(Zuc256CoreEngine pSource)` Constructor for Memoable.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Memoable` | `copy()` Create a copy of the engine.
    `java.lang.String` | `getAlgorithmName()` Obtain Algorithm Name.
    `protected int` | `getMaxIterations()` Obtain Max iterations.
    `void` | `reset(Memoable pState)` Reset from saved engine state.
    `protected void` | `setKeyAndIV(int[] pLFSR, byte[] k, byte[] iv)` Process key and IV into LFSR.

    - ### Methods inherited from class org.bouncycastle.crypto.engines.Zuc128CoreEngine

      `encode32be, init, makeKeyStreamWord, processBytes, reset, returnByte`

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

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

- - ### Constructor Detail

    - #### Zuc256CoreEngine

          protected Zuc256CoreEngine()

      Constructor for streamCipher.

    - #### Zuc256CoreEngine

          protected Zuc256CoreEngine(int pLength)

      Constructor for Mac.
      Parameters:
        `pLength` - the Mac length

    - #### Zuc256CoreEngine

          protected Zuc256CoreEngine(Zuc256CoreEngine pSource)

      Constructor for Memoable.
      Parameters:
        `pSource` - the source engine

  - ### Method Detail

    - #### getMaxIterations

          protected int getMaxIterations()

      Obtain Max iterations.
      Overrides:
        `getMaxIterations` in class `Zuc128CoreEngine`
      Returns:
        the maximum iterations

    - #### getAlgorithmName

          public java.lang.String getAlgorithmName()

      Obtain Algorithm Name.
      Specified by:
        `getAlgorithmName` in interface `StreamCipher`
      Overrides:
        `getAlgorithmName` in class `Zuc128CoreEngine`
      Returns:
        the name

    - #### setKeyAndIV

          protected void setKeyAndIV(int[] pLFSR,
                                     byte[] k,
                                     byte[] iv)

      Process key and IV into LFSR.
      Overrides:
        `setKeyAndIV` in class `Zuc128CoreEngine`
      Parameters:
        `pLFSR` - the LFSR
        `k` - the key
        `iv` - the iv

    - #### copy

          public Memoable copy()

      Create a copy of the engine.
      Specified by:
        `copy` in interface `Memoable`
      Overrides:
        `copy` in class `Zuc128CoreEngine`
      Returns:
        the copy

    - #### reset

          public void reset(Memoable pState)

      Reset from saved engine state.
      Specified by:
        `reset` in interface `Memoable`
      Overrides:
        `reset` in class `Zuc128CoreEngine`
      Parameters:
        `pState` - the state to restore