mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-26 03:58:45 +08:00
34 lines
1.1 KiB
C#
34 lines
1.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Security;
|
|
using mRemoteNG.Config.DataProviders;
|
|
using mRemoteNG.Config.Serializers;
|
|
using mRemoteNG.Credential;
|
|
|
|
|
|
namespace mRemoteNG.Config
|
|
{
|
|
public class CredentialRecordLoader
|
|
{
|
|
private readonly IDataProvider<string> _dataProvider;
|
|
private readonly ISecureDeserializer<string, IEnumerable<ICredentialRecord>> _deserializer;
|
|
|
|
public CredentialRecordLoader(IDataProvider<string> dataProvider,
|
|
ISecureDeserializer<string, IEnumerable<ICredentialRecord>> deserializer)
|
|
{
|
|
if (dataProvider == null)
|
|
throw new ArgumentNullException(nameof(dataProvider));
|
|
if (deserializer == null)
|
|
throw new ArgumentNullException(nameof(deserializer));
|
|
|
|
_dataProvider = dataProvider;
|
|
_deserializer = deserializer;
|
|
}
|
|
|
|
public IEnumerable<ICredentialRecord> Load(SecureString key)
|
|
{
|
|
var serializedCredentials = _dataProvider.Load();
|
|
return _deserializer.Deserialize(serializedCredentials, key);
|
|
}
|
|
}
|
|
} |