mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-17 22:11:48 +08:00
replaced duplicate code
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user