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

📄 x509nametest.java

📁 J2ME加密算法的代码!里面包括常用的算法
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package org.bouncycastle.asn1.test;import org.bouncycastle.asn1.ASN1EncodableVector;import org.bouncycastle.asn1.ASN1InputStream;import org.bouncycastle.asn1.ASN1OutputStream;import org.bouncycastle.asn1.ASN1Sequence;import org.bouncycastle.asn1.ASN1Set;import org.bouncycastle.asn1.DEREncodable;import org.bouncycastle.asn1.DERGeneralizedTime;import org.bouncycastle.asn1.DERIA5String;import org.bouncycastle.asn1.DERObjectIdentifier;import org.bouncycastle.asn1.DERPrintableString;import org.bouncycastle.asn1.DERSequence;import org.bouncycastle.asn1.DERSet;import org.bouncycastle.asn1.DERUTF8String;import org.bouncycastle.asn1.x509.X509DefaultEntryConverter;import org.bouncycastle.asn1.x509.X509Name;import org.bouncycastle.util.Arrays;import org.bouncycastle.util.encoders.Hex;import org.bouncycastle.util.test.SimpleTest;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.util.Hashtable;import java.util.Vector;public class X509NameTest    extends SimpleTest{   String[] subjects =   {       "C=AU,ST=Victoria,L=South Melbourne,O=Connect 4 Pty Ltd,OU=Webserver Team,CN=www2.connect4.com.au,E=webmaster@connect4.com.au",       "C=AU,ST=Victoria,L=South Melbourne,O=Connect 4 Pty Ltd,OU=Certificate Authority,CN=Connect 4 CA,E=webmaster@connect4.com.au",       "C=AU,ST=QLD,CN=SSLeay/rsa test cert",       "C=US,O=National Aeronautics and Space Administration,SN=16+CN=Steve Schoch",       "E=cooke@issl.atl.hp.com,C=US,OU=Hewlett Packard Company (ISSL),CN=Paul A. Cooke",       "O=Sun Microsystems Inc,CN=store.sun.com",       "unstructuredAddress=192.168.1.33,unstructuredName=pixfirewall.ciscopix.com,CN=pixfirewall.ciscopix.com"    };    public String getName()    {        return "X509Name";    }        private static X509Name fromBytes(        byte[]  bytes)         throws IOException    {        return X509Name.getInstance(new ASN1InputStream(new ByteArrayInputStream(bytes)).readObject());    }    private DEREncodable createEntryValue(DERObjectIdentifier oid, String value)    {        Hashtable attrs = new Hashtable();        attrs.put(oid, value);        X509Name name = new X509Name(attrs);        ASN1Sequence seq = (ASN1Sequence)name.getDERObject();        ASN1Set set = (ASN1Set)seq.getObjectAt(0);        seq = (ASN1Sequence)set.getObjectAt(0);        return seq.getObjectAt(1);    }    private DEREncodable createEntryValueFromString(DERObjectIdentifier oid, String value)    {        Hashtable attrs = new Hashtable();        attrs.put(oid, value);        X509Name name = new X509Name(new X509Name(attrs).toString());        ASN1Sequence seq = (ASN1Sequence)name.getDERObject();        ASN1Set set = (ASN1Set)seq.getObjectAt(0);        seq = (ASN1Sequence)set.getObjectAt(0);        return seq.getObjectAt(1);    }    private void testEncodingPrintableString(DERObjectIdentifier oid, String value)    {        DEREncodable converted = createEntryValue(oid, value);        if (!(converted instanceof DERPrintableString))        {            fail("encoding for " + oid + " not printable string");        }    }    private void testEncodingIA5String(DERObjectIdentifier oid, String value)    {        DEREncodable converted = createEntryValue(oid, value);        if (!(converted instanceof DERIA5String))        {            fail("encoding for " + oid + " not IA5String");        }    }    private void testEncodingGeneralizedTime(DERObjectIdentifier oid, String value)    {        DEREncodable converted = createEntryValue(oid, value);        if (!(converted instanceof DERGeneralizedTime))        {            fail("encoding for " + oid + " not GeneralizedTime");        }        converted = createEntryValueFromString(oid, value);        if (!(converted instanceof DERGeneralizedTime))        {            fail("encoding for " + oid + " not GeneralizedTime");        }    }    public void performTest()        throws Exception    {        testEncodingPrintableString(X509Name.C, "AU");        testEncodingPrintableString(X509Name.SERIALNUMBER, "123456");        testEncodingPrintableString(X509Name.DN_QUALIFIER, "123456");        testEncodingIA5String(X509Name.EmailAddress, "test@test.com");        testEncodingIA5String(X509Name.DC, "test");        // correct encoding        testEncodingGeneralizedTime(X509Name.DATE_OF_BIRTH, "#180F32303032303132323132323232305A");        // compatability encoding        testEncodingGeneralizedTime(X509Name.DATE_OF_BIRTH, "20020122122220Z");        //        // composite        //        Hashtable                   attrs = new Hashtable();        attrs.put(X509Name.C, "AU");        attrs.put(X509Name.O, "The Legion of the Bouncy Castle");        attrs.put(X509Name.L, "Melbourne");        attrs.put(X509Name.ST, "Victoria");        attrs.put(X509Name.E, "feedback-crypto@bouncycastle.org");        X509Name    name1 = new X509Name(attrs);        if (!name1.equals(name1))        {            fail("Failed same object test");        }        if (!name1.equals(name1, true))        {            fail("Failed same object test - in Order");        }        X509Name    name2 = new X509Name(attrs);        if (!name1.equals(name2))        {            fail("Failed same name test");        }        if (!name1.equals(name2, true))        {            fail("Failed same name test - in Order");        }        if (name1.hashCode() != name2.hashCode())        {            fail("Failed same name test - in Order");        }        Vector  ord1 = new Vector();        ord1.addElement(X509Name.C);        ord1.addElement(X509Name.O);        ord1.addElement(X509Name.L);        ord1.addElement(X509Name.ST);        ord1.addElement(X509Name.E);        Vector  ord2 = new Vector();        ord2.addElement(X509Name.E);        ord2.addElement(X509Name.ST);        ord2.addElement(X509Name.L);        ord2.addElement(X509Name.O);        ord2.addElement(X509Name.C);        name1 = new X509Name(ord1, attrs);        name2 = new X509Name(ord2, attrs);        if (!name1.equals(name2))        {            fail("Failed reverse name test");        }        if (name1.equals(name2, true))        {            fail("Failed reverse name test - in Order");        }        if (!name1.equals(name2, false))        {            fail("Failed reverse name test - in Order false");        }        Vector oids = name1.getOIDs();        if (!compareVectors(oids, ord1))        {            fail("oid comparison test");        }        Vector val1 = new Vector();        val1.addElement("AU");        val1.addElement("The Legion of the Bouncy Castle");        val1.addElement("Melbourne");        val1.addElement("Victoria");        val1.addElement("feedback-crypto@bouncycastle.org");        name1 = new X509Name(ord1, val1);                Vector values = name1.getValues();        if (!compareVectors(values, val1))        {            fail("value comparison test");        }        ord2 = new Vector();        ord2.addElement(X509Name.ST);        ord2.addElement(X509Name.ST);        ord2.addElement(X509Name.L);        ord2.addElement(X509Name.O);        ord2.addElement(X509Name.C);        name1 = new X509Name(ord1, attrs);        name2 = new X509Name(ord2, attrs);        if (name1.equals(name2))        {            fail("Failed different name test");        }        ord2 = new Vector();        ord2.addElement(X509Name.ST);        ord2.addElement(X509Name.L);        ord2.addElement(X509Name.O);        ord2.addElement(X509Name.C);        name1 = new X509Name(ord1, attrs);        name2 = new X509Name(ord2, attrs);        if (name1.equals(name2))        {            fail("Failed subset name test");        }        compositeTest();        ByteArrayOutputStream bOut;        ASN1OutputStream aOut;        ASN1InputStream aIn;        //

⌨️ 快捷键说明

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