handleCryptoFrame method
void
handleCryptoFrame({
- required EncryptionLevel level,
- required int offset,
- 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();
}
}