Members on this page
Meshline.Sdk
Meshline.Models.Protocol
MessageEnvelope Class
Contains a signed encrypted account message with sender, recipient, and creation time.
public sealed record MessageEnvelope : Meshline.Models.Protocol.TypedProtocolModel, System.IEquatable<Meshline.Models.Protocol.MessageEnvelope>
Inheritance System.Object → ProtocolModel → TypedProtocolModel → MessageEnvelope
Implements System.IEquatable<MessageEnvelope>
Constructors
MessageEnvelope() Constructor
Contains a signed encrypted account message with sender, recipient, and creation time.
public MessageEnvelope();
Properties
MessageEnvelope.CreatedAt Property
The creation time, in Unix seconds.
public long CreatedAt { get; init; }
Property Value
MessageEnvelope.DeviceSignature Property
The device signature over the model's device signing input.
public System.Collections.Immutable.ImmutableArray<byte> DeviceSignature { get; init; }
Property Value
System.Collections.Immutable.ImmutableArray<System.Byte>
MessageEnvelope.From Property
The CAIP-10 account identifier of the message sender.
public string From { get; init; }
Property Value
MessageEnvelope.FromDeviceId Property
The identifier of the device that signed the message.
public string FromDeviceId { get; init; }
Property Value
MessageEnvelope.MessageId Property
The message's canonical msg_ identifier.
public string MessageId { get; init; }
Property Value
MessageEnvelope.Payload Property
The encrypted account-message content.
public Meshline.Models.Protocol.EncryptedPayload Payload { get; init; }
Property Value
MessageEnvelope.To Property
The CAIP-10 account identifier of the message recipient.
public string To { get; init; }
Property Value
Methods
MessageEnvelope.GetSigningInput(NetworkContext) Method
Builds the canonical, network-bound bytes used to sign or verify this document.
public byte[] GetSigningInput(Meshline.Models.NetworkContext context);
Parameters
context NetworkContext
The network context bound into identifiers or signing input.
Returns
System.Byte[]
The canonical UTF-8 signing input bound to the network context, with the applicable signature fields omitted.
Exceptions
System.Text.Json.JsonException
The signing payload cannot be represented as canonical protocol JSON, contains conflicting extension fields, or already contains a root $context property.
MessageEnvelope.Validate(NetworkContext) Method
Validates message and account identifiers, creation time, encrypted payload, size, and signature length.
public override Meshline.Validation.ProtocolViolation? Validate(Meshline.Models.NetworkContext? context=null);
Parameters
context NetworkContext
The optional network context passed to nested validation when needed; field-only validation may ignore it.
Returns
ProtocolViolation
The first detected protocol violation, or null if the implemented checks pass.
Remarks
These checks do not verify the external device signature or establish current signer authorization. Verify the signature and the applicable device-state or resource authorization evidence separately.