Package net.i2p.data

Class Payload

All Implemented Interfaces:
Serializable, 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
See Also:
  • Constructor Details

    • Payload

      public Payload()
  • Method Details

    • 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.
      Throws:
      IllegalArgumentException - if bigger than 64KB
    • getEncryptedData

      public byte[] getEncryptedData()
      the real data
    • setEncryptedData

      public void setEncryptedData(byte[] data)
      the real data
      Throws:
      IllegalArgumentException - if bigger than 64KB
    • 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. Warning - many classes will throw IllegalStateException if data is already set.
      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