Как получить из RSACryptoServiceProvider (RSAParameters) ключ ввиде наборов байтов

Как получить из RSACryptoServiceProvider (RSAParameters) ключ ввиде наборов байтов.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            byte[] data = null;
            byte[] privKey;
            {
                RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(512);
                privKey = rsa.ExportParameters(true).Modulus;
                data = rsa.Encrypt(Encoding.ASCII.GetBytes("Hi"), false);
            }
            {
                var rsa = new RSACryptoServiceProvider(512);
                var t = rsa.ExportParameters(true);
                t.Modulus = privKey;
                rsa.ImportParameters(t);
                var newD = rsa.Decrypt(data, false); // Not Working
            }
        }
    }
}

В этом коде у меня на строке с rsa.Decrypt вылетает исключение: System.Security.Cryptography.CryptographicException: "Присоединенное к системе устройство не работает. "


Ответы (1 шт):

Автор решения: МММ

Оказываеться для того чтоб передать приватный ключ нужно из RSAParameters:

  • Modulus
  • D
  • P
  • Q
  • DP
  • DQ
  • Exponent
→ Ссылка