encryptBound method

Future<Uint8List> encryptBound(
  1. Uint8List payload,
  2. PayloadBinding binding,
  3. PeerId recipient, {
  4. Uint8List? nonce,
})

Seals payload for recipient, tied to binding. This is what the client sends. A caller-supplied nonce is for test vectors only.

Implementation

Future<Uint8List> encryptBound(
  Uint8List payload,
  PayloadBinding binding,
  PeerId recipient, {
  Uint8List? nonce,
}) async {
  final plain = BytesBuilder(copy: false)
    ..add(binding.header())
    ..add(payload);
  final sealed = await encryptLegacy(plain.toBytes(), recipient, nonce: nonce);
  final out = BytesBuilder(copy: false)
    ..add(boundMagic)
    ..add(sealed);
  return out.toBytes();
}