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

📄 asn1octetstring.java

📁 java 文件下载器。可自定义
💻 JAVA
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space 
// Source File Name:   ASN1OctetString.java

package org.bouncycastle.asn1;

import java.io.*;
import java.util.Enumeration;
import java.util.Vector;
import org.bouncycastle.util.encoders.Hex;

// Referenced classes of package org.bouncycastle.asn1:
//			ASN1Object, ASN1OctetStringParser, ASN1Sequence, ASN1TaggedObject, 
//			BERConstructedOctetString, DEROutputStream, DEREncodable, DERObject

public abstract class ASN1OctetString extends ASN1Object
	implements ASN1OctetStringParser
{

	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((new StringBuilder()).append("illegal object in getInstance: ").append(obj.getClass().getName()).toString());
		}
	}

	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((new StringBuilder()).append("Error processing object : ").append(e.toString()).toString());
		}
	}

	public InputStream getOctetStream()
	{
		return new ByteArrayInputStream(string);
	}

	public ASN1OctetStringParser parser()
	{
		return this;
	}

	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;
	}

	boolean asn1Equals(DERObject o)
	{
		if (!(o instanceof ASN1OctetString))
			return false;
		ASN1OctetString other = (ASN1OctetString)o;
		byte b1[] = other.string;
		byte b2[] = string;
		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;

	public String toString()
	{
		return (new StringBuilder()).append("#").append(new String(Hex.encode(string))).toString();
	}
}

⌨️ 快捷键说明

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