Как преобразовать открытый ключ строгого имени (snk) в <RSAKeyValue>? - PullRequest
3 голосов
/ 24 сентября 2011

У меня есть файл testpublic.snk, который содержит открытый ключ. Я создал его с помощью sn -p c: \ test.snk c: \ testpublic.snk. Теперь, как я могу преобразовать testpublic.snk в строку типа

<RSAKeyValue><Modulus>z140GwiEJvuGOVqMQUxnojILR8rn2SFOViigoloku59H5eqzqca3Hdyl/jc+Acdb5ktzhBOOyGFElE0/Btlvw9cXVVW8zcT0MBOCaq25D1rSVYLGGM6nXzBrl1XsrBEadZbCgkcF5rw8GaYcYakijaltP1/hvxhbMOARM9VCQ50=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>

Спасибо за вашу помощь.

1 Ответ

2 голосов
/ 24 сентября 2011

Просто повторно используйте код (лицензированный MIT.X11) из Mono .Security StrongName класса, доступного в github, затем вызовите ToXmlString на своем RSA имущество. Что-то вроде:

Console.WriteLine (new StrongName (data).RSA.ToXmlString (false));

Где data - это байт [], содержащий содержимое файла snk . Также вы можете использовать true , если вам нужен закрытый ключ в вашем XML (он будет работать, если он был доступен для вашего snk файла).

...