## 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
`Payload()`

Method Summary
`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`