Class Poly1305Mac
java.lang.Object
org.apache.sshd.common.mac.Poly1305Mac
- All Implemented Interfaces:
AlgorithmNameProvider, Mac, MacInformation
Poly1305 one-time message authentication code. This implementation is derived from the public domain C library
poly1305-donna.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final intprivate final byte[]private intprivate intprivate intprivate intprivate intprivate intprivate longprivate longprivate longprivate longstatic final intprivate longprivate longprivate longprivate longprivate longprivate longprivate longprivate longprivate long -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoiddoFinal(byte[] out, int offset) intintvoidinit(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 Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface MacInformation
isEncryptThenMac
-
Field Details
-
KEY_BYTES
public static final int KEY_BYTES- See Also:
-
BLOCK_SIZE
private static final int BLOCK_SIZE- See Also:
-
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
-
-
Constructor Details
-
Poly1305Mac
public Poly1305Mac()
-
-
Method Details
-
getAlgorithm
- Specified by:
getAlgorithmin interfaceAlgorithmNameProvider
-
init
-
update
-
updateUInt
public void updateUInt(long value) - Specified by:
updateUIntin interfaceMac
-
doFinal
-
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)
-