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

📄 extensionsparser.java

📁 进行与数字证书相关开发必须的java源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
// 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:   ExtensionsParser.java

package jit.asn1parser.x509;

import java.io.ByteArrayInputStream;
import java.util.*;
import jit.asn1.*;
import jit.asn1.x509.*;
import jit.asn1parser.Parser;
import jit.math.BigInteger;

// Referenced classes of package jit.asn1parser.x509:
//            ExtensConstant, X509Cert, X509CRL

public class ExtensionsParser extends ExtensConstant
{

    private X509Extensions extens;

    public ExtensionsParser(X509Extensions extensions)
    {
        extens = extensions;
    }

    public ExtensionsParser(X509Cert cert)
        throws Exception
    {
        extens = cert.getExtensions();
    }

    public ExtensionsParser(X509CRL crl)
        throws Exception
    {
        extens = crl.getExtensions();
    }

    public ExtensionsParser(CRLEntry crlEntry)
    {
        extens = crlEntry.getExtensions();
    }

    public Vector listAllName()
    {
        Vector extenNameVec = new Vector();
        String extenName;
        for(Enumeration oidEnum = extens.oids(); oidEnum.hasMoreElements(); extenNameVec.add(extenName))
        {
            DERObjectIdentifier objID = (DERObjectIdentifier)oidEnum.nextElement();
            extenName = (String)ExtensConstant.oidAndName.get(objID);
        }

        return extenNameVec;
    }

    public Vector listAllOID()
    {
        Vector extenOIDVec = new Vector();
        DERObjectIdentifier objID;
        for(Enumeration oidEnum = extens.oids(); oidEnum.hasMoreElements(); extenOIDVec.add(objID.getId()))
            objID = (DERObjectIdentifier)oidEnum.nextElement();

        return extenOIDVec;
    }

    public Vector listCriticalOID()
    {
        Vector criticalOID = new Vector();
        Enumeration oidEnum = extens.oids();
        do
        {
            if(!oidEnum.hasMoreElements())
                break;
            DERObjectIdentifier objID = (DERObjectIdentifier)oidEnum.nextElement();
            X509Extension exten = extens.getExtension(objID);
            if(exten.isCritical())
                criticalOID.add(objID.getId());
        } while(true);
        return criticalOID;
    }

    public Vector listCriticalName()
    {
        Vector criticalName = new Vector();
        Enumeration oidEnum = extens.oids();
        do
        {
            if(!oidEnum.hasMoreElements())
                break;
            DERObjectIdentifier objID = (DERObjectIdentifier)oidEnum.nextElement();
            X509Extension exten = extens.getExtension(objID);
            if(exten.isCritical())
                criticalName.add(ExtensConstant.oidAndName.get(objID));
        } while(true);
        return criticalName;
    }

    public X509Extension getExtension(DERObjectIdentifier derOID)
    {
        return extens.getExtension(derOID);
    }

    public X509Extension getExtension(String extensionName)
    {
        DERObjectIdentifier oid = (DERObjectIdentifier)ExtensConstant.nameAndOid.get(extensionName);
        return getExtension(oid);
    }

    public SubjectDirectoryAttributes getSubjectDirectoryAttributes()
        throws Exception
    {
        DERObjectIdentifier id = X509Extensions.SubjectDirectoryAttributes;
        X509Extension exten = getExtension(id);
        if(exten == null)
        {
            return null;
        } else
        {
            ASN1Sequence seq = Parser.oct2Seq(exten.getValue());
            return new SubjectDirectoryAttributes(seq);
        }
    }

    public SubjectKeyIdentifier getSubjectKeyIdentifier()
        throws Exception
    {
        DERObjectIdentifier id = X509Extensions.SubjectKeyIdentifier;
        X509Extension exten = getExtension(id);
        if(exten == null)
        {
            return null;
        } else
        {
            ASN1OctetString octet = exten.getValue();
            return SubjectKeyIdentifier.getInstance(Parser.writeBytes2DERObj(octet.getOctets()));
        }
    }

    public KeyUsage getKeyUsage()
        throws Exception
    {
        DERObjectIdentifier id = X509Extensions.KeyUsage;
        X509Extension exten = getExtension(id);
        if(exten == null)
        {
            return null;
        } else
        {
            byte octetKeyUsage[] = exten.getValue().getOctets();
            ByteArrayInputStream bis = new ByteArrayInputStream(octetKeyUsage);
            ASN1InputStream derIns = new ASN1InputStream(bis);
            DERBitString derBitStr = (DERBitString)derIns.readObject();
            return new KeyUsage(derBitStr);
        }
    }

    public PrivateKeyUsagePeriod getPriKeyUsagePeriod()
        throws Exception
    {
        DERObjectIdentifier id = X509Extensions.PrivateKeyUsagePeriod;
        X509Extension exten = getExtension(id);
        if(exten == null)
        {
            return null;
        } else
        {
            ASN1Sequence seq = Parser.oct2Seq(exten.getValue());
            return new PrivateKeyUsagePeriod(seq);
        }
    }

    public GeneralNames getSubjectAltName()
        throws Exception
    {
        DERObjectIdentifier id = X509Extensions.SubjectAlternativeName;
        X509Extension exten = getExtension(id);
        if(exten == null)
        {
            return null;
        } else
        {
            ASN1Sequence seq = Parser.oct2Seq(exten.getValue());
            return new GeneralNames(seq);
        }
    }

    public GeneralNames getIssuerAltName()
        throws Exception
    {
        DERObjectIdentifier id = X509Extensions.IssuerAlternativeName;
        X509Extension exten = getExtension(id);
        if(exten == null)
        {
            return null;
        } else
        {
            ASN1Sequence seq = Parser.oct2Seq(exten.getValue());
            return new GeneralNames(seq);
        }
    }

    public BasicConstraints getBasicConstraints()
        throws Exception
    {
        DERObjectIdentifier id = X509Extensions.BasicConstraints;
        X509Extension exten = getExtension(id);
        if(exten == null)
        {
            return null;
        } else
        {
            ASN1Sequence basicConstraints = Parser.oct2Seq(exten.getValue());
            return new BasicConstraints(basicConstraints);
        }
    }

    public CRLNumber getCRLNumber()
        throws Exception
    {
        DERObjectIdentifier id = X509Extensions.CRLNumber;
        X509Extension exten = getExtension(id);
        if(exten == null)
        {
            return null;
        } else
        {
            ASN1OctetString octet = exten.getValue();
            DERInteger derInt = (DERInteger)Parser.writeBytes2DERObj(octet.getOctets());
            CRLNumber CRLNumber = new CRLNumber(derInt.getValue());
            return CRLNumber;
        }
    }

    public CRLReason getReasonCode()
        throws Exception
    {
        DERObjectIdentifier id = X509Extensions.ReasonCode;
        X509Extension exten = getExtension(id);
        if(exten == null)
        {
            return null;
        } else
        {
            ASN1OctetString octet = exten.getValue();
            DEREnumerated derEnum = (DEREnumerated)Parser.writeBytes2DERObj(octet.getOctets());
            CRLReason crlReason = new CRLReason(derEnum);
            return crlReason;
        }
    }

    public DERObjectIdentifier getHoldInstructionCode()
    {
        DERObjectIdentifier id = X509Extensions.InstructionCode;
        X509Extension exten = getExtension(id);
        if(exten == null)
        {
            return null;
        } else
        {
            ASN1OctetString octet = exten.getValue();
            DERObjectIdentifier instructionCode = DERObjectIdentifier.getInstance(octet);
            return instructionCode;
        }
    }

    public DERGeneralizedTime getInvalidityDate()
    {
        DERObjectIdentifier id = X509Extensions.InvalidityDate;
        X509Extension exten = getExtension(id);
        if(exten == null)
        {
            return null;
        } else
        {
            ASN1OctetString octet = exten.getValue();

⌨️ 快捷键说明

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