blob: 8b0631caf8d1516e4604890eb1d35f603e1bb67b [file] [log] [blame]
package org.bouncycastle.asn1;
import java.io.IOException;
/**
* We insert one of these when we find a tag we don't recognise.
*/
public class DERUnknownTag
extends DERObject
{
int tag;
byte[] data;
/**
* @param tag the tag value.
* @param data the octets making up the time.
*/
public DERUnknownTag(
int tag,
byte[] data)
{
this.tag = tag;
this.data = data;
}
public int getTag()
{
return tag;
}
public byte[] getData()
{
return data;
}
void encode(
DEROutputStream out)
throws IOException
{
out.writeEncoded(tag, data);
}
public boolean equals(
Object o)
{
if ((o == null) || !(o instanceof DERUnknownTag))
{
return false;
}
DERUnknownTag other = (DERUnknownTag)o;
if (tag != other.tag)
{
return false;
}
if (data.length != other.data.length)
{
return false;
}
for (int i = 0; i < data.length; i++)
{
if(data[i] != other.data[i])
{
return false;
}
}
return true;
}
public int hashCode()
{
byte[] b = this.getData();
int value = 0;
for (int i = 0; i != b.length; i++)
{
value ^= (b[i] & 0xff) << (i % 4);
}
return value ^ this.getTag();
}
}