Class DEREncoder

java.lang.Object
org.wildfly.security.asn1.DEREncoder
All Implemented Interfaces:
Flushable, ASN1Encoder

public class DEREncoder extends Object implements ASN1Encoder
A class used to encode ASN.1 values using the Distinguished Encoding Rules (DER), as specified in ITU-T X.690.
Author:
Farah Juma
  • Constructor Details

    • DEREncoder

      public DEREncoder()
      Create a DER encoder.
  • Method Details

    • startSequence

      public void startSequence()
      Description copied from interface: ASN1Encoder
      Start encoding an ASN.1 sequence. All subsequent encode operations will be part of this sequence until ASN1Encoder.endSequence() is called.
      Specified by:
      startSequence in interface ASN1Encoder
    • startSet

      public void startSet()
      Description copied from interface: ASN1Encoder
      Start encoding an ASN.1 set. All subsequent encode operations will be part of this set until ASN1Encoder.endSet() is called.
      Specified by:
      startSet in interface ASN1Encoder
    • startSetOf

      public void startSetOf()
      Description copied from interface: ASN1Encoder
      Start encoding an ASN.1 "set of" element. All subsequent encode operations will be part of this set until ASN1Encoder.endSetOf() is called.
      Specified by:
      startSetOf in interface ASN1Encoder
    • startExplicit

      public void startExplicit(int number)
      Description copied from interface: ASN1Encoder
      Start encoding an ASN.1 explicitly tagged element. All subsequent encode operations will be part of this explicitly tagged element until ASN1Encoder.endExplicit() is called.
      Specified by:
      startExplicit in interface ASN1Encoder
      Parameters:
      number - the tag number for the explicit, context-specific tag
    • startExplicit

      public void startExplicit(int clazz, int number)
      Description copied from interface: ASN1Encoder
      Start encoding an ASN.1 explicitly tagged element. All subsequent encode operations will be part of this explicitly tagged element until ASN1Encoder.endExplicit() is called.
      Specified by:
      startExplicit in interface ASN1Encoder
      Parameters:
      clazz - the class for the explicit tag
      number - the tag number for the explicit tag
    • endSequence

      public void endSequence() throws IllegalStateException
      Description copied from interface: ASN1Encoder
      Finish encoding an ASN.1 sequence.
      Specified by:
      endSequence in interface ASN1Encoder
      Throws:
      IllegalStateException - if there is no sequence to end
    • endExplicit

      public void endExplicit() throws IllegalStateException
      Description copied from interface: ASN1Encoder
      Finish encoding an ASN.1 explicitly tagged element.
      Specified by:
      endExplicit in interface ASN1Encoder
      Throws:
      IllegalStateException - if there is no explicitly tagged element to end
    • endSet

      public void endSet() throws IllegalStateException
      Description copied from interface: ASN1Encoder
      Finish encoding an ASN.1 set.
      Specified by:
      endSet in interface ASN1Encoder
      Throws:
      IllegalStateException - if there is no set to end
    • endSetOf

      public void endSetOf() throws IllegalStateException
      Description copied from interface: ASN1Encoder
      Finish encoding an ASN.1 "set of" element.
      Specified by:
      endSetOf in interface ASN1Encoder
      Throws:
      IllegalStateException - if there is no set to end
    • encodeOctetString

      public void encodeOctetString(String str)
      Description copied from interface: ASN1Encoder
      Encode an ASN.1 octet string value.
      Specified by:
      encodeOctetString in interface ASN1Encoder
      Parameters:
      str - the octet string to encode
    • encodeOctetString

      public void encodeOctetString(byte[] str)
      Description copied from interface: ASN1Encoder
      Encode an ASN.1 octet string value.
      Specified by:
      encodeOctetString in interface ASN1Encoder
      Parameters:
      str - the byte array containing the octet string to encode
    • encodeIA5String

      public void encodeIA5String(String str)
      Description copied from interface: ASN1Encoder
      Encode an ASN.1 IA5 string value.
      Specified by:
      encodeIA5String in interface ASN1Encoder
      Parameters:
      str - the IA5 string to encode
    • encodeIA5String

      public void encodeIA5String(byte[] str)
      Description copied from interface: ASN1Encoder
      Encode an ASN.1 IA5 string value.
      Specified by:
      encodeIA5String in interface ASN1Encoder
      Parameters:
      str - the byte array containing IA5 string to encode
    • encodePrintableString

      public void encodePrintableString(byte[] str)
      Description copied from interface: ASN1Encoder
      Encode an ASN.1 printable string value.
      Specified by:
      encodePrintableString in interface ASN1Encoder
      Parameters:
      str - the byte array containing the printable string to encode
    • encodePrintableString

      public void encodePrintableString(String str)
      Description copied from interface: ASN1Encoder
      Encode an ASN.1 printable string value.
      Specified by:
      encodePrintableString in interface ASN1Encoder
      Parameters:
      str - the printable string to encode
    • encodeUTF8String

      public void encodeUTF8String(String str)
      Description copied from interface: ASN1Encoder
      Encode an ASN.1 UTF8String string value.
      Specified by:
      encodeUTF8String in interface ASN1Encoder
      Parameters:
      str - the string to encode
    • encodeBMPString

      public void encodeBMPString(String str)
      Description copied from interface: ASN1Encoder
      Encode an ASN.1 BMPString string value.
      Specified by:
      encodeBMPString in interface ASN1Encoder
      Parameters:
      str - the string to encode
    • encodeUniversalString

      public void encodeUniversalString(String str)
      Description copied from interface: ASN1Encoder
      Encode an ASN.1 UniversalString string value.
      Specified by:
      encodeUniversalString in interface ASN1Encoder
      Parameters:
      str - the string to encode
    • encodeBitString

      public void encodeBitString(byte[] str)
      Description copied from interface: ASN1Encoder
      Encode an ASN.1 bit string value.
      Specified by:
      encodeBitString in interface ASN1Encoder
      Parameters:
      str - the byte array containing the bit string to encode (all bits in the bit string will be used)
    • encodeBitString

      public void encodeBitString(byte[] str, int numUnusedBits)
      Description copied from interface: ASN1Encoder
      Encode an ASN.1 bit string value.
      Specified by:
      encodeBitString in interface ASN1Encoder
      Parameters:
      str - the byte array containing the bit string to encode
      numUnusedBits - the number of unused bits in the byte array
    • encodeBitString

      public void encodeBitString(EnumSet<?> enumSet)
      Description copied from interface: ASN1Encoder
      Encode an enum set as an ASN.1 bit string, with each ordinal value of the set representing a single bit.
      Specified by:
      encodeBitString in interface ASN1Encoder
      Parameters:
      enumSet - the enum set (must not be null)
    • encodeBitString

      public void encodeBitString(BitSet bitSet)
      Description copied from interface: ASN1Encoder
      Encode an ASN.1 bit string value.
      Specified by:
      encodeBitString in interface ASN1Encoder
      Parameters:
      bitSet - the bit set (must not be null)
    • encodeBitString

      public void encodeBitString(String binaryStr)
      Description copied from interface: ASN1Encoder
      Encode an ASN.1 bit string value.
      Specified by:
      encodeBitString in interface ASN1Encoder
      Parameters:
      binaryStr - the bit string to encode, as a binary string
    • encodeBitString

      public void encodeBitString(BigInteger integer)
      Description copied from interface: ASN1Encoder
      Encode an ASN.1 bit string where the value represents the binary form of the given integer.
      Specified by:
      encodeBitString in interface ASN1Encoder
      Parameters:
      integer - the integer to encode as a binary string
    • encodeGeneralizedTime

      public void encodeGeneralizedTime(ZonedDateTime time)
      Description copied from interface: ASN1Encoder
      Encode an ASN.1 GeneralizedTime type.
      Specified by:
      encodeGeneralizedTime in interface ASN1Encoder
      Parameters:
      time - the time to encode (must not be null)
    • encodeObjectIdentifier

      public void encodeObjectIdentifier(String objectIdentifier) throws ASN1Exception
      Description copied from interface: ASN1Encoder
      Encode an ASN.1 object identifier value.
      Specified by:
      encodeObjectIdentifier in interface ASN1Encoder
      Parameters:
      objectIdentifier - the object identifier to encode
      Throws:
      ASN1Exception - if the given object identifier is invalid
    • encodeNull

      public void encodeNull()
      Description copied from interface: ASN1Encoder
      Encode an ASN.1 null value.
      Specified by:
      encodeNull in interface ASN1Encoder
    • encodeImplicit

      public void encodeImplicit(int number)
      Description copied from interface: ASN1Encoder
      Indicate that the next encode operation should encode an ASN.1 value using the given implicit, context-specific tag.
      Specified by:
      encodeImplicit in interface ASN1Encoder
      Parameters:
      number - the tag number for the implicit, context-specific tag
    • encodeImplicit

      public void encodeImplicit(int clazz, int number)
      Description copied from interface: ASN1Encoder
      Indicate that the next encode operation should encode an ASN.1 value using the given implicit tag.
      Specified by:
      encodeImplicit in interface ASN1Encoder
      Parameters:
      clazz - the class for the implicit tag
      number - the tag number for the implicit tag
    • encodeBoolean

      public void encodeBoolean(boolean value)
      Description copied from interface: ASN1Encoder
      Encode an ASN.1 boolean value.
      Specified by:
      encodeBoolean in interface ASN1Encoder
      Parameters:
      value - the boolean to encode
    • encodeInteger

      public void encodeInteger(BigInteger integer)
      Description copied from interface: ASN1Encoder
      Encode an ASN.1 integer value.
      Specified by:
      encodeInteger in interface ASN1Encoder
      Parameters:
      integer - the integer to encode
    • writeEncoded

      public void writeEncoded(byte[] encoded)
      Description copied from interface: ASN1Encoder
      Write an already encoded ASN.1 value to the target destination.
      Specified by:
      writeEncoded in interface ASN1Encoder
      Parameters:
      encoded - the encoded ASN.1 value to write
    • flush

      public void flush()
      Description copied from interface: ASN1Encoder
      Flush the encoder, writing any saved ASN.1 encoded values to the target destination. Any unfinished sequences or sets will be ended.
      Specified by:
      flush in interface ASN1Encoder
      Specified by:
      flush in interface Flushable
    • getEncoded

      public byte[] getEncoded()
      Description copied from interface: ASN1Encoder
      Get the ASN.1 encoded bytes.
      Specified by:
      getEncoded in interface ASN1Encoder
      Returns:
      the ASN.1 encoded bytes