encryptWithPassphrase function

Stream<List<int>> encryptWithPassphrase(
  1. Stream<List<int>> payload, {
  2. AgeRandom random = const AgeRandom(),
  3. PassphraseProvider passphraseProvider = const PassphraseProvider(),
  4. dynamic workFactor = -1,
})

Implementation

Stream<List<int>> encryptWithPassphrase(Stream<List<int>> payload,
    {AgeRandom random = const AgeRandom(),
    PassphraseProvider passphraseProvider = const PassphraseProvider(),
    workFactor = -1}) async* {
  _logger.fine('Encrypting to a passphrase');
  final symmetricFileKey = random.bytes(16);
  final stanza = await AgePlugin.passphraseStanzaCreate(
      symmetricFileKey, random.bytes(16), passphraseProvider, workFactor);
  final header = await AgeHeader.create([stanza], symmetricFileKey);
  final payloadNonce = random.bytes(16);

  yield (await header.serialize()).codeUnits;
  yield [0x0a];
  yield* _encryptPayload(payload,
      symmetricFileKey: symmetricFileKey, payloadNonce: payloadNonce);
}