sshCreatePacketReaderState function

SshPacketReaderState sshCreatePacketReaderState({
  1. required String encryptionAlgorithm,
  2. required List<int> encryptionKey,
  3. required List<int> initialVector,
  4. required String macAlgorithm,
  5. required List<int> macKey,
  6. int initialSequenceNumber = 0,
})

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),
      );
  }
}