Remove DefaultKeyServices
This commit is contained in:
parent
e7fa69d63c
commit
ddd041b0f1
|
|
@ -1,59 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using Microsoft.AspNetCore.Cryptography;
|
|
||||||
using Microsoft.AspNetCore.DataProtection.KeyManagement.Internal;
|
|
||||||
using Microsoft.AspNetCore.DataProtection.Repositories;
|
|
||||||
using Microsoft.AspNetCore.DataProtection.XmlEncryption;
|
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.DataProtection.KeyManagement
|
|
||||||
{
|
|
||||||
internal sealed class DefaultKeyServices : IDefaultKeyServices
|
|
||||||
{
|
|
||||||
private readonly Lazy<object> _keyEncryptorLazy;
|
|
||||||
private readonly Lazy<object> _keyRepositoryLazy;
|
|
||||||
|
|
||||||
public DefaultKeyServices(IServiceProvider services, ServiceDescriptor keyEncryptorDescriptor, ServiceDescriptor keyRepositoryDescriptor)
|
|
||||||
{
|
|
||||||
if (keyEncryptorDescriptor != null)
|
|
||||||
{
|
|
||||||
// optional
|
|
||||||
CryptoUtil.Assert(keyEncryptorDescriptor.ServiceType == typeof(IXmlEncryptor), "Bad service type.");
|
|
||||||
_keyEncryptorLazy = GetLazyForService(services, keyEncryptorDescriptor);
|
|
||||||
}
|
|
||||||
|
|
||||||
CryptoUtil.Assert(keyRepositoryDescriptor.ServiceType == typeof(IXmlRepository), "Bad service type.");
|
|
||||||
_keyRepositoryLazy = GetLazyForService(services, keyRepositoryDescriptor);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets the default <see cref="IXmlEncryptor"/> service (could return null).
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
public IXmlEncryptor GetKeyEncryptor()
|
|
||||||
{
|
|
||||||
return (IXmlEncryptor)_keyEncryptorLazy?.Value;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets the default <see cref="IXmlRepository"/> service (must not be null).
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
public IXmlRepository GetKeyRepository()
|
|
||||||
{
|
|
||||||
return (IXmlRepository)_keyRepositoryLazy.Value ?? CryptoUtil.Fail<IXmlRepository>("GetKeyRepository returned null.");
|
|
||||||
}
|
|
||||||
|
|
||||||
private static Lazy<object> GetLazyForService(IServiceProvider services, ServiceDescriptor descriptor)
|
|
||||||
{
|
|
||||||
CryptoUtil.Assert(descriptor != null && descriptor.Lifetime == ServiceLifetime.Singleton, "Descriptor must represent singleton.");
|
|
||||||
CryptoUtil.Assert(descriptor.ImplementationFactory != null, "Descriptor must have an implementation factory.");
|
|
||||||
|
|
||||||
// pull the factory out so we don't close over the whole descriptor instance
|
|
||||||
Func<IServiceProvider, object> wrapped = descriptor.ImplementationFactory;
|
|
||||||
return new Lazy<object>(() => wrapped(services));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using Microsoft.AspNetCore.DataProtection.Repositories;
|
|
||||||
using Microsoft.AspNetCore.DataProtection.XmlEncryption;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.DataProtection.KeyManagement.Internal
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Provides default implementations of the services required by an <see cref="IKeyManager"/>.
|
|
||||||
/// </summary>
|
|
||||||
public interface IDefaultKeyServices
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Gets the default <see cref="IXmlEncryptor"/> service (could return null).
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
IXmlEncryptor GetKeyEncryptor();
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets the default <see cref="IXmlRepository"/> service (must not be null).
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
IXmlRepository GetKeyRepository();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue