Class ASN1Element

    • Constructor Detail

      • ASN1Element

        public ASN1Element​(byte type)
        Creates a new ASN.1 BER element with the specified type and no value.
        Parameters:
        type - The BER type for this element.
      • ASN1Element

        public ASN1Element​(byte type,
                           @Nullable
                           byte[] value)
        Creates a new ASN1 BER element with the specified type and value.
        Parameters:
        type - The BER type for this element.
        value - The encoded value for this element.
      • ASN1Element

        public ASN1Element​(byte type,
                           @NotNull
                           byte[] value,
                           int offset,
                           int length)
        Creates a new ASN1 BER element with the specified type and value.
        Parameters:
        type - The BER type for this element.
        value - The array containing the encoded value for this element. It must not be null.
        offset - The offset within the array at which the value begins.
        length - The number of bytes contained in the value.
    • Method Detail

      • getType

        public final byte getType()
        Retrieves the BER type for this element.
        Returns:
        The BER type for this element.
      • getTypeClass

        public byte getTypeClass()
        Retrieves a value that corresponds to the type class for this element. The value returned will be one of ASN1Constants.TYPE_MASK_UNIVERSAL_CLASS, ASN1Constants.TYPE_MASK_APPLICATION_CLASS, ASN1Constants.TYPE_MASK_CONTEXT_SPECIFIC_CLASS, or ASN1Constants.TYPE_MASK_PRIVATE_CLASS.
        Returns:
        A value that corresponds to the type class for this element.
      • isConstructed

        public boolean isConstructed()
        Indicates whether the type indicates that this element is constructed. A constructed element is one whose value is comprised of the encoded representation of zero or more ASN.1 elements. If the type does not indicate that the element is constructed, then the element is considered primitive.
        Returns:
        true if the type indicates that the element is constructed, or false if the type indicates that the element is primitive.
      • getValueLength

        public int getValueLength()
        Retrieves the number of bytes contained in the value.
        Returns:
        The number of bytes contained in the value.
      • getValue

        @NotNull
        public byte[] getValue()
        Retrieves the encoded value for this element.
        Returns:
        The encoded value for this element.
      • encode

        @NotNull
        public final byte[] encode()
        Encodes this ASN.1 element to a byte array.
        Returns:
        A byte array containing the encoded representation of this ASN.1 element.
      • encodeTo

        public void encodeTo​(@NotNull
                             ByteStringBuffer buffer)
        Appends an encoded representation of this ASN.1 element to the provided buffer.
        Parameters:
        buffer - The buffer to which the encoded representation should be appended.
      • encodeLength

        @NotNull
        public static byte[] encodeLength​(int length)
        Encodes the provided length to a byte array.
        Parameters:
        length - The length to be encoded.
        Returns:
        A byte array containing the encoded length.
      • decode

        @NotNull
        public static ASN1Element decode​(@NotNull
                                         byte[] elementBytes)
                                  throws ASN1Exception
        Decodes the content in the provided byte array as an ASN.1 element.
        Parameters:
        elementBytes - The byte array containing the data to decode.
        Returns:
        The decoded ASN.1 BER element.
        Throws:
        ASN1Exception - If the provided byte array does not represent a valid ASN.1 element.
      • readFrom

        @Nullable
        public static ASN1Element readFrom​(@NotNull
                                           java.io.InputStream inputStream)
                                    throws java.io.IOException,
                                           ASN1Exception
        Reads an ASN.1 element from the provided input stream.
        Parameters:
        inputStream - The input stream from which to read the element.
        Returns:
        The element read from the input stream, or null if the end of the input stream is reached without reading any data.
        Throws:
        java.io.IOException - If a problem occurs while attempting to read from the input stream.
        ASN1Exception - If a problem occurs while attempting to decode the element.
      • readFrom

        @Nullable
        public static ASN1Element readFrom​(@NotNull
                                           java.io.InputStream inputStream,
                                           int maxSize)
                                    throws java.io.IOException,
                                           ASN1Exception
        Reads an ASN.1 element from the provided input stream.
        Parameters:
        inputStream - The input stream from which to read the element.
        maxSize - The maximum value size in bytes that will be allowed. A value less than or equal to zero indicates that no maximum size should be enforced. An attempt to read an element with a value larger than this will cause an ASN1Exception to be thrown.
        Returns:
        The element read from the input stream, or null if the end of the input stream is reached without reading any data.
        Throws:
        java.io.IOException - If a problem occurs while attempting to read from the input stream.
        ASN1Exception - If a problem occurs while attempting to decode the element.
      • writeTo

        public final int writeTo​(@NotNull
                                 java.io.OutputStream outputStream)
                          throws java.io.IOException
        Writes an encoded representation of this ASN.1 element to the provided output stream.
        Parameters:
        outputStream - The output stream to which the element should be written.
        Returns:
        The total number of bytes written to the output stream.
        Throws:
        java.io.IOException - If a problem occurs while attempting to write to the provided output stream.
        See Also:
        ASN1Writer.writeElement(ASN1Element,OutputStream)
      • hashCode

        public final int hashCode()
        Retrieves a hash code for this ASN.1 BER element.
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        A hash code for this ASN.1 BER element.
      • equals

        public final boolean equals​(@Nullable
                                    java.lang.Object o)
        Indicates whether the provided object is equal to this ASN.1 BER element. The object will only be considered equal to this ASN.1 element if it is a non-null ASN.1 element with the same type and value as this element.
        Overrides:
        equals in class java.lang.Object
        Parameters:
        o - The object for which to make the determination.
        Returns:
        true if the provided object is considered equal to this ASN.1 element, or false if not.
      • equalsIgnoreType

        public final boolean equalsIgnoreType​(@Nullable
                                              ASN1Element element)
        Indicates whether the provided ASN.1 element is equal to this element, ignoring any potential difference in the BER type.
        Parameters:
        element - The ASN.1 BER element for which to make the determination.
        Returns:
        true if the provided ASN.1 element is considered equal to this element (ignoring type differences), or false if not.
      • toString

        @NotNull
        public final java.lang.String toString()
        Retrieves a string representation of the value for ASN.1 element.
        Overrides:
        toString in class java.lang.Object
        Returns:
        A string representation of the value for this ASN.1 element.
      • toString

        public void toString​(@NotNull
                             java.lang.StringBuilder buffer)
        Appends a string representation of the value for this ASN.1 element to the provided buffer.
        Parameters:
        buffer - The buffer to which to append the information.