|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.bouncycastle.crypto.macs.GOST28147Mac
public class GOST28147Mac
implementation of GOST 28147-89 MAC
| Field Summary | |
|---|---|
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 Summary | |
|---|---|
GOST28147Mac()
|
|
| Method Summary | |
|---|---|
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 statge 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)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
private int blockSize
private int macSize
private int bufOff
private byte[] buf
private byte[] mac
private boolean firstStep
private int[] workingKey
private byte[] S
| Constructor Detail |
|---|
public GOST28147Mac()
| Method Detail |
|---|
private int[] generateWorkingKey(byte[] userKey)
public void init(CipherParameters params)
throws java.lang.IllegalArgumentException
Mac
init in interface Macparams - the key and other data required by the MAC.
java.lang.IllegalArgumentException - if the params argument is
inappropriate.public java.lang.String getAlgorithmName()
Mac
getAlgorithmName in interface Macpublic int getMacSize()
Mac
getMacSize in interface Macprivate 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
update in interface Macin - the byte to be processed.
java.lang.IllegalStateException - if the MAC is not initialised.public void update(byte[] in,
int inOff,
int len)
throws DataLengthException,
java.lang.IllegalStateException
update in interface Macin - 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
MacdoFinal leaves the MAC in the same state it was after the last init.
doFinal in interface Macout - 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.public void reset()
Mac
reset in interface Mac
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||