You are currently viewing a snapshot of www.mozilla.org taken on April 21, 2008. Most of this content is highly out of date (some pages haven't been updated since the project began in 1998) and exists for historical purposes only. If there are any pages on this archive site that you think should be added back to www.mozilla.org, please file a bug.




org.mozilla.jss.asn1
Class ANY

java.lang.Object
  extended by org.mozilla.jss.asn1.ANY
All Implemented Interfaces:
ASN1Value

public class ANY
extends java.lang.Object
implements ASN1Value

Represents an ASN.1 ANY value. An ANY is just an arbitrary ASN.1 value. It can be thought of as the simplest implementation of the ASN1Value interface. Although they can be created from scratch (from raw BER), instances of ANY are usually found after decoding with a template that has an ANY field.

An ANY supports extracting the BER encoding, or decoding with a different template.


Nested Class Summary
static class ANY.Template
          A class for decoding ANY values from BER.
 
Constructor Summary
ANY(byte[] encoded)
          Creates an ANY value, which is just a generic ASN.1 value.
ANY(Tag tag, byte[] encoded)
          Creates an ANY value, which is just a generic ASN.1 value.
 
Method Summary
 ASN1Value decodeWith(ASN1Template template)
          Decodes this ANY using the given template.
 ASN1Value decodeWith(Tag implicitTag, ASN1Template template)
          Decodes this ANY using the given template.
 void encode(java.io.OutputStream ostream)
          Write this value's DER encoding to an output stream using its own base tag.
 void encode(Tag implicitTag, java.io.OutputStream ostream)
          Write this value's DER encoding to an output stream using an implicit tag.
 void encodeWithAlternateTag(Tag alternateTag, java.io.OutputStream ostream)
          Extracts the contents from the ANY and encodes them with the provided tag.
 byte[] getContents()
           
 byte[] getEncoded()
          Returns the complete encoding of header and contents, as passed into the constructor or read from a BER input stream.
 ASN1Header getHeader()
          Returns the ASN.1 header from the encoding.
 Tag getTag()
          Returns the tag of this value.
static ANY.Template getTemplate()
          Returns a singleton instance of a decoding template.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ANY

public ANY(Tag tag,
           byte[] encoded)
Creates an ANY value, which is just a generic ASN.1 value. This method is provided for efficiency if the tag is already known, so that we don't have to parse the encoding for it.

Parameters:
tag - The tag of this value. It must be the same as the actual tag contained in the encoding.
encoded - The complete BER encoding of this value, including tag, form, length, and contents.

ANY

public ANY(byte[] encoded)
    throws InvalidBERException
Creates an ANY value, which is just a generic ASN.1 value.

Parameters:
encoded - The complete BER encoding of this value, including tag, form, length, and contents.
Throws:
InvalidBERException
Method Detail

getTag

public Tag getTag()
Returns the tag of this value.

Specified by:
getTag in interface ASN1Value

getEncoded

public byte[] getEncoded()
Returns the complete encoding of header and contents, as passed into the constructor or read from a BER input stream.


getHeader

public ASN1Header getHeader()
                     throws InvalidBERException,
                            java.io.IOException
Returns the ASN.1 header from the encoding.

Throws:
InvalidBERException
java.io.IOException

getContents

public byte[] getContents()
                   throws InvalidBERException
Throws:
InvalidBERException

encode

public void encode(java.io.OutputStream ostream)
            throws java.io.IOException
Description copied from interface: ASN1Value
Write this value's DER encoding to an output stream using its own base tag.

Specified by:
encode in interface ASN1Value
Throws:
java.io.IOException

decodeWith

public ASN1Value decodeWith(ASN1Template template)
                     throws InvalidBERException
Decodes this ANY using the given template. This is useful if you originally decoded something as an ANY because you didn't know what it was, but now you know what it is supposed to be.

Parameters:
template - The template to use to decode this ANY.
Returns:
The output of the given template when it is fed the encoding of this ANY.
Throws:
InvalidBERException

decodeWith

public ASN1Value decodeWith(Tag implicitTag,
                            ASN1Template template)
                     throws java.io.IOException,
                            InvalidBERException
Decodes this ANY using the given template. This is useful if you originally decoded something as an ANY because you didn't know what it was, but now you know what it is supposed to be.

Parameters:
implicitTag - The implicit tag for the encoding.
template - The template to use to decode this ANY.
Returns:
The output of the given template when it is fed the encoding of this ANY.
Throws:
java.io.IOException
InvalidBERException

encode

public void encode(Tag implicitTag,
                   java.io.OutputStream ostream)
            throws java.io.IOException
Description copied from interface: ASN1Value
Write this value's DER encoding to an output stream using an implicit tag.

Specified by:
encode in interface ASN1Value
Parameters:
implicitTag - This parameter is ignored, because ANY values cannot have implicit tags.
Throws:
java.io.IOException

encodeWithAlternateTag

public void encodeWithAlternateTag(Tag alternateTag,
                                   java.io.OutputStream ostream)
                            throws java.io.IOException,
                                   InvalidBERException
Extracts the contents from the ANY and encodes them with the provided tag.

Throws:
java.io.IOException
InvalidBERException

getTemplate

public static ANY.Template getTemplate()
Returns a singleton instance of a decoding template.