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

📄 secnamedcurves.java

📁 kmlnjlkj nlkjlkjkljl okopokipoipo oipipipo i
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
package org.bouncycastle.asn1.sec;import org.bouncycastle.asn1.DERObjectIdentifier;import org.bouncycastle.asn1.x9.X9ECParameters;import org.bouncycastle.asn1.x9.X9ECParametersHolder;import org.bouncycastle.math.ec.ECCurve;import org.bouncycastle.math.ec.ECPoint;import org.bouncycastle.math.ec.ECConstants;import org.bouncycastle.util.Strings;import org.bouncycastle.util.encoders.Hex;import java.math.BigInteger;import java.util.Enumeration;import java.util.Hashtable;public class SECNamedCurves{    private static BigInteger fromHex(        String hex)    {        return new BigInteger(1, Hex.decode(hex));    }    /*     * secp112r1     */    static X9ECParametersHolder secp112r1 = new X9ECParametersHolder()    {        protected X9ECParameters createParameters()        {            // p = (2^128 - 3) / 76439            BigInteger p = fromHex("DB7C2ABF62E35E668076BEAD208B");            BigInteger a = fromHex("DB7C2ABF62E35E668076BEAD2088");            BigInteger b = fromHex("659EF8BA043916EEDE8911702B22");            byte[] S = Hex.decode("00F50B028E4D696E676875615175290472783FB1");            BigInteger n = fromHex("DB7C2ABF62E35E7628DFAC6561C5");            BigInteger h = BigInteger.valueOf(1);            ECCurve curve = new ECCurve.Fp(p, a, b);            //ECPoint G = curve.decodePoint(Hex.decode("02"            //+ "09487239995A5EE76B55F9C2F098"));            ECPoint G = curve.decodePoint(Hex.decode("04"                + "09487239995A5EE76B55F9C2F098"                + "A89CE5AF8724C0A23E0E0FF77500"));            return new X9ECParameters(curve, G, n, h, S);        }    };    /*     * secp112r2     */    static X9ECParametersHolder secp112r2 = new X9ECParametersHolder()    {        protected X9ECParameters createParameters()        {            // p = (2^128 - 3) / 76439            BigInteger p = fromHex("DB7C2ABF62E35E668076BEAD208B");            BigInteger a = fromHex("6127C24C05F38A0AAAF65C0EF02C");            BigInteger b = fromHex("51DEF1815DB5ED74FCC34C85D709");            byte[] S = Hex.decode("002757A1114D696E6768756151755316C05E0BD4");            BigInteger n = fromHex("36DF0AAFD8B8D7597CA10520D04B");            BigInteger h = BigInteger.valueOf(4);            ECCurve curve = new ECCurve.Fp(p, a, b);            //ECPoint G = curve.decodePoint(Hex.decode("03"            //+ "4BA30AB5E892B4E1649DD0928643"));            ECPoint G = curve.decodePoint(Hex.decode("04"                + "4BA30AB5E892B4E1649DD0928643"                + "ADCD46F5882E3747DEF36E956E97"));            return new X9ECParameters(curve, G, n, h, S);        }    };    /*     * secp128r1     */    static X9ECParametersHolder secp128r1 = new X9ECParametersHolder()    {        protected X9ECParameters createParameters()        {            // p = 2^128 - 2^97 - 1            BigInteger p = fromHex("FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF");            BigInteger a = fromHex("FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFC");            BigInteger b = fromHex("E87579C11079F43DD824993C2CEE5ED3");            byte[] S = Hex.decode("000E0D4D696E6768756151750CC03A4473D03679");            BigInteger n = fromHex("FFFFFFFE0000000075A30D1B9038A115");            BigInteger h = BigInteger.valueOf(1);            ECCurve curve = new ECCurve.Fp(p, a, b);            //ECPoint G = curve.decodePoint(Hex.decode("03"            //+ "161FF7528B899B2D0C28607CA52C5B86"));            ECPoint G = curve.decodePoint(Hex.decode("04"                + "161FF7528B899B2D0C28607CA52C5B86"                + "CF5AC8395BAFEB13C02DA292DDED7A83"));            return new X9ECParameters(curve, G, n, h, S);        }    };    /*     * secp128r2     */    static X9ECParametersHolder secp128r2 = new X9ECParametersHolder()    {        protected X9ECParameters createParameters()        {            // p = 2^128 - 2^97 - 1            BigInteger p = fromHex("FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF");            BigInteger a = fromHex("D6031998D1B3BBFEBF59CC9BBFF9AEE1");            BigInteger b = fromHex("5EEEFCA380D02919DC2C6558BB6D8A5D");            byte[] S = Hex.decode("004D696E67687561517512D8F03431FCE63B88F4");            BigInteger n = fromHex("3FFFFFFF7FFFFFFFBE0024720613B5A3");            BigInteger h = BigInteger.valueOf(4);            ECCurve curve = new ECCurve.Fp(p, a, b);            //ECPoint G = curve.decodePoint(Hex.decode("02"            //+ "7B6AA5D85E572983E6FB32A7CDEBC140"));            ECPoint G = curve.decodePoint(Hex.decode("04"                + "7B6AA5D85E572983E6FB32A7CDEBC140"                + "27B6916A894D3AEE7106FE805FC34B44"));            return new X9ECParameters(curve, G, n, h, S);        }    };    /*     * secp160k1     */    static X9ECParametersHolder secp160k1 = new X9ECParametersHolder()    {        protected X9ECParameters createParameters()        {            // p = 2^160 - 2^32 - 2^14 - 2^12 - 2^9 - 2^8 - 2^7 - 2^3 - 2^2 - 1            BigInteger p = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC73");            BigInteger a = ECConstants.ZERO;            BigInteger b = BigInteger.valueOf(7);            byte[] S = null;            BigInteger n = fromHex("0100000000000000000001B8FA16DFAB9ACA16B6B3");            BigInteger h = BigInteger.valueOf(1);            ECCurve curve = new ECCurve.Fp(p, a, b);//            ECPoint G = curve.decodePoint(Hex.decode("02"//                + "3B4C382CE37AA192A4019E763036F4F5DD4D7EBB"));            ECPoint G = curve.decodePoint(Hex.decode("04"                + "3B4C382CE37AA192A4019E763036F4F5DD4D7EBB"                + "938CF935318FDCED6BC28286531733C3F03C4FEE"));            return new X9ECParameters(curve, G, n, h, S);        }    };    /*     * secp160r1     */    static X9ECParametersHolder secp160r1 = new X9ECParametersHolder()    {        protected X9ECParameters createParameters()        {            // p = 2^160 - 2^31 - 1            BigInteger p = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF");            BigInteger a = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFC");            BigInteger b = fromHex("1C97BEFC54BD7A8B65ACF89F81D4D4ADC565FA45");            byte[] S = Hex.decode("1053CDE42C14D696E67687561517533BF3F83345");            BigInteger n = fromHex("0100000000000000000001F4C8F927AED3CA752257");            BigInteger h = BigInteger.valueOf(1);            ECCurve curve = new ECCurve.Fp(p, a, b);            //ECPoint G = curve.decodePoint(Hex.decode("02"                //+ "4A96B5688EF573284664698968C38BB913CBFC82"));            ECPoint G = curve.decodePoint(Hex.decode("04"                + "4A96B5688EF573284664698968C38BB913CBFC82"                + "23A628553168947D59DCC912042351377AC5FB32"));            return new X9ECParameters(curve, G, n, h, S);        }    };    /*     * secp160r2     */    static X9ECParametersHolder secp160r2 = new X9ECParametersHolder()    {        protected X9ECParameters createParameters()        {            // p = 2^160 - 2^32 - 2^14 - 2^12 - 2^9 - 2^8 - 2^7 - 2^3 - 2^2 - 1            BigInteger p = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC73");            BigInteger a = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC70");            BigInteger b = fromHex("B4E134D3FB59EB8BAB57274904664D5AF50388BA");            byte[] S = Hex.decode("B99B99B099B323E02709A4D696E6768756151751");            BigInteger n = fromHex("0100000000000000000000351EE786A818F3A1A16B");            BigInteger h = BigInteger.valueOf(1);            ECCurve curve = new ECCurve.Fp(p, a, b);            //ECPoint G = curve.decodePoint(Hex.decode("02"            //+ "52DCB034293A117E1F4FF11B30F7199D3144CE6D"));            ECPoint G = curve.decodePoint(Hex.decode("04"                + "52DCB034293A117E1F4FF11B30F7199D3144CE6D"                + "FEAFFEF2E331F296E071FA0DF9982CFEA7D43F2E"));            return new X9ECParameters(curve, G, n, h, S);        }    };    /*     * secp192k1     */    static X9ECParametersHolder secp192k1 = new X9ECParametersHolder()    {        protected X9ECParameters createParameters()        {            // p = 2^192 - 2^32 - 2^12 - 2^8 - 2^7 - 2^6 - 2^3 - 1            BigInteger p = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFEE37");            BigInteger a = ECConstants.ZERO;            BigInteger b = BigInteger.valueOf(3);            byte[] S = null;            BigInteger n = fromHex("FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D");            BigInteger h = BigInteger.valueOf(1);            ECCurve curve = new ECCurve.Fp(p, a, b);            //ECPoint G = curve.decodePoint(Hex.decode("03"            //+ "DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D"));            ECPoint G = curve.decodePoint(Hex.decode("04"                + "DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D"                + "9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D"));            return new X9ECParameters(curve, G, n, h, S);        }    };    /*     * secp192r1     */    static X9ECParametersHolder secp192r1 = new X9ECParametersHolder()    {        protected X9ECParameters createParameters()        {            // p = 2^192 - 2^64 - 1            BigInteger p = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF");            BigInteger a = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC");            BigInteger b = fromHex("64210519E59C80E70FA7E9AB72243049FEB8DEECC146B9B1");            byte[] S = Hex.decode("3045AE6FC8422F64ED579528D38120EAE12196D5");            BigInteger n = fromHex("FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831");            BigInteger h = BigInteger.valueOf(1);            ECCurve curve = new ECCurve.Fp(p, a, b);            //ECPoint G = curve.decodePoint(Hex.decode("03"            //+ "188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF1012"));            ECPoint G = curve.decodePoint(Hex.decode("04"                + "188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF1012"                + "07192B95FFC8DA78631011ED6B24CDD573F977A11E794811"));            return new X9ECParameters(curve, G, n, h, S);        }    };    /*     * secp224k1     */    static X9ECParametersHolder secp224k1 = new X9ECParametersHolder()    {        protected X9ECParameters createParameters()        {            // p = 2^224 - 2^32 - 2^12 - 2^11 - 2^9 - 2^7 - 2^4 - 2 - 1            BigInteger p = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFE56D");            BigInteger a = ECConstants.ZERO;            BigInteger b = BigInteger.valueOf(5);            byte[] S = null;            BigInteger n = fromHex("010000000000000000000000000001DCE8D2EC6184CAF0A971769FB1F7");            BigInteger h = BigInteger.valueOf(1);            ECCurve curve = new ECCurve.Fp(p, a, b);            //ECPoint G = curve.decodePoint(Hex.decode("03"            //+ "A1455B334DF099DF30FC28A169A467E9E47075A90F7E650EB6B7A45C"));            ECPoint G = curve.decodePoint(Hex.decode("04"                + "A1455B334DF099DF30FC28A169A467E9E47075A90F7E650EB6B7A45C"                + "7E089FED7FBA344282CAFBD6F7E319F7C0B0BD59E2CA4BDB556D61A5"));            return new X9ECParameters(curve, G, n, h, S);        }    };    /*     * secp224r1     */    static X9ECParametersHolder secp224r1 = new X9ECParametersHolder()    {        protected X9ECParameters createParameters()        {            // p = 2^224 - 2^96 + 1            BigInteger p = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001");            BigInteger a = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE");            BigInteger b = fromHex("B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4");            byte[] S = Hex.decode("BD71344799D5C7FCDC45B59FA3B9AB8F6A948BC5");            BigInteger n = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D");            BigInteger h = BigInteger.valueOf(1);            ECCurve curve = new ECCurve.Fp(p, a, b);            //ECPoint G = curve.decodePoint(Hex.decode("02"            //+ "B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21"));            ECPoint G = curve.decodePoint(Hex.decode("04"                + "B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21"                + "BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34"));            return new X9ECParameters(curve, G, n, h, S);        }    };    /*     * secp256k1     */    static X9ECParametersHolder secp256k1 = new X9ECParametersHolder()    {        protected X9ECParameters createParameters()        {            // p = 2^256 - 2^32 - 2^9 - 2^8 - 2^7 - 2^6 - 2^4 - 1            BigInteger p = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F");            BigInteger a = ECConstants.ZERO;            BigInteger b = BigInteger.valueOf(7);            byte[] S = null;            BigInteger n = fromHex("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141");            BigInteger h = BigInteger.valueOf(1);            ECCurve curve = new ECCurve.Fp(p, a, b);            //ECPoint G = curve.decodePoint(Hex.decode("02"            //+ "79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798"));            ECPoint G = curve.decodePoint(Hex.decode("04"                + "79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798"                + "483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8"));            return new X9ECParameters(curve, G, n, h, S);        }    };    /*     * secp256r1     */    static X9ECParametersHolder secp256r1 = new X9ECParametersHolder()    {        protected X9ECParameters createParameters()        {            // p = 2^224 (2^32 - 1) + 2^192 + 2^96 - 1            BigInteger p = fromHex("FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF");

⌨️ 快捷键说明

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