Как правильно передать RSAParameters?
Сабж.
Пробую
string json = JsonSerializer.Serialize<RSAParameters>(_publicKey); в ответ получаю "{}"
По этому делаю так
var sw = new StringWriter();
var xs = new XmlSerializer(typeof(RSAParameters));
xs.Serialize(sw, _publicKey);
string stringKey = sw.ToString();
Далее так
Keys key = new Keys(stringKey);
В этом классе просто string поле в которое я пишу XML.
string json = JsonSerializer.Serialize<Keys>(key);
И эту строку передаю POST запросом в контроллер другого приложения.
Зачем XML пихать в класс а потом класс в json? Ну у меня просто не получилось в контролере принять строку XML.
В контролере я принимаю объект, десереализую, и записываю строку с XML в файл, получается что то подобное
<?xml version="1.0" encoding="utf-16"?>
<RSAParameters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Exponent>AQAB</Exponent>
<Modulus>rpB3UeQPCwikIsZxy19KKkhH0/PtgOV11aMNi5hB6zYiIM4p1rN0tJDYFqTbd98ajk4pff+/IiZ9Iy/gsuW1JUVgaZcw6b1M85cKdz3Ws3Ewc5j6Ub80mmK1xbGq599zJPQmj2fJ7p8bqM8i6WeVQxD87/vrycwVDtXCD/4SI5UOk1DFja4NVSPKmTxjU4XejAGw8HlhhE5UB48SfppdJHdiFuMhO8LDxgRFEim6fIyymzl9IuVc+CRObRzIyeSXQd0+8ldeFkKao+MTJcVq1cHWCpfZF4zVO6L37xG5Sz18a4s7NBfIv9owt6XpcRgl/bv1FgpFPwhWYFlN+iq/eQ==</Modulus>
</RSAParameters>
Далее я пытаюсь десереализовать этот файл но получаю ошибку
public RSAParameters _publicKey;
XmlSerializer formatter = new XmlSerializer(typeof(RSAParameters));
using (FileStream fs = new FileStream("note.xml", FileMode.OpenOrCreate))
{
publicKey = (RSAParameters)formatter.Deserialize(fs);
}
Ошибка
There is an error in XML document (0, 0).
Смысл этого всего в том что я хочу отправить публичный ключ, а в ответ получить зашифрованное сообщение этим ключом, а потом расшифровать его.