Red Hat Application Migration Toolkit
package iaik.security.cipher;
import iaik.security.cipher.CAST128ParameterSpec;
import iaik.security.cipher.CAST128WrapParameterSpec;
import iaik.security.cipher.o;
import iaik.security.cipher.t;
import iaik.security.cipher.u;
import java.security.AlgorithmParameters;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.Key;
import java.security.SecureRandom;
import java.security.spec.AlgorithmParameterSpec;
import java.security.spec.InvalidParameterSpecException;
import javax.crypto.BadPaddingException;
import javax.crypto.spec.SecretKeySpec;
public class CAST128KeyWrap extends u {
// $FF: synthetic field
static Class a;
// $FF: synthetic field
static Class b;
private CAST128WrapParameterSpec c;
static Class a(String var0) {
try {
return Class.forName(var0);
} catch (ClassNotFoundException var2) {
throw new NoClassDefFoundError(var2.getMessage());
}
}
protected byte[] prepareWrap(Key var1) throws InvalidKeyException {
return this.computeLCEKPAD(var1);
}
protected Key finishUnWrap(byte[] var1, String var2, int var3) throws InvalidKeyException {
try {
return new SecretKeySpec(this.decomposeLCEKPAD(var1), "CAST128");
} catch (BadPaddingException var5) {
throw new InvalidKeyException("Could not unwrap key: " + var5.getMessage());
}
}
protected void engineInit(int var1, Key var2, byte[] var3, SecureRandom var4) throws InvalidAlgorithmParameterException, InvalidKeyException {
CAST128ParameterSpec var5 = new CAST128ParameterSpec(this.c.getKeyLength(), var3);
super.engineInit(var1, var2, var5, var4);
}
public void engineInit(int var1, Key var2, AlgorithmParameterSpec var3, SecureRandom var4) throws InvalidAlgorithmParameterException, InvalidKeyException {
if(var3 == null) {
this.engineInit(var1, var2, var4);
this.engineGetParameters();
} else if(var3 instanceof CAST128WrapParameterSpec) {
super.kek = var2;
super.random = var4;
super.d = t.a(var1);
this.c = (CAST128WrapParameterSpec)var3;
byte[] var5 = (byte[])super.keyWrapIV.clone();
if(super.d == 1) {
this.getRandom().nextBytes(var5);
}
CAST128ParameterSpec var6 = new CAST128ParameterSpec(this.c.getKeyLength(), var5);
super.engineInit(var1, var2, var6, var4);
} else {
throw new InvalidAlgorithmParameterException("Invalid Parameters; expected CAST128WrapParameterSpec!");
}
}
public void engineInit(int var1, Key var2, AlgorithmParameters var3, SecureRandom var4) throws InvalidAlgorithmParameterException, InvalidKeyException {
try {
if(var3 != null) {
this.c = (CAST128WrapParameterSpec)var3.getParameterSpec(a != null?a:(a = a("iaik.security.cipher.CAST128WrapParameterSpec")));
}
this.engineInit(var1, var2, (AlgorithmParameterSpec)this.c, var4);
} catch (InvalidParameterSpecException var6) {
throw new InvalidAlgorithmParameterException("Invalid parameters: " + var6.getMessage());
}
}
public AlgorithmParameters engineGetParameters() {
try {
AlgorithmParameters var1;
if(this.c == null) {
var1 = super.a.d();
CAST128ParameterSpec var2 = (CAST128ParameterSpec)var1.getParameterSpec(b != null?b:(b = a("iaik.security.cipher.CAST128ParameterSpec")));
this.c = new CAST128WrapParameterSpec(var2.getKeyLength());
}
var1 = AlgorithmParameters.getInstance("CAST128WrapCAST128", "IAIK");
var1.init(this.c);
return var1;
} catch (Exception var3) {
return null;
}
}
public CAST128KeyWrap() {
super(new o(), "CAST128WrapCAST128", -1, (byte[])u.CMS_KEY_WRAP_IV.clone());
}
}