/// <summary>
        /// Carga el servicio de encriptación.
        /// </summary>
        /// <param name="services">Colección de servicios.</param>
        /// <param name="settings">Configuración del servicio de encriptación.</param>
        /// <returns>IServiceCollection | ApplicationException: si EncryptorSettings es nulo.</returns>
        internal static IServiceCollection LoadEncryptor(
            this IServiceCollection services,
            EncryptorSettings settings)
        {
            var config = settings.ToIsNullOrEmptyThrow(nameof(settings));

            if (config.Enabled == true)
            {
                services.LoadEncryptor(x =>
                {
                    var environment = services.ToEnvironment();

                    x.SetApplicationName(config.ApplicationName)
                    .ProtectKeysWithDpapi()
                    .SetDefaultKeyLifetime(TimeSpan.FromDays(config.KeyLifetimeFromDays !.Value));

                    if (!config.PersistKeysToFileSystem.ToIsNullOrEmpty())
                    {
                        if (!config.PersistKeysToFileSystem.ToIsDirectory())
                        {
                            Directory.CreateDirectory(config.PersistKeysToFileSystem);
                        }

                        x.PersistKeysToFileSystem(new DirectoryInfo(config.PersistKeysToFileSystem));
                    }
                });
            }

            return(services);
        }
        /// <summary>
        /// Indica si se utilizara el servicio de encriptación.
        /// </summary>
        /// <param name="settings">Configuración del servicio.</param>
        /// <returns>SecurityOptions | ApplicationException: si EncryptorSettings es nulo.</returns>
        public SecurityOptions WithEncryptor(EncryptorSettings settings)
        {
            SecuritySettings.EncryptorSettings = settings;

            return(this);
        }