ScramAuthentication class
WAMP-SCRAM authentication with asynchronous password-key derivation.
- Inheritance
-
- Object
- AbstractAuthentication
- ScramAuthentication
Constructors
- ScramAuthentication(String secret, {Duration? challengeTimeout, Duration derivationTimeout = const Duration(seconds: 30), bool reuseClientKey = false, ScramKeyDeriver? keyDeriver, AuthenticationStringEncoding stringEncoding = AuthenticationStringEncoding.utf8})
- ScramAuthentication.fromClientKey(Uint8List clientKey, {required Uint8List serverKey, required ScramKeyCacheBinding binding, Duration? challengeTimeout, Duration derivationTimeout = const Duration(seconds: 30), ScramKeyDeriver? keyDeriver})
Properties
- authid → String?
-
no setter
- challengeTimeout → Duration
-
no setter
-
clientKey
→ Future<
Uint8List> -
no setter
- hashCode → int
-
The hash code for this object.
no setterinherited
- helloNonce → String?
-
no setter
-
onChallenge
→ Stream<
Extra> -
When the challenge starts the stream will provide the current
Extrain case the client needs some additional information to challenge the server.no setteroverride - runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- secret → String?
-
no setter
- stringEncoding → AuthenticationStringEncoding
-
final
Methods
-
cancelPendingChallenge(
) → Future< void> -
Cancels work associated with the current authentication attempt.
override
-
challenge(
Extra extra) → Future< Authenticate> -
Called when the router sends a challenge (CHALLENGE frame).
override
-
createSignature(
String authId, String helloNonce, Extra extra, HashMap< String, Object?> authExtra) → String - Synchronous compatibility helper. Argon2id13 deliberately throws on web.
-
dispose(
) → Future< void> -
Releases authentication-method resources.
override
-
getName(
) → String -
Authentication method name used in HELLO (e.g. 'ticket').
override
-
hello(
String? realm, Details details) → Future< void> -
This method is called to modify the hello
detailsfor a givenrealm.override -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
-
verifyFinal(
{required String? authId, required String? authMethod, required Map< String, Object?> ? authExtra}) → Future<void> -
Verifies authentication data returned by the router before session use.
override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
createAuthMessage(
String authId, String helloNonce, HashMap authExtra, Extra challengeExtra) → String -
createServerSignature(
{required Uint8List serverKey, required String authMessage, AuthenticationStringEncoding stringEncoding = AuthenticationStringEncoding.utf8}) → String -
deriveSaltedPassword(
{required String secret, required String salt, required String kdf, required int iterations, int? memory, AuthenticationStringEncoding stringEncoding = AuthenticationStringEncoding.utf8}) → Uint8List -
deriveSaltedPasswordAsync(
{required String secret, required String salt, required String kdf, required int iterations, int? memory, Duration timeout = const Duration(seconds: 30), ScramKeyDeriver? keyDeriver, AuthenticationStringEncoding stringEncoding = AuthenticationStringEncoding.utf8}) → Future< Uint8List> -
deriveServerSecrets(
{required String secret, required String salt, String kdf = kdfPbkdf2, int iterations = CraAuthentication.defaultIterations, int? memory, AuthenticationStringEncoding stringEncoding = AuthenticationStringEncoding.utf8}) → ScramServerSecrets -
deriveServerSecretsAsync(
{required String secret, required String salt, String kdf = kdfPbkdf2, int iterations = CraAuthentication.defaultIterations, int? memory, Duration timeout = const Duration(seconds: 30), ScramKeyDeriver? keyDeriver, AuthenticationStringEncoding stringEncoding = AuthenticationStringEncoding.utf8}) → Future< ScramServerSecrets> -
generateProof(
{required String secret, required String authId, required String clientNonce, required Map< String, Object?> authExtra, required Extra challenge, AuthenticationStringEncoding stringEncoding = AuthenticationStringEncoding.utf8}) → String -
generateProofAsync(
{required String secret, required String authId, required String clientNonce, required Map< String, Object?> authExtra, required Extra challenge, ScramKeyDeriver? keyDeriver, Duration timeout = const Duration(seconds: 30), AuthenticationStringEncoding stringEncoding = AuthenticationStringEncoding.utf8}) → Future<String> -
verifyClientProof(
List< int> clientProof, Uint8List storedKey, String authMessage, {AuthenticationStringEncoding stringEncoding = AuthenticationStringEncoding.utf8}) → bool -
verifySignature(
{required String secret, required String authId, required String clientNonce, required Map< String, Object?> authExtra, required Extra challenge, required String clientSignature, AuthenticationStringEncoding stringEncoding = AuthenticationStringEncoding.utf8}) → bool -
verifySignatureAsync(
{required String secret, required String authId, required String clientNonce, required Map< String, Object?> authExtra, required Extra challenge, required String clientSignature, ScramKeyDeriver? keyDeriver, Duration timeout = const Duration(seconds: 30), AuthenticationStringEncoding stringEncoding = AuthenticationStringEncoding.utf8}) → Future<bool>