org.bouncycastle.jcajce.provider.IvParametersCreator 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.InvalidAlgorithmParameterException;
import java.security.SecureRandom;
import java.security.spec.AlgorithmParameterSpec;
import javax.crypto.spec.IvParameterSpec;
import org.bouncycastle.crypto.Parameters;
import org.bouncycastle.crypto.ParametersWithIV;
class IvParametersCreator
implements ParametersCreator
{
private final ParametersWithIV baseParameters;
IvParametersCreator(ParametersWithIV baseParameters)
{
this.baseParameters = baseParameters;
}
public Parameters createParameters(boolean forEncryption, AlgorithmParameterSpec spec, SecureRandom random)
throws InvalidAlgorithmParameterException
{
if (spec instanceof IvParameterSpec)
{
return baseParameters.withIV(((IvParameterSpec)spec).getIV());
}
if (forEncryption && baseParameters.getAlgorithm().requiresAlgorithmParameters())
{
return baseParameters.withIV(random);
}
return baseParameters;
}
}