<PackageReference Include="Azure.Storage.Blobs" Version="12.25.0-beta.1" />

BlobClientSideEncryptor

using Azure.Storage.Blobs.Models; using Azure.Storage.Blobs.Specialized; using Azure.Storage.Cryptography; using Azure.Storage.Cryptography.Models; using System; using System.Collections.Generic; using System.IO; using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; namespace Azure.Storage.Blobs { internal class BlobClientSideEncryptor { private readonly IClientSideEncryptor _encryptor; public BlobClientSideEncryptor(IClientSideEncryptor encryptor) { _encryptor = encryptor; } [AsyncStateMachine(typeof(<ClientSideEncryptInternal>d__2))] public Task<(Stream NonSeekableCiphertext, IDictionary<string, string> Metadata)> ClientSideEncryptInternal(Stream content, IDictionary<string, string> metadata, bool async, CancellationToken cancellationToken) { <ClientSideEncryptInternal>d__2 stateMachine = default(<ClientSideEncryptInternal>d__2); stateMachine.<>t__builder = AsyncTaskMethodBuilder<(Stream, IDictionary<string, string>)>.Create(); stateMachine.<>4__this = this; stateMachine.content = content; stateMachine.metadata = metadata; stateMachine.async = async; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } [AsyncStateMachine(typeof(<ClientSideEncryptionOpenWriteInternal>d__3))] public Task<Stream> ClientSideEncryptionOpenWriteInternal(BlockBlobClient blobClient, bool overwrite, BlockBlobOpenWriteOptions options, bool async, CancellationToken cancellationToken) { <ClientSideEncryptionOpenWriteInternal>d__3 stateMachine = default(<ClientSideEncryptionOpenWriteInternal>d__3); stateMachine.<>t__builder = AsyncTaskMethodBuilder<Stream>.Create(); stateMachine.<>4__this = this; stateMachine.blobClient = blobClient; stateMachine.overwrite = overwrite; stateMachine.options = options; stateMachine.async = async; stateMachine.cancellationToken = cancellationToken; stateMachine.<>1__state = -1; stateMachine.<>t__builder.Start(ref stateMachine); return stateMachine.<>t__builder.Task; } private static IDictionary<string, string> TransformMetadata(IDictionary<string, string> metadata, EncryptionData encryptionData) { Dictionary<string, string> obj = (metadata == null) ? new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase) : new Dictionary<string, string>(metadata, StringComparer.OrdinalIgnoreCase); ((IDictionary<string, string>)obj)["encryptiondata"] = EncryptionDataSerializer.Serialize(encryptionData); return obj; } } }