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

📄 x509extensions.java

📁 进行与数字证书相关开发必须的java源码
💻 JAVA
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi 
// Source File Name:   X509Extensions.java

package jit.asn1.x509;

import java.util.*;
import jit.asn1.*;

// Referenced classes of package jit.asn1.x509:
//            X509Extension

public class X509Extensions
    implements DEREncodable
{

    public static final DERObjectIdentifier JIT_IdentifyCode = new DERObjectIdentifier("1.2.86.11.7.1");
    public static final DERObjectIdentifier JIT_InsuranceNumber = new DERObjectIdentifier("1.2.86.11.7.2");
    public static final DERObjectIdentifier JIT_OrganizationCode = new DERObjectIdentifier("1.2.86.11.7.3");
    public static final DERObjectIdentifier JIT_ICRegistrationNumber = new DERObjectIdentifier("1.2.86.11.7.4");
    public static final DERObjectIdentifier JIT_TaxationNumber = new DERObjectIdentifier("1.2.86.11.7.5");
    public static final DERObjectIdentifier JIT_StationCode = new DERObjectIdentifier("1.2.86.53525105.0.1");
    public static final DERObjectIdentifier JIT_CasteCode = new DERObjectIdentifier("1.2.86.53525105.0.2");
    public static final DERObjectIdentifier SubjectDirectoryAttributes = new DERObjectIdentifier("2.5.29.9");
    public static final DERObjectIdentifier AuthorityInformationAccess = new DERObjectIdentifier("1.3.6.1.5.5.7.1.1");
    public static final DERObjectIdentifier SubjectKeyIdentifier = new DERObjectIdentifier("2.5.29.14");
    public static final DERObjectIdentifier KeyUsage = new DERObjectIdentifier("2.5.29.15");
    public static final DERObjectIdentifier PrivateKeyUsagePeriod = new DERObjectIdentifier("2.5.29.16");
    public static final DERObjectIdentifier SubjectAlternativeName = new DERObjectIdentifier("2.5.29.17");
    public static final DERObjectIdentifier IssuerAlternativeName = new DERObjectIdentifier("2.5.29.18");
    public static final DERObjectIdentifier BasicConstraints = new DERObjectIdentifier("2.5.29.19");
    public static final DERObjectIdentifier CRLNumber = new DERObjectIdentifier("2.5.29.20");
    public static final DERObjectIdentifier ReasonCode = new DERObjectIdentifier("2.5.29.21");
    public static final DERObjectIdentifier InstructionCode = new DERObjectIdentifier("2.5.29.23");
    public static final DERObjectIdentifier InvalidityDate = new DERObjectIdentifier("2.5.29.24");
    public static final DERObjectIdentifier DeltaCRLIndicator = new DERObjectIdentifier("2.5.29.27");
    public static final DERObjectIdentifier IssuingDistributionPoint = new DERObjectIdentifier("2.5.29.28");
    public static final DERObjectIdentifier CertificateIssuer = new DERObjectIdentifier("2.5.29.29");
    public static final DERObjectIdentifier NameConstraints = new DERObjectIdentifier("2.5.29.30");
    public static final DERObjectIdentifier CRLDistributionPoints = new DERObjectIdentifier("2.5.29.31");
    public static final DERObjectIdentifier CertificatePolicies = new DERObjectIdentifier("2.5.29.32");
    public static final DERObjectIdentifier PolicyMappings = new DERObjectIdentifier("2.5.29.33");
    public static final DERObjectIdentifier AuthorityKeyIdentifier = new DERObjectIdentifier("2.5.29.35");
    public static final DERObjectIdentifier PolicyConstraints = new DERObjectIdentifier("2.5.29.36");
    public static final DERObjectIdentifier ExtendedKeyUsage = new DERObjectIdentifier("2.5.29.37");
    public static final DERObjectIdentifier InhibitAnyPolicy = new DERObjectIdentifier("2.5.29.54");
    private Hashtable extensions;
    private Vector ordering;

    public static X509Extensions getInstance(ASN1TaggedObject obj, boolean explicit)
    {
        return getInstance(ASN1Sequence.getInstance(obj, explicit));
    }

    public static X509Extensions getInstance(Object obj)
    {
        if(obj == null || (obj instanceof X509Extensions))
            return (X509Extensions)obj;
        if(obj instanceof ASN1Sequence)
            return new X509Extensions((ASN1Sequence)obj);
        if(obj instanceof ASN1TaggedObject)
            return getInstance(((ASN1TaggedObject)obj).getObject());
        else
            throw new IllegalArgumentException("illegal object in getInstance: ".concat(String.valueOf(String.valueOf(obj.getClass().getName()))));
    }

    public X509Extensions(ASN1Sequence seq)
    {
        extensions = new Hashtable();
        ordering = new Vector();
        ASN1Sequence s;
        for(Enumeration e = seq.getObjects(); e.hasMoreElements(); ordering.addElement(s.getObjectAt(0)))
        {
            s = (ASN1Sequence)e.nextElement();
            if(s.size() == 3)
                extensions.put(s.getObjectAt(0), new X509Extension((DERBoolean)s.getObjectAt(1), (ASN1OctetString)s.getObjectAt(2)));
            else
                extensions.put(s.getObjectAt(0), new X509Extension(false, (ASN1OctetString)s.getObjectAt(1)));
        }

    }

    public X509Extensions(Hashtable extensions)
    {
        this(null, extensions);
    }

    public X509Extensions(Vector ordering, Hashtable extensions)
    {
        this.extensions = new Hashtable();
        this.ordering = new Vector();
        Enumeration e;
        if(ordering == null)
            e = extensions.keys();
        else
            e = ordering.elements();
        for(; e.hasMoreElements(); this.ordering.addElement(e.nextElement()));
        DERObjectIdentifier oid;
        X509Extension ext;
        for(e = this.ordering.elements(); e.hasMoreElements(); this.extensions.put(oid, ext))
        {
            oid = (DERObjectIdentifier)e.nextElement();
            ext = (X509Extension)extensions.get(oid);
        }

    }

    public Enumeration oids()
    {
        return ordering.elements();
    }

    public X509Extension getExtension(DERObjectIdentifier oid)
    {
        return (X509Extension)extensions.get(oid);
    }

    public DERObject getDERObject()
    {
        ASN1EncodableVector vec = new ASN1EncodableVector();
        ASN1EncodableVector v;
        for(Enumeration e = ordering.elements(); e.hasMoreElements(); vec.add(new DERSequence(v)))
        {
            DERObjectIdentifier oid = (DERObjectIdentifier)e.nextElement();
            X509Extension ext = (X509Extension)extensions.get(oid);
            v = new ASN1EncodableVector();
            v.add(oid);
            if(ext.isCritical())
                v.add(new DERBoolean(true));
            v.add(ext.getValue());
        }

        return new DERSequence(vec);
    }

    public int hashCode()
    {
        Enumeration e = extensions.keys();
        int hashCode;
        Object o;
        for(hashCode = 0; e.hasMoreElements(); hashCode ^= extensions.get(o).hashCode())
        {
            o = e.nextElement();
            hashCode ^= o.hashCode();
        }

        return hashCode;
    }

    public boolean equals(Object o)
    {
        if(o == null || !(o instanceof X509Extensions))
            return false;
        X509Extensions other = (X509Extensions)o;
        Enumeration e1 = extensions.keys();
        Enumeration e2;
        for(e2 = other.extensions.keys(); e1.hasMoreElements() && e2.hasMoreElements();)
        {
            Object o1 = e1.nextElement();
            Object o2 = e2.nextElement();
            if(!o1.equals(o2))
                return false;
        }

        return !e1.hasMoreElements() && !e2.hasMoreElements();
    }

}

⌨️ 快捷键说明

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