DI API changes

This commit is contained in:
Brennan 2015-03-05 14:21:35 -08:00
parent 32ff156923
commit 88eb10dcfe
5 changed files with 7 additions and 20 deletions

View File

@ -13,14 +13,11 @@ namespace Microsoft.AspNet.DataProtection.AuthenticatedEncryption
internal sealed class CngCbcAuthenticatedEncryptorConfigurationXmlReader : IAuthenticatedEncryptorConfigurationXmlReader internal sealed class CngCbcAuthenticatedEncryptorConfigurationXmlReader : IAuthenticatedEncryptorConfigurationXmlReader
{ {
private readonly IServiceProvider _serviceProvider; private readonly IServiceProvider _serviceProvider;
private readonly ITypeActivator _typeActivator;
public CngCbcAuthenticatedEncryptorConfigurationXmlReader( public CngCbcAuthenticatedEncryptorConfigurationXmlReader(
[NotNull] IServiceProvider serviceProvider, [NotNull] IServiceProvider serviceProvider)
[NotNull] ITypeActivator typeActivator)
{ {
_serviceProvider = serviceProvider; _serviceProvider = serviceProvider;
_typeActivator = typeActivator;
} }
public IAuthenticatedEncryptorConfiguration FromXml([NotNull] XElement element) public IAuthenticatedEncryptorConfiguration FromXml([NotNull] XElement element)
@ -51,7 +48,7 @@ namespace Microsoft.AspNet.DataProtection.AuthenticatedEncryption
var encryptedSecretElement = element.Element(CngCbcAuthenticatedEncryptorConfiguration.SecretElementName).Elements().Single(); var encryptedSecretElement = element.Element(CngCbcAuthenticatedEncryptorConfiguration.SecretElementName).Elements().Single();
var secretElementDecryptorTypeName = (string)encryptedSecretElement.Attribute("decryptor"); var secretElementDecryptorTypeName = (string)encryptedSecretElement.Attribute("decryptor");
var secretElementDecryptorType = Type.GetType(secretElementDecryptorTypeName, throwOnError: true); var secretElementDecryptorType = Type.GetType(secretElementDecryptorTypeName, throwOnError: true);
var secretElementDecryptor = (IXmlDecryptor)_typeActivator.CreateInstance(_serviceProvider, secretElementDecryptorType); var secretElementDecryptor = (IXmlDecryptor)ActivatorUtilities.CreateInstance(_serviceProvider, secretElementDecryptorType);
var decryptedSecretElement = secretElementDecryptor.Decrypt(encryptedSecretElement); var decryptedSecretElement = secretElementDecryptor.Decrypt(encryptedSecretElement);
CryptoUtil.Assert(decryptedSecretElement.Name == CngCbcAuthenticatedEncryptorConfiguration.SecretElementName, CryptoUtil.Assert(decryptedSecretElement.Name == CngCbcAuthenticatedEncryptorConfiguration.SecretElementName,
@"TODO: Bad element."); @"TODO: Bad element.");

View File

@ -13,14 +13,11 @@ namespace Microsoft.AspNet.DataProtection.AuthenticatedEncryption
internal sealed class CngGcmAuthenticatedEncryptorConfigurationXmlReader : IAuthenticatedEncryptorConfigurationXmlReader internal sealed class CngGcmAuthenticatedEncryptorConfigurationXmlReader : IAuthenticatedEncryptorConfigurationXmlReader
{ {
private readonly IServiceProvider _serviceProvider; private readonly IServiceProvider _serviceProvider;
private readonly ITypeActivator _typeActivator;
public CngGcmAuthenticatedEncryptorConfigurationXmlReader( public CngGcmAuthenticatedEncryptorConfigurationXmlReader(
[NotNull] IServiceProvider serviceProvider, [NotNull] IServiceProvider serviceProvider)
[NotNull] ITypeActivator typeActivator)
{ {
_serviceProvider = serviceProvider; _serviceProvider = serviceProvider;
_typeActivator = typeActivator;
} }
public IAuthenticatedEncryptorConfiguration FromXml([NotNull] XElement element) public IAuthenticatedEncryptorConfiguration FromXml([NotNull] XElement element)
@ -45,7 +42,7 @@ namespace Microsoft.AspNet.DataProtection.AuthenticatedEncryption
var encryptedSecretElement = element.Element(CngGcmAuthenticatedEncryptorConfiguration.SecretElementName).Elements().Single(); var encryptedSecretElement = element.Element(CngGcmAuthenticatedEncryptorConfiguration.SecretElementName).Elements().Single();
var secretElementDecryptorTypeName = (string)encryptedSecretElement.Attribute("decryptor"); var secretElementDecryptorTypeName = (string)encryptedSecretElement.Attribute("decryptor");
var secretElementDecryptorType = Type.GetType(secretElementDecryptorTypeName, throwOnError: true); var secretElementDecryptorType = Type.GetType(secretElementDecryptorTypeName, throwOnError: true);
var secretElementDecryptor = (IXmlDecryptor)_typeActivator.CreateInstance(_serviceProvider, secretElementDecryptorType); var secretElementDecryptor = (IXmlDecryptor)ActivatorUtilities.CreateInstance(_serviceProvider, secretElementDecryptorType);
var decryptedSecretElement = secretElementDecryptor.Decrypt(encryptedSecretElement); var decryptedSecretElement = secretElementDecryptor.Decrypt(encryptedSecretElement);
CryptoUtil.Assert(decryptedSecretElement.Name == CngGcmAuthenticatedEncryptorConfiguration.SecretElementName, CryptoUtil.Assert(decryptedSecretElement.Name == CngGcmAuthenticatedEncryptorConfiguration.SecretElementName,
@"TODO: Bad element."); @"TODO: Bad element.");

View File

@ -13,14 +13,11 @@ namespace Microsoft.AspNet.DataProtection.AuthenticatedEncryption
internal sealed class ManagedAuthenticatedEncryptorConfigurationXmlReader : IAuthenticatedEncryptorConfigurationXmlReader internal sealed class ManagedAuthenticatedEncryptorConfigurationXmlReader : IAuthenticatedEncryptorConfigurationXmlReader
{ {
private readonly IServiceProvider _serviceProvider; private readonly IServiceProvider _serviceProvider;
private readonly ITypeActivator _typeActivator;
public ManagedAuthenticatedEncryptorConfigurationXmlReader( public ManagedAuthenticatedEncryptorConfigurationXmlReader(
[NotNull] IServiceProvider serviceProvider, [NotNull] IServiceProvider serviceProvider)
[NotNull] ITypeActivator typeActivator)
{ {
_serviceProvider = serviceProvider; _serviceProvider = serviceProvider;
_typeActivator = typeActivator;
} }
public IAuthenticatedEncryptorConfiguration FromXml([NotNull] XElement element) public IAuthenticatedEncryptorConfiguration FromXml([NotNull] XElement element)
@ -49,7 +46,7 @@ namespace Microsoft.AspNet.DataProtection.AuthenticatedEncryption
var encryptedSecretElement = element.Element(ManagedAuthenticatedEncryptorConfiguration.SecretElementName).Elements().Single(); var encryptedSecretElement = element.Element(ManagedAuthenticatedEncryptorConfiguration.SecretElementName).Elements().Single();
var secretElementDecryptorTypeName = (string)encryptedSecretElement.Attribute("decryptor"); var secretElementDecryptorTypeName = (string)encryptedSecretElement.Attribute("decryptor");
var secretElementDecryptorType = Type.GetType(secretElementDecryptorTypeName, throwOnError: true); var secretElementDecryptorType = Type.GetType(secretElementDecryptorTypeName, throwOnError: true);
var secretElementDecryptor = (IXmlDecryptor)_typeActivator.CreateInstance(_serviceProvider, secretElementDecryptorType); var secretElementDecryptor = (IXmlDecryptor)ActivatorUtilities.CreateInstance(_serviceProvider, secretElementDecryptorType);
var decryptedSecretElement = secretElementDecryptor.Decrypt(encryptedSecretElement); var decryptedSecretElement = secretElementDecryptor.Decrypt(encryptedSecretElement);
CryptoUtil.Assert(decryptedSecretElement.Name == ManagedAuthenticatedEncryptorConfiguration.SecretElementName, CryptoUtil.Assert(decryptedSecretElement.Name == ManagedAuthenticatedEncryptorConfiguration.SecretElementName,
@"TODO: Bad element."); @"TODO: Bad element.");

View File

@ -96,7 +96,6 @@ namespace Microsoft.Framework.DependencyInjection
descriptors.AddRange(new[] descriptors.AddRange(new[]
{ {
ServiceDescriptor.Singleton<IAuthenticatedEncryptorConfigurationFactory, CngCbcAuthenticatedEncryptorConfigurationFactory>(), ServiceDescriptor.Singleton<IAuthenticatedEncryptorConfigurationFactory, CngCbcAuthenticatedEncryptorConfigurationFactory>(),
ServiceDescriptor.Singleton<ITypeActivator, TypeActivator>(),
ServiceDescriptor.Singleton<IKeyManager, XmlKeyManager>(), ServiceDescriptor.Singleton<IKeyManager, XmlKeyManager>(),
ServiceDescriptor.Singleton<IDataProtectionProvider, DefaultDataProtectionProvider>() ServiceDescriptor.Singleton<IDataProtectionProvider, DefaultDataProtectionProvider>()
}); });

View File

@ -35,20 +35,17 @@ namespace Microsoft.AspNet.DataProtection.KeyManagement
private readonly IAuthenticatedEncryptorConfigurationFactory _authenticatedEncryptorConfigurationFactory; private readonly IAuthenticatedEncryptorConfigurationFactory _authenticatedEncryptorConfigurationFactory;
private readonly IServiceProvider _serviceProvider; private readonly IServiceProvider _serviceProvider;
private readonly ITypeActivator _typeActivator;
private readonly IXmlRepository _xmlRepository; private readonly IXmlRepository _xmlRepository;
private readonly IXmlEncryptor _xmlEncryptor; private readonly IXmlEncryptor _xmlEncryptor;
public XmlKeyManager( public XmlKeyManager(
[NotNull] IServiceProvider serviceProvider, [NotNull] IServiceProvider serviceProvider,
[NotNull] IAuthenticatedEncryptorConfigurationFactory authenticatedEncryptorConfigurationFactory, [NotNull] IAuthenticatedEncryptorConfigurationFactory authenticatedEncryptorConfigurationFactory,
[NotNull] ITypeActivator typeActivator,
[NotNull] IXmlRepository xmlRepository, [NotNull] IXmlRepository xmlRepository,
[NotNull] IXmlEncryptor xmlEncryptor) [NotNull] IXmlEncryptor xmlEncryptor)
{ {
_serviceProvider = serviceProvider; _serviceProvider = serviceProvider;
_authenticatedEncryptorConfigurationFactory = authenticatedEncryptorConfigurationFactory; _authenticatedEncryptorConfigurationFactory = authenticatedEncryptorConfigurationFactory;
_typeActivator = typeActivator;
_xmlRepository = xmlRepository; _xmlRepository = xmlRepository;
_xmlEncryptor = xmlEncryptor; _xmlEncryptor = xmlEncryptor;
} }
@ -175,7 +172,7 @@ namespace Microsoft.AspNet.DataProtection.KeyManagement
CryptoUtil.Assert(typeof(IAuthenticatedEncryptorConfigurationXmlReader).IsAssignableFrom(encryptorConfigurationParserType), CryptoUtil.Assert(typeof(IAuthenticatedEncryptorConfigurationXmlReader).IsAssignableFrom(encryptorConfigurationParserType),
"TODO: typeof(IAuthenticatedEncryptorConfigurationXmlReader).IsAssignableFrom(encryptorConfigurationParserType)"); "TODO: typeof(IAuthenticatedEncryptorConfigurationXmlReader).IsAssignableFrom(encryptorConfigurationParserType)");
var parser = (IAuthenticatedEncryptorConfigurationXmlReader)_typeActivator.CreateInstance(_serviceProvider, encryptorConfigurationParserType); var parser = (IAuthenticatedEncryptorConfigurationXmlReader)ActivatorUtilities.CreateInstance(_serviceProvider, encryptorConfigurationParserType);
var encryptorConfiguration = parser.FromXml(encryptorConfigurationAsXml); var encryptorConfiguration = parser.FromXml(encryptorConfigurationAsXml);
Guid keyId = (Guid)keyElement.Attribute(IdAttributeName); Guid keyId = (Guid)keyElement.Attribute(IdAttributeName);