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

📄 asn1octetstring.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:   ASN1OctetString.java

package jit.asn1;

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

// Referenced classes of package jit.asn1:
//            DERObject, ASN1TaggedObject, ASN1Sequence, BERConstructedOctetString, 
//            DEROutputStream, DEROctetString, DEREncodable

public abstract class ASN1OctetString extends DERObject
{

    byte string[];

    public static ASN1OctetString getInstance(ASN1TaggedObject obj, boolean explicit)
    {
        return getInstance(obj.getObject());
    }

    public static ASN1OctetString getInstance(Object obj)
    {
        if(obj == null || (obj instanceof ASN1OctetString))
            return (ASN1OctetString)obj;
        if(obj instanceof ASN1TaggedObject)
            return getInstance(((ASN1TaggedObject)obj).getObject());
        if(obj instanceof ASN1Sequence)
        {
            Vector v = new Vector();
            for(Enumeration e = ((ASN1Sequence)obj).getObjects(); e.hasMoreElements(); v.addElement(e.nextElement()));
            return new BERConstructedOctetString(v);
        } else
        {
            throw new IllegalArgumentException("illegal object in getInstance: ".concat(String.valueOf(String.valueOf(obj.getClass().getName()))));
        }
    }

    public ASN1OctetString(byte string[])
    {
        this.string = string;
    }

    public ASN1OctetString(DEREncodable obj)
    {
        try
        {
            ByteArrayOutputStream bOut = new ByteArrayOutputStream();
            DEROutputStream dOut = new DEROutputStream(bOut);
            dOut.writeObject(obj);
            dOut.close();
            string = bOut.toByteArray();
        }
        catch(IOException e)
        {
            throw new IllegalArgumentException("Error processing object : ".concat(String.valueOf(String.valueOf(e.toString()))));
        }
    }

    public byte[] getOctets()
    {
        return string;
    }

    public int hashCode()
    {
        byte b[] = getOctets();
        int value = 0;
        for(int i = 0; i != b.length; i++)
            value ^= (b[i] & 0xff) << i % 4;

        return value;
    }

    public boolean equals(Object o)
    {
        if(o == null || !(o instanceof DEROctetString))
            return false;
        DEROctetString other = (DEROctetString)o;
        byte b1[] = other.getOctets();
        byte b2[] = getOctets();
        if(b1.length != b2.length)
            return false;
        for(int i = 0; i != b1.length; i++)
            if(b1[i] != b2[i])
                return false;

        return true;
    }

    abstract void encode(DEROutputStream deroutputstream)
        throws IOException;
}

⌨️ 快捷键说明

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