Package org.bouncycastle.crypto.engines
Class ChaChaEngine
java.lang.Object
org.bouncycastle.crypto.engines.Salsa20Engine
org.bouncycastle.crypto.engines.ChaChaEngine
- All Implemented Interfaces:
SkippingCipher
,SkippingStreamCipher
,StreamCipher
Implementation of Daniel J. Bernstein's ChaCha stream cipher.
-
Field Summary
Fields inherited from class org.bouncycastle.crypto.engines.Salsa20Engine
DEFAULT_ROUNDS, engineState, rounds, sigma, tau, x
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a 20 rounds ChaCha engine.ChaChaEngine
(int rounds) Creates a ChaCha engine with a specific number of rounds. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
protected void
advanceCounter
(long diff) static void
chachaCore
(int rounds, int[] input, int[] x) ChaCha functionprotected void
generateKeyStream
(byte[] output) Return the name of the algorithm the cipher implements.protected long
protected void
protected void
protected void
retreatCounter
(long diff) protected void
setKey
(byte[] keyBytes, byte[] ivBytes) Methods inherited from class org.bouncycastle.crypto.engines.Salsa20Engine
getNonceSize, getPosition, init, packTauOrSigma, processBytes, reset, returnByte, salsaCore, seekTo, skip
-
Constructor Details
-
ChaChaEngine
public ChaChaEngine()Creates a 20 rounds ChaCha engine. -
ChaChaEngine
public ChaChaEngine(int rounds) Creates a ChaCha engine with a specific number of rounds.- Parameters:
rounds
- the number of rounds (must be an even number).
-
-
Method Details
-
getAlgorithmName
Description copied from interface:StreamCipher
Return the name of the algorithm the cipher implements.- Specified by:
getAlgorithmName
in interfaceStreamCipher
- Overrides:
getAlgorithmName
in classSalsa20Engine
- Returns:
- the name of the algorithm the cipher implements.
-
advanceCounter
protected void advanceCounter(long diff) - Overrides:
advanceCounter
in classSalsa20Engine
-
advanceCounter
protected void advanceCounter()- Overrides:
advanceCounter
in classSalsa20Engine
-
retreatCounter
protected void retreatCounter(long diff) - Overrides:
retreatCounter
in classSalsa20Engine
-
retreatCounter
protected void retreatCounter()- Overrides:
retreatCounter
in classSalsa20Engine
-
getCounter
protected long getCounter()- Overrides:
getCounter
in classSalsa20Engine
-
resetCounter
protected void resetCounter()- Overrides:
resetCounter
in classSalsa20Engine
-
setKey
protected void setKey(byte[] keyBytes, byte[] ivBytes) - Overrides:
setKey
in classSalsa20Engine
-
generateKeyStream
protected void generateKeyStream(byte[] output) - Overrides:
generateKeyStream
in classSalsa20Engine
-
chachaCore
public static void chachaCore(int rounds, int[] input, int[] x) ChaCha function- Parameters:
input
- input data
-