public FeistelCipherTransform(
     int roundsCount,
     int blockSizeValue,
     [NotNull] byte[] key,
     [NotNull] Func <byte[], byte[], byte[]> blockCryptor,
     [NotNull] Func <byte[], int, byte[]> roundKeyGenerator,
     CryptoTransformMode mode)
 {
     _initialKey        = key;
     _roundsCount       = roundsCount;
     _blockSizeValue    = blockSizeValue;
     _blockCryptor      = blockCryptor;
     _roundKeyGenerator = roundKeyGenerator;
     _mode = mode;
 }
 public FeistelCipherTransform(
     int roundsCount,
     int blockSizeValue,
     [NotNull]byte[] key,
     [NotNull]Func<byte[], byte[], byte[]> blockCryptor,
     [NotNull]Func<byte[], int, byte[]> roundKeyGenerator,
     CryptoTransformMode mode)
 {
     _initialKey = key;
     _roundsCount = roundsCount;
     _blockSizeValue = blockSizeValue;
     _blockCryptor = blockCryptor;
     _roundKeyGenerator = roundKeyGenerator;
     _mode = mode;
 }