diff --git a/mRemoteV1/Config/CredentialRecordLoader.cs b/mRemoteV1/Config/CredentialRecordLoader.cs new file mode 100644 index 000000000..bd7d879a8 --- /dev/null +++ b/mRemoteV1/Config/CredentialRecordLoader.cs @@ -0,0 +1,33 @@ +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 _dataProvider; + private readonly XmlCredentialDeserializer _deserializer; + + public CredentialRecordLoader(IDataProvider dataProvider, XmlCredentialDeserializer deserializer) + { + if (dataProvider == null) + throw new ArgumentNullException(nameof(dataProvider)); + if (deserializer == null) + throw new ArgumentNullException(nameof(deserializer)); + + _dataProvider = dataProvider; + _deserializer = deserializer; + } + + public IEnumerable Load(SecureString decryptionKey) + { + var serializedCredentials = _dataProvider.Load(); + return _deserializer.Deserialize(serializedCredentials, decryptionKey); + } + } +} \ No newline at end of file diff --git a/mRemoteV1/Config/CredentialRecordSaver.cs b/mRemoteV1/Config/CredentialRecordSaver.cs new file mode 100644 index 000000000..89a855c1c --- /dev/null +++ b/mRemoteV1/Config/CredentialRecordSaver.cs @@ -0,0 +1,33 @@ +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 CredentialRecordSaver + { + private readonly IDataProvider _dataProvider; + private readonly XmlCredentialRecordSerializer _serializer; + + public CredentialRecordSaver(IDataProvider dataProvider, XmlCredentialRecordSerializer serializer) + { + if (dataProvider == null) + throw new ArgumentNullException(nameof(dataProvider)); + if (serializer == null) + throw new ArgumentNullException(nameof(serializer)); + + _dataProvider = dataProvider; + _serializer = serializer; + } + + public void Save(IEnumerable credentialRecords, SecureString encryptionKey) + { + var serializedCredentials = _serializer.Serialize(credentialRecords, encryptionKey); + _dataProvider.Save(serializedCredentials); + } + } +} \ No newline at end of file diff --git a/mRemoteV1/mRemoteV1.csproj b/mRemoteV1/mRemoteV1.csproj index 804e0ce23..bb4f879ed 100644 --- a/mRemoteV1/mRemoteV1.csproj +++ b/mRemoteV1/mRemoteV1.csproj @@ -133,6 +133,8 @@ + +