preAuthenticationEncoding static method

Uint8List preAuthenticationEncoding({
  1. required Header header,
  2. required Payload payload,
  3. required List<int>? footer,
  4. List<int>? implicit,
})

Implementation

static Uint8List preAuthenticationEncoding({
  required Header header,
  required Payload payload,
  required List<int>? footer,
  List<int>? implicit,
}) {
  final headerString = [header.version.name, header.purpose.name].join('.');
  final headerComponent = Uint8List.fromList(utf8.encode(headerString));

  // Формируем payload данные
  final payloadComponent = switch (payload) {
    PayloadLocal() => Uint8List.fromList(payload.nonce?.bytes ?? []),
    PayloadPublic() => Uint8List.fromList(payload.message),
    _ => Uint8List(0),
  };

  final footerComponent = Uint8List.fromList(footer ?? []);
  final implicitComponent = Uint8List.fromList(implicit ?? []);

  final result = pae([
    headerComponent,
    payloadComponent,
    footerComponent,
    implicitComponent,
  ]);

  return result;
}