{
String pad = padding.toUpperCase();
if (pad.equals("NOPADDING"))
{
cipher = new RSAEngine();
}
else if (pad.equals("PKCS1PADDING"))
{
cipher = new PKCS1Encoding(new RSAEngine());
}
else if (pad.equals("OAEPPADDING"))
{
cipher = new OAEPEncoding(new RSAEngine());
}
else if (pad.equals("ISO9796-1PADDING"))
{
cipher = new ISO9796d1Encoding(new RSAEngine());
}
else if (pad.equals("OAEPWITHMD5ANDMGF1PADDING"))
{
cipher = new OAEPEncoding(new RSAEngine(), new MD5Digest());
}
else if (pad.equals("OAEPWITHSHA1ANDMGF1PADDING"))
{
cipher = new OAEPEncoding(new RSAEngine(), new SHA1Digest());
}
else if (pad.equals("OAEPWITHSHA224ANDMGF1PADDING"))
{
cipher = new OAEPEncoding(new RSAEngine(), new SHA224Digest());
}
else if (pad.equals("OAEPWITHSHA256ANDMGF1PADDING"))
{
cipher = new OAEPEncoding(new RSAEngine(), new SHA256Digest());
}
else if (pad.equals("OAEPWITHSHA384ANDMGF1PADDING"))
{
cipher = new OAEPEncoding(new RSAEngine(), new SHA384Digest());
}
else if (pad.equals("OAEPWITHSHA512ANDMGF1PADDING"))
{
cipher = new OAEPEncoding(new RSAEngine(), new SHA512Digest());
}
else
{
throw new NoSuchPaddingException(padding + " unavailable with RSA.");
}