handleCryptoFrame method

void handleCryptoFrame({
  1. required EncryptionLevel level,
  2. required int offset,
  3. required Uint8List data,
})

Implementation

void handleCryptoFrame({
  required EncryptionLevel level,
  required int offset,
  required Uint8List data,
}) {
  final reassembler = cryptoReassemblers[level];
  if (reassembler == null) {
    print('ℹ️ No server CRYPTO reassembler for $level');
    return;
  }

  // Retransmission-safe insert
  reassembler.insert(offset, data);

  // Drain only newly contiguous bytes
  final assembled = reassembler.drain();
  if (assembled.isEmpty) {
    return;
  }

  // Keep whatever handshake transcript / buffer you already use
  receivedHandshakeByLevel[level]!.add(assembled);

  if (level == EncryptionLevel.initial) {
    _maybeHandleClientHello();
  } else if (level == EncryptionLevel.handshake) {
    _maybeHandleClientFinished();
  }
}