y[i] = keyEnc[64 - 1 - i];
}
gostParams = new GOST3410PublicKeyAlgParameters((ASN1Sequence)info.getAlgorithmId().getParameters());
ECNamedCurveParameterSpec spec = ECGOST3410NamedCurveTable.getParameterSpec(ECGOST3410NamedCurves.getName(gostParams.getPublicKeyParamSet()));
ecSpec = spec;
ECCurve curve = spec.getCurve();
if (curve instanceof ECCurve.Fp)
{
ECCurve.Fp curveFp = (ECCurve.Fp) curve;
this.q = new ECPoint.Fp(curveFp, new ECFieldElement.Fp(curveFp.getQ(), new BigInteger(1, x)), new ECFieldElement.Fp(curveFp.getQ(), new BigInteger(1, y)));
}
else if (curve instanceof ECCurve.F2m)
{
ECCurve.F2m curveF2m = (ECCurve.F2m) curve;
int m = curveF2m.getM();
int k1 = curveF2m.getK1();
int k2 = curveF2m.getK2();
int k3 = curveF2m.getK3();
this.q = new ECPoint.F2m(curveF2m, new ECFieldElement.F2m(m, k1, k2, k3, new BigInteger(1, x)), new ECFieldElement.F2m(m, k1, k2, k3, new BigInteger(1, y)), false);
}
else
{
throw new UnsupportedOperationException("Subclass of ECPoint " + curve.getClass().toString() + "not supported");
}
}
else
{
X962Parameters params = new X962Parameters((DERObject)info.getAlgorithmId().getParameters());
ECCurve curve;
if (params.isNamedCurve())
{
DERObjectIdentifier oid = (DERObjectIdentifier)params.getParameters();
X9ECParameters ecP = ECUtil.getNamedCurveByOid(oid);
ecSpec = new ECNamedCurveParameterSpec(
ECUtil.getCurveName(oid),
ecP.getCurve(),
ecP.getG(),
ecP.getN(),
ecP.getH(),