Someone whose SimpleLogin identity is new to the register but who has an
account ("I already have one") names their handle and proves the
account's recovery phrase; the new identity takes the old one's place.
- `simpleLogin.beginMend(attempt, handle)`: the keys wrapped under the
phrase's key, the public keys and a nonce, for the account with that
handle (whatever its case). Only an account with keys and a SimpleLogin
identity is mended, a link it had, as nobody adds SimpleLogin signed
out (D10); a handle nobody has, or any other account's, gets a decoy
from `signInDecoyKey`, the same each time. At most 10 an hour per
handle and 30 per network.
- `simpleLogin.mend(attempt, proof)`: the phrase's proof for `mendLink`,
binding the attempt (`mendLinkDigest`, on both sides), so a proof
relayed from another sign-in links nobody's identity but the device's
own; checked for the waiting identity first, which leaves the proof
unspent. Every session of the account ends, in every service, and the
sign-in stands ten minutes for a change, such as a lost password.
- SimpleLogin needs `SIGN_IN_DECOY_KEY` alone of ADR 0017's three keys
(`signInDecoyKeyOf`); `addInstanceRoutes` stops a server with a
SimpleLogin app and without it (`checkSimpleLoginMending`).
- Members ask the register for both; `RemoteRegister` and the instance
API carry them.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
102 lines
3.5 KiB
Dart
102 lines
3.5 KiB
Dart
/// halkyon_base for a host's own code: its configuration
|
|
/// (`HalkyonBase.configure`), how people authenticate, the account's
|
|
/// deletion and the pruning, email sign-in's helpers, the instance's
|
|
/// basics, people's public profiles and their pages, the instance's register
|
|
/// (ADR 0016), signing in with a password and TOTP and getting back into an
|
|
/// account (ADR 0017), signing in with SimpleLogin and its forwarding page
|
|
/// (ADR 0020), the ways in an operator offers, and the module's models.
|
|
library;
|
|
|
|
export 'src/auth/account.dart';
|
|
export 'src/auth/auth_config.dart';
|
|
export 'src/auth/code_mail.dart';
|
|
export 'src/auth/email.dart';
|
|
export 'src/auth/github.dart';
|
|
export 'src/auth/github_sign_in_endpoint.dart' show gitHubAccountToSignIn;
|
|
export 'src/auth/identified.dart';
|
|
export 'src/auth/offered_ways.dart';
|
|
export 'src/auth/scopes.dart';
|
|
export 'src/common/network.dart';
|
|
export 'src/common/short_code.dart';
|
|
export 'src/generated/protocol.dart' hide Protocol;
|
|
export 'src/halkyon_base.dart';
|
|
export 'src/instance/data_location.dart';
|
|
export 'src/instance/source_code.dart';
|
|
export 'src/password/account_resets.dart'
|
|
show forgetLapsedResets, resetDelay, resetLapsesAfter;
|
|
export 'src/password/authenticators.dart'
|
|
show
|
|
forgetUnconfirmedAuthenticators,
|
|
maxAuthenticators,
|
|
unconfirmedAuthenticatorLifetime;
|
|
export 'src/password/key_proof.dart'
|
|
show
|
|
KeyProofPurpose,
|
|
PasswordProofPurpose,
|
|
authenticatorDigest,
|
|
canonicalInstanceUrl,
|
|
isAccountSignature,
|
|
keyProofMessage,
|
|
mendLinkDigest,
|
|
newKeysPasswordDigest,
|
|
newPasswordDigest,
|
|
newPhraseDigest,
|
|
passwordIdentity,
|
|
publicInstanceUrlOf;
|
|
export 'src/password/password_config.dart';
|
|
export 'src/password/passwords.dart'
|
|
show
|
|
gitHubSignInFreshFor,
|
|
isNewPassword,
|
|
isPasswordSetup,
|
|
newPasswordCosts,
|
|
passwordGroup,
|
|
passwordMethod,
|
|
signInChallengeLifetime,
|
|
signsInWithPassword,
|
|
wrappedKeysLength;
|
|
export 'src/profile/link_verification.dart';
|
|
export 'src/profile/profile_page.dart' show addProfilePageRoute, profilePage;
|
|
export 'src/profile/profile_rules.dart'
|
|
show
|
|
accountDomain,
|
|
avatarPath,
|
|
avatarStorage,
|
|
isHandle,
|
|
maxAvatarBytes,
|
|
operatorAccountDomain,
|
|
profilePageUrl,
|
|
reservedHandles;
|
|
export 'src/profile/profiles.dart';
|
|
export 'src/register/account_register.dart';
|
|
export 'src/register/accounts_mode.dart';
|
|
export 'src/register/deletion_notices.dart'
|
|
show MemberNotifier, deliverDeletionNotices;
|
|
export 'src/register/instance_routes.dart';
|
|
export 'src/register/member_pruning.dart';
|
|
export 'src/register/people.dart' show issueSession;
|
|
export 'src/register/sessions_ended.dart'
|
|
show AccountSessionsEnded, deliverSessionNotices;
|
|
export 'src/simplelogin/handle_suggestion.dart'
|
|
show handleFromName, handlesToTry, suggestable;
|
|
export 'src/simplelogin/simplelogin.dart' show forgetUnfinishedSimpleLogins;
|
|
export 'src/simplelogin/simplelogin_callback.dart'
|
|
show
|
|
addSimpleLoginCallbackRoute,
|
|
simpleLoginCallbackPath,
|
|
simpleLoginReturns;
|
|
export 'src/simplelogin/simplelogin_config.dart';
|
|
export 'src/srp/srp_group.dart';
|
|
export 'src/srp/srp_math.dart' show numberOf, padded;
|
|
export 'src/srp/srp_server.dart'
|
|
show
|
|
SrpAccepted,
|
|
SrpChallenge,
|
|
SrpRefusal,
|
|
SrpRefused,
|
|
SrpVerification,
|
|
srpChallenge,
|
|
srpVerify;
|
|
export 'src/totp/base32.dart';
|
|
export 'src/totp/recovery_codes.dart';
|
|
export 'src/totp/totp.dart';
|