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

📄 asn1sequence.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:   ASN1Sequence.java

package jit.asn1;

import java.io.IOException;
import java.util.Enumeration;
import java.util.Vector;

// Referenced classes of package jit.asn1:
//            DERObject, BERTaggedObject, BERSequence, DERSequence, 
//            DEREncodable, ASN1TaggedObject, DEROutputStream

public abstract class ASN1Sequence extends DERObject
{

    private Vector seq;

    public ASN1Sequence()
    {
        seq = new Vector();
    }

    public static ASN1Sequence getInstance(Object obj)
    {
        if(obj == null || (obj instanceof ASN1Sequence))
            return (ASN1Sequence)obj;
        else
            throw new IllegalArgumentException("unknown object in getInstance");
    }

    public static ASN1Sequence getInstance(ASN1TaggedObject obj, boolean explicit)
    {
        if(explicit)
            if(!obj.isExplicit())
                throw new IllegalArgumentException("object implicit - explicit expected.");
            else
                return (ASN1Sequence)obj.getObject();
        if(obj.isExplicit())
            if(obj instanceof BERTaggedObject)
                return new BERSequence(obj.getObject());
            else
                return new DERSequence(obj.getObject());
        if(obj.getObject() instanceof ASN1Sequence)
            return (ASN1Sequence)obj.getObject();
        else
            throw new IllegalArgumentException("unknown object in getInstanceFromTagged");
    }

    public Enumeration getObjects()
    {
        return seq.elements();
    }

    public DEREncodable getObjectAt(int index)
    {
        return (DEREncodable)seq.elementAt(index);
    }

    public int size()
    {
        return seq.size();
    }

    public int hashCode()
    {
        Enumeration e = getObjects();
        int hashCode = 0;
        do
        {
            if(!e.hasMoreElements())
                break;
            Object o = e.nextElement();
            if(o != null)
                hashCode ^= o.hashCode();
        } while(true);
        return hashCode;
    }

    public boolean equals(Object o)
    {
label0:
        {
            if(o == null || !(o instanceof ASN1Sequence))
                return false;
            ASN1Sequence other = (ASN1Sequence)o;
            if(size() != other.size())
                return false;
            Enumeration s1 = getObjects();
            Enumeration s2 = other.getObjects();
            Object o1;
            Object o2;
label1:
            do
            {
                do
                {
                    if(!s1.hasMoreElements())
                        break label0;
                    o1 = s1.nextElement();
                    o2 = s2.nextElement();
                    if(o1 == null || o2 == null)
                        continue label1;
                } while(o1.equals(o2));
                return false;
            } while(o1 == null && o2 == null);
            return false;
        }
        return true;
    }

    protected void addObject(DEREncodable obj)
    {
        seq.addElement(obj);
    }

    abstract void encode(DEROutputStream deroutputstream)
        throws IOException;
}

⌨️ 快捷键说明

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