Red Hat Application Migration Toolkit
package sun.security.pkcs11;
import java.io.UnsupportedEncodingException;
import java.math.BigInteger;
import java.security.GeneralSecurityException;
import java.security.MessageDigest;
import java.security.Provider;
import java.security.ProviderException;
import java.security.Security;
public final class P11Util {
private static Object LOCK = new Object();
private static volatile Provider sun;
private static volatile Provider sunRsaSign;
private static volatile Provider sunJce;
private static final char[] hexDigits = "0123456789abcdef".toCharArray();
static Provider getSunProvider() {
Provider var0 = sun;
if(var0 == null) {
Object var1 = LOCK;
synchronized(LOCK) {
var0 = getProvider(sun, "SUN", "sun.security.provider.Sun");
sun = var0;
}
}
return var0;
}
static Provider getSunRsaSignProvider() {
Provider var0 = sunRsaSign;
if(var0 == null) {
Object var1 = LOCK;
synchronized(LOCK) {
var0 = getProvider(sunRsaSign, "SunRsaSign", "sun.security.rsa.SunRsaSign");
sunRsaSign = var0;
}
}
return var0;
}
static Provider getSunJceProvider() {
Provider var0 = sunJce;
if(var0 == null) {
Object var1 = LOCK;
synchronized(LOCK) {
var0 = getProvider(sunJce, "SunJCE", "com.sun.crypto.provider.SunJCE");
sunJce = var0;
}
}
return var0;
}
private static Provider getProvider(Provider var0, String var1, String var2) {
if(var0 != null) {
return var0;
} else {
var0 = Security.getProvider(var1);
if(var0 == null) {
try {
Class var3 = Class.forName(var2);
var0 = (Provider)var3.newInstance();
} catch (Exception var4) {
throw new ProviderException("Could not find provider " + var1, var4);
}
}
return var0;
}
}
static byte[] convert(byte[] var0, int var1, int var2) {
if(var1 == 0 && var2 == var0.length) {
return var0;
} else {
byte[] var3 = new byte[var2];
System.arraycopy(var0, var1, var3, 0, var2);
return var3;
}
}
static byte[] subarray(byte[] var0, int var1, int var2) {
byte[] var3 = new byte[var2];
System.arraycopy(var0, var1, var3, 0, var2);
return var3;
}
static byte[] concat(byte[] var0, byte[] var1) {
byte[] var2 = new byte[var0.length + var1.length];
System.arraycopy(var0, 0, var2, 0, var0.length);
System.arraycopy(var1, 0, var2, var0.length, var1.length);
return var2;
}
static long[] concat(long[] var0, long[] var1) {
if(var0.length == 0) {
return var1;
} else {
long[] var2 = new long[var0.length + var1.length];
System.arraycopy(var0, 0, var2, 0, var0.length);
System.arraycopy(var1, 0, var2, var0.length, var1.length);
return var2;
}
}
static byte[] trimZeroes(byte[] var0) {
int var1;
for(var1 = 0; var1 < var0.length - 1 && var0[var1] == 0; ++var1) {
;
}
if(var1 == 0) {
return var0;
} else {
byte[] var2 = new byte[var0.length - var1];
System.arraycopy(var0, var1, var2, 0, var2.length);
return var2;
}
}
public static byte[] getMagnitude(BigInteger var0) {
byte[] var1 = var0.toByteArray();
if(var1.length > 1 && var1[0] == 0) {
int var2 = var1.length - 1;
byte[] var3 = new byte[var2];
System.arraycopy(var1, 1, var3, 0, var2);
var1 = var3;
}
return var1;
}
static byte[] getBytesUTF8(String var0) {
try {
return var0.getBytes("UTF8");
} catch (UnsupportedEncodingException var2) {
throw new RuntimeException(var2);
}
}
static byte[] sha1(byte[] var0) {
try {
MessageDigest var1 = MessageDigest.getInstance("SHA-1");
var1.update(var0);
return var1.digest();
} catch (GeneralSecurityException var2) {
throw new ProviderException(var2);
}
}
static String toString(byte[] var0) {
if(var0 == null) {
return "(null)";
} else {
StringBuffer var1 = new StringBuffer(var0.length * 3);
for(int var2 = 0; var2 < var0.length; ++var2) {
int var3 = var0[var2] & 255;
if(var2 != 0) {
var1.append(':');
}
var1.append(hexDigits[var3 >>> 4]);
var1.append(hexDigits[var3 & 15]);
}
return var1.toString();
}
}
}