replaced duplicate code

This commit is contained in:
David Sparer
2017-02-14 14:58:09 -07:00
parent b52b5b4287
commit fbfe664438

View File

@@ -20,7 +20,7 @@ namespace mRemoteNG.Config.Serializers
var xdoc = XDocument.Parse(xml);
var rootElement = xdoc.Root;
ValidateSchemaVersion(rootElement);
var cryptographyProvider = BuildCryptoProvider(rootElement);
var cryptographyProvider = CryptographyProviderFactory.BuildFromXml(rootElement);
Authenticate(rootElement, cryptographyProvider, decryptionKey);
var credentials = from element in xdoc.Descendants("Credential")
@@ -48,25 +48,5 @@ namespace mRemoteNG.Config.Serializers
var authString = rootElement.Attribute("Auth")?.Value;
cryptographyProvider.Decrypt(authString, key);
}
private ICryptographyProvider BuildCryptoProvider(XElement rootElement)
{
if (rootElement == null)
throw new ArgumentNullException(nameof(rootElement));
BlockCipherEngines engine;
Enum.TryParse(rootElement.Attribute("EncryptionEngine")?.Value, true, out engine);
BlockCipherModes mode;
Enum.TryParse(rootElement.Attribute("BlockCipherMode")?.Value, true, out mode);
int kdfIterations;
int.TryParse(rootElement.Attribute("KdfIterations")?.Value, out kdfIterations);
var cryptoProvider = new CryptographyProviderFactory().CreateAeadCryptographyProvider(engine, mode);
cryptoProvider.KeyDerivationIterations = kdfIterations;
return cryptoProvider;
}
}
}