net.i2p.data

## Class Payload

- java.lang.Object
- - net.i2p.data.DataStructureImpl
  - - net.i2p.data.Payload

- All Implemented Interfaces:
    DataStructure

      public class Payload
      extends DataStructureImpl

  Defines the actual payload of a message being delivered, including the standard encryption wrapping, as defined by the I2P data structure spec. This is used mostly in I2CP, where we used to do end-to-end encryption. Since we don't any more, you probably just want to use the get/set EncryptedData methods.
  Author:
    jrandom

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Payload()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(Object object)`
    `byte[]` | `getEncryptedData()` the real data
    `int` | `getSize()`
    `byte[]` | `getUnencryptedData()` Retrieve the unencrypted body of the message.
    `int` | `hashCode()`
    `void` | `readBytes(InputStream in)` Load up the current object with data from the given stream.
    `void` | `setEncryptedData(byte[] data)` the real data
    `void` | `setUnencryptedData(byte[] data)` Populate the message body with data.
    `String` | `toString()`
    `int` | `writeBytes(byte[] target, int offset)`
    `void` | `writeBytes(OutputStream out)` Write out the data structure to the stream, using the format defined in the I2P data structure specification.

    - ### Methods inherited from class net.i2p.data.DataStructureImpl

      `calculateHash, fromBase64, fromByteArray, read, toBase64, toByteArray`

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

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### Payload

          public Payload()

  - ### Method Detail

    - #### getUnencryptedData

          public byte[] getUnencryptedData()

      Retrieve the unencrypted body of the message. Deprecated. Unless you are doing encryption, use getEncryptedData() instead.
      Returns:
        body of the message, or null if the message has either not been decrypted yet or if the hash is not correct

    - #### setUnencryptedData

          public void setUnencryptedData(byte[] data)

      Populate the message body with data. This does not automatically encrypt yet. Deprecated. Unless you are doing encryption, use setEncryptedData() instead.

    - #### getEncryptedData

          public byte[] getEncryptedData()

      the real data

    - #### setEncryptedData

          public void setEncryptedData(byte[] data)

      the real data

    - #### getSize

          public int getSize()

    - #### readBytes

          public void readBytes(InputStream in)
                         throws DataFormatException,
                                IOException

      Description copied from interface: `DataStructure`
      Load up the current object with data from the given stream. Data loaded this way must match the I2P data structure specification.
      Parameters:
        `in` - stream to read from
      Throws:
        `DataFormatException` - if the data is improperly formatted
        `IOException` - if there was a problem reading the stream

    - #### writeBytes

          public void writeBytes(OutputStream out)
                          throws DataFormatException,
                                 IOException

      Description copied from interface: `DataStructure`
      Write out the data structure to the stream, using the format defined in the I2P data structure specification.
      Parameters:
        `out` - stream to write to
      Throws:
        `DataFormatException` - if the data was incomplete or not yet ready to be written
        `IOException` - if there was a problem writing to the stream

    - #### writeBytes

          public int writeBytes(byte[] target,
                       int offset)

      Returns:
        the written length (NOT the new offset)

    - #### equals

          public boolean equals(Object object)

      Overrides:
        `equals` in class `Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`