Пересылка открытого ключа для подтверждения цифровой подписи - C#

Узнай цену своей работы

Формулировка задачи:

Одна программа ставит цифровую подпись и записывает открытый ключ в файл:
//...
public class DigitalSignatureHelper
    {
 
        public byte[] CreateSignature(byte[] hash)
        {
            RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
            RSAPKCS1SignatureFormatter RSAFormatter = new RSAPKCS1SignatureFormatter(RSA);
            RSAFormatter.SetHashAlgorithm("MD5");
 
            string pablickey = RSA.ToXmlString(false);
            File.WriteAllText("D:\\pas.xml", pablickey, Encoding.UTF8);
            return RSAFormatter.CreateSignature(hash);
 
        }
//...
А вторая должна считать этот ключ и подтвердить подпись:
//...
public class DigitalSignatureHelper
    {
        
        public bool VerifySignature(byte[] hash, byte[] signedhash)
        {
            RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
            RSA.FromXmlString("D:\\pas.xml");
            
            RSAPKCS1SignatureDeformatter RSADeformatter = new RSAPKCS1SignatureDeformatter(RSA);
            RSADeformatter.SetHashAlgorithm("MD5");
            return RSADeformatter.VerifySignature(hash, signedhash);
 
        }
//...
Только что-то я делаю нетак... может кто подскажет как тот ключ из Xml записать в:
private RSAParameters m_public;
что бы потом извлеч из него информацыю таким образом:
RSAParameters RSAKeyInfo = new RSAParameters();
            RSAKeyInfo.Modulus = m_public.Modulus;
            RSAKeyInfo.Exponent = m_public.Exponent;
            RSA.ImportParameters(RSAKeyInfo);
Потому что когда делал в одной программе именно такая схема работала, а теперь вот нужна пересылка ключа.

Решение задачи: «Пересылка открытого ключа для подтверждения цифровой подписи»

textual
Листинг программы
RSA.FromXmlString(File.ReadAllText("D:\\pas.xml"));

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.214 из 5
Похожие ответы