![JAR search and dependency download from the Maven repository](/logo.png)
org.bouncycastle.crypto.fips.XofUtils Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bc-fips-debug Show documentation
Show all versions of bc-fips-debug Show documentation
The FIPS 140-2 Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms certified to FIPS 140-2 level 1. This jar contains the debug version JCE provider and low-level API for the BC-FJA version 1.0.2.3, FIPS Certificate #3514. Please note the debug jar is not certified.
package org.bouncycastle.crypto.fips;
import org.bouncycastle.util.Arrays;
class XofUtils
{
static byte[] leftEncode(long strLen)
{
byte n = 1;
long v = strLen;
while ((v >>= 8) != 0)
{
n++;
}
byte[] b = new byte[n + 1];
b[0] = n;
for (int i = 1; i <= n; i++)
{
b[i] = (byte)(strLen >> (8 * (n - i)));
}
return b;
}
static byte[] rightEncode(long strLen)
{
byte n = 1;
long v = strLen;
while ((v >>= 8) != 0)
{
n++;
}
byte[] b = new byte[n + 1];
b[n] = n;
for (int i = 0; i < n; i++)
{
b[i] = (byte)(strLen >> (8 * (n - i - 1)));
}
return b;
}
static byte[] encode(byte X)
{
return Arrays.concatenate(XofUtils.leftEncode(8), new byte[]{X});
}
static byte[] encode(byte[] in, int inOff, int len)
{
if (in.length == len)
{
return Arrays.concatenate(XofUtils.leftEncode(len * 8), in);
}
return Arrays.concatenate(XofUtils.leftEncode(len * 8), Arrays.copyOfRange(in, inOff, inOff + len));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy