net.i2p.data
Class Payload

java.lang.Object
  extended by net.i2p.data.DataStructureImpl
      extended by 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