From 3998be3f9321f736af842ea1a0260dbbca015fa2 Mon Sep 17 00:00:00 2001 From: David Sparer Date: Fri, 20 Jan 2017 10:10:59 -0700 Subject: [PATCH] created credential saver and loader classes --- mRemoteV1/Config/CredentialRecordLoader.cs | 33 ++++++++++++++++++++++ mRemoteV1/Config/CredentialRecordSaver.cs | 33 ++++++++++++++++++++++ mRemoteV1/mRemoteV1.csproj | 2 ++ 3 files changed, 68 insertions(+) create mode 100644 mRemoteV1/Config/CredentialRecordLoader.cs create mode 100644 mRemoteV1/Config/CredentialRecordSaver.cs 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 @@ + +