Может ли RSACryptoServiceProvider.Decrypt () вернуть неверные данные? - PullRequest
0 голосов
/ 11 ноября 2019

Может ли System.Security.Cryptography.RSACryptoServiceProvider.Decrypt() выводить неверные данные? Или он всегда будет выдавать исключение с сообщением «Неверный параметр» или любое другое исключение, не может ли он должным образом расшифровать?

Ситуация:

  1. Я генерирую RSAпара, используя RSACryptoServiceProvider.ExportParameters(true)
  2. Я посылаю модуль и экспоненту на другую сторону
  3. Я получаю зашифрованные данные
  4. Я успешно расшифровываю данные с теми же параметрами RSA без каких-либо ошибок, нополучить данные длиной 30 байтов
  5. Другая сторона заявляет, что обычные данные имели длину 32 байта

Возможно ли это? Что мне здесь не хватает?

using System.Security.Cryptography;

var provider = new RSACryptoServiceProvider(2048);
var rsaParams = provider.ExportParameters(true);
rsaParams.Exponent = new byte[] { 0x65 };

byte[] publicKey = rsaParams.Modulus;

// Send public key to the other side with exponent 0x65, 
// Decrypt received data

byte[] decryptedData = provider.Decrypt(encryptedData, false);
...