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:
    Serialized Form
    • 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.
        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)
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object