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

📄 x9test.java

📁 J2ME加密算法的代码!里面包括常用的算法
💻 JAVA
字号:
package org.bouncycastle.asn1.test;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.math.BigInteger;import org.bouncycastle.math.ec.ECFieldElement;import org.bouncycastle.math.ec.ECPoint;import org.bouncycastle.util.encoders.Base64;import org.bouncycastle.util.test.SimpleTest;import org.bouncycastle.asn1.ASN1InputStream;import org.bouncycastle.asn1.ASN1OctetString;import org.bouncycastle.asn1.DERObject;import org.bouncycastle.asn1.DEROutputStream;import org.bouncycastle.asn1.pkcs.PrivateKeyInfo;import org.bouncycastle.asn1.sec.ECPrivateKeyStructure;import org.bouncycastle.asn1.x509.AlgorithmIdentifier;import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo;import org.bouncycastle.asn1.x9.X962NamedCurves;import org.bouncycastle.asn1.x9.X962Parameters;import org.bouncycastle.asn1.x9.X9ECParameters;import org.bouncycastle.asn1.x9.X9ECPoint;import org.bouncycastle.asn1.x9.X9ObjectIdentifiers;public class X9Test    extends SimpleTest{    private byte[] namedPub = Base64.decode("MBowEwYHKoZIzj0CAQYIKoZIzj0DAQEDAwADAQ==");    private byte[] expPub = Base64.decode(                "MIHcMIHUBgcqhkjOPQIBMIHIAgEBMCkGByqGSM49AQECHn///////////////3///////4AAAA"              + "AAAH///////zBXBB5///////////////9///////+AAAAAAAB///////wEHiVXBfoqMGZUsfTL"              + "A9anUKMMJQEC1JiHF9m6FattPgMVAH1zdBaP/jRxtgqFdoahlHXTv6L/BB8DZ2iujhi7ks/PAF"              + "yUmqLG2UhT0OZgu/hUsclQX+laAh5///////////////9///+XXetBs6YFfDxDIUZSZVEDAwAD"              + "AQ==");    private byte[] namedPriv = Base64.decode("MCICAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQEECDAGAgEBBAEK");    private byte[] expPriv = Base64.decode(                "MIHkAgEAMIHUBgcqhkjOPQIBMIHIAgEBMCkGByqGSM49AQECHn///////////////3///////4"              + "AAAAAAAH///////zBXBB5///////////////9///////+AAAAAAAB///////wEHiVXBfoqMGZU"              + "sfTLA9anUKMMJQEC1JiHF9m6FattPgMVAH1zdBaP/jRxtgqFdoahlHXTv6L/BB8DZ2iujhi7ks"              + "/PAFyUmqLG2UhT0OZgu/hUsclQX+laAh5///////////////9///+XXetBs6YFfDxDIUZSZVEE"              + "CDAGAgEBBAEU");     private void encodePublicKey()        throws Exception    {        ByteArrayOutputStream   bOut = new ByteArrayOutputStream();        DEROutputStream         dOut = new DEROutputStream(bOut);        X9ECParameters          ecP = X962NamedCurves.getByOID(X9ObjectIdentifiers.prime239v3);        //        // named curve        //        X962Parameters          params = new X962Parameters(X9ObjectIdentifiers.prime192v1);        ASN1OctetString         p = (ASN1OctetString)(new X9ECPoint(new ECPoint.Fp(ecP.getCurve(), new ECFieldElement.Fp(BigInteger.valueOf(2), BigInteger.valueOf(1)), new ECFieldElement.Fp(BigInteger.valueOf(4), BigInteger.valueOf(3)), true)).getDERObject());        SubjectPublicKeyInfo    info = new SubjectPublicKeyInfo(new AlgorithmIdentifier(X9ObjectIdentifiers.id_ecPublicKey, params), p.getOctets());        if (!areEqual(info.getEncoded(), namedPub))        {            fail("failed public named generation");        }                ASN1InputStream         aIn = new ASN1InputStream(new ByteArrayInputStream(namedPub));        DERObject               o = aIn.readObject();                if (!info.equals(o))        {            fail("failed public named equality");        }                //        // explicit curve parameters        //        params = new X962Parameters(ecP);                info = new SubjectPublicKeyInfo(new AlgorithmIdentifier(X9ObjectIdentifiers.id_ecPublicKey, params), p.getOctets());        if (!areEqual(info.getEncoded(), expPub))        {            fail("failed public explicit generation");        }                aIn = new ASN1InputStream(new ByteArrayInputStream(expPub));        o = aIn.readObject();                if (!info.equals(o))        {            fail("failed public explicit equality");        }    }        private void encodePrivateKey()        throws Exception    {        ByteArrayOutputStream   bOut = new ByteArrayOutputStream();        DEROutputStream         dOut = new DEROutputStream(bOut);        X9ECParameters          ecP = X962NamedCurves.getByOID(X9ObjectIdentifiers.prime239v3);        //        // named curve        //        X962Parameters          params = new X962Parameters(X9ObjectIdentifiers.prime192v1);        ASN1OctetString         p = (ASN1OctetString)(new X9ECPoint(new ECPoint.Fp(ecP.getCurve(), new ECFieldElement.Fp(BigInteger.valueOf(2), BigInteger.valueOf(1)), new ECFieldElement.Fp(BigInteger.valueOf(4), BigInteger.valueOf(3)), true)).getDERObject());        PrivateKeyInfo          info = new PrivateKeyInfo(new AlgorithmIdentifier(X9ObjectIdentifiers.id_ecPublicKey, params), new ECPrivateKeyStructure(BigInteger.valueOf(10)).getDERObject());        if (!areEqual(info.getEncoded(), namedPriv))        {            fail("failed private named generation");        }                ASN1InputStream         aIn = new ASN1InputStream(new ByteArrayInputStream(namedPriv));        DERObject               o = aIn.readObject();                if (!info.equals(o))        {            fail("failed private named equality");        }                //        // explicit curve parameters        //        params = new X962Parameters(ecP);                info = new PrivateKeyInfo(new AlgorithmIdentifier(X9ObjectIdentifiers.id_ecPublicKey, params), new ECPrivateKeyStructure(BigInteger.valueOf(20)).toASN1Object());        if (!areEqual(info.getEncoded(), expPriv))        {            fail("failed private explicit generation");        }                aIn = new ASN1InputStream(new ByteArrayInputStream(expPriv));        o = aIn.readObject();                if (!info.equals(o))        {            fail("failed private explicit equality");        }    }        public void performTest()        throws Exception    {        encodePublicKey();        encodePrivateKey();    }    public String getName()    {        return "X9";    }    public static void main(        String[]    args)    {        runTest(new X9Test());    }}

⌨️ 快捷键说明

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