Package net.i2p.client.datagram
Class I2PDatagramDissector
- java.lang.Object
-
- net.i2p.client.datagram.I2PDatagramDissector
-
public final class I2PDatagramDissector extends Object
Class for dissecting I2P repliable datagrams, checking the authenticity of the sender. Note that objects of this class are NOT THREAD SAFE!- Author:
- human
-
-
Constructor Summary
Constructors Constructor Description I2PDatagramDissector()
Crate a new I2P repliable datagram dissector.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Hash
extractHash()
Extract the hash of the payload of an I2P repliable datagram (previously loaded with the loadI2PDatagram() method), without verifying the datagram signature.byte[]
extractPayload()
Extract the payload carried by an I2P repliable datagram (previously loaded with the loadI2PDatagram() method), without verifying the datagram signature.Destination
extractSender()
Extract the sender of an I2P repliable datagram (previously loaded with the loadI2PDatagram() method), without verifying the datagram signature.Hash
getHash()
Extract the hash of the payload of an I2P repliable datagram (previously loaded with the loadI2PDatagram() method), verifying the datagram signature.byte[]
getPayload()
Get the payload carried by an I2P repliable datagram (previously loaded with the loadI2PDatagram() method), verifying the datagram signature.Destination
getSender()
Get the sender of an I2P repliable datagram (previously loaded with the loadI2PDatagram() method), verifying the datagram signature.void
loadI2PDatagram(byte[] dgram)
Load an I2P repliable datagram into the dissector.void
verifySignature()
Verify the signature of this datagram (previously loaded with the loadI2PDatagram() method)
-
-
-
Method Detail
-
loadI2PDatagram
public void loadI2PDatagram(byte[] dgram) throws DataFormatException
Load an I2P repliable datagram into the dissector. Does NOT verify the signature. Format is:- Destination (387+ bytes)
- Signature (40+ bytes, type and length as implied by signing key type in the Destination)
- Payload
- Parameters:
dgram
- non-null I2P repliable datagram to be loaded- Throws:
DataFormatException
- If there's an error in the datagram format
-
getPayload
public byte[] getPayload() throws I2PInvalidDatagramException
Get the payload carried by an I2P repliable datagram (previously loaded with the loadI2PDatagram() method), verifying the datagram signature.- Returns:
- A byte array containing the datagram payload
- Throws:
I2PInvalidDatagramException
- if the signature verification fails
-
getSender
public Destination getSender() throws I2PInvalidDatagramException
Get the sender of an I2P repliable datagram (previously loaded with the loadI2PDatagram() method), verifying the datagram signature.- Returns:
- The Destination of the I2P repliable datagram sender
- Throws:
I2PInvalidDatagramException
- if the signature verification fails
-
getHash
public Hash getHash() throws I2PInvalidDatagramException
Extract the hash of the payload of an I2P repliable datagram (previously loaded with the loadI2PDatagram() method), verifying the datagram signature. As of 0.9.14, for signature types other than DSA_SHA1, this returns null.- Returns:
- The hash of the payload of the I2P repliable datagram
- Throws:
I2PInvalidDatagramException
- if the signature verification fails
-
extractPayload
public byte[] extractPayload()
Extract the payload carried by an I2P repliable datagram (previously loaded with the loadI2PDatagram() method), without verifying the datagram signature.- Returns:
- A byte array containing the datagram payload
-
extractSender
public Destination extractSender()
Extract the sender of an I2P repliable datagram (previously loaded with the loadI2PDatagram() method), without verifying the datagram signature.- Returns:
- The Destination of the I2P repliable datagram sender
-
extractHash
public Hash extractHash()
Extract the hash of the payload of an I2P repliable datagram (previously loaded with the loadI2PDatagram() method), without verifying the datagram signature. As of 0.9.14, for signature types other than DSA_SHA1, this returns null.- Returns:
- The hash of the payload of the I2P repliable datagram
-
verifySignature
public void verifySignature() throws I2PInvalidDatagramException
Verify the signature of this datagram (previously loaded with the loadI2PDatagram() method)- Throws:
I2PInvalidDatagramException
- if the signature is invalid
-
-