// 
// Decompiled by Procyon v0.6.0
// 

package org.bouncycastle.jce;

import java.util.Enumeration;
import org.bouncycastle.asn1.x9.X9ECParameters;
import org.bouncycastle.crypto.ec.CustomNamedCurves;
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
import org.bouncycastle.jce.spec.ECNamedCurveParameterSpec;

public class ECNamedCurveTable
{
    public static ECNamedCurveParameterSpec getParameterSpec(final String s) {
        ASN1ObjectIdentifier asn1ObjectIdentifier;
        try {
            asn1ObjectIdentifier = (possibleOID(s) ? new ASN1ObjectIdentifier(s) : null);
        }
        catch (final IllegalArgumentException ex) {
            asn1ObjectIdentifier = null;
        }
        X9ECParameters x9ECParameters;
        if (asn1ObjectIdentifier != null) {
            x9ECParameters = CustomNamedCurves.getByOID(asn1ObjectIdentifier);
        }
        else {
            x9ECParameters = CustomNamedCurves.getByName(s);
        }
        if (x9ECParameters == null) {
            if (asn1ObjectIdentifier != null) {
                x9ECParameters = org.bouncycastle.asn1.x9.ECNamedCurveTable.getByOID(asn1ObjectIdentifier);
            }
            else {
                x9ECParameters = org.bouncycastle.asn1.x9.ECNamedCurveTable.getByName(s);
            }
        }
        if (x9ECParameters == null) {
            return null;
        }
        return new ECNamedCurveParameterSpec(s, x9ECParameters.getCurve(), x9ECParameters.getG(), x9ECParameters.getN(), x9ECParameters.getH(), x9ECParameters.getSeed());
    }
    
    public static Enumeration getNames() {
        return org.bouncycastle.asn1.x9.ECNamedCurveTable.getNames();
    }
    
    private static boolean possibleOID(final String s) {
        if (s.length() < 3 || s.charAt(1) != '.') {
            return false;
        }
        final char char1 = s.charAt(0);
        return char1 >= '0' && char1 <= '2';
    }
}
