|
Bouncy Castle Cryptography Library 1.79 | ||||||||
| 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 StreamCipherforEncryption - 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()
StreamCiphergetAlgorithmName in interface StreamCipherorg.bouncycastle.crypto.StreamCipherpublic byte returnByte(byte in)
StreamCipherreturnByte in interface StreamCipherorg.bouncycastle.crypto.StreamCipherin - 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)
StreamCipherprocessBytes in interface StreamCipherorg.bouncycastle.crypto.StreamCipherin - 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)
SkippingCipherskip in interface SkippingCipherorg.bouncycastle.crypto.SkippingCiphernumberOfBytes - the number of bytes to skip (positive forward, negative backwards).java.lang.IllegalArgumentException - if numberOfBytes is an invalid value.public long seekTo(long position)
SkippingCipherseekTo in interface SkippingCipherorg.bouncycastle.crypto.SkippingCipherposition - the number of bytes in to set the cipher state to.public long getPosition()
SkippingCiphergetPosition in interface SkippingCipherorg.bouncycastle.crypto.SkippingCipherpublic void reset()
StreamCipherreset in interface StreamCipherprotected 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.79 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||