public async Task GetKeysAsync_within_expiration_should_return_keys()
        {
            var now = _mockClock.UtcNow;

            var keys = new RsaKeyContainer[] {
                new RsaKeyContainer()
                {
                    Created = _mockClock.UtcNow.DateTime.Subtract(TimeSpan.FromMinutes(1))
                },
                new RsaKeyContainer()
                {
                    Created = _mockClock.UtcNow.DateTime.Subtract(TimeSpan.FromMinutes(2))
                },
            };
            await _subject.StoreKeysAsync(keys, TimeSpan.FromMinutes(1));

            var result = await _subject.GetKeysAsync();

            result.Should().BeSameAs(keys);

            _mockClock.UtcNow = now.Subtract(TimeSpan.FromDays(1));
            result            = await _subject.GetKeysAsync();

            result.Should().BeSameAs(keys);

            _mockClock.UtcNow = now.Add(TimeSpan.FromSeconds(59));
            result            = await _subject.GetKeysAsync();

            result.Should().BeSameAs(keys);

            _mockClock.UtcNow = now.Add(TimeSpan.FromMinutes(1));
            result            = await _subject.GetKeysAsync();

            result.Should().BeSameAs(keys);
        }
Ejemplo n.º 2
0
 public SerializedKey Protect(RsaKeyContainer key)
 {
     ProtectWasCalled = true;
     return(new SerializedKey
     {
         Id = key.Id,
         KeyType = key.KeyType,
         Created = DateTime.UtcNow,
         Data = KeySerializer.Serialize(key),
     });
 }
Ejemplo n.º 3
0
        public void IsKeyRotationRequired_when_no_active_key_should_be_true()
        {
            {
                var keys = new RsaKeyContainer[] {
                    CreateKey(_options.KeyRetirement.Add(TimeSpan.FromDays(1))),
                };
                var result = _subject.IsKeyRotationRequired(keys);
                result.Should().BeTrue();
            }

            {
                var keys = new[] {
                    CreateKey(_options.KeyExpiration.Add(TimeSpan.FromDays(1))),
                };

                var result = _subject.IsKeyRotationRequired(keys);
                result.Should().BeTrue();
            }
        }
Ejemplo n.º 4
0
        public async Task GetKeysAsync_past_expiration_should_return_no_keys()
        {
            var now = _mockClock.UtcNow;

            var keys = new RsaKeyContainer[] {
                new RsaKeyContainer()
                {
                    Created = _mockClock.UtcNow.UtcDateTime.Subtract(TimeSpan.FromMinutes(1))
                },
                new RsaKeyContainer()
                {
                    Created = _mockClock.UtcNow.UtcDateTime.Subtract(TimeSpan.FromMinutes(2))
                },
            };
            await _subject.StoreKeysAsync(keys, TimeSpan.FromMinutes(1));

            _mockClock.UtcNow = now.Add(TimeSpan.FromSeconds(61));
            var result = await _subject.GetKeysAsync();

            result.Should().BeNullOrEmpty();
        }