Class SET

java.lang.Object
org.mozilla.jss.asn1.SET
All Implemented Interfaces:
ASN1Value
Direct Known Subclasses:
SEQUENCE

public class SET extends Object implements ASN1Value
An ASN.1 SET, which is an unordered collection of ASN.1 values. It has an interface like a Java Vector, but the ordering is arbitrary. Null entries may be added; they will be skipped when encoding.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
    A Template for decoding SET OF values.
    static class 
    SET.Template This class is used for decoding DER-encoded SETs.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected Vector<org.mozilla.jss.asn1.SET.Element>
     
    protected static final Form
     
    static final Tag
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    SET()
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Adds an element to this SET.
    void
    addElement(Tag implicitTag, ASN1Value v)
    Adds an element to this SET with the given implicit tag.
    void
    BERencode(Tag implicitTag, OutputStream ostream)
    Encodes this SET without re-ordering it.
    elementAt(int index)
    Returns the element at the given index in the SET.
    Returns the element with the given Tag, or null if no element exists with the given tag.
    void
    Writes the DER encoding to the given output stream.
    void
    encode(Tag implicitTag, OutputStream ostream)
    Writes the DER encoding to the given output stream, using the given implicit tag.
    Returns the base tag for this type, not counting any tags that may be imposed on it by its context.
    void
    insertElementAt(ASN1Value v, int index)
    Inserts an element at the given index.
    void
    insertElementAt(Tag implicitTag, ASN1Value v, int index)
    Inserts an element with the given implicit tag at the given index.
    static void
    main(String[] args)
     
    void
    Removes all elements from this SET.
    void
    removeElementAt(int index)
    Removes the element from the specified index.
    int
     
    tagAt(int index)
    Returns the tag of the element at the given index.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • TAG

      public static final Tag TAG
    • FORM

      protected static final Form FORM
    • elements

      protected Vector<org.mozilla.jss.asn1.SET.Element> elements
  • Constructor Details

    • SET

      public SET()
  • Method Details

    • getTag

      public Tag getTag()
      Description copied from interface: ASN1Value
      Returns the base tag for this type, not counting any tags that may be imposed on it by its context.
      Specified by:
      getTag in interface ASN1Value
      Returns:
      Base tag.
    • addElement

      public void addElement(ASN1Value v)
      Adds an element to this SET.
      Parameters:
      v - Element.
    • addElement

      public void addElement(Tag implicitTag, ASN1Value v)
      Adds an element to this SET with the given implicit tag. For example, if the ASN.1 were:
        MyType ::= SET {
            item        [0] IMPLICIT INTEGER,
            ... }
       
      then the "item" element could be added (with a sample value of 45) to the SET with:
       myTypeInstance.addElement(new Tag(0), new INTEGER(45));
       
      Parameters:
      implicitTag - Implicit tag.
      v - Element.
    • insertElementAt

      public void insertElementAt(ASN1Value v, int index)
      Inserts an element at the given index.
      Parameters:
      v - Element.
      index - Index.
    • insertElementAt

      public void insertElementAt(Tag implicitTag, ASN1Value v, int index)
      Inserts an element with the given implicit tag at the given index.
      Parameters:
      implicitTag - Implicit tag.
      v - Element.
      index - Index.
    • elementAt

      public ASN1Value elementAt(int index)
      Returns the element at the given index in the SET.
      Parameters:
      index - Index.
      Returns:
      Element.
    • tagAt

      public Tag tagAt(int index)
      Returns the tag of the element at the given index. If the element has an implicit tag, that is returned. Otherwise, the tag of the underlying type is returned.
      Parameters:
      index - Index.
      Returns:
      Tag.
    • elementWithTag

      public ASN1Value elementWithTag(Tag tag)
      Returns the element with the given Tag, or null if no element exists with the given tag.
      Parameters:
      tag - Tag.
      Returns:
      Element.
    • size

      public int size()
      Returns:
      The number of elements in this SET.
    • removeAllElements

      public void removeAllElements()
      Removes all elements from this SET.
    • removeElementAt

      public void removeElementAt(int index)
      Removes the element from the specified index.
      Parameters:
      index - Index.
    • encode

      public void encode(OutputStream ostream) throws IOException
      Writes the DER encoding to the given output stream.
      Specified by:
      encode in interface ASN1Value
      Parameters:
      ostream - Output stream.
      Throws:
      IOException - If an error occurred.
    • encode

      public void encode(Tag implicitTag, OutputStream ostream) throws IOException
      Writes the DER encoding to the given output stream, using the given implicit tag. To satisfy DER encoding rules, the elements will be re-ordered either by tag or lexicographically.
      Specified by:
      encode in interface ASN1Value
      Parameters:
      implicitTag - Implicit tag.
      ostream - Output stream.
      Throws:
      IOException - If an error occurred.
    • BERencode

      public void BERencode(Tag implicitTag, OutputStream ostream) throws IOException
      Encodes this SET without re-ordering it. This may violate DER, but it is within BER.
      Parameters:
      implicitTag - Implicit tag.
      ostream - Output stream.
      Throws:
      IOException - If an error occurred.
    • main

      public static void main(String[] args)