У меня есть чей-то открытый ключ в виде строки:
<RSAKeyValue>
<Modulus>publickeyhere</Modulus>
<Exponent>AAAA</Exponent>
</RSAKeyValue>
У меня также есть файл app.config, и я пытаюсь зашифровать его раздел appSettings с помощью открытого ключа.Я делаю это так
var publicKeyXml = @"<RSAKeyValue><Modulus>publickeyhere</Modulus><Exponent>AAAA</Exponent></RSAKeyValue>";
var map = new ExeConfigurationFileMap
{
ExeConfigFilename = "app.config"
};
var config = ConfigurationManager
.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
using (var rsa = new RSACryptoServiceProvider())
{
try
{
rsa.FromXmlString(publicKeyXml);
// Now use the public key to encrypt how?
config.AppSettings.SectionInformation
.ProtectSection("RSAProtectedConfigurationProvider");
config.SaveAs($"app.encrypted.config");
}
finally
{
rsa.PersistKeyInCsp = false;
}
}
Как мне сказать, что для шифрования необходимо использовать открытый ключ, а не тот, который используется на текущем компьютере, на котором он работает?