|
Bouncy Castle Cryptography Library 1.77.0 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.bouncycastle.crypto.engines.Salsa20Engine
Implementation of Daniel J. Bernstein's Salsa20 stream cipher, Snuffle 2005
Field Summary | |
static int |
DEFAULT_ROUNDS
|
protected int[] |
engineState
|
protected int |
rounds
|
protected static byte[] |
sigma
Deprecated. |
protected static byte[] |
tau
Deprecated. |
protected int[] |
x
|
Constructor Summary | |
Salsa20Engine()
Creates a 20 round Salsa20 engine. |
|
Salsa20Engine(int rounds)
Creates a Salsa20 engine with a specific number of rounds. |
Method Summary | |
protected void |
advanceCounter()
|
protected void |
advanceCounter(long diff)
|
protected void |
generateKeyStream(byte[] output)
|
java.lang.String |
getAlgorithmName()
Return the name of the algorithm the cipher implements. |
protected long |
getCounter()
|
protected int |
getNonceSize()
|
long |
getPosition()
Return the current "position" of the cipher |
void |
init(boolean forEncryption,
CipherParameters params)
initialise a Salsa20 cipher. |
protected void |
packTauOrSigma(int keyLength,
int[] state,
int stateOffset)
|
int |
processBytes(byte[] in,
int inOff,
int len,
byte[] out,
int outOff)
process a block of bytes from in putting the result into out. |
void |
reset()
reset the cipher. |
protected void |
resetCounter()
|
protected void |
retreatCounter()
|
protected void |
retreatCounter(long diff)
|
byte |
returnByte(byte in)
encrypt/decrypt a single byte returning the result. |
static void |
salsaCore(int rounds,
int[] input,
int[] x)
Salsa20 function |
long |
seekTo(long position)
Reset the cipher and then skip forward to a given position. |
protected void |
setKey(byte[] keyBytes,
byte[] ivBytes)
|
long |
skip(long numberOfBytes)
Skip numberOfBytes forwards, or backwards. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final int DEFAULT_ROUNDS
protected static final byte[] sigma
protected static final byte[] tau
protected int rounds
protected int[] engineState
protected int[] x
Constructor Detail |
public Salsa20Engine()
public Salsa20Engine(int rounds)
rounds
- the number of rounds (must be an even number).Method Detail |
protected void packTauOrSigma(int keyLength, int[] state, int stateOffset)
public void init(boolean forEncryption, CipherParameters params)
init
in interface StreamCipher
forEncryption
- whether or not we are for encryption.params
- the parameters required to set up the cipher.java.lang.IllegalArgumentException
- if the params argument is
inappropriate.protected int getNonceSize()
public java.lang.String getAlgorithmName()
StreamCipher
getAlgorithmName
in interface StreamCipher
org.bouncycastle.crypto.StreamCipher
public byte returnByte(byte in)
StreamCipher
returnByte
in interface StreamCipher
org.bouncycastle.crypto.StreamCipher
in
- the byte to be processed.protected void advanceCounter(long diff)
protected void advanceCounter()
protected void retreatCounter(long diff)
protected void retreatCounter()
public int processBytes(byte[] in, int inOff, int len, byte[] out, int outOff)
StreamCipher
processBytes
in interface StreamCipher
org.bouncycastle.crypto.StreamCipher
in
- the input byte array.inOff
- the offset into the in array where the data to be processed starts.len
- the number of bytes to be processed.out
- the output buffer the processed bytes go into.outOff
- the offset into the output byte array the processed data starts at.DataLengthException
- if the output buffer is too small.public long skip(long numberOfBytes)
SkippingCipher
skip
in interface SkippingCipher
org.bouncycastle.crypto.SkippingCipher
numberOfBytes
- the number of bytes to skip (positive forward, negative backwards).java.lang.IllegalArgumentException
- if numberOfBytes is an invalid value.public long seekTo(long position)
SkippingCipher
seekTo
in interface SkippingCipher
org.bouncycastle.crypto.SkippingCipher
position
- the number of bytes in to set the cipher state to.public long getPosition()
SkippingCipher
getPosition
in interface SkippingCipher
org.bouncycastle.crypto.SkippingCipher
public void reset()
StreamCipher
reset
in interface StreamCipher
protected long getCounter()
protected void resetCounter()
protected void setKey(byte[] keyBytes, byte[] ivBytes)
protected void generateKeyStream(byte[] output)
public static void salsaCore(int rounds, int[] input, int[] x)
input
- input data
|
Bouncy Castle Cryptography Library 1.77.0 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |