Я работаю над проектом, в котором мне нужно использовать «открытый ключ» для шифрования сообщения с использованием алгоритма RSA. Мне был предоставлен сертификат, и моей первой мыслью было использовать открытый ключ из этого сертификата, и после изучения я узнал, что мне нужно использовать RSACryptoServiceProvider
для шифрования.
Я проверил msdn и единственный метод, который, по моему мнению, мне следует использовать, это RSACryptoServiceProvider.ImportCspBlob(byte[] keyBlob)
. Когда я попытался использовать открытый ключ, экспортированный из сертификата, я получил сообщение об ошибке, что данные заголовка для сертификата недействительны.
Я знаю, что могу преобразовать X509certificate2.PublicKey.Key
в RSACryptoServiceProvider
, но из того, что я понял от своего клиента, в будущем мне будет предоставлен только открытый ключ, а не сертификат. Этот ключ необходимо сохранить в файле конфигурации .xml.
Итак, подведем итог: есть ли способ сгенерировать RSACryptoServiceProvider
, учитывая только открытый ключ сертификата?