package org.openstack.atlas.util.ca.primitives; import java.math.BigInteger; import java.net.URL; import java.security.Provider; import java.security.Security; import java.util.HashMap; import java.util.Hashtable; import java.util.Map; import org.bouncycastle.asn1.DERObjectIdentifier; import org.bouncycastle.asn1.cryptopro.CryptoProObjectIdentifiers; import org.bouncycastle.asn1.nist.NISTObjectIdentifiers; import org.bouncycastle.asn1.oiw.OIWObjectIdentifiers; import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers; import org.bouncycastle.asn1.teletrust.TeleTrusTObjectIdentifiers; import org.bouncycastle.asn1.x9.X9ObjectIdentifiers; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.openstack.atlas.util.ca.StringUtils; public class RsaConst { public static final String DEFAULT_SIGNATURE_ALGO = "SHA256WITHRSA"; public static final String USASCII = "US-ASCII"; public static final BigInteger E = new BigInteger("65537"); public static final int PAGESIZE = 4096; public static final int DEFAULT_PRIME_CERTAINTY = 32; public static final Map<String, String> oids; private static int initCount = 0; static { Provider bc = new BouncyCastleProvider(); Security.addProvider(bc); // Cause the bouncycastle PKCS10CertificationRequest class was being // stingy in letting me access the oid maps. oids = new HashMap<String, String>(); oids.put("1.2.840.10040.4.3", "SHA1WITHDSA"); oids.put("1.2.840.10045.4.1", "SHA1WITHECDSA"); oids.put("1.2.840.10045.4.3.1", "SHA224WITHECDSA"); oids.put("1.2.840.10045.4.3.2", "SHA256WITHECDSA"); oids.put("1.2.840.10045.4.3.3", "SHA384WITHECDSA"); oids.put("1.2.840.10045.4.3.4", "SHA512WITHECDSA"); oids.put("1.2.840.113549.1.1.10", "RSASSA-PSS"); oids.put("1.2.840.113549.1.1.11", "SHA256WITHRSA"); oids.put("1.2.840.113549.1.1.12", "SHA384WITHRSA"); oids.put("1.2.840.113549.1.1.13", "SHA512WITHRSA"); oids.put("1.2.840.113549.1.1.14", "SHA224WITHRSA"); oids.put("1.2.840.113549.1.1.2", "RSAWITHMD2"); oids.put("1.2.840.113549.1.1.4", "MD5WITHRSA"); oids.put("1.2.840.113549.1.1.5", "SHA1WITHRSA"); oids.put("1.3.14.3.2.27", "SHA1WITHDSA"); oids.put("1.3.14.3.2.27", "SHA1WITHDSA"); oids.put("1.3.14.3.2.29", "SHA1WITHRSA"); oids.put("1.3.36.3.3.1.2", "RIPEMD160WITHRSA"); oids.put("1.3.36.3.3.1.3", "RIPEMD128WITHRSA"); oids.put("1.3.36.3.3.1.4", "RIPEMD256WITHRSA"); oids.put("2.16.840.1.101.3.4.3.1", "SHA224WITHDSA"); oids.put("2.16.840.1.101.3.4.3.2", "SHA256WITHDSA"); oids.put("2.16.840.1.101.3.4.3.3", "SHA384WITHDSA"); oids.put("2.16.840.1.101.3.4.3.4", "SHA512WITHDSA"); } // Static initializers aren't executed intill a method of the class is // accessed for the first time. public synchronized static void init() { initCount++; } public synchronized static int initCount() { return initCount; } }