org.mozilla.jss.asn1
Class ASN1Header
java.lang.Object
org.mozilla.jss.asn1.ASN1Header
public class ASN1Header
extends java.lang.Object
The portion of a BER encoding that precedes the contents octets. Consists
of the tag, form, and length octets.
ASN1Header(InputStream istream) - Gets info about the next item in the DER stream, consuming the
identifier and length octets.
|
ASN1Header(Tag tag, Form form, long contentLength) - This constructor is to be called when we are constructing an ASN1Value
rather than decoding it.
|
byte[] | encode()
|
void | encode(OutputStream ostream)
|
long | getContentLength() - Returns -1 for indefinite length encoding.
|
Form | getForm() - Returns the Form, PRIMITIVE or CONSTRUCTED.
|
Tag | getTag()
|
long | getTotalLength() - Returns the length of the header plus the length of the contents;
the total length of the DER encoding of an ASN1 value.
|
boolean | isEOC() - Returns
true if this is a BER end-of-contents marker.
|
static ASN1Header | lookAhead(InputStream derStream) - Returns information about the next item in the stream, but does not
consume any octets.
|
static byte[] | unsignedBigIntToByteArray(BigInteger bi) - Converts an unsigned BigInteger to a minimal-length byte array.
|
void | validate(Tag expectedTag) - Verifies that this head has the given tag.
|
void | validate(Tag expectedTag, Form expectedForm) - Verifies that this header has the given tag and form.
|
CONSTRUCTED
public static final Form CONSTRUCTED
PRIMITIVE
public static final Form PRIMITIVE
ASN1Header
public ASN1Header(InputStream istream)
throws InvalidBERException,
IOException
Gets info about the next item in the DER stream, consuming the
identifier and length octets.
ASN1Header
public ASN1Header(Tag tag,
Form form,
long contentLength)
This constructor is to be called when we are constructing an ASN1Value
rather than decoding it.
contentLength
- Must be >=0. Although indefinite length
decoding is supported, indefinite length encoding
is not.
encode
public byte[] encode()
encode
public void encode(OutputStream ostream)
throws IOException
getContentLength
public long getContentLength()
Returns -1 for indefinite length encoding.
getForm
public Form getForm()
Returns the Form, PRIMITIVE or CONSTRUCTED.
getTag
public Tag getTag()
getTotalLength
public long getTotalLength()
Returns the length of the header plus the length of the contents;
the total length of the DER encoding of an ASN1 value. Returns
-1 if indefinite length encoding was used.
isEOC
public boolean isEOC()
Returns true
if this is a BER end-of-contents marker.
lookAhead
public static ASN1Header lookAhead(InputStream derStream)
throws IOException,
InvalidBERException
Returns information about the next item in the stream, but does not
consume any octets.
unsignedBigIntToByteArray
public static byte[] unsignedBigIntToByteArray(BigInteger bi)
Converts an unsigned BigInteger to a minimal-length byte array.
This is necessary because BigInteger.toByteArray() attaches an extra
sign bit, which could cause the size of the byte representation to
be bumped up by an extra byte.
validate
public void validate(Tag expectedTag)
throws InvalidBERException
Verifies that this head has the given tag.
validate
public void validate(Tag expectedTag,
Form expectedForm)
throws InvalidBERException
Verifies that this header has the given tag and form.