⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ec5util.java

📁 kmlnjlkj nlkjlkjkljl okopokipoipo oipipipo i
💻 JAVA
字号:
package org.bouncycastle.jce.provider.asymmetric.ec;import org.bouncycastle.jce.spec.ECNamedCurveParameterSpec;import org.bouncycastle.jce.spec.ECNamedCurveSpec;import org.bouncycastle.math.ec.ECCurve;import java.math.BigInteger;import java.security.spec.ECField;import java.security.spec.ECFieldF2m;import java.security.spec.ECFieldFp;import java.security.spec.ECParameterSpec;import java.security.spec.ECPoint;import java.security.spec.EllipticCurve;public class EC5Util{    public static EllipticCurve convertCurve(        ECCurve curve,         byte[]  seed)    {        if (curve instanceof ECCurve.Fp)        {            return new EllipticCurve(new ECFieldFp(((ECCurve.Fp)curve).getQ()), curve.getA().toBigInteger(), curve.getB().toBigInteger(), seed);        }        else        {            ECCurve.F2m curveF2m = (ECCurve.F2m)curve;            int ks[];                        if (curveF2m.isTrinomial())            {                ks = new int[] { curveF2m.getK1() };                                return new EllipticCurve(new ECFieldF2m(curveF2m.getM(), ks), curve.getA().toBigInteger(), curve.getB().toBigInteger(), seed);            }            else            {                ks = new int[] { curveF2m.getK3(), curveF2m.getK2(), curveF2m.getK1() };                                return new EllipticCurve(new ECFieldF2m(curveF2m.getM(), ks), curve.getA().toBigInteger(), curve.getB().toBigInteger(), seed);            }         }    }    public static ECCurve convertCurve(        EllipticCurve ec)    {        ECField field = ec.getField();        BigInteger a = ec.getA();        BigInteger b = ec.getB();        if (field instanceof ECFieldFp)        {            return new ECCurve.Fp(((ECFieldFp)field).getP(), a, b);        }        else        {            ECFieldF2m fieldF2m = (ECFieldF2m)field;            int m = fieldF2m.getM();            int ks[] = ECUtil.convertMidTerms(fieldF2m.getMidTermsOfReductionPolynomial());            return new ECCurve.F2m(m, ks[0], ks[1], ks[2], a, b);         }    }    public static ECParameterSpec convertSpec(        EllipticCurve ellipticCurve,        org.bouncycastle.jce.spec.ECParameterSpec spec)    {        if (spec instanceof ECNamedCurveParameterSpec)        {            return new ECNamedCurveSpec(                ((ECNamedCurveParameterSpec)spec).getName(),                ellipticCurve,                new ECPoint(                    spec.getG().getX().toBigInteger(),                    spec.getG().getY().toBigInteger()),                spec.getN(),                spec.getH());        }        else        {            return new ECParameterSpec(                ellipticCurve,                new ECPoint(                    spec.getG().getX().toBigInteger(),                    spec.getG().getY().toBigInteger()),                spec.getN(),                spec.getH().intValue());        }    }    public static org.bouncycastle.jce.spec.ECParameterSpec convertSpec(        ECParameterSpec ecSpec,        boolean withCompression)    {        ECCurve curve = convertCurve(ecSpec.getCurve());        return new org.bouncycastle.jce.spec.ECParameterSpec(            curve,            convertPoint(curve, ecSpec.getGenerator(), withCompression),            ecSpec.getOrder(),            BigInteger.valueOf(ecSpec.getCofactor()),            ecSpec.getCurve().getSeed());    }    public static org.bouncycastle.math.ec.ECPoint convertPoint(        ECParameterSpec ecSpec,        ECPoint point,        boolean withCompression)    {        return convertPoint(convertCurve(ecSpec.getCurve()), point, withCompression);    }    public static org.bouncycastle.math.ec.ECPoint convertPoint(        ECCurve curve,        ECPoint point,        boolean withCompression)    {        return curve.createPoint(point.getAffineX(), point.getAffineY(), withCompression);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -