ecP = (X9ECParameters)configuration.getAdditionalECParameters().get(oid);
protected ECNamedCurveSpec createNamedCurveSpec(String curveName) throws InvalidAlgorithmParameterException { // NOTE: Don't bother with custom curves here as the curve will be converted to JCE type shortly X9ECParameters p = ECUtils.getDomainParametersFromName(curveName); if (p == null) { try { // Check whether it's actually an OID string (SunJSSE ServerHandshaker setupEphemeralECDHKeys bug) p = ECNamedCurveTable.getByOID(new ASN1ObjectIdentifier(curveName)); if (p == null) { Map extraCurves = configuration.getAdditionalECParameters(); p = (X9ECParameters)extraCurves.get(new ASN1ObjectIdentifier(curveName)); if (p == null) { throw new InvalidAlgorithmParameterException("unknown curve OID: " + curveName); } } } catch (IllegalArgumentException ex) { throw new InvalidAlgorithmParameterException("unknown curve name: " + curveName); } } // Work-around for JDK bug -- it won't look up named curves properly if seed is present byte[] seed = null; //p.getSeed(); return new ECNamedCurveSpec(curveName, p.getCurve(), p.getG(), p.getN(), p.getH(), seed); }
if (ecP == null) Map additionalECParameters = BouncyCastleProvider.CONFIGURATION.getAdditionalECParameters(); if (!additionalECParameters.isEmpty())
public static ECDomainParameters getDomainParameters( ProviderConfiguration configuration, X962Parameters params) { ECDomainParameters domainParameters; if (params.isNamedCurve()) { ASN1ObjectIdentifier oid = ASN1ObjectIdentifier.getInstance(params.getParameters()); X9ECParameters ecP = ECUtil.getNamedCurveByOid(oid); if (ecP == null) { Map extraCurves = configuration.getAdditionalECParameters(); ecP = (X9ECParameters)extraCurves.get(oid); } domainParameters = new ECNamedDomainParameters(oid, ecP.getCurve(), ecP.getG(), ecP.getN(), ecP.getH(), ecP.getSeed()); } else if (params.isImplicitlyCA()) { org.bouncycastle.jce.spec.ECParameterSpec iSpec = configuration.getEcImplicitlyCa(); domainParameters = new ECDomainParameters(iSpec.getCurve(), iSpec.getG(), iSpec.getN(), iSpec.getH(), iSpec.getSeed()); } else { X9ECParameters ecP = X9ECParameters.getInstance(params.getParameters()); domainParameters = new ECDomainParameters(ecP.getCurve(), ecP.getG(), ecP.getN(), ecP.getH(), ecP.getSeed()); } return domainParameters; }