Может ли System.Security.Cryptography.RSACryptoServiceProvider.Decrypt()
выводить неверные данные? Или он всегда будет выдавать исключение с сообщением «Неверный параметр» или любое другое исключение, не может ли он должным образом расшифровать?
Ситуация:
- Я генерирую RSAпара, используя
RSACryptoServiceProvider.ExportParameters(true)
- Я посылаю модуль и экспоненту на другую сторону
- Я получаю зашифрованные данные
- Я успешно расшифровываю данные с теми же параметрами RSA без каких-либо ошибок, нополучить данные длиной 30 байтов
- Другая сторона заявляет, что обычные данные имели длину 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);