Juvix imports
module arch.node.engines.identity_management_messages;
import prelude open;
import arch.node.types.identities open;
Identity Management Messages¶
Message interface¶
MsgIdentityManagementGenerateIdentityRequest RequestGenerateIdentity¶
type RequestGenerateIdentity :=
  mkRequestGenerateIdentity@{
    backend : Backend;
    params : IDParams;
    capabilities : Capabilities;
  };
A RequestGenerateIdentity instructs the Identity Management Engine to generate a new identity using the specified backend, parameters, and capabilities.
Arguments
- backend:
- The backend to use for identity generation.
- params:
- Parameters to pass to the backend.
- capabilities:
- Capabilities to request (e.g., commitment, decryption, or both).
MsgIdentityManagementResponse ResponseGenerateIdentity¶
type ResponseGenerateIdentity :=
  mkResponseGenerateIdentity@{
    commitmentEngine : Option EngineID;
    decryptionEngine : Option EngineID;
    externalIdentity : EngineID;
    err : Option String;
  };
A ResponseGenerateIdentity provides the handles to the decryption and commitment engine instances for the newly generated identity, or an error if a failure occurred.
Arguments
- commitmentEngine:
- Reference to the newly instantiated commitment engine.
- decryptionEngine:
- Reference to the newly instantiated decryption engine.
- externalIdentity:
- The external identity of the newly created identity.
- err:
- An error message if identity generation failed.
MsgIdentityManagementConnectIdentityRequest RequestConnectIdentity¶
type RequestConnectIdentity :=
  mkRequestConnectIdentity@{
    externalIdentity : EngineID;
    backend : Backend;
    capabilities : Capabilities;
  };
A RequestConnectIdentity instructs the Identity Management Engine to connect to an existing identity using the specified backend.
Arguments
- externalIdentity:
- The external identity to connect.
- backend:
- The backend to use for the connection.
- capabilities:
- Capabilities to request (e.g., commitment, decryption, or both).
MsgIdentityManagementConnectIdentityResponse ResponseConnectIdentity¶
type ResponseConnectIdentity :=
  mkConnectIdentityResponse@{
    commitmentEngine : Option EngineID;
    decryptionEngine : Option EngineID;
    err : Option String;
  };
A ResponseConnectIdentity provides the handles to the decryption and commitment engine instances for the connected identity, or an error if a failure occurred.
Arguments
- commitmentEngine:
- Reference to the newly connected commitment engine.
- decryptionEngine:
- Reference to the newly connected decryption engine.
- err:
- An error message if identity connection failed.
MsgIdentityManagementDeleteIdentityRequest RequestDeleteIdentity¶
type RequestDeleteIdentity :=
  mkRequestDeleteIdentity@{
    externalIdentity : EngineID;
    backend : Backend;
  };
A RequestDeleteIdentity instructs the Identity Management Engine to delete an existing identity using the specified backend.
Arguments
- externalIdentity:
- The external identity to delete.
- backend:
- The backend to use for deletion.
MsgIdentityManagementDeleteIdentityResponse ResponseDeleteIdentity¶
type ResponseDeleteIdentity :=
  mkResponseDeleteIdentity@{
    err : Option String;
  };
A ResponseDeleteIdentity provides the response from an attempt to delete an identity.
Arguments
- err:
- An error message if identity deletion failed.
IdentityManagementMsg¶
type IdentityManagementMsg :=
  | MsgIdentityManagementGenerateIdentityRequest RequestGenerateIdentity
  | MsgIdentityManagementGenerateIdentityResponse ResponseGenerateIdentity
  | MsgIdentityManagementConnectIdentityRequest RequestConnectIdentity
  | MsgIdentityManagementConnectIdentityResponse ResponseConnectIdentity
  | MsgIdentityManagementDeleteIdentityRequest RequestDeleteIdentity
  | MsgIdentityManagementDeleteIdentityResponse ResponseDeleteIdentity;
Message sequence diagrams¶
Generating an Identity¶
sequenceDiagram
    participant Client
    participant IdentityManagementEngine
    participant CommitmentEngine
    participant DecryptionEngine
    Client->>IdentityManagementEngine: RequestGenerateIdentity
    Note over IdentityManagementEngine: Create new identity
    IdentityManagementEngine->>CommitmentEngine: Spawn (if requested)
    IdentityManagementEngine->>DecryptionEngine: Spawn (if requested)
    IdentityManagementEngine->>Client: ResponseGenerateIdentityConnecting to an Existing Identity¶
sequenceDiagram
    participant Client
    participant IdentityManagementEngine
    Client->>IdentityManagementEngine: RequestConnectIdentity
    Note over IdentityManagementEngine: Check external identity
    Note over IdentityManagementEngine: Verify capabilities
    Note over IdentityManagementEngine: Copy engine references
    IdentityManagementEngine->>Client: ResponseConnectIdentityDeleting an Identity¶
sequenceDiagram
    participant Client
    participant IdentityManagementEngine
    Client->>IdentityManagementEngine: RequestDeleteIdentity
    Note over IdentityManagementEngine: Check if identity exists
    Note over IdentityManagementEngine: Delete identity if exists
    IdentityManagementEngine->>Client: ResponseDeleteIdentity