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

📄 generalname.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:   GeneralName.java

package jit.asn1.x509;

import jit.asn1.*;

// Referenced classes of package jit.asn1.x509:
//            X509Name, OtherName

public class GeneralName
    implements DEREncodable
{

    DEREncodable obj;
    int tag;
    boolean isInsideImplicit;

    public GeneralName(X509Name directoryName)
    {
        isInsideImplicit = false;
        obj = directoryName;
        tag = 4;
    }

    public GeneralName(DERObject name, int tag)
    {
        isInsideImplicit = false;
        obj = name;
        this.tag = tag;
    }

    public static GeneralName getInstance(Object obj)
    {
        if(obj == null || (obj instanceof GeneralName))
            return (GeneralName)obj;
        if(obj instanceof ASN1TaggedObject)
        {
            ASN1TaggedObject tagObj = (ASN1TaggedObject)obj;
            int tag = tagObj.getTagNo();
            switch(tag)
            {
            case 0: // '\0'
                return new GeneralName(tagObj.getObject(), tag);

            case 1: // '\001'
                return new GeneralName(DERIA5String.getInstance(tagObj, false), tag);

            case 2: // '\002'
                return new GeneralName(DERIA5String.getInstance(tagObj, false), tag);

            case 3: // '\003'
                throw new IllegalArgumentException("unknown tag: ".concat(String.valueOf(String.valueOf(tag))));

            case 4: // '\004'
                return new GeneralName(tagObj.getObject(), tag);

            case 5: // '\005'
                return new GeneralName(tagObj.getObject(), tag);

            case 6: // '\006'
                return new GeneralName(DERIA5String.getInstance(tagObj, false), tag);

            case 7: // '\007'
                return new GeneralName(ASN1OctetString.getInstance(tagObj, false), tag);

            case 8: // '\b'
                return new GeneralName(DERObjectIdentifier.getInstance(tagObj, false), tag);
            }
        }
        throw new IllegalArgumentException("unknown object in getInstance");
    }

    public static GeneralName getInstance(ASN1TaggedObject tagObj, boolean explicit)
    {
        return getInstance(ASN1TaggedObject.getInstance(tagObj, explicit));
    }

    public void markInsideImplicit(boolean isInsideImplicit)
    {
        this.isInsideImplicit = isInsideImplicit;
    }

    public int getTagNo()
    {
        return tag;
    }

    public DEREncodable getName()
    {
        return obj;
    }

    public DERObject getDERObject()
    {
        if(tag == 4)
            return new DERTaggedObject(true, tag, obj);
        else
            return new DERTaggedObject(false, tag, obj);
    }

    public String getStringName()
        throws Exception
    {
        if(getTagNo() == 3)
            throw new Exception("unsupported tag: 3");
        if(getTagNo() == 5)
            throw new Exception("unsupported tag: 5");
        if(getTagNo() == 4)
        {
            X509Name name = X509Name.getInstance(getName());
            return name.toString();
        }
        if(getTagNo() == 1 || getTagNo() == 2 || getTagNo() == 6)
        {
            DERIA5String dstr = (DERIA5String)getName();
            return dstr.getString();
        }
        if(getTagNo() == 7)
        {
            ASN1OctetString oct = (ASN1OctetString)getName();
            return new String(oct.getOctets());
        }
        if(getTagNo() == 8)
        {
            DERObjectIdentifier oid = (DERObjectIdentifier)getName();
            return oid.getId();
        } else
        {
            return null;
        }
    }

    public OtherName getOtherName()
        throws Exception
    {
        if(getTagNo() != 0)
        {
            throw new Exception(String.valueOf(String.valueOf((new StringBuffer("tag is")).append(getTagNo()).append(",no otherName in GeneralName"))));
        } else
        {
            DERObject derObj = getName().getDERObject();
            return OtherName.getInstance(derObj);
        }
    }
}

⌨️ 快捷键说明

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