deriveSaltedPasswordAsync static method
Future<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,
Implementation
static Future<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,
}) async {
final ownedDeriver = keyDeriver == null;
final deriver = keyDeriver ?? ScramKeyDeriver();
try {
final task = deriver.start(
ScramKeyDerivationRequest(
password: Uint8List.fromList(
CraAuthentication.encodeString(
secret,
stringEncoding: stringEncoding,
),
),
salt: Uint8List.fromList(base64.decode(salt)),
kdf: kdf,
iterations: iterations,
memory: memory ?? 100,
keyLength: defaultKeyLength,
),
timeout: timeout,
);
return await task.result;
} finally {
if (ownedDeriver) await deriver.dispose();
}
}