| /* GENERATED SOURCE. DO NOT MODIFY. */ |
| package com.android.org.bouncycastle.jcajce.provider.asymmetric.ec; |
| |
| import java.math.BigInteger; |
| import java.security.InvalidKeyException; |
| import java.security.PublicKey; |
| import java.security.spec.ECGenParameterSpec; |
| import java.security.spec.ECParameterSpec; |
| |
| import com.android.org.bouncycastle.asn1.ASN1ObjectIdentifier; |
| import com.android.org.bouncycastle.asn1.DERNull; |
| import com.android.org.bouncycastle.asn1.x9.X962Parameters; |
| import com.android.org.bouncycastle.asn1.x9.X9ECParameters; |
| import com.android.org.bouncycastle.crypto.params.AsymmetricKeyParameter; |
| import com.android.org.bouncycastle.jcajce.provider.asymmetric.util.EC5Util; |
| import com.android.org.bouncycastle.jcajce.provider.asymmetric.util.ECUtil; |
| import com.android.org.bouncycastle.jce.spec.ECNamedCurveSpec; |
| import com.android.org.bouncycastle.math.ec.ECCurve; |
| |
| class ECUtils |
| { |
| static AsymmetricKeyParameter generatePublicKeyParameter( |
| PublicKey key) |
| throws InvalidKeyException |
| { |
| return (key instanceof BCECPublicKey) ? ((BCECPublicKey)key).engineGetKeyParameters() : ECUtil.generatePublicKeyParameter(key); |
| } |
| |
| static X9ECParameters getDomainParametersFromGenSpec(ECGenParameterSpec genSpec) |
| { |
| return getDomainParametersFromName(genSpec.getName()); |
| } |
| |
| static X9ECParameters getDomainParametersFromName(String curveName) |
| { |
| X9ECParameters domainParameters; |
| try |
| { |
| if (curveName.charAt(0) >= '0' && curveName.charAt(0) <= '2') |
| { |
| ASN1ObjectIdentifier oidID = new ASN1ObjectIdentifier(curveName); |
| domainParameters = ECUtil.getNamedCurveByOid(oidID); |
| } |
| else |
| { |
| if (curveName.indexOf(' ') > 0) |
| { |
| curveName = curveName.substring(curveName.indexOf(' ') + 1); |
| domainParameters = ECUtil.getNamedCurveByName(curveName); |
| } |
| else |
| { |
| domainParameters = ECUtil.getNamedCurveByName(curveName); |
| } |
| } |
| } |
| catch (IllegalArgumentException ex) |
| { |
| domainParameters = ECUtil.getNamedCurveByName(curveName); |
| } |
| return domainParameters; |
| } |
| |
| static X962Parameters getDomainParametersFromName(ECParameterSpec ecSpec, boolean withCompression) |
| { |
| X962Parameters params; |
| |
| if (ecSpec instanceof ECNamedCurveSpec) |
| { |
| ASN1ObjectIdentifier curveOid = ECUtil.getNamedCurveOid(((ECNamedCurveSpec)ecSpec).getName()); |
| if (curveOid == null) |
| { |
| curveOid = new ASN1ObjectIdentifier(((ECNamedCurveSpec)ecSpec).getName()); |
| } |
| params = new X962Parameters(curveOid); |
| } |
| else if (ecSpec == null) |
| { |
| params = new X962Parameters(DERNull.INSTANCE); |
| } |
| else |
| { |
| ECCurve curve = EC5Util.convertCurve(ecSpec.getCurve()); |
| |
| X9ECParameters ecP = new X9ECParameters( |
| curve, |
| EC5Util.convertPoint(curve, ecSpec.getGenerator(), withCompression), |
| ecSpec.getOrder(), |
| BigInteger.valueOf(ecSpec.getCofactor()), |
| ecSpec.getCurve().getSeed()); |
| |
| params = new X962Parameters(ecP); |
| } |
| |
| return params; |
| } |
| } |