Argon2Context.fromEncoded constructor

Argon2Context.fromEncoded(
  1. CryptData data, {
  2. List<int>? key,
  3. List<int>? personalization,
})

Creates an Argon2Context instance from an encoded PHC-compliant string.

The encoded string may look like this: $argon2i$v=19$m=16,t=2,p=1$c29tZSBzYWx0$u1eU6mZFG4/OOoTdAtM5SQ

Implementation

factory Argon2Context.fromEncoded(
  CryptData data, {
  List<int>? key,
  List<int>? personalization,
}) {
  var type = _nameToType(data.id);
  var version = _valueToVersion(int.tryParse(data.version ?? '0') ?? 0);
  if (data.params == null) {
    throw ArgumentError('No paramters');
  }
  var m = data.params!['m'];
  if (m == null) {
    throw ArgumentError('Missing parameter: m');
  }
  var t = data.params!['t'];
  if (t == null) {
    throw ArgumentError('Missing parameter: t');
  }
  var p = data.params!['p'];
  if (p == null) {
    throw ArgumentError('Missing parameter: p');
  }
  return Argon2Context(
    type: type,
    version: version,
    iterations: int.parse(t),
    parallelism: int.parse(p),
    memorySizeKB: int.parse(m),
    salt: data.saltBytes(),
    hashLength: data.hashBytes()?.lengthInBytes,
    key: key,
    personalization: personalization,
  );
}