ClientSideEncryptionOptionsExtensions
namespace Azure.Storage.Cryptography
{
internal static class ClientSideEncryptionOptionsExtensions
{
public static ClientSideEncryptionOptions Clone(this ClientSideEncryptionOptions options)
{
ClientSideEncryptionOptions val = new ClientSideEncryptionOptions(options.get_EncryptionVersion());
CopyOptions(options, val);
return val;
}
internal static void CopyOptions(ClientSideEncryptionOptions source, ClientSideEncryptionOptions destination)
{
destination.set_KeyEncryptionKey(source.get_KeyEncryptionKey());
destination.set_KeyResolver(source.get_KeyResolver());
destination.set_KeyWrapAlgorithm(source.get_KeyWrapAlgorithm());
}
public static IClientSideEncryptor GetClientSideEncryptor(this ClientSideEncryptionOptions options)
{
ClientSideEncryptionVersion encryptionVersion = options.get_EncryptionVersion();
if ((int)encryptionVersion == 1)
return new ClientSideEncryptorV1_0(options);
if ((int)encryptionVersion != 2)
throw Errors.ClientSideEncryption.ClientSideEncryptionVersionNotSupported(null);
return new ClientSideEncryptorV2_0(options);
}
}
}