Package org.bouncycastle.pqc.crypto.xmss
Class XMSSUtil
- java.lang.Object
-
- org.bouncycastle.pqc.crypto.xmss.XMSSUtil
-
public class XMSSUtil extends java.lang.ObjectUtils for XMSS implementation.
-
-
Constructor Summary
Constructors Constructor Description XMSSUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static booleanareEqual(byte[][] a, byte[][] b)Compares two 2d-byte arrays.static longbytesToXBigEndian(byte[] in, int offset, int size)static intcalculateTau(int index, int height)static byte[]cloneArray(byte[] in)Clone a byte array.static byte[][]cloneArray(byte[][] in)Clone a 2d byte array.static voidcopyBytesAtOffset(byte[] dst, byte[] src, int offset)Copy src byte array to dst byte array at offset.static java.lang.Objectdeserialize(byte[] data, java.lang.Class clazz)static voiddumpByteArray(byte[][] x)Dump content of 2d byte array.static byte[]extractBytesAtOffset(byte[] src, int offset, int length)Copy length bytes at position offset from src.static intgetDigestSize(Digest digest)Determine digest size of digest.static intgetLeafIndex(long index, int xmssTreeHeight)static longgetTreeIndex(long index, int xmssTreeHeight)static booleanhasNullPointer(byte[][] in)Checks whether 2d byte array has null pointers.static booleanisIndexValid(int height, long index)Check whether an index is valid or not.static booleanisNewAuthenticationPathNeeded(long globalIndex, int xmssHeight, int layer)static booleanisNewBDSInitNeeded(long globalIndex, int xmssHeight, int layer)static intlog2(int n)Calculates the logarithm base 2 for a given Integer.static voidlongToBigEndian(long value, byte[] in, int offset)static byte[]serialize(java.lang.Object obj)static byte[]toBytesBigEndian(long value, int sizeInByte)Convert int/long to n-byte array.
-
-
-
Method Detail
-
log2
public static int log2(int n)
Calculates the logarithm base 2 for a given Integer.- Parameters:
n- Number.- Returns:
- Logarithm to base 2 of
n.
-
toBytesBigEndian
public static byte[] toBytesBigEndian(long value, int sizeInByte)Convert int/long to n-byte array.- Parameters:
value- int/long value.sizeInByte- Size of byte array in byte.- Returns:
- int/long as big-endian byte array of size
sizeInByte.
-
longToBigEndian
public static void longToBigEndian(long value, byte[] in, int offset)
-
bytesToXBigEndian
public static long bytesToXBigEndian(byte[] in, int offset, int size)
-
cloneArray
public static byte[] cloneArray(byte[] in)
Clone a byte array.- Parameters:
in- byte array.- Returns:
- Copy of byte array.
-
cloneArray
public static byte[][] cloneArray(byte[][] in)
Clone a 2d byte array.- Parameters:
in- 2d byte array.- Returns:
- Copy of 2d byte array.
-
areEqual
public static boolean areEqual(byte[][] a, byte[][] b)Compares two 2d-byte arrays.- Parameters:
a- 2d-byte array 1.b- 2d-byte array 2.- Returns:
- true if all values in 2d-byte array are equal false else.
-
dumpByteArray
public static void dumpByteArray(byte[][] x)
Dump content of 2d byte array.- Parameters:
x- byte array.
-
hasNullPointer
public static boolean hasNullPointer(byte[][] in)
Checks whether 2d byte array has null pointers.- Parameters:
in- 2d byte array.- Returns:
- true if at least one null pointer is found false else.
-
copyBytesAtOffset
public static void copyBytesAtOffset(byte[] dst, byte[] src, int offset)Copy src byte array to dst byte array at offset.- Parameters:
dst- Destination.src- Source.offset- Destination offset.
-
extractBytesAtOffset
public static byte[] extractBytesAtOffset(byte[] src, int offset, int length)Copy length bytes at position offset from src.- Parameters:
src- Source byte array.offset- Offset in source byte array.length- Length of bytes to copy.- Returns:
- New byte array.
-
isIndexValid
public static boolean isIndexValid(int height, long index)Check whether an index is valid or not.- Parameters:
height- Height of binary tree.index- Index to validate.- Returns:
- true if index is valid false else.
-
getDigestSize
public static int getDigestSize(Digest digest)
Determine digest size of digest.- Parameters:
digest- Digest.- Returns:
- Digest size.
-
getTreeIndex
public static long getTreeIndex(long index, int xmssTreeHeight)
-
getLeafIndex
public static int getLeafIndex(long index, int xmssTreeHeight)
-
serialize
public static byte[] serialize(java.lang.Object obj) throws java.io.IOException- Throws:
java.io.IOException
-
deserialize
public static java.lang.Object deserialize(byte[] data, java.lang.Class clazz) throws java.io.IOException, java.lang.ClassNotFoundException- Throws:
java.io.IOExceptionjava.lang.ClassNotFoundException
-
calculateTau
public static int calculateTau(int index, int height)
-
isNewBDSInitNeeded
public static boolean isNewBDSInitNeeded(long globalIndex, int xmssHeight, int layer)
-
isNewAuthenticationPathNeeded
public static boolean isNewAuthenticationPathNeeded(long globalIndex, int xmssHeight, int layer)
-
-