2 implementations of IKey
Microsoft.AspNetCore.DataProtection (1)
KeyManagement\Key.cs (1)
18internal sealed class Key : IKey
Microsoft.AspNetCore.DataProtection.Tests (1)
KeyManagement\KeyRingTests.cs (1)
97private sealed class MyKey : IKey
172 references to IKey
KeyManagementSample (2)
Program.cs (2)
39foreach (var key in allKeys) 57foreach (var key in allKeys)
KeyManagementSimulator (1)
Program.cs (1)
310IAuthenticatedEncryptor IAuthenticatedEncryptorFactory.CreateEncryptorInstance(IKey key)
Microsoft.AspNetCore.DataProtection (52)
AuthenticatedEncryption\AuthenticatedEncryptorFactory.cs (1)
36public IAuthenticatedEncryptor? CreateEncryptorInstance(IKey key)
AuthenticatedEncryption\CngCbcAuthenticatedEncryptorFactory.cs (1)
36public IAuthenticatedEncryptor? CreateEncryptorInstance(IKey key)
AuthenticatedEncryption\CngGcmAuthenticatedEncryptorFactory.cs (1)
36public IAuthenticatedEncryptor? CreateEncryptorInstance(IKey key)
AuthenticatedEncryption\IAuthenticatedEncryptorFactory.cs (3)
15/// Creates an <see cref="IAuthenticatedEncryptor"/> instance based on the given <see cref="IKey.Descriptor"/>. 19/// For a given <see cref="IKey.Descriptor"/>, any two instances returned by this method should 23IAuthenticatedEncryptor? CreateEncryptorInstance(IKey key);
AuthenticatedEncryption\ManagedAuthenticatedEncryptorFactory.cs (1)
31public IAuthenticatedEncryptor? CreateEncryptorInstance(IKey key)
KeyManagement\DefaultKeyResolver.cs (11)
93private bool CanCreateAuthenticatedEncryptor(IKey key, ref int retriesRemaining) 107nameof(IKey.CreateEncryptor), 108new InvalidOperationException($"{nameof(IKey.CreateEncryptor)} returned null.")); 133_logger.KeyIsIneligibleToBeTheDefaultKeyBecauseItsMethodFailed(key.KeyId, nameof(IKey.CreateEncryptor), exceptions is null ? ex : new AggregateException(exceptions)); 137_logger.RetryingMethodOfKeyAfterFailure(key.KeyId, nameof(IKey.CreateEncryptor), ex); 148private IKey? FindDefaultKey(DateTimeOffset now, IEnumerable<IKey> allKeys, out IKey? fallbackKey) 161var preferredDefaultKey = (from key in allKeys 214public DefaultKeyResolution ResolveDefaultKeyPolicy(DateTimeOffset now, IEnumerable<IKey> allKeys) 217var defaultKey = FindDefaultKey(now, allKeys, out retVal.FallbackKey);
KeyManagement\IDeletableKeyManager.cs (1)
47bool DeleteKeys(Func<IKey, bool> shouldDelete);
KeyManagement\IKeyManager.cs (2)
26IKey CreateNewKey(DateTimeOffset activationDate, DateTimeOffset expirationDate); 32IReadOnlyCollection<IKey> GetAllKeys();
KeyManagement\Internal\CacheableKeyRing.cs (2)
18internal CacheableKeyRing(CancellationToken expirationToken, DateTimeOffset expirationTime, IKey defaultKey, IEnumerable<IKey> allKeys)
KeyManagement\Internal\DefaultKeyResolution.cs (4)
16/// If this property is non-null, its <see cref="IKey.CreateEncryptor()"/> method will succeed 19public IKey? DefaultKey; 27/// If this property is non-null, its <see cref="IKey.CreateEncryptor()"/> method will succeed 30public IKey? FallbackKey;
KeyManagement\Internal\IDefaultKeyResolver.cs (1)
17DefaultKeyResolution ResolveDefaultKeyPolicy(DateTimeOffset now, IEnumerable<IKey> allKeys);
KeyManagement\Internal\IInternalXmlKeyManager.cs (1)
21IKey CreateNewKey(Guid keyId, DateTimeOffset creationDate, DateTimeOffset activationDate, DateTimeOffset expirationDate);
KeyManagement\Key.cs (3)
16/// The basic implementation of <see cref="IKey"/>. 32/// The basic implementation of <see cref="IKey"/>, where the <see cref="IAuthenticatedEncryptorDescriptor"/> 54/// The basic implementation of <see cref="IKey"/>, where the incoming XML element
KeyManagement\KeyExtensions.cs (1)
10public static bool IsExpired(this IKey key, DateTimeOffset now)
KeyManagement\KeyRing.cs (5)
20public KeyRing(IKey defaultKey, IEnumerable<IKey> allKeys) 23foreach (IKey key in allKeys) 66private readonly IKey _key; 69internal KeyHolder(IKey key)
KeyManagement\KeyRingProvider.cs (8)
81private CacheableKeyRing CreateCacheableKeyRingCore(DateTimeOffset now, IKey? keyJustAdded) 89var defaultKey = defaultKeyPolicy.DefaultKey; 99var keyToUse = defaultKey ?? defaultKeyPolicy.FallbackKey ?? keyJustAdded; 138var keyToUse = defaultKey ?? defaultKeyPolicy.FallbackKey; 158var newKey = _keyManager.CreateNewKey(activationDate: now, expirationDate: now + _newKeyLifetime); 166var newKey = _keyManager.CreateNewKey(activationDate: defaultKey.ExpirationDate, expirationDate: now + _newKeyLifetime); 171private CacheableKeyRing CreateCacheableKeyRingCoreStep2(DateTimeOffset now, CancellationToken cacheExpirationToken, IKey defaultKey, IEnumerable<IKey> allKeys)
KeyManagement\XmlKeyManager.cs (6)
145public IKey CreateNewKey(DateTimeOffset activationDate, DateTimeOffset expirationDate) 164public IReadOnlyCollection<IKey> GetAllKeys() 168return processed.OfType<IKey>().ToList().AsReadOnly(); 414public bool DeleteKeys(Func<IKey, bool> shouldDelete) 443if (obj is IKey key) 504IKey IInternalXmlKeyManager.CreateNewKey(Guid keyId, DateTimeOffset creationDate, DateTimeOffset activationDate, DateTimeOffset expirationDate)
Microsoft.AspNetCore.DataProtection.Tests (117)
AuthenticatedEncryption\CngCbcAuthenticatedEncryptorFactoryTest.cs (2)
21var key = new Mock<IKey>(); 39var key = new Mock<IKey>();
AuthenticatedEncryption\CngGcmAuthenticatedEncryptorFactoryTest.cs (2)
21var key = new Mock<IKey>(); 39var key = new Mock<IKey>();
AuthenticatedEncryption\ManagedAuthenticatedEncryptorFactoryTest.cs (2)
19var key = new Mock<IKey>(); 36var key = new Mock<IKey>();
KeyManagement\DefaultKeyResolverTests.cs (37)
27var resolution = resolver.ResolveDefaultKeyPolicy(DateTimeOffset.Now, new IKey[0]); 39var key1 = CreateKey("2015-03-01 00:00:00Z", "2016-03-01 00:00:00Z"); 40var key2 = CreateKey("2016-03-01 00:00:00Z", "2017-03-01 00:00:00Z"); 55var key1 = CreateKey("2015-03-01 00:00:00Z", "2016-03-01 00:00:00Z"); 56var key2 = CreateKey("2016-03-01 00:00:00Z", "2017-03-01 00:00:00Z"); 71var key1 = CreateKey("2016-03-01 00:00:00Z", "2017-03-01 00:00:00Z"); 86var key1 = CreateKey("2015-03-01 00:00:00Z", "2016-03-01 00:00:00Z"); 101var key1 = CreateKey("2015-03-01 00:00:00Z", "2016-03-01 00:00:00Z"); 102var key2 = CreateKey("2016-03-01 00:00:00Z", "2017-03-01 00:00:00Z", isRevoked: true); 103var key3 = CreateKey("2016-03-01 00:00:00Z", "2016-03-02 00:00:00Z"); // key expires too soon 118var key1 = CreateKey("2015-03-01 00:00:00Z", "2016-03-01 00:00:00Z"); 119var key2 = CreateKey("2015-03-02 00:00:00Z", "2016-03-01 00:00:00Z", isRevoked: true); 133var key1 = CreateKey("2015-03-01 00:00:00Z", "2016-03-01 00:00:00Z"); 134var key2 = CreateKey("2015-03-02 00:00:00Z", "2016-03-01 00:00:00Z", createEncryptorThrows: true); 150var key1 = CreateKey("2015-03-01 00:00:00Z", "2016-03-01 00:00:00Z"); 165var key1 = CreateKey("2015-03-01 00:00:00Z", "2016-03-01 00:00:00Z"); 180var key1 = CreateKey("2015-03-01 00:00:00Z", "2014-03-01 00:00:00Z"); // expiration before activation should never occur 181var key2 = CreateKey("2015-03-01 00:01:00Z", "2015-04-01 00:00:00Z", isRevoked: true); 182var key3 = CreateKey("2015-03-01 00:02:00Z", "2015-04-01 00:00:00Z"); 197var key1 = CreateKey("2010-01-01 00:00:00Z", "2010-01-01 00:00:00Z", creationDate: "2000-01-01 00:00:00Z"); 198var key2 = CreateKey("2010-01-01 00:00:00Z", "2010-01-01 00:00:00Z", creationDate: "2000-01-02 00:00:00Z"); 199var key3 = CreateKey("2010-01-01 00:00:00Z", "2010-01-01 00:00:00Z", creationDate: "2000-01-03 00:00:00Z", isRevoked: true); 200var key4 = CreateKey("2010-01-01 00:00:00Z", "2010-01-01 00:00:00Z", creationDate: "2000-01-04 00:00:00Z"); 214var key1 = CreateKey("2010-01-01 00:00:00Z", "2010-01-01 00:00:00Z", creationDate: "2000-01-01 00:00:00Z"); 215var key2 = CreateKey("2010-01-01 00:00:00Z", "2010-01-01 00:00:00Z", creationDate: "2000-01-02 00:00:00Z"); 216var key3 = CreateKey("2010-01-01 00:00:00Z", "2010-01-01 00:00:00Z", creationDate: "2000-01-03 00:00:00Z", createEncryptorThrows: true); 217var key4 = CreateKey("2010-01-01 00:00:00Z", "2010-01-01 00:00:00Z", creationDate: "2000-01-04 00:00:00Z"); 233var key1 = CreateKey("2010-01-01 00:00:00Z", "2010-01-01 00:00:00Z", creationDate: "2000-01-03 00:00:00Z", isRevoked: true); 234var key2 = CreateKey("2010-01-01 00:00:00Z", "2010-01-01 00:00:00Z", creationDate: "2000-01-04 00:00:00Z"); 235var key3 = CreateKey("2010-01-01 00:00:00Z", "2010-01-01 00:00:00Z", creationDate: "2000-01-05 00:00:00Z"); 270var key1 = CreateKey(activation1, expiration1, creationDate: creation1); 271var key2 = CreateKey(activation2, expiration2, creationDate: creation2, createEncryptorThrows: true); 457private static IKey CreateKey(string activationDate, string expirationDate, string creationDate = null, bool isRevoked = false, bool createEncryptorThrows = false) 462private static IKey CreateKey(DateTimeOffset activationDate, DateTimeOffset expirationDate, DateTimeOffset? creationDate = null, bool isRevoked = false, bool createEncryptorThrows = false) 464var mockKey = new Mock<IKey>(); 490public static DefaultKeyResolution ResolveDefaultKeyPolicy(this IDefaultKeyResolver resolver, string now, params IKey[] allKeys) 492return resolver.ResolveDefaultKeyPolicy(DateTimeOffset.ParseExact(now, "u", CultureInfo.InvariantCulture), (IEnumerable<IKey>)allKeys);
KeyManagement\KeyRingBasedDataProtectorTests.cs (9)
218mockEncryptorFactory.Setup(o => o.CreateEncryptorInstance(It.IsAny<IKey>())).Returns(new Mock<IAuthenticatedEncryptor>().Object); 246mockEncryptorFactory.Setup(m => m.CreateEncryptorInstance(It.IsAny<IKey>())).Returns(new Mock<IAuthenticatedEncryptor>().Object); 271mockEncryptorFactory.Setup(o => o.CreateEncryptorInstance(It.IsAny<IKey>())).Returns(new Mock<IAuthenticatedEncryptor>().Object); 302mockEncryptorFactory.Setup(o => o.CreateEncryptorInstance(It.IsAny<IKey>())).Returns(new Mock<IAuthenticatedEncryptor>().Object); 338mockEncryptorFactory.Setup(o => o.CreateEncryptorInstance(It.IsAny<IKey>())).Returns(new Mock<IAuthenticatedEncryptor>().Object); 405mockEncryptorFactory.Setup(o => o.CreateEncryptorInstance(It.IsAny<IKey>())).Returns(new Mock<IAuthenticatedEncryptor>().Object); 446mockEncryptorFactory.Setup(o => o.CreateEncryptorInstance(It.IsAny<IKey>())).Returns(mockEncryptor.Object); 493mockEncryptorFactory.Setup(o => o.CreateEncryptorInstance(It.IsAny<IKey>())).Returns(mockEncryptor.Object); 542mockEncryptorFactory.Setup(o => o.CreateEncryptorInstance(It.IsAny<IKey>())).Returns(mockEncryptor.Object);
KeyManagement\KeyRingProviderTests.cs (52)
31var key1 = CreateKey("2015-03-01 00:00:00Z", "2016-03-01 00:00:00Z"); 32var key2 = CreateKey("2016-03-01 00:00:00Z", "2017-03-01 00:00:00Z"); 42Tuple.Create((DateTimeOffset)now, (IEnumerable<IKey>)allKeys, new DefaultKeyResolution() 69var key1 = CreateKey("2015-03-01 00:00:00Z", "2016-03-01 00:00:00Z"); 70var key2 = CreateKey("2016-03-01 00:00:00Z", "2017-03-01 00:00:00Z"); 80Tuple.Create((DateTimeOffset)now, (IEnumerable<IKey>)allKeys, new DefaultKeyResolution() 85Tuple.Create(key1.ExpirationDate, (IEnumerable<IKey>)allKeys, new DefaultKeyResolution() 113var allKeys1 = new IKey[0]; 115var key1 = CreateKey("2015-03-01 00:00:00Z", "2016-03-01 00:00:00Z"); 116var key2 = CreateKey("2016-03-01 00:00:00Z", "2017-03-01 00:00:00Z"); 128Tuple.Create((DateTimeOffset)now, (IEnumerable<IKey>)allKeys1, new DefaultKeyResolution() 133Tuple.Create((DateTimeOffset)now, (IEnumerable<IKey>)allKeys2, new DefaultKeyResolution() 161var allKeys1 = Array.Empty<IKey>(); 164var newKey = CreateKey("2015-03-01 00:00:00Z", "2016-03-01 00:00:00Z", isRevoked: true); 176Tuple.Create(now, (IEnumerable<IKey>)allKeys1, new DefaultKeyResolution() 181Tuple.Create(now, (IEnumerable<IKey>)allKeys2, new DefaultKeyResolution() 204var allKeys = new IKey[0]; 206var newlyCreatedKey = CreateKey("2015-03-01 00:00:00Z", "2016-03-01 00:00:00Z"); 217Tuple.Create((DateTimeOffset)now, (IEnumerable<IKey>)allKeys, new DefaultKeyResolution() 222Tuple.Create((DateTimeOffset)now, (IEnumerable<IKey>)allKeys, new DefaultKeyResolution() 250var allKeys = new IKey[0]; 261Tuple.Create((DateTimeOffset)now, (IEnumerable<IKey>)allKeys, new DefaultKeyResolution() 286var key1 = CreateKey("2015-03-01 00:00:00Z", "2016-03-01 00:00:00Z"); 289var key2 = CreateKey("2016-03-01 00:00:00Z", "2017-03-01 00:00:00Z"); 301Tuple.Create((DateTimeOffset)now, (IEnumerable<IKey>)allKeys1, new DefaultKeyResolution() 306Tuple.Create((DateTimeOffset)now, (IEnumerable<IKey>)allKeys2, new DefaultKeyResolution() 335var key1 = CreateKey("2015-03-01 00:00:00Z", "2016-03-01 00:00:00Z"); 345Tuple.Create((DateTimeOffset)now, (IEnumerable<IKey>)allKeys, new DefaultKeyResolution() 373var key1 = CreateKey("2015-03-01 00:00:00Z", "2015-03-01 00:00:00Z"); 383Tuple.Create((DateTimeOffset)now, (IEnumerable<IKey>)allKeys, new DefaultKeyResolution() 452var key1 = CreateKey(activation1, expiration1); 453var key2 = CreateKey(activation2, expiration2); 455var generatedKey = CreateKey(expiration1, now + TimeSpan.FromDays(90)); 464var resolveDefaultKeyPolicyReturnValues = new List<Tuple<DateTimeOffset, IEnumerable<IKey>, DefaultKeyResolution>>() 466Tuple.Create(now, (IEnumerable<IKey>)allKeys, new DefaultKeyResolution() 478Tuple.Create(expiration1, (IEnumerable<IKey>)allKeys, new DefaultKeyResolution() 496Tuple.Create(now, (IEnumerable<IKey>)allKeysAfterGeneration, new DefaultKeyResolution() 534var key = CreateKey(activation, expiration); 535var generatedKey = CreateKey(expiration, now + TimeSpan.FromDays(90)); 548Tuple.Create(now, (IEnumerable<IKey>)allKeysBefore, new DefaultKeyResolution() 553Tuple.Create(now, (IEnumerable<IKey>)allKeysAfter, new DefaultKeyResolution() 761IEnumerable<IReadOnlyCollection<IKey>> getAllKeysReturnValues, 762IEnumerable<Tuple<DateTimeOffset, DateTimeOffset, IKey>> createNewKeyCallbacks, 763IEnumerable<Tuple<DateTimeOffset, IEnumerable<IKey>, DefaultKeyResolution>> resolveDefaultKeyPolicyReturnValues, 801mockDefaultKeyResolver.Setup(o => o.ResolveDefaultKeyPolicy(It.IsAny<DateTimeOffset>(), It.IsAny<IEnumerable<IKey>>())) 802.Returns<DateTimeOffset, IEnumerable<IKey>>((now, allKeys) => 887mockEncryptorFactory.Setup(m => m.CreateEncryptorInstance(It.IsAny<IKey>())).Returns(new Mock<IAuthenticatedEncryptor>().Object); 904mockEncryptorFactory.Setup(m => m.CreateEncryptorInstance(It.IsAny<IKey>())).Returns(new Mock<IAuthenticatedEncryptor>().Object); 926private static IKey CreateKey() 934private static IKey CreateKey(string activationDate, string expirationDate, bool isRevoked = false) 942private static IKey CreateKey(DateTimeOffset activationDate, DateTimeOffset expirationDate, bool isRevoked = false) 944var mockKey = new Mock<IKey>();
KeyManagement\XmlKeyManagerTests.cs (13)
124var newKey = ((IInternalXmlKeyManager)keyManager).CreateNewKey( 222var newKey = ((IInternalXmlKeyManager)keyManager).CreateNewKey( 600private static IReadOnlyCollection<IKey> RunGetAllKeysCore(string xml, IActivator activator, ILoggerFactory loggerFactory = null) 816var createdKey = keyManager.CreateNewKey(activationDate, expirationDate); 826var fetchedKey = Assert.Single(fetchedKeys); 839var fetchedKey2 = Assert.Single(fetchedKeys2); 916var fetchedKey = Assert.Single(fetchedKeys); 927var fetchedKey2 = Assert.Single(fetchedKeys2); 956var key1 = keyManager.CreateNewKey(epoch, epoch.AddMinutes(10)); 958var key2 = keyManager.CreateNewKey(epoch.AddMinutes(30), epoch.AddMinutes(40)); 960var key3 = keyManager.CreateNewKey(epoch.AddHours(1), epoch.AddHours(2)); 961var key4 = keyManager.CreateNewKey(epoch.AddHours(3), epoch.AddHours(4)); 1049public IAuthenticatedEncryptor CreateEncryptorInstance(IKey key)