org.bouncycastle.pqc.crypto.lms.LmsUtils Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bcprov-jdk15to18 Show documentation
Show all versions of bcprov-jdk15to18 Show documentation
The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms. This jar contains JCE provider and lightweight API for the Bouncy Castle Cryptography APIs for JDK 1.5 to JDK 1.8.
package org.bouncycastle.pqc.crypto.lms;
import org.bouncycastle.crypto.Digest;
class LmsUtils
{
static void u32str(int n, Digest d)
{
d.update((byte)(n >>> 24));
d.update((byte)(n >>> 16));
d.update((byte)(n >>> 8));
d.update((byte)(n));
}
static void u16str(short n, Digest d)
{
d.update((byte)(n >>> 8));
d.update((byte)(n));
}
static void byteArray(byte[] array, Digest digest)
{
digest.update(array, 0, array.length);
}
static void byteArray(byte[] array, int start, int len, Digest digest)
{
digest.update(array, start, len);
}
static int calculateStrength(LMSParameters lmsParameters)
{
if (lmsParameters == null)
{
throw new NullPointerException("lmsParameters cannot be null");
}
LMSigParameters sigParameters = lmsParameters.getLMSigParam();
return (1 << sigParameters.getH()) * sigParameters.getM();
}
}