org.bouncycastle.jcajce.provider.IVAlgorithmParameterGenerator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bc-fips Show documentation
Show all versions of bc-fips Show documentation
The FIPS 140-3 Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms certified to FIPS 140-3 level 1. This jar contains JCE provider and low-level API for the BC-FJA version 2.0.0, FIPS Certificate #4743. Please see certificate for certified platform details.
package org.bouncycastle.jcajce.provider;
import java.security.AlgorithmParameters;
import java.security.InvalidAlgorithmParameterException;
import java.security.SecureRandom;
import java.security.spec.AlgorithmParameterSpec;
import javax.crypto.spec.IvParameterSpec;
class IVAlgorithmParameterGenerator
extends BaseAlgorithmParameterGenerator
{
private final String algorithm;
private final int ivLength;
IVAlgorithmParameterGenerator(BouncyCastleFipsProvider fipsProvider, String algorithm, int ivLength)
{
super(fipsProvider, 0);
this.algorithm = algorithm;
this.ivLength = ivLength;
}
protected void engineInit(
AlgorithmParameterSpec genParamSpec,
SecureRandom random)
throws InvalidAlgorithmParameterException
{
throw new InvalidAlgorithmParameterException("No supported AlgorithmParameterSpec for " + algorithm + " parameter generation");
}
protected AlgorithmParameters engineGenerateParameters()
{
byte[] iv = new byte[ivLength];
random.nextBytes(iv);
AlgorithmParameters params;
try
{
params = AlgorithmParameters.getInstance(algorithm, fipsProvider);
params.init(new IvParameterSpec(iv));
}
catch (Exception e)
{
throw new IllegalStateException(e.getMessage(), e);
}
return params;
}
}