preAuthenticationEncoding static method

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

Implementation

static Uint8List preAuthenticationEncoding({
  required Header header,
  required Payload payload,
  List<int>? footer,
  List<int>? implicit,
}) {
  final components = [
    Uint8List.fromList(header.bytes),
  ];
  if (payload is PayloadLocal) {
    final nonce = payload.nonce;
    if (nonce != null) {
      components.add(Uint8List.fromList(nonce.bytes));
    }
    final secretBox = payload.secretBox;
    if (secretBox != null) {
      components.add(Uint8List.fromList(secretBox.cipherText));
    }
  } else if (payload is PayloadPublic) {
    components.add(Uint8List.fromList(payload.message));
  }
  if (footer != null) {
    components.add(Uint8List.fromList(footer));
  } else {
    components.add(Uint8List(0));
  }
  if (implicit != null) {
    components.add(Uint8List.fromList(implicit));
  }
  return _preAuthenticationEncoding(components);
}