Class SET

  • All Implemented Interfaces:
    ASN1Value
    Direct Known Subclasses:
    SEQUENCE

    public class SET
    extends java.lang.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  SET.OF_Template
      A Template for decoding SET OF values.
      static class  SET.Template
      SET.Template This class is used for decoding DER-encoded SETs.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.util.Vector<org.mozilla.jss.asn1.SET.Element> elements  
      protected static Form FORM  
      static Tag TAG  
    • Constructor Summary

      Constructors 
      Constructor Description
      SET()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addElement​(ASN1Value v)
      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, java.io.OutputStream ostream)
      Encodes this SET without re-ordering it.
      ASN1Value elementAt​(int index)
      Returns the element at the given index in the SET.
      ASN1Value elementWithTag​(Tag tag)
      Returns the element with the given Tag, or null if no element exists with the given tag.
      void encode​(java.io.OutputStream ostream)
      Writes the DER encoding to the given output stream.
      void encode​(Tag implicitTag, java.io.OutputStream ostream)
      Writes the DER encoding to the given output stream, using the given implicit tag.
      Tag getTag()
      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​(java.lang.String[] args)  
      void removeAllElements()
      Removes all elements from this SET.
      void removeElementAt​(int index)
      Removes the element from the specified index.
      int size()  
      Tag 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 Detail

      • TAG

        public static final Tag TAG
      • FORM

        protected static final Form FORM
      • elements

        protected java.util.Vector<org.mozilla.jss.asn1.SET.Element> elements
    • Constructor Detail

      • SET

        public SET()
    • Method Detail

      • 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​(java.io.OutputStream ostream)
                    throws java.io.IOException
        Writes the DER encoding to the given output stream.
        Specified by:
        encode in interface ASN1Value
        Parameters:
        ostream - Output stream.
        Throws:
        java.io.IOException - If an error occurred.
      • encode

        public void encode​(Tag implicitTag,
                           java.io.OutputStream ostream)
                    throws java.io.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:
        java.io.IOException - If an error occurred.
      • BERencode

        public void BERencode​(Tag implicitTag,
                              java.io.OutputStream ostream)
                       throws java.io.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:
        java.io.IOException - If an error occurred.
      • main

        public static void main​(java.lang.String[] args)