Пример #1
0
        internal async Task <IEnumerable <KeyContainer> > FilterAndDeleteRetiredKeysAsync(IEnumerable <KeyContainer> keys)
        {
            var retired = keys
                          .Where(x =>
            {
                var age       = _clock.GetAge(x.Created);
                var isRetired = _options.IsRetired(age);
                return(isRetired);
            })
                          .ToArray();

            if (retired.Any())
            {
                if (_logger.IsEnabled(LogLevel.Trace))
                {
                    var ids = retired.Select(x => x.Id).ToArray();
                    _logger.LogTrace("Filtered retired keys from store: {kids}", ids.Aggregate((x, y) => $"{x},{y}"));
                }

                if (_options.DeleteRetiredKeys)
                {
                    var ids = retired.Select(x => x.Id).ToArray();
                    if (_logger.IsEnabled(LogLevel.Debug))
                    {
                        _logger.LogDebug("Deleting retired keys from store: {kids}", ids.Aggregate((x, y) => $"{x},{y}"));
                    }
                    await DeleteKeysAsync(ids);
                }
            }

            var result = keys.Except(retired).ToArray();

            return(result);
        }
Пример #2
0
        internal async Task <IEnumerable <RsaKeyContainer> > FilterAndDeleteRetiredKeysAsync(IEnumerable <RsaKeyContainer> keys)
        {
            var retired = keys
                          .Where(x =>
            {
                var age       = _clock.GetAge(x.Created);
                var isRetired = _options.IsRetired(age);
                return(isRetired);
            })
                          .ToArray();

            if (_options.DeleteRetiredKeys && retired.Any())
            {
                await DeleteKeysAsync(retired.Select(x => x.Id));
            }

            var result = keys.Except(retired);

            return(result);
        }