HexEncoder (Bouncy Castle Library 1.85 API Specification)
Date: 2026-07-12

org.bouncycastle.util.encoders

## Class HexEncoder

- java.lang.Object
- - org.bouncycastle.util.encoders.HexEncoder

- All Implemented Interfaces:
    Encoder

      public class HexEncoder
      extends java.lang.Object
      implements Encoder

  A streaming Hex encoder.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected byte[]` | `decodingTable`
    `protected byte[]` | `encodingTable`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `HexEncoder()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `decode(byte[] data, int off, int length, java.io.OutputStream out)` decode the Hex encoded byte data writing it to the given output stream, whitespace characters will be ignored.
    `int` | `decode(java.lang.String data, java.io.OutputStream out)` decode the Hex encoded String data writing it to the given output stream, whitespace characters will be ignored.
    `int` | `encode(byte[] inBuf, int inOff, int inLen, byte[] outBuf, int outOff)`
    `int` | `encode(byte[] buf, int off, int len, java.io.OutputStream out)` encode the input data producing a Hex output stream.
    `int` | `getEncodedLength(int inputLength)` Return the expected output length of the encoding.
    `int` | `getMaxDecodedLength(int inputLength)` Return the maximum expected output length of a decoding.
    `protected void` | `initialiseDecodingTable()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### encodingTable

          protected final byte[] encodingTable

    - #### decodingTable

          protected final byte[] decodingTable

  - ### Constructor Detail

    - #### HexEncoder

          public HexEncoder()

  - ### Method Detail

    - #### initialiseDecodingTable

          protected void initialiseDecodingTable()

    - #### encode

          public int encode(byte[] inBuf,
                            int inOff,
                            int inLen,
                            byte[] outBuf,
                            int outOff)
                     throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### getEncodedLength

          public int getEncodedLength(int inputLength)

      Description copied from interface: `Encoder`
      Return the expected output length of the encoding.
      Specified by:
        `getEncodedLength` in interface `Encoder`
      Parameters:
        `inputLength` - the input length of the data.
      Returns:
        the output length of an encoding.

    - #### getMaxDecodedLength

          public int getMaxDecodedLength(int inputLength)

      Description copied from interface: `Encoder`
      Return the maximum expected output length of a decoding. If padding is present the value returned will be greater than the decoded data length.
      Specified by:
        `getMaxDecodedLength` in interface `Encoder`
      Parameters:
        `inputLength` - the input length of the encoded data.
      Returns:
        the upper bound of the output length of a decoding.

    - #### encode

          public int encode(byte[] buf,
                            int off,
                            int len,
                            java.io.OutputStream out)
                     throws java.io.IOException

      encode the input data producing a Hex output stream.
      Specified by:
        `encode` in interface `Encoder`
      Returns:
        the number of bytes produced.
      Throws:
        `java.io.IOException`

    - #### decode

          public int decode(byte[] data,
                            int off,
                            int length,
                            java.io.OutputStream out)
                     throws java.io.IOException

      decode the Hex encoded byte data writing it to the given output stream, whitespace characters will be ignored.
      Specified by:
        `decode` in interface `Encoder`
      Returns:
        the number of bytes produced.
      Throws:
        `java.io.IOException`

    - #### decode

          public int decode(java.lang.String data,
                            java.io.OutputStream out)
                     throws java.io.IOException

      decode the Hex encoded String data writing it to the given output stream, whitespace characters will be ignored.
      Specified by:
        `decode` in interface `Encoder`
      Returns:
        the number of bytes produced.
      Throws:
        `java.io.IOException`