Skip to content
Meshline
SDK 1.1.0 · TypeView source on GitHub

Developer guide · API index

Members on this page

Meshline.Sdk

Meshline.Models.Protocol

GroupCreate Class

Contains a signed group creation document and the initial owner's encryption identity.

public sealed record GroupCreate : Meshline.Models.Protocol.TypedProtocolModel, System.IEquatable<Meshline.Models.Protocol.GroupCreate>

Inheritance System.Object → ProtocolModel → TypedProtocolModel → GroupCreate

Implements System.IEquatable<GroupCreate>

Constructors

GroupCreate() Constructor

Contains a signed group creation document and the initial owner's encryption identity.

public GroupCreate();

Properties

GroupCreate.ClientSecretCommitment Property

The commitment identifying the group client secret.

public string ClientSecretCommitment { get; init; }

Property Value

System.String

GroupCreate.Description Property

The optional human-readable description.

public string? Description { get; init; }

Property Value

System.String

GroupCreate.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>

GroupCreate.GroupId Property

The group's canonical grp_ identifier.

public string GroupId { get; init; }

Property Value

System.String

GroupCreate.InvitePolicy Property

The policy controlling which members can create invitations.

public Meshline.Models.Protocol.GroupInvitePolicy InvitePolicy { get; init; }

Property Value

GroupInvitePolicy

GroupCreate.MemberCapacity Property

The maximum permitted number of group members.

public long MemberCapacity { get; init; }

Property Value

System.Int64

GroupCreate.Name Property

The display name.

public string Name { get; init; }

Property Value

System.String

GroupCreate.Nonce Property

The 16-byte creation nonce from which the group identifier is derived.

public System.Collections.Immutable.ImmutableArray<byte> Nonce { get; init; }

Property Value

System.Collections.Immutable.ImmutableArray<System.Byte>

GroupCreate.Owner Property

The initial owner's account identifier and group-specific encryption public key.

public Meshline.Models.Protocol.GroupMemberKey Owner { get; init; }

Property Value

GroupMemberKey

Methods

GroupCreate.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.

GroupCreate.Validate(NetworkContext) Method

Validates creation metadata, nonce, capacity, owner key, client-secret commitment, 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.