sshCreatePacketReaderState function
Implementation
SshPacketReaderState sshCreatePacketReaderState({
required String encryptionAlgorithm,
required List<int> encryptionKey,
required List<int> initialVector,
required String macAlgorithm,
required List<int> macKey,
int initialSequenceNumber = 0,
}) {
final SshCipherAlgorithm cipher = SshTransportAlgorithms.cipherAlgorithm(
encryptionAlgorithm,
);
switch (cipher.protectionMode) {
case SshPacketProtectionMode.plain:
return SshPlainPacketReaderState(
codec: SshPacketCodec(blockSize: cipher.blockSize),
);
case SshPacketProtectionMode.encryptThenMac:
return SshAesCtrHmacPacketReaderState(
encryptionKey: encryptionKey,
initialVector: initialVector,
macKey: macKey,
macAlgorithm: macAlgorithm,
initialSequenceNumber: initialSequenceNumber,
codec: SshPacketCodec(blockSize: cipher.blockSize),
);
case SshPacketProtectionMode.aead:
return SshChaCha20Poly1305PacketReaderState(
encryptionKey: encryptionKey,
initialSequenceNumber: initialSequenceNumber,
codec: SshPacketCodec(blockSize: cipher.blockSize),
);
}
}