Package net.i2p.client.datagram
Class I2PDatagramDissector
java.lang.Object
net.i2p.client.datagram.I2PDatagramDissector
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
-
Method Summary
Modifier and TypeMethodDescriptionExtract the hash of the payload of an I2P repliable datagram (previously loaded with the loadI2PDatagram() method), without verifying the datagram signature.byte[]
Extract the payload carried by an I2P repliable datagram (previously loaded with the loadI2PDatagram() method), without verifying the datagram signature.Extract the sender of an I2P repliable datagram (previously loaded with the loadI2PDatagram() method), without verifying the datagram signature.getHash()
Extract the hash of the payload of an I2P repliable datagram (previously loaded with the loadI2PDatagram() method), verifying the datagram signature.byte[]
Get the payload carried by an I2P repliable datagram (previously loaded with the loadI2PDatagram() method), verifying the datagram signature.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
Verify the signature of this datagram (previously loaded with the loadI2PDatagram() method)
-
Constructor Details
-
I2PDatagramDissector
public I2PDatagramDissector()Crate a new I2P repliable datagram dissector.
-
-
Method Details
-
loadI2PDatagram
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
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
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
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
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
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
Verify the signature of this datagram (previously loaded with the loadI2PDatagram() method)- Throws:
I2PInvalidDatagramException
- if the signature is invalid
-