derive method

List<int> derive({
  1. List<int> info = const [],
})

Derives the final output keying material (OKM) using HKDF-Expand

Implementation

List<int> derive({List<int> info = const []}) {
  int iteration = (length / _hmac.getDigestLength).ceil();
  List<int> okm = [];
  List<int> previousBlock = [];
  for (int i = 1; i <= iteration; i++) {
    final data = <int>[];
    data.addAll(previousBlock);
    data.addAll([...this.info, ...info]);
    data.add(i);
    previousBlock = _hash(data);
    okm.addAll(previousBlock);
  }

  return okm.sublist(0, length);
}