Modifier and Type | Field and Description |
---|---|
private int |
blockSize |
private byte[] |
buf |
private int |
bufOff |
private boolean |
firstStep |
private byte[] |
mac |
private int |
macSize |
private byte[] |
S |
private int[] |
workingKey |
Constructor and Description |
---|
GOST28147Mac() |
Modifier and Type | Method and Description |
---|---|
private int |
bytesToint(byte[] in,
int inOff) |
private byte[] |
CM5func(byte[] buf,
int bufOff,
byte[] mac) |
int |
doFinal(byte[] out,
int outOff)
Compute the final stage of the MAC writing the output to the out
parameter.
|
private int[] |
generateWorkingKey(byte[] userKey) |
java.lang.String |
getAlgorithmName()
Return the name of the algorithm the MAC implements.
|
int |
getMacSize()
Return the block size for this MAC (in bytes).
|
private int |
gost28147_mainStep(int n1,
int key) |
private void |
gost28147MacFunc(int[] workingKey,
byte[] in,
int inOff,
byte[] out,
int outOff) |
void |
init(CipherParameters params)
Initialise the MAC.
|
private void |
intTobytes(int num,
byte[] out,
int outOff) |
void |
reset()
Reset the MAC.
|
void |
update(byte in)
add a single byte to the mac for processing.
|
void |
update(byte[] in,
int inOff,
int len) |
private int blockSize
private int macSize
private int bufOff
private byte[] buf
private byte[] mac
private boolean firstStep
private int[] workingKey
private byte[] S
private int[] generateWorkingKey(byte[] userKey)
public void init(CipherParameters params) throws java.lang.IllegalArgumentException
Mac
public java.lang.String getAlgorithmName()
Mac
getAlgorithmName
in interface Mac
public int getMacSize()
Mac
getMacSize
in interface Mac
private int gost28147_mainStep(int n1, int key)
private void gost28147MacFunc(int[] workingKey, byte[] in, int inOff, byte[] out, int outOff)
private int bytesToint(byte[] in, int inOff)
private void intTobytes(int num, byte[] out, int outOff)
private byte[] CM5func(byte[] buf, int bufOff, byte[] mac)
public void update(byte in) throws java.lang.IllegalStateException
Mac
public void update(byte[] in, int inOff, int len) throws DataLengthException, java.lang.IllegalStateException
update
in interface Mac
in
- the array containing the input.inOff
- the index in the array the data begins at.len
- the length of the input starting at inOff.DataLengthException
- if there isn't enough data in in.java.lang.IllegalStateException
- if the MAC is not initialised.public int doFinal(byte[] out, int outOff) throws DataLengthException, java.lang.IllegalStateException
Mac
doFinal leaves the MAC in the same state it was after the last init.
doFinal
in interface Mac
out
- the array the MAC is to be output to.outOff
- the offset into the out buffer the output is to start at.DataLengthException
- if there isn't enough space in out.java.lang.IllegalStateException
- if the MAC is not initialised.