Package org.apache.sshd.common.mac
Class Poly1305Mac
- java.lang.Object
-
- org.apache.sshd.common.mac.Poly1305Mac
-
- All Implemented Interfaces:
AlgorithmNameProvider
,Mac
,MacInformation
public class Poly1305Mac extends java.lang.Object implements Mac
Poly1305 one-time message authentication code. This implementation is derived from the public domain C library poly1305-donna.
-
-
Field Summary
Fields Modifier and Type Field Description private static int
BLOCK_SIZE
private byte[]
currentBlock
private int
currentBlockOffset
private int
h0
private int
h1
private int
h2
private int
h3
private int
h4
private long
k0
private long
k1
private long
k2
private long
k3
static int
KEY_BYTES
private long
r0
private long
r1
private long
r2
private long
r3
private long
r4
private long
s1
private long
s2
private long
s3
private long
s4
-
Constructor Summary
Constructors Constructor Description Poly1305Mac()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
doFinal(byte[] out, int offset)
java.lang.String
getAlgorithm()
int
getBlockSize()
int
getDefaultBlockSize()
void
init(byte[] key)
static void
packIntLE(int value, byte[] dst, int off)
private void
processBlock(byte[] block, int offset, int length)
private void
reset()
static int
unpackIntLE(byte[] buf, int off)
void
update(byte[] in, int offset, int length)
void
updateUInt(long value)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.sshd.common.mac.MacInformation
isEncryptThenMac
-
-
-
-
Field Detail
-
KEY_BYTES
public static final int KEY_BYTES
- See Also:
- Constant Field Values
-
BLOCK_SIZE
private static final int BLOCK_SIZE
- See Also:
- Constant Field Values
-
r0
private long r0
-
r1
private long r1
-
r2
private long r2
-
r3
private long r3
-
r4
private long r4
-
s1
private long s1
-
s2
private long s2
-
s3
private long s3
-
s4
private long s4
-
k0
private long k0
-
k1
private long k1
-
k2
private long k2
-
k3
private long k3
-
h0
private int h0
-
h1
private int h1
-
h2
private int h2
-
h3
private int h3
-
h4
private int h4
-
currentBlock
private final byte[] currentBlock
-
currentBlockOffset
private int currentBlockOffset
-
-
Method Detail
-
getAlgorithm
public java.lang.String getAlgorithm()
- Specified by:
getAlgorithm
in interfaceAlgorithmNameProvider
-
init
public void init(byte[] key) throws java.lang.Exception
-
updateUInt
public void updateUInt(long value)
- Specified by:
updateUInt
in interfaceMac
-
doFinal
public void doFinal(byte[] out, int offset) throws java.lang.Exception
-
processBlock
private void processBlock(byte[] block, int offset, int length)
-
reset
private void reset()
-
getBlockSize
public int getBlockSize()
- Specified by:
getBlockSize
in interfaceMacInformation
- Returns:
- MAC output block size in bytes - may be less than the default - e.g., MD5-96
-
getDefaultBlockSize
public int getDefaultBlockSize()
- Specified by:
getDefaultBlockSize
in interfaceMacInformation
- Returns:
- The "natural" MAC block size in bytes
-
unpackIntLE
public static int unpackIntLE(byte[] buf, int off)
-
packIntLE
public static void packIntLE(int value, byte[] dst, int off)
-
-