Class BasicSignedBabelMessageSerializer<T extends BabelMessage>

java.lang.Object
pt.unl.fct.di.novasys.babel2.channels.BasicSignedBabelMessageSerializer<T>
Type Parameters:
T - the type of the inner BabelMessage
All Implemented Interfaces:
BabelNetworkMessageSerializer<SignedBabelMessage<T>>, BabelNetworkSerializer<SignedBabelMessage<T>>
Direct Known Subclasses:
FullSignedBabelMessageSerializer

public class BasicSignedBabelMessageSerializer<T extends BabelMessage> extends Object implements BabelNetworkMessageSerializer<SignedBabelMessage<T>>
Serializer and verifier for SignedBabelMessage instances wrapping a message of type T.

During deserialization, this serializer reads a 4-byte length prefix, extracts a slice containing the inner message bytes, deserializes the sender BabelNode (which must implement PublicKeyBabelNode), verifies the signature using the sender's public key, and deserializes the inner message payload using innerSerializer.

During serialization, this basic serializer can relay or forward already-signed messages (possessing both a sender and a signature). Attempting to serialize an unsigned message throws UnsupportedOperationException; use FullSignedBabelMessageSerializer when signing outgoing messages with a local private key.