Package net.i2p.data
Class Payload
java.lang.Object
net.i2p.data.DataStructureImpl
net.i2p.data.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 Summary
Constructors Constructor Description Payload()
-
Method Summary
Modifier and Type Method Description boolean
equals(Object object)
byte[]
getEncryptedData()
the real dataint
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 datavoid
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
-
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
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 formattedIOException
- if there was a problem reading the stream
-
writeBytes
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 writtenIOException
- 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
-
hashCode
public int hashCode() -
toString
-