writeMlDsaWireMessages function

Future<void> writeMlDsaWireMessages({
  1. required Directory baseDir,
  2. required List<MlDsaSigningMessage> messages,
})

Writes messages into round-specific subdirs under baseDir.

Implementation

Future<void> writeMlDsaWireMessages({
  required Directory baseDir,
  required List<MlDsaSigningMessage> messages,
}) async {
  for (final message in messages) {
    final sub = switch (message.kind) {
      MlDsaWireKind.round1 => 'round1',
      MlDsaWireKind.round2 => 'round2',
      MlDsaWireKind.round3 => 'round3',
      _ => throw ArgumentError('invalid kind'),
    };
    final dir = Directory('${baseDir.path}/$sub');
    await dir.create(recursive: true);
    await File('${dir.path}/from-${message.senderIndex}.wire')
        .writeAsBytes(message.wireBytes, flush: true);
  }
}