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 intBLOCK_SIZEprivate byte[]currentBlockprivate intcurrentBlockOffsetprivate inth0private inth1private inth2private inth3private inth4private longk0private longk1private longk2private longk3static intKEY_BYTESprivate longr0private longr1private longr2private longr3private longr4private longs1private longs2private longs3private longs4
-
Constructor Summary
Constructors Constructor Description Poly1305Mac()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddoFinal(byte[] out, int offset)java.lang.StringgetAlgorithm()intgetBlockSize()intgetDefaultBlockSize()voidinit(byte[] key)static voidpackIntLE(int value, byte[] dst, int off)private voidprocessBlock(byte[] block, int offset, int length)private voidreset()static intunpackIntLE(byte[] buf, int off)voidupdate(byte[] in, int offset, int length)voidupdateUInt(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:
getAlgorithmin interfaceAlgorithmNameProvider
-
init
public void init(byte[] key) throws java.lang.Exception
-
updateUInt
public void updateUInt(long value)
- Specified by:
updateUIntin 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:
getBlockSizein interfaceMacInformation- Returns:
- MAC output block size in bytes - may be less than the default - e.g., MD5-96
-
getDefaultBlockSize
public int getDefaultBlockSize()
- Specified by:
getDefaultBlockSizein 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)
-
-