Red Hat Application Migration Toolkit
package iaik.security.cipher;
import iaik.security.cipher.RC2WrapParameterSpec;
import iaik.security.cipher.f;
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.IvParameterSpec;
import javax.crypto.spec.RC2ParameterSpec;
import javax.crypto.spec.SecretKeySpec;
public class RC2KeyWrap extends u {
// $FF: synthetic field
static Class c;
// $FF: synthetic field
static Class b;
private RC2WrapParameterSpec a;
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), "RC2");
} 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 {
if(this.a != null) {
RC2ParameterSpec var5 = new RC2ParameterSpec(this.a.getEffectiveKeyBits(), var3);
super.engineInit(var1, var2, var5, var4);
} else {
super.engineInit(var1, var2, new IvParameterSpec(var3), var4);
this.engineGetParameters();
}
}
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 RC2WrapParameterSpec) {
super.kek = var2;
super.random = var4;
super.d = t.a(var1);
this.a = (RC2WrapParameterSpec)var3;
byte[] var5 = (byte[])super.keyWrapIV.clone();
if(super.d == 1) {
this.getRandom().nextBytes(var5);
}
RC2ParameterSpec var6 = new RC2ParameterSpec(this.a.getEffectiveKeyBits(), var5);
super.engineInit(var1, var2, var6, var4);
} else {
throw new InvalidAlgorithmParameterException("Invalid Parameters; expected RC2WrapParameterSpec!");
}
}
public void engineInit(int var1, Key var2, AlgorithmParameters var3, SecureRandom var4) throws InvalidAlgorithmParameterException, InvalidKeyException {
try {
if(var3 != null) {
this.a = (RC2WrapParameterSpec)var3.getParameterSpec(c != null?c:(c = a("iaik.security.cipher.RC2WrapParameterSpec")));
}
this.engineInit(var1, var2, (AlgorithmParameterSpec)this.a, var4);
} catch (InvalidParameterSpecException var6) {
throw new InvalidAlgorithmParameterException("Invalid parameters: " + var6.getMessage());
}
}
public AlgorithmParameters engineGetParameters() {
try {
AlgorithmParameters var1;
if(this.a == null) {
var1 = super.a.d();
RC2ParameterSpec var2 = (RC2ParameterSpec)var1.getParameterSpec(b != null?b:(b = a("javax.crypto.spec.RC2ParameterSpec")));
this.a = new RC2WrapParameterSpec(var2.getEffectiveKeyBits());
}
var1 = AlgorithmParameters.getInstance("RC2WrapRC2", "IAIK");
var1.init(this.a);
return var1;
} catch (Exception var3) {
return null;
}
}
public RC2KeyWrap() {
super(new f(), "RC2WrapRC2", -1, (byte[])u.CMS_KEY_WRAP_IV.clone());
}
}