Table of Contents

Namespace FishMMO.Auth.Core

Namespaces

FishMMO.Auth.Core.Collections

Structs

AccountVerifyDto

DTO for account verification using a verification code. Mirrors AccountVerifyBroadcast.

ClientAuthResultDto

DTO for communicating the result of client authentication. Mirrors ClientAuthResultBroadcast.

ClientHandshakeDto

DTO for client handshake initiation, containing the ephemeral X25519 public key for ECDH key agreement and supported protocol version range. Mirrors ClientHandshake.

CreateAccountDto

Transport-agnostic DTOs mirroring the FishNet authentication broadcast structs. These contain no engine or networking framework dependencies.

ServerHandshakeDto

DTO for server handshake response, containing the server's X25519 public key for ECDH key agreement and the negotiated protocol version. Mirrors ServerHandshake.

SrpProofDto

DTO for SRP proof step, containing the proof value. Mirrors SrpProofBroadcast.

SrpSuccessDto

DTO for successful SRP authentication, containing proof and result. Mirrors SrpSuccessBroadcast.

SrpVerifyDto

DTO for SRP verify step, containing salt/identifier and public ephemeral value. Mirrors SrpVerifyRequestBroadcast.

TokenAuthDto

DTO for token-based authentication with a World or Scene server. Mirrors TokenAuthBroadcast.

TwoFactorSetupDto

DTO for two-factor setup data sent after account creation. Mirrors TwoFactorSetupBroadcast.

TwoFactorVerifyDto

DTO for submitting a TOTP code during login when two-factor authentication is required. Mirrors TwoFactorVerifyBroadcast.

Interfaces

IAccountManager<TConnection>

Base interface for managing account and connection data shared by all server types. Contains encryption, account lookup, authentication state machine, and lifecycle methods common to both SRP-based (Login) and token-based (World/Scene) authentication flows.

ISrpAccountManager<TConnection>

Extended account manager interface for SRP-based authentication on the LoginServer. Adds SRP-specific connection account creation with SRP data, and periodic sweep of stale unauthenticated connections. Auth state machine methods (TryAdvanceAuthState, HasAuthState) live on the base IAccountManager<TConnection> interface.

ITokenAccountManager<TConnection>

Extended account manager interface for token-based authentication on World and Scene servers. Adds a simplified connection account creation method that does not require SRP state.

Enums

AccessLevel

Account and character access levels. Values must stay in sync with FishMMO.Database.Data.Enums.AccessLevel.

WARNING: If you add, remove, or reorder a value here you MUST update the corresponding enum in the database layer and run a migration. Consider adding a unit test that asserts every member of this enum matches the database enum (e.g. via a SELECT DISTINCT query or a checked-in mapping file) so the mismatch is caught at CI time rather than at runtime.

AuthState

Unified authentication state for all server types. Replaces the former SrpState enum and implicit in-flight flags with a single atomic enum that tracks the full connection lifecycle.

ClientAuthenticationResult

Enum representing possible outcomes of client authentication attempts. Used to communicate authentication status and errors to the client.