IClientSideEncryptor
                    interface IClientSideEncryptor
                
                using Azure.Storage.Cryptography.Models;
using System;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
namespace Azure.Storage.Cryptography
{
    internal interface IClientSideEncryptor
    {
        long ExpectedOutputContentLength(long plaintextLength);
        Task<(Stream Ciphertext, EncryptionData EncryptionData)> EncryptInternal(Stream plaintext, bool async, CancellationToken cancellationToken);
        Task<(byte[] Ciphertext, EncryptionData EncryptionData)> BufferedEncryptInternal(Stream plaintext, bool async, CancellationToken cancellationToken);
        Task<Stream> EncryptedOpenWriteInternal(Func<EncryptionData, bool, CancellationToken, Task<Stream>> openWriteInternal, bool async, CancellationToken cancellationToken);
    }
}