public async Task <T> DeserializeAsync(Stream sourceStream)
        {
            // Implement a BridgeStream to automatically and lazily read from one when writing to another.
            // Try BufferedStream.
            using (var memoryStream = new MemoryStream())
            {
                await _decryptor.ToDecryptedStreamAsync(sourceStream, memoryStream, _passphrase, _salt);

                memoryStream.Position = 0;

                return(await _serializer.DeserializeAsync(memoryStream));
            }
        }