private Stream BuildTransformationStream(Stream input, ChunkConfiguration configuration)
        {
            var streamChain = new InputStreamChainBuilder();

            if (configuration.IsCompressed)
            {
                streamChain.Add(_compressionFactory.GetAlgorithm(configuration.CompressionOptions.Algorithm).CreateDecompressor());
            }

            if (configuration.IsEncrypted)
            {
                streamChain.Add(_encryptionFactory.GetAlgorithm(configuration.EncryptionOptions, _configuration.Password));
            }

            return(streamChain.CreateInputStream(input, true));
        }