Инициализация RSACryptoServiceProvider приватным ключем
От: Dronopotamus Россия  
Дата: 15.01.07 09:02
Оценка:
Добрый день.
Стоит задача инициализировать RSACryptoServiceProvider только приватным ключем — для того чтобы им можно было только расшифровывать данные, но не зашифровывать.
Как мы знаем из мсдн, параметры алгоритма RSA в дотнет задаются структурой RSAParameters, и как мы знаем из теории, открытым ключем является Modulus+Exponent, закрытым — Modulus+D.
Дальше интереснее — при попытке инициализации провайдера структурой RSAParameters, содержащей только открытый ключ — все ок, провайдер инициализируется и им можно зашифровать данные. При попытке же инициализации только приватным ключем кидается ексепшн "Bad Key", почему-то реализация хочет чтобы было обязательно заполнено поле Exponent в структуре RSAParameters, т.е. чтобы она обязательно содержала и открытый ключ. Хотя например для расшифровки он не нужен.
Как обойти это? Я планировал ключ для шифрования ("открытый") держать в секрете, а для расшифрования ("закрытый") опубликовать...

ЗЫ. Про проблемму с маленьким D я вкурсе, я думал сгенерировать ключ с D приличной длинны...
Удар судьбы в лоб означает, что не возымели действия ее пинки под зад
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.