Red Hat Application Migration Toolkit
package iaik.security.rsa;
import java.math.BigInteger;
import java.security.InvalidKeyException;
import java.security.Key;
import java.security.KeyFactorySpi;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.interfaces.RSAPrivateCrtKey;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import java.security.spec.InvalidKeySpecException;
import java.security.spec.KeySpec;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.RSAPrivateCrtKeySpec;
import java.security.spec.RSAPrivateKeySpec;
import java.security.spec.RSAPublicKeySpec;
import java.security.spec.X509EncodedKeySpec;
public final class RSAKeyFactory extends KeyFactorySpi {
// $FF: synthetic field
static Class e;
// $FF: synthetic field
static Class c;
// $FF: synthetic field
static Class d;
// $FF: synthetic field
static Class a;
// $FF: synthetic field
static Class b;
static Class a(String var0) {
try {
return Class.forName(var0);
} catch (ClassNotFoundException var2) {
throw new NoClassDefFoundError(var2.getMessage());
}
}
protected Key engineTranslateKey(Key var1) throws InvalidKeyException {
BigInteger var2;
BigInteger var3;
if(var1 instanceof RSAPublicKey) {
var2 = ((RSAPublicKey)var1).getModulus();
var3 = ((RSAPublicKey)var1).getPublicExponent();
return new iaik.security.rsa.RSAPublicKey(var2, var3);
} else if(var1 instanceof RSAPrivateKey) {
var2 = ((RSAPrivateKey)var1).getModulus();
var3 = ((RSAPrivateKey)var1).getPrivateExponent();
if(var1 instanceof RSAPrivateCrtKey) {
BigInteger var4 = ((RSAPrivateCrtKey)var1).getPublicExponent();
BigInteger var5 = ((RSAPrivateCrtKey)var1).getPrimeP();
BigInteger var6 = ((RSAPrivateCrtKey)var1).getPrimeQ();
BigInteger var7 = ((RSAPrivateCrtKey)var1).getPrimeExponentP();
BigInteger var8 = ((RSAPrivateCrtKey)var1).getPrimeExponentQ();
BigInteger var9 = ((RSAPrivateCrtKey)var1).getCrtCoefficient();
return new iaik.security.rsa.RSAPrivateKey(var2, var4, var3, var5, var6, var7, var8, var9);
} else {
return new iaik.security.rsa.RSAPrivateKey(var2, var3);
}
} else {
throw new InvalidKeyException("Only keys of type RSAPublicKey and RSAPrivateKey can be translated.");
}
}
protected KeySpec engineGetKeySpec(Key var1, Class var2) throws InvalidKeySpecException {
if(var1 instanceof iaik.security.rsa.RSAPublicKey) {
if((b != null?b:(b = a("java.security.spec.RSAPublicKeySpec"))).isAssignableFrom(var2)) {
iaik.security.rsa.RSAPublicKey var4 = (iaik.security.rsa.RSAPublicKey)var1;
return new RSAPublicKeySpec(var4.getModulus(), var4.getPublicExponent());
} else if((a != null?a:(a = a("java.security.spec.X509EncodedKeySpec"))).isAssignableFrom(var2)) {
return new X509EncodedKeySpec(var1.getEncoded());
} else {
throw new InvalidKeySpecException("Can\'t convert key to KeySpec.");
}
} else if(var1 instanceof iaik.security.rsa.RSAPrivateKey) {
iaik.security.rsa.RSAPrivateKey var3 = (iaik.security.rsa.RSAPrivateKey)var1;
if((d != null?d:(d = a("java.security.spec.RSAPrivateCrtKeySpec"))).isAssignableFrom(var2)) {
return new RSAPrivateCrtKeySpec(var3.getModulus(), var3.getPublicExponent(), var3.getPrivateExponent(), var3.getPrimeP(), var3.getPrimeQ(), var3.getPrimeExponentP(), var3.getPrimeExponentQ(), var3.getCrtCoefficient());
} else if((c != null?c:(c = a("java.security.spec.RSAPrivateKeySpec"))).isAssignableFrom(var2)) {
return new RSAPrivateKeySpec(var3.getModulus(), var3.getPrivateExponent());
} else if((e != null?e:(e = a("java.security.spec.PKCS8EncodedKeySpec"))).isAssignableFrom(var2)) {
return new PKCS8EncodedKeySpec(var3.getEncoded());
} else {
throw new InvalidKeySpecException("Can\'t convert key to KeySpec.");
}
} else {
throw new InvalidKeySpecException("Can only convert RSA keys.");
}
}
protected PublicKey engineGeneratePublic(KeySpec var1) throws InvalidKeySpecException {
try {
if(var1 instanceof RSAPublicKeySpec) {
return new iaik.security.rsa.RSAPublicKey((RSAPublicKeySpec)var1);
} else if(var1 instanceof X509EncodedKeySpec) {
return new iaik.security.rsa.RSAPublicKey(((X509EncodedKeySpec)var1).getEncoded());
} else {
throw new InvalidKeySpecException("Only RSA key specs allowed.");
}
} catch (InvalidKeyException var2) {
throw new InvalidKeySpecException("Invalid KeySpec.");
}
}
protected PrivateKey engineGeneratePrivate(KeySpec var1) throws InvalidKeySpecException {
try {
if(var1 instanceof RSAPrivateCrtKeySpec) {
return new iaik.security.rsa.RSAPrivateKey((RSAPrivateCrtKeySpec)var1);
} else if(var1 instanceof RSAPrivateKeySpec) {
return new iaik.security.rsa.RSAPrivateKey((RSAPrivateKeySpec)var1);
} else if(var1 instanceof PKCS8EncodedKeySpec) {
return new iaik.security.rsa.RSAPrivateKey(((PKCS8EncodedKeySpec)var1).getEncoded());
} else {
throw new InvalidKeySpecException("Only RSA key specs allowed.");
}
} catch (InvalidKeyException var2) {
throw new InvalidKeySpecException("Invalid KeySpec.");
}
}
}