Package org.bouncycastle.crypto.engines
Class Zuc128CoreEngine
java.lang.Object
org.bouncycastle.crypto.engines.Zuc128CoreEngine
- All Implemented Interfaces:
StreamCipher
,Memoable
- Direct Known Subclasses:
Zuc128Engine
,Zuc256CoreEngine
Zuc128Engine implementation.
Based on https://www.gsma.com/aboutus/wp-content/uploads/2014/12/eea3eia3zucv16.pdf
-
Constructor Summary
ModifierConstructorDescriptionprotected
Constructor.protected
Zuc128CoreEngine
(Zuc128CoreEngine pSource) Constructor. -
Method Summary
Modifier and TypeMethodDescriptioncopy()
Create a copy of the engine.static void
encode32be
(int val, byte[] buf, int off) Encode a 32-bit value into a buffer (little-endian).Obtain Algorithm Name.protected int
Obtain Max iterations.void
init
(boolean forEncryption, CipherParameters params) initialise a Snow3G cipher.protected int
Create the next keyStream word.int
processBytes
(byte[] in, int inOff, int len, byte[] out, int outOff) Process bytes.void
reset()
Reset the engine.void
Reset from saved engine state.byte
returnByte
(byte in) Process single byte.protected void
setKeyAndIV
(int[] pLFSR, byte[] k, byte[] iv) Process key and IV into LFSR.
-
Constructor Details
-
Zuc128CoreEngine
protected Zuc128CoreEngine()Constructor. -
Zuc128CoreEngine
Constructor.- Parameters:
pSource
- the source engine
-
-
Method Details
-
init
initialise a Snow3G cipher.- Specified by:
init
in interfaceStreamCipher
- Parameters:
forEncryption
- whether or not we are for encryption.params
- the parameters required to set up the cipher.- Throws:
IllegalArgumentException
- if the params argument is inappropriate.
-
getMaxIterations
protected int getMaxIterations()Obtain Max iterations.- Returns:
- the maximum iterations
-
getAlgorithmName
Obtain Algorithm Name.- Specified by:
getAlgorithmName
in interfaceStreamCipher
- Returns:
- the name
-
processBytes
public int processBytes(byte[] in, int inOff, int len, byte[] out, int outOff) Process bytes.- Specified by:
processBytes
in interfaceStreamCipher
- Parameters:
in
- the input bufferinOff
- the starting offset in the input bufferlen
- the length of data in the input bufferout
- the output bufferoutOff
- the starting offset in the output buffer- Returns:
- the number of bytes returned in the output buffer
-
reset
public void reset()Reset the engine.- Specified by:
reset
in interfaceStreamCipher
-
returnByte
public byte returnByte(byte in) Process single byte.- Specified by:
returnByte
in interfaceStreamCipher
- Parameters:
in
- the input byte- Returns:
- the output byte
-
encode32be
public static void encode32be(int val, byte[] buf, int off) Encode a 32-bit value into a buffer (little-endian).- Parameters:
val
- the value to encodebuf
- the output bufferoff
- the output offset
-
setKeyAndIV
protected void setKeyAndIV(int[] pLFSR, byte[] k, byte[] iv) Process key and IV into LFSR.- Parameters:
pLFSR
- the LFSRk
- the keyiv
- the iv
-
makeKeyStreamWord
protected int makeKeyStreamWord()Create the next keyStream word.- Returns:
- the next word
-
copy
Create a copy of the engine. -
reset
Reset from saved engine state.
-