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