|
Bouncy Castle Cryptography 1.50 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.bouncycastle.crypto.engines.Salsa20Engine
public class 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
|
protected static byte[] |
tau
|
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 |
generateKeyStream(byte[] output)
|
java.lang.String |
getAlgorithmName()
Return the name of the algorithm the cipher implements. |
protected int |
getNonceSize()
|
void |
init(boolean forEncryption,
CipherParameters params)
initialise a Salsa20 cipher. |
void |
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()
|
byte |
returnByte(byte in)
encrypt/decrypt a single byte returning the result. |
protected static int |
rotl(int x,
int y)
Rotate left |
static void |
salsaCore(int rounds,
int[] input,
int[] x)
Salsa20 function |
protected void |
setKey(byte[] keyBytes,
byte[] ivBytes)
|
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 |
---|
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
public byte returnByte(byte in)
StreamCipher
returnByte
in interface StreamCipher
in
- the byte to be processed.
protected void advanceCounter()
public void processBytes(byte[] in, int inOff, int len, byte[] out, int outOff)
StreamCipher
processBytes
in interface 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.public void reset()
StreamCipher
reset
in interface StreamCipher
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 dataprotected static int rotl(int x, int y)
x
- value to rotatey
- amount to rotate x
|
Bouncy Castle Cryptography 1.50 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |