Overview | Package | Class | Tree | Deprecated | Index | Help
| JSS 3.2
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.mozilla.jss.asn1
Class ANY

    java.lang.Object
      |
      +--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.

Field Summary
`private byte[]` | `contents` Strips out the header and returns just the contents octets of the encoding.
`private byte[]` | `encoded`
`private ASN1Header` | `header`
`private Tag` | `tag`
`private static ANY.Template` | `templateInstance`

Constructor Summary
`private` | `ANY()`
`` | `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`

Field Detail

### encoded

    private byte[] encoded

### tag

    private Tag tag

### header

    private ASN1Header header

### contents

    private byte[] contents

  Strips out the header and returns just the contents octets of the encoding.

### templateInstance

    private static ANY.Template templateInstance

Constructor Detail

### ANY

    private ANY()

### 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.

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.

    `InvalidBERException`
    `java.io.IOException`

### getContents

    public byte[] getContents()
                       throws InvalidBERException

    `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`
    `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.
    `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.
    `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.
    `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.

    `java.io.IOException`
    `InvalidBERException`

### getTemplate

    public static ANY.Template getTemplate()

  Returns a singleton instance of a decoding template.

Overview | Package | Class | Tree | Deprecated | Index | Help
| JSS 3.2
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD